payload 2.27.0 → 2.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -93,14 +93,20 @@ async function update(incomingArgs) {
93
93
  });
94
94
  docs = query.docs;
95
95
  } else {
96
- const query = await payload.db.find({
96
+ const dbArgs = {
97
97
  collection: collectionConfig.slug,
98
98
  limit: 0,
99
99
  locale,
100
100
  pagination: false,
101
101
  req,
102
102
  where: fullWhere
103
- });
103
+ };
104
+ let query;
105
+ if (collectionConfig?.db?.find) {
106
+ query = await collectionConfig.db.find(dbArgs);
107
+ } else {
108
+ query = await payload.db.find(dbArgs);
109
+ }
104
110
  docs = query.docs;
105
111
  }
106
112
  // /////////////////////////////////////
@@ -211,13 +217,18 @@ async function update(incomingArgs) {
211
217
  // Update
212
218
  // /////////////////////////////////////
213
219
  if (!shouldSaveDraft || data._status === 'published') {
214
- result = await req.payload.db.updateOne({
220
+ const dbArgs = {
215
221
  id,
216
222
  collection: collectionConfig.slug,
217
223
  data: result,
218
224
  locale,
219
225
  req
220
- });
226
+ };
227
+ if (collectionConfig?.db?.updateOne) {
228
+ result = await collectionConfig.db.updateOne(dbArgs);
229
+ } else {
230
+ result = await req.payload.db.updateOne(dbArgs);
231
+ }
221
232
  }
222
233
  // /////////////////////////////////////
223
234
  // Create version
@@ -329,4 +340,4 @@ async function update(incomingArgs) {
329
340
  }
330
341
  const _default = update;
331
342
 
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZXBQYXJ0aWFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IGh0dHBTdGF0dXMgZnJvbSAnaHR0cC1zdGF0dXMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8nXG5pbXBvcnQgdHlwZSB7IEFjY2Vzc1Jlc3VsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWxrT3BlcmF0aW9uUmVzdWx0LCBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVVcGRhdGVUeXBlIH0gZnJvbSAnLi9jcmVhdGUnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyB2YWxpZGF0ZVF1ZXJ5UGF0aHMgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS9xdWVyeVZhbGlkYXRpb24vdmFsaWRhdGVRdWVyeVBhdGhzJ1xuaW1wb3J0IHsgQVBJRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBhZnRlckNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlckNoYW5nZSdcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBiZWZvcmVDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlJ1xuaW1wb3J0IHsgYmVmb3JlVmFsaWRhdGUgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUnXG5pbXBvcnQgeyBkZWxldGVBc3NvY2lhdGVkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL2RlbGV0ZUFzc29jaWF0ZWRGaWxlcydcbmltcG9ydCB7IGdlbmVyYXRlRmlsZURhdGEgfSBmcm9tICcuLi8uLi91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEnXG5pbXBvcnQgeyB1bmxpbmtUZW1wRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VubGlua1RlbXBGaWxlcydcbmltcG9ydCB7IHVwbG9hZEZpbGVzIH0gZnJvbSAnLi4vLi4vdXBsb2Fkcy91cGxvYWRGaWxlcydcbmltcG9ydCB7IGNvbW1pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvYnVpbGRDb2xsZWN0aW9uRmllbGRzJ1xuaW1wb3J0IHsgYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkgfSBmcm9tICcuLi8uLi92ZXJzaW9ucy9kcmFmdHMvYXBwZW5kVmVyc2lvblRvUXVlcnlLZXknXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgQ3JlYXRlVXBkYXRlVHlwZT4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgZGF0YTogRGVlcFBhcnRpYWw8VD5cbiAgZGVwdGg/OiBudW1iZXJcbiAgZGlzYWJsZVZlcmlmaWNhdGlvbkVtYWlsPzogYm9vbGVhblxuICBkcmFmdD86IGJvb2xlYW5cbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbiAgd2hlcmU6IFdoZXJlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZTxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUU2x1Zz4+IHtcbiAgbGV0IGFyZ3MgPSBpbmNvbWluZ0FyZ3NcblxuICB0cnkge1xuICAgIGNvbnN0IHNob3VsZENvbW1pdCA9IGF3YWl0IGluaXRUcmFuc2FjdGlvbihhcmdzLnJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVPcGVyYXRpb24gLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgYXJncy5jb2xsZWN0aW9uLmNvbmZpZy5ob29rcy5iZWZvcmVPcGVyYXRpb24ucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBhcmdzID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgY29sbGVjdGlvbjogYXJncy5jb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiBhcmdzLnJlcS5jb250ZXh0LFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgcmVxOiBhcmdzLnJlcSxcbiAgICAgICAgfSkpIHx8IGFyZ3NcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIGNvbnN0IHtcbiAgICAgIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZGVwdGgsXG4gICAgICBkcmFmdDogZHJhZnRBcmcgPSBmYWxzZSxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IGZhbHNlLFxuICAgICAgcmVxOiB7XG4gICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHBheWxvYWQ6IHsgY29uZmlnIH0sXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHQsXG4gICAgICB9LFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgIHdoZXJlLFxuICAgIH0gPSBhcmdzXG5cbiAgICBpZiAoIXdoZXJlKSB7XG4gICAgICB0aHJvdyBuZXcgQVBJRXJyb3IoXCJNaXNzaW5nICd3aGVyZScgcXVlcnkgb2YgZG9jdW1lbnRzIHRvIHVwZGF0ZS5cIiwgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBjb25zdCB7IGRhdGE6IGJ1bGtVcGRhdGVEYXRhIH0gPSBhcmdzXG4gICAgY29uc3Qgc2hvdWxkU2F2ZURyYWZ0ID0gQm9vbGVhbihkcmFmdEFyZyAmJiBjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zLmRyYWZ0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcbiAgICBpZiAoIW92ZXJyaWRlQWNjZXNzKSB7XG4gICAgICBhY2Nlc3NSZXN1bHQgPSBhd2FpdCBleGVjdXRlQWNjZXNzKHsgcmVxIH0sIGNvbGxlY3Rpb25Db25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICB9XG5cbiAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBmdWxsV2hlcmUgPSBjb21iaW5lUXVlcmllcyh3aGVyZSwgYWNjZXNzUmVzdWx0KVxuXG4gICAgbGV0IGRvY3NcblxuICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zPy5kcmFmdHMgJiYgc2hvdWxkU2F2ZURyYWZ0KSB7XG4gICAgICBjb25zdCB2ZXJzaW9uc1doZXJlID0gYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkoZnVsbFdoZXJlKVxuXG4gICAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgICBjb2xsZWN0aW9uQ29uZmlnOiBjb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgdmVyc2lvbkZpZWxkczogYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb2xsZWN0aW9uLmNvbmZpZyksXG4gICAgICAgIHdoZXJlOiB2ZXJzaW9uc1doZXJlLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBwYXlsb2FkLmRiLnF1ZXJ5RHJhZnRzPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aGVyZTogdmVyc2lvbnNXaGVyZSxcbiAgICAgIH0pXG5cbiAgICAgIGRvY3MgPSBxdWVyeS5kb2NzXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgcGF5bG9hZC5kYi5maW5kKHtcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBsaW1pdDogMCxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aGVyZTogZnVsbFdoZXJlLFxuICAgICAgfSlcblxuICAgICAgZG9jcyA9IHF1ZXJ5LmRvY3NcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gR2VuZXJhdGUgZGF0YSBmb3IgYWxsIGZpbGVzIGFuZCBzaXplc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHsgZGF0YTogbmV3RmlsZURhdGEsIGZpbGVzOiBmaWxlc1RvVXBsb2FkIH0gPSBhd2FpdCBnZW5lcmF0ZUZpbGVEYXRhKHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBjb25maWcsXG4gICAgICBkYXRhOiBidWxrVXBkYXRlRGF0YSxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICAgICAgcmVxLFxuICAgICAgdGhyb3dPbk1pc3NpbmdGaWxlOiBmYWxzZSxcbiAgICB9KVxuXG4gICAgY29uc3QgZXJyb3JzID0gW11cblxuICAgIGNvbnN0IHByb21pc2VzID0gZG9jcy5tYXAoYXN5bmMgKGRvYykgPT4ge1xuICAgICAgY29uc3QgeyBpZCB9ID0gZG9jXG4gICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgLi4ubmV3RmlsZURhdGEsXG4gICAgICAgIC4uLmJ1bGtVcGRhdGVEYXRhLFxuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbERvYyA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICBkb2MsXG4gICAgICAgICAgZHJhZnQ6IGRyYWZ0QXJnLFxuICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHM6IHRydWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgZGVsZXRlQXNzb2NpYXRlZEZpbGVzKHtcbiAgICAgICAgICBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBkb2MsXG4gICAgICAgICAgZmlsZXM6IGZpbGVzVG9VcGxvYWQsXG4gICAgICAgICAgb3ZlcnJpZGVEZWxldGU6IGZhbHNlLFxuICAgICAgICAgIHQsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBiZWZvcmVWYWxpZGF0ZSAtIEZpZWxkc1xuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgZGF0YSA9IGF3YWl0IGJlZm9yZVZhbGlkYXRlPERlZXBQYXJ0aWFsPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4+KHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgICAgICBnbG9iYWw6IG51bGwsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBiZWZvcmVWYWxpZGF0ZSAtIENvbGxlY3Rpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYmVmb3JlVmFsaWRhdGUucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICAgIGRhdGEgPVxuICAgICAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgb3JpZ2luYWxEb2MsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIH0pKSB8fCBkYXRhXG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gV3JpdGUgZmlsZXMgdG8gbG9jYWwgc3RvcmFnZVxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZC5kaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICAgICAgYXdhaXQgdXBsb2FkRmlsZXMocGF5bG9hZCwgZmlsZXNUb1VwbG9hZCwgdClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYmVmb3JlQ2hhbmdlIC0gQ29sbGVjdGlvblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICAgIGRhdGEgPVxuICAgICAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgb3JpZ2luYWxEb2MsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIH0pKSB8fCBkYXRhXG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYmVmb3JlQ2hhbmdlIC0gRmllbGRzXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYmVmb3JlQ2hhbmdlPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBkb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgICAgIGRvY1dpdGhMb2NhbGVzOiBkb2MsXG4gICAgICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNraXBWYWxpZGF0aW9uOlxuICAgICAgICAgICAgc2hvdWxkU2F2ZURyYWZ0ICYmXG4gICAgICAgICAgICBjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zLmRyYWZ0cyAmJlxuICAgICAgICAgICAgIWNvbGxlY3Rpb25Db25maWcudmVyc2lvbnMuZHJhZnRzLnZhbGlkYXRlICYmXG4gICAgICAgICAgICBkYXRhLl9zdGF0dXMgIT09ICdwdWJsaXNoZWQnLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gVXBkYXRlXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBpZiAoIXNob3VsZFNhdmVEcmFmdCB8fCBkYXRhLl9zdGF0dXMgPT09ICdwdWJsaXNoZWQnKSB7XG4gICAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVxLnBheWxvYWQuZGIudXBkYXRlT25lKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIENyZWF0ZSB2ZXJzaW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBpZiAoY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucykge1xuICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHNhdmVWZXJzaW9uKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgIGRvY1dpdGhMb2NhbGVzOiB7XG4gICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgY3JlYXRlZEF0OiBkb2MuY3JlYXRlZEF0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYWZ0ZXJSZWFkIC0gRmllbGRzXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICByZXN1bHQgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgZHJhZnQ6IGRyYWZ0QXJnLFxuICAgICAgICAgIGZhbGxiYWNrTG9jYWxlOiBudWxsLFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlclJlYWQgLSBDb2xsZWN0aW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgICAgcmVzdWx0ID1cbiAgICAgICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYWZ0ZXJDaGFuZ2UgLSBGaWVsZHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGFmdGVyQ2hhbmdlPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICBnbG9iYWw6IG51bGwsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYWZ0ZXJDaGFuZ2UgLSBDb2xsZWN0aW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICAgIHByZXZpb3VzRG9jOiBvcmlnaW5hbERvYyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgfSkpIHx8IHJlc3VsdFxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICBhd2FpdCB1bmxpbmtUZW1wRmlsZXMoe1xuICAgICAgICAgIGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIFJldHVybiByZXN1bHRzXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSlcblxuICAgIGNvbnN0IGF3YWl0ZWREb2NzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG5cbiAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgZG9jczogYXdhaXRlZERvY3MuZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgZXJyb3JzLFxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlck9wZXJhdGlvbiAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBidWlsZEFmdGVyT3BlcmF0aW9uPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgYXJncyxcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgcmVzdWx0LFxuICAgIH0pXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKGFyZ3MucmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXBkYXRlXG4iXSwibmFtZXMiOlsidXBkYXRlIiwiaW5jb21pbmdBcmdzIiwiYXJncyIsInNob3VsZENvbW1pdCIsImluaXRUcmFuc2FjdGlvbiIsInJlcSIsImNvbGxlY3Rpb24iLCJjb25maWciLCJob29rcyIsImJlZm9yZU9wZXJhdGlvbiIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJjb250ZXh0Iiwib3BlcmF0aW9uIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGVwdGgiLCJkcmFmdCIsImRyYWZ0QXJnIiwib3ZlcnJpZGVBY2Nlc3MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwiZmFsbGJhY2tMb2NhbGUiLCJsb2NhbGUiLCJwYXlsb2FkIiwidCIsInNob3dIaWRkZW5GaWVsZHMiLCJ3aGVyZSIsIkFQSUVycm9yIiwiaHR0cFN0YXR1cyIsIkJBRF9SRVFVRVNUIiwiZGF0YSIsImJ1bGtVcGRhdGVEYXRhIiwic2hvdWxkU2F2ZURyYWZ0IiwiQm9vbGVhbiIsInZlcnNpb25zIiwiZHJhZnRzIiwiYWNjZXNzUmVzdWx0IiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInZhbGlkYXRlUXVlcnlQYXRocyIsImZ1bGxXaGVyZSIsImNvbWJpbmVRdWVyaWVzIiwiZG9jcyIsInZlcnNpb25zV2hlcmUiLCJhcHBlbmRWZXJzaW9uVG9RdWVyeUtleSIsInZlcnNpb25GaWVsZHMiLCJidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIiwicXVlcnkiLCJkYiIsInF1ZXJ5RHJhZnRzIiwic2x1ZyIsImZpbmQiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJuZXdGaWxlRGF0YSIsImZpbGVzIiwiZmlsZXNUb1VwbG9hZCIsImdlbmVyYXRlRmlsZURhdGEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJlcnJvcnMiLCJwcm9taXNlcyIsIm1hcCIsImRvYyIsImlkIiwib3JpZ2luYWxEb2MiLCJhZnRlclJlYWQiLCJnbG9iYWwiLCJkZWxldGVBc3NvY2lhdGVkRmlsZXMiLCJvdmVycmlkZURlbGV0ZSIsImJlZm9yZVZhbGlkYXRlIiwidXBsb2FkIiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsInVwbG9hZEZpbGVzIiwiYmVmb3JlQ2hhbmdlIiwicmVzdWx0IiwiZG9jV2l0aExvY2FsZXMiLCJza2lwVmFsaWRhdGlvbiIsInZhbGlkYXRlIiwiX3N0YXR1cyIsInVwZGF0ZU9uZSIsInNhdmVWZXJzaW9uIiwiY3JlYXRlZEF0IiwiYWZ0ZXJDaGFuZ2UiLCJwcmV2aW91c0RvYyIsInVubGlua1RlbXBGaWxlcyIsImVycm9yIiwicHVzaCIsIm1lc3NhZ2UiLCJhd2FpdGVkRG9jcyIsImFsbCIsImZpbHRlciIsImJ1aWxkQWZ0ZXJPcGVyYXRpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImtpbGxUcmFuc2FjdGlvbiJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkF3YUE7OztlQUFBOzs7bUVBdGF1QjtzRUFTRztnQ0FDSztvQ0FDSTt3QkFDVjs2QkFDRzsyQkFDRjs4QkFDRztnQ0FDRTt1Q0FDTztrQ0FDTDtpQ0FDRDs2QkFDSjttQ0FDTTtpQ0FDRjtpQ0FDQTt1Q0FDYTt5Q0FDTDs2QkFDWjt1QkFDUTs7Ozs7O0FBZXBDLGVBQWVBLE9BQ2JDLFlBQTZEO0lBRTdELElBQUlDLE9BQU9EO0lBRVgsSUFBSTtRQUNGLE1BQU1FLGVBQWUsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ0YsS0FBS0csR0FBRztRQUVuRCx3Q0FBd0M7UUFDeEMsK0JBQStCO1FBQy9CLHdDQUF3QztRQUV4QyxNQUFNSCxLQUFLSSxV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
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZXBQYXJ0aWFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IGh0dHBTdGF0dXMgZnJvbSAnaHR0cC1zdGF0dXMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8nXG5pbXBvcnQgdHlwZSB7IEFjY2Vzc1Jlc3VsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWxrT3BlcmF0aW9uUmVzdWx0LCBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVVcGRhdGVUeXBlIH0gZnJvbSAnLi9jcmVhdGUnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyB2YWxpZGF0ZVF1ZXJ5UGF0aHMgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS9xdWVyeVZhbGlkYXRpb24vdmFsaWRhdGVRdWVyeVBhdGhzJ1xuaW1wb3J0IHsgQVBJRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBhZnRlckNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlckNoYW5nZSdcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBiZWZvcmVDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlJ1xuaW1wb3J0IHsgYmVmb3JlVmFsaWRhdGUgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUnXG5pbXBvcnQgeyBkZWxldGVBc3NvY2lhdGVkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL2RlbGV0ZUFzc29jaWF0ZWRGaWxlcydcbmltcG9ydCB7IGdlbmVyYXRlRmlsZURhdGEgfSBmcm9tICcuLi8uLi91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEnXG5pbXBvcnQgeyB1bmxpbmtUZW1wRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VubGlua1RlbXBGaWxlcydcbmltcG9ydCB7IHVwbG9hZEZpbGVzIH0gZnJvbSAnLi4vLi4vdXBsb2Fkcy91cGxvYWRGaWxlcydcbmltcG9ydCB7IGNvbW1pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvYnVpbGRDb2xsZWN0aW9uRmllbGRzJ1xuaW1wb3J0IHsgYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkgfSBmcm9tICcuLi8uLi92ZXJzaW9ucy9kcmFmdHMvYXBwZW5kVmVyc2lvblRvUXVlcnlLZXknXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgQ3JlYXRlVXBkYXRlVHlwZT4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgZGF0YTogRGVlcFBhcnRpYWw8VD5cbiAgZGVwdGg/OiBudW1iZXJcbiAgZGlzYWJsZVZlcmlmaWNhdGlvbkVtYWlsPzogYm9vbGVhblxuICBkcmFmdD86IGJvb2xlYW5cbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbiAgd2hlcmU6IFdoZXJlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZTxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUU2x1Zz4+IHtcbiAgbGV0IGFyZ3MgPSBpbmNvbWluZ0FyZ3NcblxuICB0cnkge1xuICAgIGNvbnN0IHNob3VsZENvbW1pdCA9IGF3YWl0IGluaXRUcmFuc2FjdGlvbihhcmdzLnJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVPcGVyYXRpb24gLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgYXJncy5jb2xsZWN0aW9uLmNvbmZpZy5ob29rcy5iZWZvcmVPcGVyYXRpb24ucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBhcmdzID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgY29sbGVjdGlvbjogYXJncy5jb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiBhcmdzLnJlcS5jb250ZXh0LFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgcmVxOiBhcmdzLnJlcSxcbiAgICAgICAgfSkpIHx8IGFyZ3NcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIGNvbnN0IHtcbiAgICAgIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZGVwdGgsXG4gICAgICBkcmFmdDogZHJhZnRBcmcgPSBmYWxzZSxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IGZhbHNlLFxuICAgICAgcmVxOiB7XG4gICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHBheWxvYWQ6IHsgY29uZmlnIH0sXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHQsXG4gICAgICB9LFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgIHdoZXJlLFxuICAgIH0gPSBhcmdzXG5cbiAgICBpZiAoIXdoZXJlKSB7XG4gICAgICB0aHJvdyBuZXcgQVBJRXJyb3IoXCJNaXNzaW5nICd3aGVyZScgcXVlcnkgb2YgZG9jdW1lbnRzIHRvIHVwZGF0ZS5cIiwgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBjb25zdCB7IGRhdGE6IGJ1bGtVcGRhdGVEYXRhIH0gPSBhcmdzXG4gICAgY29uc3Qgc2hvdWxkU2F2ZURyYWZ0ID0gQm9vbGVhbihkcmFmdEFyZyAmJiBjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zLmRyYWZ0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcbiAgICBpZiAoIW92ZXJyaWRlQWNjZXNzKSB7XG4gICAgICBhY2Nlc3NSZXN1bHQgPSBhd2FpdCBleGVjdXRlQWNjZXNzKHsgcmVxIH0sIGNvbGxlY3Rpb25Db25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICB9XG5cbiAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBmdWxsV2hlcmUgPSBjb21iaW5lUXVlcmllcyh3aGVyZSwgYWNjZXNzUmVzdWx0KVxuXG4gICAgbGV0IGRvY3NcblxuICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zPy5kcmFmdHMgJiYgc2hvdWxkU2F2ZURyYWZ0KSB7XG4gICAgICBjb25zdCB2ZXJzaW9uc1doZXJlID0gYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkoZnVsbFdoZXJlKVxuXG4gICAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgICBjb2xsZWN0aW9uQ29uZmlnOiBjb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgdmVyc2lvbkZpZWxkczogYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb2xsZWN0aW9uLmNvbmZpZyksXG4gICAgICAgIHdoZXJlOiB2ZXJzaW9uc1doZXJlLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBwYXlsb2FkLmRiLnF1ZXJ5RHJhZnRzPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aGVyZTogdmVyc2lvbnNXaGVyZSxcbiAgICAgIH0pXG5cbiAgICAgIGRvY3MgPSBxdWVyeS5kb2NzXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRiQXJncyA9IHtcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBsaW1pdDogMCxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aGVyZTogZnVsbFdoZXJlLFxuICAgICAgfVxuXG4gICAgICBsZXQgcXVlcnlcbiAgICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnPy5kYj8uZmluZCkge1xuICAgICAgICBxdWVyeSA9IGF3YWl0IGNvbGxlY3Rpb25Db25maWcuZGIuZmluZChkYkFyZ3MpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeSA9IGF3YWl0IHBheWxvYWQuZGIuZmluZChkYkFyZ3MpXG4gICAgICB9XG5cbiAgICAgIGRvY3MgPSBxdWVyeS5kb2NzXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEdlbmVyYXRlIGRhdGEgZm9yIGFsbCBmaWxlcyBhbmQgc2l6ZXNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCB7IGRhdGE6IG5ld0ZpbGVEYXRhLCBmaWxlczogZmlsZXNUb1VwbG9hZCB9ID0gYXdhaXQgZ2VuZXJhdGVGaWxlRGF0YSh7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgY29uZmlnLFxuICAgICAgZGF0YTogYnVsa1VwZGF0ZURhdGEsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyxcbiAgICAgIHJlcSxcbiAgICAgIHRocm93T25NaXNzaW5nRmlsZTogZmFsc2UsXG4gICAgfSlcblxuICAgIGNvbnN0IGVycm9ycyA9IFtdXG5cbiAgICBjb25zdCBwcm9taXNlcyA9IGRvY3MubWFwKGFzeW5jIChkb2MpID0+IHtcbiAgICAgIGNvbnN0IHsgaWQgfSA9IGRvY1xuICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgIC4uLm5ld0ZpbGVEYXRhLFxuICAgICAgICAuLi5idWxrVXBkYXRlRGF0YSxcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEb2MgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICBnbG9iYWw6IG51bGwsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzOiB0cnVlLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzaG93SGlkZGVuRmllbGRzOiB0cnVlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyh7XG4gICAgICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIGZpbGVzOiBmaWxlc1RvVXBsb2FkLFxuICAgICAgICAgIG92ZXJyaWRlRGVsZXRlOiBmYWxzZSxcbiAgICAgICAgICB0LFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYmVmb3JlVmFsaWRhdGUgLSBGaWVsZHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGRhdGEgPSBhd2FpdCBiZWZvcmVWYWxpZGF0ZTxEZWVwUGFydGlhbDxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+Pih7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYmVmb3JlVmFsaWRhdGUgLSBDb2xsZWN0aW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmJlZm9yZVZhbGlkYXRlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICBkYXRhID1cbiAgICAgICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgZGF0YVxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIFdyaXRlIGZpbGVzIHRvIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQuZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgIGF3YWl0IHVwbG9hZEZpbGVzKHBheWxvYWQsIGZpbGVzVG9VcGxvYWQsIHQpXG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGJlZm9yZUNoYW5nZSAtIENvbGxlY3Rpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYmVmb3JlQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICBkYXRhID1cbiAgICAgICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgZGF0YVxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGJlZm9yZUNoYW5nZSAtIEZpZWxkc1xuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlZm9yZUNoYW5nZTxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgICAgICBkb2NXaXRoTG9jYWxlczogZG9jLFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBza2lwVmFsaWRhdGlvbjpcbiAgICAgICAgICAgIHNob3VsZFNhdmVEcmFmdCAmJlxuICAgICAgICAgICAgY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucy5kcmFmdHMgJiZcbiAgICAgICAgICAgICFjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zLmRyYWZ0cy52YWxpZGF0ZSAmJlxuICAgICAgICAgICAgZGF0YS5fc3RhdHVzICE9PSAncHVibGlzaGVkJyxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIFVwZGF0ZVxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgaWYgKCFzaG91bGRTYXZlRHJhZnQgfHwgZGF0YS5fc3RhdHVzID09PSAncHVibGlzaGVkJykge1xuICAgICAgICAgIGNvbnN0IGRiQXJncyA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29sbGVjdGlvbkNvbmZpZz8uZGI/LnVwZGF0ZU9uZSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5kYi51cGRhdGVPbmUoZGJBcmdzKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCByZXEucGF5bG9hZC5kYi51cGRhdGVPbmUoZGJBcmdzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gQ3JlYXRlIHZlcnNpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zKSB7XG4gICAgICAgICAgcmVzdWx0ID0gYXdhaXQgc2F2ZVZlcnNpb24oe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgZG9jV2l0aExvY2FsZXM6IHtcbiAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICBjcmVhdGVkQXQ6IGRvYy5jcmVhdGVkQXQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICBkcmFmdDogZHJhZnRBcmcsXG4gICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IG51bGwsXG4gICAgICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGFmdGVyUmVhZCAtIENvbGxlY3Rpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIH0pKSB8fCByZXN1bHRcbiAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlckNoYW5nZSAtIEZpZWxkc1xuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgYWZ0ZXJDaGFuZ2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPih7XG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHByZXZpb3VzRG9jOiBvcmlnaW5hbERvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlckNoYW5nZSAtIENvbGxlY3Rpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYWZ0ZXJDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICAgIHJlc3VsdCA9XG4gICAgICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgcHJldmlvdXNEb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgIGF3YWl0IHVubGlua1RlbXBGaWxlcyh7XG4gICAgICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9KVxuXG4gICAgY29uc3QgYXdhaXRlZERvY3MgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcblxuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICBkb2NzOiBhd2FpdGVkRG9jcy5maWx0ZXIoQm9vbGVhbiksXG4gICAgICBlcnJvcnMsXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyT3BlcmF0aW9uIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJlc3VsdCA9IGF3YWl0IGJ1aWxkQWZ0ZXJPcGVyYXRpb248R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPih7XG4gICAgICBhcmdzLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICByZXN1bHQsXG4gICAgfSlcblxuICAgIGlmIChzaG91bGRDb21taXQpIGF3YWl0IGNvbW1pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24oYXJncy5yZXEpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1cGRhdGVcbiJdLCJuYW1lcyI6WyJ1cGRhdGUiLCJpbmNvbWluZ0FyZ3MiLCJhcmdzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwicmVxIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImhvb2tzIiwiYmVmb3JlT3BlcmF0aW9uIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsImNvbnRleHQiLCJvcGVyYXRpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsImNvbGxlY3Rpb25Db25maWciLCJkZXB0aCIsImRyYWZ0IiwiZHJhZnRBcmciLCJvdmVycmlkZUFjY2VzcyIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJmYWxsYmFja0xvY2FsZSIsImxvY2FsZSIsInBheWxvYWQiLCJ0Iiwic2hvd0hpZGRlbkZpZWxkcyIsIndoZXJlIiwiQVBJRXJyb3IiLCJodHRwU3RhdHVzIiwiQkFEX1JFUVVFU1QiLCJkYXRhIiwiYnVsa1VwZGF0ZURhdGEiLCJzaG91bGRTYXZlRHJhZnQiLCJCb29sZWFuIiwidmVyc2lvbnMiLCJkcmFmdHMiLCJhY2Nlc3NSZXN1bHQiLCJleGVjdXRlQWNjZXNzIiwiYWNjZXNzIiwidmFsaWRhdGVRdWVyeVBhdGhzIiwiZnVsbFdoZXJlIiwiY29tYmluZVF1ZXJpZXMiLCJkb2NzIiwidmVyc2lvbnNXaGVyZSIsImFwcGVuZFZlcnNpb25Ub1F1ZXJ5S2V5IiwidmVyc2lvbkZpZWxkcyIsImJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJxdWVyeSIsImRiIiwicXVlcnlEcmFmdHMiLCJzbHVnIiwiZGJBcmdzIiwibGltaXQiLCJwYWdpbmF0aW9uIiwiZmluZCIsIm5ld0ZpbGVEYXRhIiwiZmlsZXMiLCJmaWxlc1RvVXBsb2FkIiwiZ2VuZXJhdGVGaWxlRGF0YSIsInRocm93T25NaXNzaW5nRmlsZSIsImVycm9ycyIsInByb21pc2VzIiwibWFwIiwiZG9jIiwiaWQiLCJvcmlnaW5hbERvYyIsImFmdGVyUmVhZCIsImdsb2JhbCIsImRlbGV0ZUFzc29jaWF0ZWRGaWxlcyIsIm92ZXJyaWRlRGVsZXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJ1cGxvYWQiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwidXBsb2FkRmlsZXMiLCJiZWZvcmVDaGFuZ2UiLCJyZXN1bHQiLCJkb2NXaXRoTG9jYWxlcyIsInNraXBWYWxpZGF0aW9uIiwidmFsaWRhdGUiLCJfc3RhdHVzIiwidXBkYXRlT25lIiwic2F2ZVZlcnNpb24iLCJjcmVhdGVkQXQiLCJhZnRlckNoYW5nZSIsInByZXZpb3VzRG9jIiwidW5saW5rVGVtcEZpbGVzIiwiZXJyb3IiLCJwdXNoIiwibWVzc2FnZSIsImF3YWl0ZWREb2NzIiwiYWxsIiwiZmlsdGVyIiwiYnVpbGRBZnRlck9wZXJhdGlvbiIsImNvbW1pdFRyYW5zYWN0aW9uIiwia2lsbFRyYW5zYWN0aW9uIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -1 +1 @@
1
- {"version":3,"file":"updateByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/updateByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAsBjD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,IAAI;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,UAAU,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,aAAa,CAAC,EACzE,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAC5D,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CA8V/C;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"updateByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/updateByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAsBjD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,IAAI;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,UAAU,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,aAAa,CAAC,EACzE,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAC5D,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAmW/C;AAED,eAAe,UAAU,CAAA"}
@@ -210,13 +210,18 @@ async function updateByID(incomingArgs) {
210
210
  // Update
211
211
  // /////////////////////////////////////
212
212
  if (!shouldSaveDraft || data._status === 'published') {
213
- result = await req.payload.db.updateOne({
213
+ const dbArgs = {
214
214
  id,
215
215
  collection: collectionConfig.slug,
216
216
  data: dataToUpdate,
217
217
  locale,
218
218
  req
219
- });
219
+ };
220
+ if (collectionConfig?.db?.updateOne) {
221
+ result = await collectionConfig.db.updateOne(dbArgs);
222
+ } else {
223
+ result = await req.payload.db.updateOne(dbArgs);
224
+ }
220
225
  }
221
226
  // /////////////////////////////////////
222
227
  // Create version
@@ -316,4 +321,4 @@ async function updateByID(incomingArgs) {
316
321
  }
317
322
  const _default = updateByID;
318
323
 
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZUJ5SUQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCBodHRwU3RhdHVzIGZyb20gJ2h0dHAtc3RhdHVzJ1xuXG5pbXBvcnQgdHlwZSB7IEZpbmRPbmVBcmdzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi9pbmRleCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGV4ZWN1dGVBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9leGVjdXRlQWNjZXNzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoIH0gZnJvbSAnLi4vLi4vYXV0aC9zdHJhdGVnaWVzL2xvY2FsL2dlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCdcbmltcG9ydCB7IGhhc1doZXJlQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vLi4vYXV0aC90eXBlcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyBBUElFcnJvciwgRm9yYmlkZGVuLCBOb3RGb3VuZCB9IGZyb20gJy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IGFmdGVyQ2hhbmdlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyQ2hhbmdlJ1xuaW1wb3J0IHsgYWZ0ZXJSZWFkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyUmVhZCdcbmltcG9ydCB7IGJlZm9yZUNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVDaGFuZ2UnXG5pbXBvcnQgeyBiZWZvcmVWYWxpZGF0ZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVWYWxpZGF0ZSdcbmltcG9ydCB7IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZGVsZXRlQXNzb2NpYXRlZEZpbGVzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVGaWxlRGF0YSB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZ2VuZXJhdGVGaWxlRGF0YSdcbmltcG9ydCB7IHVubGlua1RlbXBGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvdW5saW5rVGVtcEZpbGVzJ1xuaW1wb3J0IHsgdXBsb2FkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VwbG9hZEZpbGVzJ1xuaW1wb3J0IHsgY29tbWl0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcbmltcG9ydCB7IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24nXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgeyBbZmllbGQ6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IHVua25vd24gfT4gPSB7XG4gIGF1dG9zYXZlPzogYm9vbGVhblxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uXG4gIGRhdGE6IERlZXBQYXJ0aWFsPFQ+XG4gIGRlcHRoPzogbnVtYmVyXG4gIGRpc2FibGVWZXJpZmljYXRpb25FbWFpbD86IGJvb2xlYW5cbiAgZHJhZnQ/OiBib29sZWFuXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQnlJRDxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPiB7XG4gIGxldCBhcmdzID0gaW5jb21pbmdBcmdzXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzaG91bGRDb21taXQgPSBhd2FpdCBpbml0VHJhbnNhY3Rpb24oYXJncy5yZXEpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlT3BlcmF0aW9uIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGFyZ3MuY29sbGVjdGlvbi5jb25maWcuaG9va3MuYmVmb3JlT3BlcmF0aW9uLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgYXJncyA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBhcmdzLFxuICAgICAgICAgIGNvbGxlY3Rpb246IGFyZ3MuY29sbGVjdGlvbi5jb25maWcsXG4gICAgICAgICAgY29udGV4dDogYXJncy5yZXEuY29udGV4dCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHJlcTogYXJncy5yZXEsXG4gICAgICAgIH0pKSB8fCBhcmdzXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICBjb25zdCB7XG4gICAgICBpZCxcbiAgICAgIGF1dG9zYXZlID0gZmFsc2UsXG4gICAgICBjb2xsZWN0aW9uOiB7IGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyB9LFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGRlcHRoLFxuICAgICAgZHJhZnQ6IGRyYWZ0QXJnID0gZmFsc2UsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSBmYWxzZSxcbiAgICAgIHJlcToge1xuICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwYXlsb2FkOiB7IGNvbmZpZyB9LFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB0LFxuICAgICAgfSxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSA9IGFyZ3NcblxuICAgIGlmICghaWQpIHtcbiAgICAgIHRocm93IG5ldyBBUElFcnJvcignTWlzc2luZyBJRCBvZiBkb2N1bWVudCB0byB1cGRhdGUuJywgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBsZXQgeyBkYXRhIH0gPSBhcmdzXG4gICAgY29uc3QgZGF0YUhhc1Bhc3N3b3JkID0gJ3Bhc3N3b3JkJyBpbiBkYXRhICYmIGRhdGEucGFzc3dvcmRcbiAgICBjb25zdCBzaG91bGRTYXZlRHJhZnQgPSBCb29sZWFuKGRyYWZ0QXJnICYmIGNvbGxlY3Rpb25Db25maWcudmVyc2lvbnMuZHJhZnRzKVxuICAgIGNvbnN0IHNob3VsZFNhdmVQYXNzd29yZCA9IEJvb2xlYW4oZGF0YUhhc1Bhc3N3b3JkICYmIGNvbGxlY3Rpb25Db25maWcuYXV0aCAmJiAhc2hvdWxkU2F2ZURyYWZ0KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEFjY2Vzc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGFjY2Vzc1Jlc3VsdHMgPSAhb3ZlcnJpZGVBY2Nlc3NcbiAgICAgID8gYXdhaXQgZXhlY3V0ZUFjY2Vzcyh7IGlkLCBkYXRhLCByZXEgfSwgY29sbGVjdGlvbkNvbmZpZy5hY2Nlc3MudXBkYXRlKVxuICAgICAgOiB0cnVlXG4gICAgY29uc3QgaGFzV2hlcmVQb2xpY3kgPSBoYXNXaGVyZUFjY2Vzc1Jlc3VsdChhY2Nlc3NSZXN1bHRzKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFJldHJpZXZlIGRvY3VtZW50XG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgZmluZE9uZUFyZ3M6IEZpbmRPbmVBcmdzID0ge1xuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgbG9jYWxlLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmU6IGNvbWJpbmVRdWVyaWVzKHsgaWQ6IHsgZXF1YWxzOiBpZCB9IH0sIGFjY2Vzc1Jlc3VsdHMpLFxuICAgIH1cblxuICAgIGNvbnN0IGRvY1dpdGhMb2NhbGVzID0gYXdhaXQgZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24oe1xuICAgICAgaWQsXG4gICAgICBjb25maWc6IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBwYXlsb2FkLFxuICAgICAgcXVlcnk6IGZpbmRPbmVBcmdzLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICBpZiAoIWRvY1dpdGhMb2NhbGVzICYmICFoYXNXaGVyZVBvbGljeSkgdGhyb3cgbmV3IE5vdEZvdW5kKHQpXG4gICAgaWYgKCFkb2NXaXRoTG9jYWxlcyAmJiBoYXNXaGVyZVBvbGljeSkgdGhyb3cgbmV3IEZvcmJpZGRlbih0KVxuXG4gICAgY29uc3Qgb3JpZ2luYWxEb2MgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBkb2M6IGRvY1dpdGhMb2NhbGVzLFxuICAgICAgZHJhZnQ6IGRyYWZ0QXJnLFxuICAgICAgZmFsbGJhY2tMb2NhbGU6IG51bGwsXG4gICAgICBnbG9iYWw6IG51bGwsXG4gICAgICBsb2NhbGUsXG4gICAgICBvdmVycmlkZUFjY2VzczogdHJ1ZSxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHM6IHRydWUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBHZW5lcmF0ZSBkYXRhIGZvciBhbGwgZmlsZXMgYW5kIHNpemVzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgeyBkYXRhOiBuZXdGaWxlRGF0YSwgZmlsZXM6IGZpbGVzVG9VcGxvYWQgfSA9IGF3YWl0IGdlbmVyYXRlRmlsZURhdGEoe1xuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGNvbmZpZyxcbiAgICAgIGRhdGEsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgb3JpZ2luYWxEb2MsXG4gICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICAgICAgcmVxLFxuICAgICAgdGhyb3dPbk1pc3NpbmdGaWxlOiBmYWxzZSxcbiAgICB9KVxuXG4gICAgZGF0YSA9IG5ld0ZpbGVEYXRhXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRGVsZXRlIGFueSBhc3NvY2lhdGVkIGZpbGVzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZGVsZXRlQXNzb2NpYXRlZEZpbGVzKHtcbiAgICAgIGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb25maWcsXG4gICAgICBkb2M6IGRvY1dpdGhMb2NhbGVzLFxuICAgICAgZmlsZXM6IGZpbGVzVG9VcGxvYWQsXG4gICAgICBvdmVycmlkZURlbGV0ZTogZmFsc2UsXG4gICAgICB0LFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlVmFsaWRhdGUgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBkYXRhID0gYXdhaXQgYmVmb3JlVmFsaWRhdGU8RGVlcFBhcnRpYWw8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPj4oe1xuICAgICAgaWQsXG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkYXRhLFxuICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYmVmb3JlVmFsaWRhdGUucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkYXRhID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRhdGFcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBXcml0ZSBmaWxlcyB0byBsb2NhbCBzdG9yYWdlXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKCFjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZC5kaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICBhd2FpdCB1cGxvYWRGaWxlcyhwYXlsb2FkLCBmaWxlc1RvVXBsb2FkLCB0KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVDaGFuZ2UgLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkYXRhID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRhdGFcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYmVmb3JlQ2hhbmdlPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgaWQsXG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkYXRhLFxuICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgIGRvY1dpdGhMb2NhbGVzLFxuICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgIHJlcSxcbiAgICAgIHNraXBWYWxpZGF0aW9uOlxuICAgICAgICBzaG91bGRTYXZlRHJhZnQgJiZcbiAgICAgICAgY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucy5kcmFmdHMgJiZcbiAgICAgICAgIWNvbGxlY3Rpb25Db25maWcudmVyc2lvbnMuZHJhZnRzLnZhbGlkYXRlICYmXG4gICAgICAgIGRhdGEuX3N0YXR1cyAhPT0gJ3B1Ymxpc2hlZCcsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBIYW5kbGUgcG90ZW50aWFsIHBhc3N3b3JkIHVwZGF0ZVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGRhdGFUb1VwZGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnJlc3VsdCB9XG4gICAgY29uc3QgeyBwYXNzd29yZCB9ID0gZGF0YVRvVXBkYXRlXG4gICAgaWYgKHNob3VsZFNhdmVQYXNzd29yZCAmJiB0eXBlb2YgcGFzc3dvcmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCB7IGhhc2gsIHNhbHQgfSA9IGF3YWl0IGdlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCh7IHBhc3N3b3JkIH0pXG4gICAgICBkYXRhVG9VcGRhdGUuc2FsdCA9IHNhbHRcbiAgICAgIGRhdGFUb1VwZGF0ZS5oYXNoID0gaGFzaFxuICAgICAgZGVsZXRlIGRhdGFUb1VwZGF0ZS5wYXNzd29yZFxuICAgICAgZGVsZXRlIGRhdGEucGFzc3dvcmRcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gVXBkYXRlXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKCFzaG91bGRTYXZlRHJhZnQgfHwgZGF0YS5fc3RhdHVzID09PSAncHVibGlzaGVkJykge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgcmVxLnBheWxvYWQuZGIudXBkYXRlT25lKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgZGF0YTogZGF0YVRvVXBkYXRlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHJlcSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIENyZWF0ZSB2ZXJzaW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKGNvbGxlY3Rpb25Db25maWcudmVyc2lvbnMpIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHNhdmVWZXJzaW9uKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGF1dG9zYXZlLFxuICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICBkb2NXaXRoTG9jYWxlczoge1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICBjcmVhdGVkQXQ6IGRvY1dpdGhMb2NhbGVzLmNyZWF0ZWRBdCxcbiAgICAgICAgfSxcbiAgICAgICAgZHJhZnQ6IHNob3VsZFNhdmVEcmFmdCxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRlcHRoLFxuICAgICAgZG9jOiByZXN1bHQsXG4gICAgICBkcmFmdDogZHJhZnRBcmcsXG4gICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyUmVhZCAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIHJlc3VsdCA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IHJlc3VsdFxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyQ2hhbmdlIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYWZ0ZXJDaGFuZ2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPih7XG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkYXRhLFxuICAgICAgZG9jOiByZXN1bHQsXG4gICAgICBnbG9iYWw6IG51bGwsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgcHJldmlvdXNEb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJDaGFuZ2UgLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5ob29rcy5hZnRlckNoYW5nZS5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIHJlc3VsdCA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgcHJldmlvdXNEb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IHJlc3VsdFxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyT3BlcmF0aW9uIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJlc3VsdCA9IGF3YWl0IGJ1aWxkQWZ0ZXJPcGVyYXRpb248R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPih7XG4gICAgICBhcmdzLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZUJ5SUQnLFxuICAgICAgcmVzdWx0LFxuICAgIH0pXG5cbiAgICBhd2FpdCB1bmxpbmtUZW1wRmlsZXMoe1xuICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbmZpZyxcbiAgICAgIHJlcSxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFJldHVybiByZXN1bHRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKHNob3VsZENvbW1pdCkgYXdhaXQgY29tbWl0VHJhbnNhY3Rpb24ocmVxKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihhcmdzLnJlcSlcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVwZGF0ZUJ5SURcbiJdLCJuYW1lcyI6WyJ1cGRhdGVCeUlEIiwiaW5jb21pbmdBcmdzIiwiYXJncyIsInNob3VsZENvbW1pdCIsImluaXRUcmFuc2FjdGlvbiIsInJlcSIsImNvbGxlY3Rpb24iLCJjb25maWciLCJob29rcyIsImJlZm9yZU9wZXJhdGlvbiIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJjb250ZXh0Iiwib3BlcmF0aW9uIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpZCIsImF1dG9zYXZlIiwiY29sbGVjdGlvbkNvbmZpZyIsImRlcHRoIiwiZHJhZnQiLCJkcmFmdEFyZyIsIm92ZXJyaWRlQWNjZXNzIiwib3ZlcndyaXRlRXhpc3RpbmdGaWxlcyIsImZhbGxiYWNrTG9jYWxlIiwibG9jYWxlIiwicGF5bG9hZCIsInQiLCJzaG93SGlkZGVuRmllbGRzIiwiQVBJRXJyb3IiLCJodHRwU3RhdHVzIiwiQkFEX1JFUVVFU1QiLCJkYXRhIiwiZGF0YUhhc1Bhc3N3b3JkIiwicGFzc3dvcmQiLCJzaG91bGRTYXZlRHJhZnQiLCJCb29sZWFuIiwidmVyc2lvbnMiLCJkcmFmdHMiLCJzaG91bGRTYXZlUGFzc3dvcmQiLCJhdXRoIiwiYWNjZXNzUmVzdWx0cyIsImV4ZWN1dGVBY2Nlc3MiLCJhY2Nlc3MiLCJ1cGRhdGUiLCJoYXNXaGVyZVBvbGljeSIsImhhc1doZXJlQWNjZXNzUmVzdWx0IiwiZmluZE9uZUFyZ3MiLCJzbHVnIiwid2hlcmUiLCJjb21iaW5lUXVlcmllcyIsImVxdWFscyIsImRvY1dpdGhMb2NhbGVzIiwiZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24iLCJxdWVyeSIsIk5vdEZvdW5kIiwiRm9yYmlkZGVuIiwib3JpZ2luYWxEb2MiLCJhZnRlclJlYWQiLCJkb2MiLCJnbG9iYWwiLCJuZXdGaWxlRGF0YSIsImZpbGVzIiwiZmlsZXNUb1VwbG9hZCIsImdlbmVyYXRlRmlsZURhdGEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJkZWxldGVBc3NvY2lhdGVkRmlsZXMiLCJvdmVycmlkZURlbGV0ZSIsImJlZm9yZVZhbGlkYXRlIiwidXBsb2FkIiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsInVwbG9hZEZpbGVzIiwiYmVmb3JlQ2hhbmdlIiwicmVzdWx0Iiwic2tpcFZhbGlkYXRpb24iLCJ2YWxpZGF0ZSIsIl9zdGF0dXMiLCJkYXRhVG9VcGRhdGUiLCJoYXNoIiwic2FsdCIsImdlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCIsImRiIiwidXBkYXRlT25lIiwic2F2ZVZlcnNpb24iLCJjcmVhdGVkQXQiLCJhZnRlckNoYW5nZSIsInByZXZpb3VzRG9jIiwiYnVpbGRBZnRlck9wZXJhdGlvbiIsInVubGlua1RlbXBGaWxlcyIsImNvbW1pdFRyYW5zYWN0aW9uIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkE2WUE7OztlQUFBOzs7bUVBM1l1QjtzRUFPRzswQ0FDZTt1QkFDSjtnQ0FDTjt3QkFDZTs2QkFDbEI7MkJBQ0Y7OEJBQ0c7Z0NBQ0U7dUNBQ087a0NBQ0w7aUNBQ0Q7NkJBQ0o7bUNBQ007aUNBQ0Y7aUNBQ0E7NENBQ1c7NkJBQ2Y7dUJBQ1E7Ozs7OztBQWdCcEMsZUFBZUEsV0FDYkMsWUFBNkQ7SUFFN0QsSUFBSUMsT0FBT0Q7SUFFWCxJQUFJO1FBQ0YsTUFBTUUsZUFBZSxNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDRixLQUFLRyxHQUFHO1FBRW5ELHdDQUF3QztR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
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZUJ5SUQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCBodHRwU3RhdHVzIGZyb20gJ2h0dHAtc3RhdHVzJ1xuXG5pbXBvcnQgdHlwZSB7IEZpbmRPbmVBcmdzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi9pbmRleCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGV4ZWN1dGVBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9leGVjdXRlQWNjZXNzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoIH0gZnJvbSAnLi4vLi4vYXV0aC9zdHJhdGVnaWVzL2xvY2FsL2dlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCdcbmltcG9ydCB7IGhhc1doZXJlQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vLi4vYXV0aC90eXBlcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyBBUElFcnJvciwgRm9yYmlkZGVuLCBOb3RGb3VuZCB9IGZyb20gJy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IGFmdGVyQ2hhbmdlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyQ2hhbmdlJ1xuaW1wb3J0IHsgYWZ0ZXJSZWFkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyUmVhZCdcbmltcG9ydCB7IGJlZm9yZUNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVDaGFuZ2UnXG5pbXBvcnQgeyBiZWZvcmVWYWxpZGF0ZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVWYWxpZGF0ZSdcbmltcG9ydCB7IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZGVsZXRlQXNzb2NpYXRlZEZpbGVzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVGaWxlRGF0YSB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZ2VuZXJhdGVGaWxlRGF0YSdcbmltcG9ydCB7IHVubGlua1RlbXBGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvdW5saW5rVGVtcEZpbGVzJ1xuaW1wb3J0IHsgdXBsb2FkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VwbG9hZEZpbGVzJ1xuaW1wb3J0IHsgY29tbWl0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcbmltcG9ydCB7IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24nXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgeyBbZmllbGQ6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IHVua25vd24gfT4gPSB7XG4gIGF1dG9zYXZlPzogYm9vbGVhblxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uXG4gIGRhdGE6IERlZXBQYXJ0aWFsPFQ+XG4gIGRlcHRoPzogbnVtYmVyXG4gIGRpc2FibGVWZXJpZmljYXRpb25FbWFpbD86IGJvb2xlYW5cbiAgZHJhZnQ/OiBib29sZWFuXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQnlJRDxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPiB7XG4gIGxldCBhcmdzID0gaW5jb21pbmdBcmdzXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzaG91bGRDb21taXQgPSBhd2FpdCBpbml0VHJhbnNhY3Rpb24oYXJncy5yZXEpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlT3BlcmF0aW9uIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGFyZ3MuY29sbGVjdGlvbi5jb25maWcuaG9va3MuYmVmb3JlT3BlcmF0aW9uLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgYXJncyA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBhcmdzLFxuICAgICAgICAgIGNvbGxlY3Rpb246IGFyZ3MuY29sbGVjdGlvbi5jb25maWcsXG4gICAgICAgICAgY29udGV4dDogYXJncy5yZXEuY29udGV4dCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHJlcTogYXJncy5yZXEsXG4gICAgICAgIH0pKSB8fCBhcmdzXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICBjb25zdCB7XG4gICAgICBpZCxcbiAgICAgIGF1dG9zYXZlID0gZmFsc2UsXG4gICAgICBjb2xsZWN0aW9uOiB7IGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyB9LFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGRlcHRoLFxuICAgICAgZHJhZnQ6IGRyYWZ0QXJnID0gZmFsc2UsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSBmYWxzZSxcbiAgICAgIHJlcToge1xuICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwYXlsb2FkOiB7IGNvbmZpZyB9LFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB0LFxuICAgICAgfSxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSA9IGFyZ3NcblxuICAgIGlmICghaWQpIHtcbiAgICAgIHRocm93IG5ldyBBUElFcnJvcignTWlzc2luZyBJRCBvZiBkb2N1bWVudCB0byB1cGRhdGUuJywgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBsZXQgeyBkYXRhIH0gPSBhcmdzXG4gICAgY29uc3QgZGF0YUhhc1Bhc3N3b3JkID0gJ3Bhc3N3b3JkJyBpbiBkYXRhICYmIGRhdGEucGFzc3dvcmRcbiAgICBjb25zdCBzaG91bGRTYXZlRHJhZnQgPSBCb29sZWFuKGRyYWZ0QXJnICYmIGNvbGxlY3Rpb25Db25maWcudmVyc2lvbnMuZHJhZnRzKVxuICAgIGNvbnN0IHNob3VsZFNhdmVQYXNzd29yZCA9IEJvb2xlYW4oZGF0YUhhc1Bhc3N3b3JkICYmIGNvbGxlY3Rpb25Db25maWcuYXV0aCAmJiAhc2hvdWxkU2F2ZURyYWZ0KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEFjY2Vzc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGFjY2Vzc1Jlc3VsdHMgPSAhb3ZlcnJpZGVBY2Nlc3NcbiAgICAgID8gYXdhaXQgZXhlY3V0ZUFjY2Vzcyh7IGlkLCBkYXRhLCByZXEgfSwgY29sbGVjdGlvbkNvbmZpZy5hY2Nlc3MudXBkYXRlKVxuICAgICAgOiB0cnVlXG4gICAgY29uc3QgaGFzV2hlcmVQb2xpY3kgPSBoYXNXaGVyZUFjY2Vzc1Jlc3VsdChhY2Nlc3NSZXN1bHRzKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFJldHJpZXZlIGRvY3VtZW50XG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgZmluZE9uZUFyZ3M6IEZpbmRPbmVBcmdzID0ge1xuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgbG9jYWxlLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmU6IGNvbWJpbmVRdWVyaWVzKHsgaWQ6IHsgZXF1YWxzOiBpZCB9IH0sIGFjY2Vzc1Jlc3VsdHMpLFxuICAgIH1cblxuICAgIGNvbnN0IGRvY1dpdGhMb2NhbGVzID0gYXdhaXQgZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24oe1xuICAgICAgaWQsXG4gICAgICBjb25maWc6IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBwYXlsb2FkLFxuICAgICAgcXVlcnk6IGZpbmRPbmVBcmdzLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICBpZiAoIWRvY1dpdGhMb2NhbGVzICYmICFoYXNXaGVyZVBvbGljeSkgdGhyb3cgbmV3IE5vdEZvdW5kKHQpXG4gICAgaWYgKCFkb2NXaXRoTG9jYWxlcyAmJiBoYXNXaGVyZVBvbGljeSkgdGhyb3cgbmV3IEZvcmJpZGRlbih0KVxuXG4gICAgY29uc3Qgb3JpZ2luYWxEb2MgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBkb2M6IGRvY1dpdGhMb2NhbGVzLFxuICAgICAgZHJhZnQ6IGRyYWZ0QXJnLFxuICAgICAgZmFsbGJhY2tMb2NhbGU6IG51bGwsXG4gICAgICBnbG9iYWw6IG51bGwsXG4gICAgICBsb2NhbGUsXG4gICAgICBvdmVycmlkZUFjY2VzczogdHJ1ZSxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHM6IHRydWUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBHZW5lcmF0ZSBkYXRhIGZvciBhbGwgZmlsZXMgYW5kIHNpemVzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgeyBkYXRhOiBuZXdGaWxlRGF0YSwgZmlsZXM6IGZpbGVzVG9VcGxvYWQgfSA9IGF3YWl0IGdlbmVyYXRlRmlsZURhdGEoe1xuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGNvbmZpZyxcbiAgICAgIGRhdGEsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgb3JpZ2luYWxEb2MsXG4gICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICAgICAgcmVxLFxuICAgICAgdGhyb3dPbk1pc3NpbmdGaWxlOiBmYWxzZSxcbiAgICB9KVxuXG4gICAgZGF0YSA9IG5ld0ZpbGVEYXRhXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRGVsZXRlIGFueSBhc3NvY2lhdGVkIGZpbGVzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZGVsZXRlQXNzb2NpYXRlZEZpbGVzKHtcbiAgICAgIGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb25maWcsXG4gICAgICBkb2M6IGRvY1dpdGhMb2NhbGVzLFxuICAgICAgZmlsZXM6IGZpbGVzVG9VcGxvYWQsXG4gICAgICBvdmVycmlkZURlbGV0ZTogZmFsc2UsXG4gICAgICB0LFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlVmFsaWRhdGUgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBkYXRhID0gYXdhaXQgYmVmb3JlVmFsaWRhdGU8RGVlcFBhcnRpYWw8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPj4oe1xuICAgICAgaWQsXG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkYXRhLFxuICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYmVmb3JlVmFsaWRhdGUucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkYXRhID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRhdGFcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBXcml0ZSBmaWxlcyB0byBsb2NhbCBzdG9yYWdlXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKCFjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZC5kaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICBhd2FpdCB1cGxvYWRGaWxlcyhwYXlsb2FkLCBmaWxlc1RvVXBsb2FkLCB0KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVDaGFuZ2UgLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkYXRhID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRhdGFcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYmVmb3JlQ2hhbmdlPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgaWQsXG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkYXRhLFxuICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgIGRvY1dpdGhMb2NhbGVzLFxuICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgIHJlcSxcbiAgICAgIHNraXBWYWxpZGF0aW9uOlxuICAgICAgICBzaG91bGRTYXZlRHJhZnQgJiZcbiAgICAgICAgY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucy5kcmFmdHMgJiZcbiAgICAgICAgIWNvbGxlY3Rpb25Db25maWcudmVyc2lvbnMuZHJhZnRzLnZhbGlkYXRlICYmXG4gICAgICAgIGRhdGEuX3N0YXR1cyAhPT0gJ3B1Ymxpc2hlZCcsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBIYW5kbGUgcG90ZW50aWFsIHBhc3N3b3JkIHVwZGF0ZVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGRhdGFUb1VwZGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnJlc3VsdCB9XG4gICAgY29uc3QgeyBwYXNzd29yZCB9ID0gZGF0YVRvVXBkYXRlXG4gICAgaWYgKHNob3VsZFNhdmVQYXNzd29yZCAmJiB0eXBlb2YgcGFzc3dvcmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCB7IGhhc2gsIHNhbHQgfSA9IGF3YWl0IGdlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCh7IHBhc3N3b3JkIH0pXG4gICAgICBkYXRhVG9VcGRhdGUuc2FsdCA9IHNhbHRcbiAgICAgIGRhdGFUb1VwZGF0ZS5oYXNoID0gaGFzaFxuICAgICAgZGVsZXRlIGRhdGFUb1VwZGF0ZS5wYXNzd29yZFxuICAgICAgZGVsZXRlIGRhdGEucGFzc3dvcmRcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gVXBkYXRlXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKCFzaG91bGRTYXZlRHJhZnQgfHwgZGF0YS5fc3RhdHVzID09PSAncHVibGlzaGVkJykge1xuICAgICAgY29uc3QgZGJBcmdzID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBkYXRhOiBkYXRhVG9VcGRhdGUsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVxLFxuICAgICAgfVxuICAgICAgaWYgKGNvbGxlY3Rpb25Db25maWc/LmRiPy51cGRhdGVPbmUpIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5kYi51cGRhdGVPbmUoZGJBcmdzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVxLnBheWxvYWQuZGIudXBkYXRlT25lKGRiQXJncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gQ3JlYXRlIHZlcnNpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucykge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgc2F2ZVZlcnNpb24oe1xuICAgICAgICBpZCxcbiAgICAgICAgYXV0b3NhdmUsXG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGRvY1dpdGhMb2NhbGVzOiB7XG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIGNyZWF0ZWRBdDogZG9jV2l0aExvY2FsZXMuY3JlYXRlZEF0LFxuICAgICAgICB9LFxuICAgICAgICBkcmFmdDogc2hvdWxkU2F2ZURyYWZ0LFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICByZXEsXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGVwdGgsXG4gICAgICBkb2M6IHJlc3VsdCxcbiAgICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgbG9jYWxlLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlckNoYW5nZTxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRhdGEsXG4gICAgICBkb2M6IHJlc3VsdCxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICByZXEsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlckNoYW5nZSAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJPcGVyYXRpb24gLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYnVpbGRBZnRlck9wZXJhdGlvbjxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGFyZ3MsXG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlQnlJRCcsXG4gICAgICByZXN1bHQsXG4gICAgfSlcblxuICAgIGF3YWl0IHVubGlua1RlbXBGaWxlcyh7XG4gICAgICBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29uZmlnLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKGFyZ3MucmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXBkYXRlQnlJRFxuIl0sIm5hbWVzIjpbInVwZGF0ZUJ5SUQiLCJpbmNvbWluZ0FyZ3MiLCJhcmdzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwicmVxIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImhvb2tzIiwiYmVmb3JlT3BlcmF0aW9uIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsImNvbnRleHQiLCJvcGVyYXRpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsImlkIiwiYXV0b3NhdmUiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGVwdGgiLCJkcmFmdCIsImRyYWZ0QXJnIiwib3ZlcnJpZGVBY2Nlc3MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwiZmFsbGJhY2tMb2NhbGUiLCJsb2NhbGUiLCJwYXlsb2FkIiwidCIsInNob3dIaWRkZW5GaWVsZHMiLCJBUElFcnJvciIsImh0dHBTdGF0dXMiLCJCQURfUkVRVUVTVCIsImRhdGEiLCJkYXRhSGFzUGFzc3dvcmQiLCJwYXNzd29yZCIsInNob3VsZFNhdmVEcmFmdCIsIkJvb2xlYW4iLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsInNob3VsZFNhdmVQYXNzd29yZCIsImF1dGgiLCJhY2Nlc3NSZXN1bHRzIiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInVwZGF0ZSIsImhhc1doZXJlUG9saWN5IiwiaGFzV2hlcmVBY2Nlc3NSZXN1bHQiLCJmaW5kT25lQXJncyIsInNsdWciLCJ3aGVyZSIsImNvbWJpbmVRdWVyaWVzIiwiZXF1YWxzIiwiZG9jV2l0aExvY2FsZXMiLCJnZXRMYXRlc3RDb2xsZWN0aW9uVmVyc2lvbiIsInF1ZXJ5IiwiTm90Rm91bmQiLCJGb3JiaWRkZW4iLCJvcmlnaW5hbERvYyIsImFmdGVyUmVhZCIsImRvYyIsImdsb2JhbCIsIm5ld0ZpbGVEYXRhIiwiZmlsZXMiLCJmaWxlc1RvVXBsb2FkIiwiZ2VuZXJhdGVGaWxlRGF0YSIsInRocm93T25NaXNzaW5nRmlsZSIsImRlbGV0ZUFzc29jaWF0ZWRGaWxlcyIsIm92ZXJyaWRlRGVsZXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJ1cGxvYWQiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwidXBsb2FkRmlsZXMiLCJiZWZvcmVDaGFuZ2UiLCJyZXN1bHQiLCJza2lwVmFsaWRhdGlvbiIsInZhbGlkYXRlIiwiX3N0YXR1cyIsImRhdGFUb1VwZGF0ZSIsImhhc2giLCJzYWx0IiwiZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoIiwiZGJBcmdzIiwiZGIiLCJ1cGRhdGVPbmUiLCJzYXZlVmVyc2lvbiIsImNyZWF0ZWRBdCIsImFmdGVyQ2hhbmdlIiwicHJldmlvdXNEb2MiLCJidWlsZEFmdGVyT3BlcmF0aW9uIiwidW5saW5rVGVtcEZpbGVzIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJlcnJvciIsImtpbGxUcmFuc2FjdGlvbiJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBa1pBOzs7ZUFBQTs7O21FQWhadUI7c0VBT0c7MENBQ2U7dUJBQ0o7Z0NBQ047d0JBQ2U7NkJBQ2xCOzJCQUNGOzhCQUNHO2dDQUNFO3VDQUNP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
@@ -219,7 +219,7 @@
219
219
  "noFiltersSet": "Nessun filtro impostato",
220
220
  "noLabel": "<No {{label}}>",
221
221
  "noOptions": "Nessuna opzione",
222
- "noResults": "Nessun {{label}} trovato. Non esiste ancora nessun {{label}} oppure nessuno corrisponde ai filtri che hai specificato sopra.",
222
+ "noResults": "Non abbiamo trovato {{label}}. Potrebbero non esserci {{label}}, oppure nessuno corrisponde ai filtri che hai specificato sopra.",
223
223
  "noValue": "Nessun valore",
224
224
  "none": "Nessuno",
225
225
  "notFound": "Non Trovato",
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestCollectionVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestCollectionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,CAAA;IACjC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,WAAW,CAAA;IAClB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,CAAC,SAAS,UAAU,8CAMlE,IAAI,KAAG,OAAO,CAAC,CAAC,CA2BlB,CAAA"}
1
+ {"version":3,"file":"getLatestCollectionVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestCollectionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,CAAA;IACjC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,WAAW,CAAA;IAClB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,CAAC,SAAS,UAAU,8CAMlE,IAAI,KAAG,OAAO,CAAC,CAAC,CAkClB,CAAA"}
@@ -11,7 +11,8 @@ Object.defineProperty(exports, "getLatestCollectionVersion", {
11
11
  const _types = require("../types");
12
12
  const getLatestCollectionVersion = async ({ id, config, payload, query, req })=>{
13
13
  let latestVersion;
14
- if (config.versions?.drafts) {
14
+ const hasConfigDb = Object.keys(config?.db ? config?.db : {}).length > 0;
15
+ if (config.versions?.drafts && !hasConfigDb) {
15
16
  const { docs } = await payload.db.findVersions({
16
17
  collection: config.slug,
17
18
  limit: 1,
@@ -26,10 +27,18 @@ const getLatestCollectionVersion = async ({ id, config, payload, query, req })=>
26
27
  });
27
28
  [latestVersion] = docs;
28
29
  }
29
- const doc = await payload.db.findOne({
30
- ...query,
31
- req
32
- });
30
+ let doc;
31
+ if (config?.db?.findOne) {
32
+ doc = await config.db.findOne({
33
+ ...query,
34
+ req
35
+ });
36
+ } else {
37
+ doc = await payload.db.findOne({
38
+ ...query,
39
+ req
40
+ });
41
+ }
33
42
  if (!latestVersion || (0, _types.docHasTimestamps)(doc) && latestVersion.updatedAt < doc.updatedAt) {
34
43
  return doc;
35
44
  }
@@ -41,4 +50,4 @@ const getLatestCollectionVersion = async ({ id, config, payload, query, req })=>
41
50
  };
42
51
  };
43
52
 
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9nZXRMYXRlc3RDb2xsZWN0aW9uVmVyc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsIFR5cGVXaXRoSUQgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbmRPbmVBcmdzIH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi9wYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBUeXBlV2l0aFZlcnNpb24gfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBkb2NIYXNUaW1lc3RhbXBzIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICBxdWVyeTogRmluZE9uZUFyZ3NcbiAgcmVxPzogUGF5bG9hZFJlcXVlc3Rcbn1cblxuZXhwb3J0IGNvbnN0IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEID0gYW55Pih7XG4gIGlkLFxuICBjb25maWcsXG4gIHBheWxvYWQsXG4gIHF1ZXJ5LFxuICByZXEsXG59OiBBcmdzKTogUHJvbWlzZTxUPiA9PiB7XG4gIGxldCBsYXRlc3RWZXJzaW9uOiBUeXBlV2l0aFZlcnNpb248VD5cblxuICBpZiAoY29uZmlnLnZlcnNpb25zPy5kcmFmdHMpIHtcbiAgICBjb25zdCB7IGRvY3MgfSA9IGF3YWl0IHBheWxvYWQuZGIuZmluZFZlcnNpb25zPFQ+KHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbmZpZy5zbHVnLFxuICAgICAgbGltaXQ6IDEsXG4gICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgIHJlcSxcbiAgICAgIHNvcnQ6ICctdXBkYXRlZEF0JyxcbiAgICAgIHdoZXJlOiB7IHBhcmVudDogeyBlcXVhbHM6IGlkIH0gfSxcbiAgICB9KVxuICAgIDtbbGF0ZXN0VmVyc2lvbl0gPSBkb2NzXG4gIH1cblxuICBjb25zdCBkb2MgPSBhd2FpdCBwYXlsb2FkLmRiLmZpbmRPbmU8VD4oeyAuLi5xdWVyeSwgcmVxIH0pXG5cbiAgaWYgKCFsYXRlc3RWZXJzaW9uIHx8IChkb2NIYXNUaW1lc3RhbXBzKGRvYykgJiYgbGF0ZXN0VmVyc2lvbi51cGRhdGVkQXQgPCBkb2MudXBkYXRlZEF0KSkge1xuICAgIHJldHVybiBkb2NcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ubGF0ZXN0VmVyc2lvbi52ZXJzaW9uLFxuICAgIGlkLFxuICAgIGNyZWF0ZWRBdDogbGF0ZXN0VmVyc2lvbi5jcmVhdGVkQXQsXG4gICAgdXBkYXRlZEF0OiBsYXRlc3RWZXJzaW9uLnVwZGF0ZWRBdCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uIiwiaWQiLCJjb25maWciLCJwYXlsb2FkIiwicXVlcnkiLCJyZXEiLCJsYXRlc3RWZXJzaW9uIiwidmVyc2lvbnMiLCJkcmFmdHMiLCJkb2NzIiwiZGIiLCJmaW5kVmVyc2lvbnMiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImxpbWl0IiwicGFnaW5hdGlvbiIsInNvcnQiLCJ3aGVyZSIsInBhcmVudCIsImVxdWFscyIsImRvYyIsImZpbmRPbmUiLCJkb2NIYXNUaW1lc3RhbXBzIiwidXBkYXRlZEF0IiwidmVyc2lvbiIsImNyZWF0ZWRBdCJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQmFBOzs7ZUFBQUE7Ozt1QkFWb0I7QUFVMUIsTUFBTUEsNkJBQTZCLE9BQW1DLEVBQzNFQyxFQUFFLEVBQ0ZDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxLQUFLLEVBQ0xDLEdBQUcsRUFDRTtJQUNMLElBQUlDO0lBRUosSUFBSUosT0FBT0ssUUFBUSxFQUFFQyxRQUFRO1FBQzNCLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUcsTUFBTU4sUUFBUU8sRUFBRSxDQUFDQyxZQUFZLENBQUk7WUFDaERDLFlBQVlWLE9BQU9XLElBQUk7WUFDdkJDLE9BQU87WUFDUEMsWUFBWTtZQUNaVjtZQUNBVyxNQUFNO1lBQ05DLE9BQU87Z0JBQUVDLFFBQVE7b0JBQUVDLFFBQVFsQjtnQkFBRztZQUFFO1FBQ2xDO1FBQ0MsQ0FBQ0ssY0FBYyxHQUFHRztJQUNyQjtJQUVBLE1BQU1XLE1BQU0sTUFBTWpCLFFBQVFPLEVBQUUsQ0FBQ1csT0FBTyxDQUFJO1FBQUUsR0FBR2pCLEtBQUs7UUFBRUM7SUFBSTtJQUV4RCxJQUFJLENBQUNDLGlCQUFrQmdCLElBQUFBLHVCQUFnQixFQUFDRixRQUFRZCxjQUFjaUIsU0FBUyxHQUFHSCxJQUFJRyxTQUFTLEVBQUc7UUFDeEYsT0FBT0g7SUFDVDtJQUVBLE9BQU87UUFDTCxHQUFHZCxjQUFja0IsT0FBTztRQUN4QnZCO1FBQ0F3QixXQUFXbkIsY0FBY21CLFNBQVM7UUFDbENGLFdBQVdqQixjQUFjaUIsU0FBUztJQUNwQztBQUNGIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9nZXRMYXRlc3RDb2xsZWN0aW9uVmVyc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsIFR5cGVXaXRoSUQgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbmRPbmVBcmdzIH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi9wYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBUeXBlV2l0aFZlcnNpb24gfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBkb2NIYXNUaW1lc3RhbXBzIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICBxdWVyeTogRmluZE9uZUFyZ3NcbiAgcmVxPzogUGF5bG9hZFJlcXVlc3Rcbn1cblxuZXhwb3J0IGNvbnN0IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEID0gYW55Pih7XG4gIGlkLFxuICBjb25maWcsXG4gIHBheWxvYWQsXG4gIHF1ZXJ5LFxuICByZXEsXG59OiBBcmdzKTogUHJvbWlzZTxUPiA9PiB7XG4gIGxldCBsYXRlc3RWZXJzaW9uOiBUeXBlV2l0aFZlcnNpb248VD5cblxuICBjb25zdCBoYXNDb25maWdEYiA9IE9iamVjdC5rZXlzKGNvbmZpZz8uZGIgPyBjb25maWc/LmRiIDoge30pLmxlbmd0aCA+IDBcblxuICBpZiAoY29uZmlnLnZlcnNpb25zPy5kcmFmdHMgJiYgIWhhc0NvbmZpZ0RiKSB7XG4gICAgY29uc3QgeyBkb2NzIH0gPSBhd2FpdCBwYXlsb2FkLmRiLmZpbmRWZXJzaW9uczxUPih7XG4gICAgICBjb2xsZWN0aW9uOiBjb25maWcuc2x1ZyxcbiAgICAgIGxpbWl0OiAxLFxuICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICByZXEsXG4gICAgICBzb3J0OiAnLXVwZGF0ZWRBdCcsXG4gICAgICB3aGVyZTogeyBwYXJlbnQ6IHsgZXF1YWxzOiBpZCB9IH0sXG4gICAgfSlcbiAgICA7W2xhdGVzdFZlcnNpb25dID0gZG9jc1xuICB9XG5cbiAgbGV0IGRvY1xuICBpZiAoY29uZmlnPy5kYj8uZmluZE9uZSkge1xuICAgIGRvYyA9IGF3YWl0IGNvbmZpZy5kYi5maW5kT25lPFQ+KHsgLi4ucXVlcnksIHJlcSB9KVxuICB9IGVsc2Uge1xuICAgIGRvYyA9IGF3YWl0IHBheWxvYWQuZGIuZmluZE9uZTxUPih7IC4uLnF1ZXJ5LCByZXEgfSlcbiAgfVxuXG4gIGlmICghbGF0ZXN0VmVyc2lvbiB8fCAoZG9jSGFzVGltZXN0YW1wcyhkb2MpICYmIGxhdGVzdFZlcnNpb24udXBkYXRlZEF0IDwgZG9jLnVwZGF0ZWRBdCkpIHtcbiAgICByZXR1cm4gZG9jXG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmxhdGVzdFZlcnNpb24udmVyc2lvbixcbiAgICBpZCxcbiAgICBjcmVhdGVkQXQ6IGxhdGVzdFZlcnNpb24uY3JlYXRlZEF0LFxuICAgIHVwZGF0ZWRBdDogbGF0ZXN0VmVyc2lvbi51cGRhdGVkQXQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZXRMYXRlc3RDb2xsZWN0aW9uVmVyc2lvbiIsImlkIiwiY29uZmlnIiwicGF5bG9hZCIsInF1ZXJ5IiwicmVxIiwibGF0ZXN0VmVyc2lvbiIsImhhc0NvbmZpZ0RiIiwiT2JqZWN0Iiwia2V5cyIsImRiIiwibGVuZ3RoIiwidmVyc2lvbnMiLCJkcmFmdHMiLCJkb2NzIiwiZmluZFZlcnNpb25zIiwiY29sbGVjdGlvbiIsInNsdWciLCJsaW1pdCIsInBhZ2luYXRpb24iLCJzb3J0Iiwid2hlcmUiLCJwYXJlbnQiLCJlcXVhbHMiLCJkb2MiLCJmaW5kT25lIiwiZG9jSGFzVGltZXN0YW1wcyIsInVwZGF0ZWRBdCIsInZlcnNpb24iLCJjcmVhdGVkQXQiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBZ0JhQTs7O2VBQUFBOzs7dUJBVm9CO0FBVTFCLE1BQU1BLDZCQUE2QixPQUFtQyxFQUMzRUMsRUFBRSxFQUNGQyxNQUFNLEVBQ05DLE9BQU8sRUFDUEMsS0FBSyxFQUNMQyxHQUFHLEVBQ0U7SUFDTCxJQUFJQztJQUVKLE1BQU1DLGNBQWNDLE9BQU9DLElBQUksQ0FBQ1AsUUFBUVEsS0FBS1IsUUFBUVEsS0FBSyxDQUFDLEdBQUdDLE1BQU0sR0FBRztJQUV2RSxJQUFJVCxPQUFPVSxRQUFRLEVBQUVDLFVBQVUsQ0FBQ04sYUFBYTtRQUMzQyxNQUFNLEVBQUVPLElBQUksRUFBRSxHQUFHLE1BQU1YLFFBQVFPLEVBQUUsQ0FBQ0ssWUFBWSxDQUFJO1lBQ2hEQyxZQUFZZCxPQUFPZSxJQUFJO1lBQ3ZCQyxPQUFPO1lBQ1BDLFlBQVk7WUFDWmQ7WUFDQWUsTUFBTTtZQUNOQyxPQUFPO2dCQUFFQyxRQUFRO29CQUFFQyxRQUFRdEI7Z0JBQUc7WUFBRTtRQUNsQztRQUNDLENBQUNLLGNBQWMsR0FBR1E7SUFDckI7SUFFQSxJQUFJVTtJQUNKLElBQUl0QixRQUFRUSxJQUFJZSxTQUFTO1FBQ3ZCRCxNQUFNLE1BQU10QixPQUFPUSxFQUFFLENBQUNlLE9BQU8sQ0FBSTtZQUFFLEdBQUdyQixLQUFLO1lBQUVDO1FBQUk7SUFDbkQsT0FBTztRQUNMbUIsTUFBTSxNQUFNckIsUUFBUU8sRUFBRSxDQUFDZSxPQUFPLENBQUk7WUFBRSxHQUFHckIsS0FBSztZQUFFQztRQUFJO0lBQ3BEO0lBRUEsSUFBSSxDQUFDQyxpQkFBa0JvQixJQUFBQSx1QkFBZ0IsRUFBQ0YsUUFBUWxCLGNBQWNxQixTQUFTLEdBQUdILElBQUlHLFNBQVMsRUFBRztRQUN4RixPQUFPSDtJQUNUO0lBRUEsT0FBTztRQUNMLEdBQUdsQixjQUFjc0IsT0FBTztRQUN4QjNCO1FBQ0E0QixXQUFXdkIsY0FBY3VCLFNBQVM7UUFDbENGLFdBQVdyQixjQUFjcUIsU0FBUztJQUNwQztBQUNGIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "2.27.0",
3
+ "version": "2.28.0",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",