parse-server 9.9.0 → 9.9.1-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/lib/Controllers/DatabaseController.js +73 -8
- package/lib/Controllers/FilesController.js +6 -4
- package/lib/GraphQL/ParseGraphQLServer.js +27 -2
- package/lib/GraphQL/helpers/objectsMutations.js +3 -3
- package/lib/GraphQL/helpers/objectsQueries.js +4 -4
- package/lib/GraphQL/loaders/usersQueries.js +2 -2
- package/lib/LiveQuery/ParseLiveQueryServer.js +39 -13
- package/lib/LiveQuery/Subscription.js +6 -2
- package/lib/Options/Definitions.js +3 -3
- package/lib/Options/docs.js +3 -3
- package/lib/Options/index.js +1 -1
- package/lib/RestQuery.js +5 -10
- package/lib/RestWrite.js +3 -8
- package/lib/Routers/AggregateRouter.js +2 -2
- package/lib/Routers/AudiencesRouter.js +2 -2
- package/lib/Routers/ClassesRouter.js +5 -5
- package/lib/Routers/FilesRouter.js +13 -7
- package/lib/Routers/FunctionsRouter.js +19 -1
- package/lib/Routers/IAPValidationRouter.js +2 -2
- package/lib/Routers/InstallationsRouter.js +2 -2
- package/lib/Routers/SessionsRouter.js +4 -4
- package/lib/Routers/UsersRouter.js +34 -11
- package/lib/Utils.js +18 -1
- package/lib/batch.js +16 -2
- package/lib/middlewares.js +64 -39
- package/lib/rest.js +10 -12
- package/package.json +1 -1
- package/lib/ClientSDK.js +0 -39
|
@@ -181,6 +181,11 @@ class FunctionsRouter extends _PromiseRouter.default {
|
|
|
181
181
|
return Promise.resolve();
|
|
182
182
|
}
|
|
183
183
|
const maxBytes = _Utils.default.parseSizeToBytes(req.config.maxUploadSize);
|
|
184
|
+
// Reject early when the declared request size already exceeds the limit.
|
|
185
|
+
const contentLength = Number(req.headers['content-length']);
|
|
186
|
+
if (Number.isFinite(contentLength) && contentLength > maxBytes) {
|
|
187
|
+
return Promise.reject(new Parse.Error(Parse.Error.OBJECT_TOO_LARGE, 'Multipart request exceeds maximum upload size.'));
|
|
188
|
+
}
|
|
184
189
|
return new Promise((resolve, reject) => {
|
|
185
190
|
const fields = Object.create(null);
|
|
186
191
|
let totalBytes = 0;
|
|
@@ -201,6 +206,7 @@ class FunctionsRouter extends _PromiseRouter.default {
|
|
|
201
206
|
return;
|
|
202
207
|
}
|
|
203
208
|
settled = true;
|
|
209
|
+
req.unpipe(busboy);
|
|
204
210
|
busboy.destroy();
|
|
205
211
|
reject(err);
|
|
206
212
|
};
|
|
@@ -246,6 +252,18 @@ class FunctionsRouter extends _PromiseRouter.default {
|
|
|
246
252
|
busboy.on('error', err => {
|
|
247
253
|
safeReject(new Parse.Error(Parse.Error.INVALID_JSON, `Invalid multipart request: ${err.message}`));
|
|
248
254
|
});
|
|
255
|
+
// Enforce `maxUploadSize` against the raw request bytes (multipart
|
|
256
|
+
// boundaries, part headers, field names and part count included), not only
|
|
257
|
+
// the parsed field values and file contents. This mirrors how
|
|
258
|
+
// `express.json` bounds non-multipart bodies and stops a request composed
|
|
259
|
+
// of many empty parts from exceeding the limit on the wire.
|
|
260
|
+
let rawBytes = 0;
|
|
261
|
+
req.on('data', chunk => {
|
|
262
|
+
rawBytes += chunk.length;
|
|
263
|
+
if (rawBytes > maxBytes) {
|
|
264
|
+
safeReject(new Parse.Error(Parse.Error.OBJECT_TOO_LARGE, 'Multipart request exceeds maximum upload size.'));
|
|
265
|
+
}
|
|
266
|
+
});
|
|
249
267
|
req.pipe(busboy);
|
|
250
268
|
});
|
|
251
269
|
}
|
|
@@ -338,4 +356,4 @@ class FunctionsRouter extends _PromiseRouter.default {
|
|
|
338
356
|
}
|
|
339
357
|
}
|
|
340
358
|
exports.FunctionsRouter = FunctionsRouter;
|
|
341
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmVzIiwiX1N0YXR1c0hhbmRsZXIiLCJfbG9kYXNoIiwiX2xvZ2dlciIsIl9FcnJvciIsIl9idXNib3kiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJQYXJzZSIsInRyaWdnZXJzIiwicmVkYWN0QnVmZmVycyIsIm9iaiIsIkJ1ZmZlciIsImlzQnVmZmVyIiwibGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwicmVzdWx0Iiwia2V5IiwiT2JqZWN0Iiwia2V5cyIsInBhcnNlT2JqZWN0IiwiY29uZmlnIiwiaXRlbSIsIl9fdHlwZSIsImFzc2lnbiIsIkRhdGUiLCJpc28iLCJ1cmwiLCJ2YWxpZGF0ZUZpbGVVcmwiLCJGaWxlIiwiZnJvbUpTT04iLCJjbGFzc05hbWUiLCJvYmplY3RJZCIsInBhcnNlUGFyYW1zIiwicGFyYW1zIiwiXyIsIm1hcFZhbHVlcyIsIkZ1bmN0aW9uc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5IiwibXVsdGlwYXJ0TWlkZGxld2FyZSIsImhhbmRsZUNsb3VkRnVuY3Rpb24iLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyIsInJlcSIsImhhbmRsZUNsb3VkSm9iIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJjcmVhdGVTYW5pdGl6ZWRFcnJvciIsIkVycm9yIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsImpvYk5hbWUiLCJib2R5IiwiYXBwbGljYXRpb25JZCIsImpvYkhhbmRsZXIiLCJqb2JTdGF0dXNIYW5kbGVyIiwiam9iRnVuY3Rpb24iLCJnZXRKb2IiLCJTQ1JJUFRfRkFJTEVEIiwicXVlcnkiLCJyZXF1ZXN0IiwibG9nIiwibG9nZ2VyQ29udHJvbGxlciIsImhlYWRlcnMiLCJpcCIsIm1lc3NhZ2UiLCJzZXRNZXNzYWdlIiwiYmluZCIsInNldFJ1bm5pbmciLCJ0aGVuIiwiam9iU3RhdHVzIiwiam9iSWQiLCJwcm9jZXNzIiwibmV4dFRpY2siLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFN1Y2NlZWRlZCIsImVycm9yIiwic2V0RmFpbGVkIiwicmVzcG9uc2UiLCJjcmVhdGVSZXNwb25zZU9iamVjdCIsInJlamVjdCIsInN0YXR1c0NvZGUiLCJodHRwU3RhdHVzQ29kZSIsImN1c3RvbUhlYWRlcnMiLCJyZXNwb25zZVNlbnQiLCJyZXNwb25zZU9iamVjdCIsInN1Y2Nlc3MiLCJfZW5jb2RlIiwic3RhdHVzIiwicmVzb2x2ZUVycm9yIiwiY29kZSIsImhlYWRlciIsInZhbHVlIiwiX2lzUmVzcG9uc2VTZW50IiwiaXMiLCJtYXhCeXRlcyIsIlV0aWxzIiwicGFyc2VTaXplVG9CeXRlcyIsIm1heFVwbG9hZFNpemUiLCJmaWVsZHMiLCJjcmVhdGUiLCJ0b3RhbEJ5dGVzIiwic2V0dGxlZCIsImJ1c2JveSIsIkJ1c2JveSIsImxpbWl0cyIsImZpZWxkU2l6ZSIsImVyciIsIklOVkFMSURfSlNPTiIsInNhZmVSZWplY3QiLCJkZXN0cm95Iiwib24iLCJuYW1lIiwiZmllbGRuYW1lVHJ1bmNhdGVkIiwidmFsdWVUcnVuY2F0ZWQiLCJPQkpFQ1RfVE9PX0xBUkdFIiwiYnl0ZUxlbmd0aCIsInN0cmVhbSIsImZpbGVuYW1lIiwidHJhbnNmZXJFbmNvZGluZyIsIm1pbWVUeXBlIiwiY2h1bmtzIiwiY2h1bmsiLCJwdXNoIiwiY29udGVudFR5cGUiLCJkYXRhIiwiY29uY2F0IiwicGlwZSIsImZ1bmN0aW9uTmFtZSIsInRoZUZ1bmN0aW9uIiwiZ2V0RnVuY3Rpb24iLCJtYXN0ZXIiLCJpc01hc3RlciIsInVzZXIiLCJpbnN0YWxsYXRpb25JZCIsImluZm8iLCJjb250ZXh0IiwidXNlclN0cmluZyIsImlkIiwidW5kZWZpbmVkIiwibG9nTGV2ZWxzIiwiY2xvdWRGdW5jdGlvblN1Y2Nlc3MiLCJjbGVhbklucHV0IiwibG9nZ2VyIiwidHJ1bmNhdGVMb2dNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImNsZWFuUmVzdWx0IiwiY2xvdWRGdW5jdGlvbkVycm9yIiwibWF5YmVSdW5WYWxpZGF0b3IiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvRnVuY3Rpb25zUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZ1bmN0aW9uc1JvdXRlci5qc1xuXG52YXIgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2UsXG4gIHRyaWdnZXJzID0gcmVxdWlyZSgnLi4vdHJpZ2dlcnMnKTtcblxuaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgeyBwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgcHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5IH0gZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IHsgam9iU3RhdHVzSGFuZGxlciB9IGZyb20gJy4uL1N0YXR1c0hhbmRsZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBjcmVhdGVTYW5pdGl6ZWRFcnJvciB9IGZyb20gJy4uL0Vycm9yJztcbmltcG9ydCBCdXNib3kgZnJvbSAnQGZhc3RpZnkvYnVzYm95JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5cbmZ1bmN0aW9uIHJlZGFjdEJ1ZmZlcnMob2JqKSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIob2JqKSkge1xuICAgIHJldHVybiBgW0J1ZmZlcjogJHtvYmoubGVuZ3RofSBieXRlc11gO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLm1hcChyZWRhY3RCdWZmZXJzKTtcbiAgfVxuICBpZiAob2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuICAgICAgcmVzdWx0W2tleV0gPSByZWRhY3RCdWZmZXJzKG9ialtrZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBwYXJzZU9iamVjdChvYmosIGNvbmZpZykge1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gcGFyc2VPYmplY3QoaXRlbSwgY29uZmlnKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChvYmogJiYgb2JqLl9fdHlwZSA9PSAnRGF0ZScpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRGF0ZShvYmouaXNvKSwgb2JqKTtcbiAgfSBlbHNlIGlmIChvYmogJiYgb2JqLl9fdHlwZSA9PSAnRmlsZScpIHtcbiAgICBpZiAob2JqLnVybCkge1xuICAgICAgY29uc3QgeyB2YWxpZGF0ZUZpbGVVcmwgfSA9IHJlcXVpcmUoJy4uL0ZpbGVVcmxWYWxpZGF0b3InKTtcbiAgICAgIHZhbGlkYXRlRmlsZVVybChvYmoudXJsLCBjb25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gUGFyc2UuRmlsZS5mcm9tSlNPTihvYmopO1xuICB9IGVsc2UgaWYgKG9iaiAmJiBvYmouX190eXBlID09ICdQb2ludGVyJykge1xuICAgIHJldHVybiBQYXJzZS5PYmplY3QuZnJvbUpTT04oe1xuICAgICAgX190eXBlOiAnUG9pbnRlcicsXG4gICAgICBjbGFzc05hbWU6IG9iai5jbGFzc05hbWUsXG4gICAgICBvYmplY3RJZDogb2JqLm9iamVjdElkLFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfSBlbHNlIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gcGFyc2VQYXJhbXMob2JqLCBjb25maWcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvYmo7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VQYXJhbXMocGFyYW1zLCBjb25maWcpIHtcbiAgcmV0dXJuIF8ubWFwVmFsdWVzKHBhcmFtcywgaXRlbSA9PiBwYXJzZU9iamVjdChpdGVtLCBjb25maWcpKTtcbn1cblxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9mdW5jdGlvbnMvOmZ1bmN0aW9uTmFtZScsXG4gICAgICBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3ksXG4gICAgICBGdW5jdGlvbnNSb3V0ZXIubXVsdGlwYXJ0TWlkZGxld2FyZSxcbiAgICAgIEZ1bmN0aW9uc1JvdXRlci5oYW5kbGVDbG91ZEZ1bmN0aW9uXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9qb2JzLzpqb2JOYW1lJyxcbiAgICAgIHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSxcbiAgICAgIHByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZnVuY3Rpb24gKHJlcSkge1xuICAgICAgICByZXR1cm4gRnVuY3Rpb25zUm91dGVyLmhhbmRsZUNsb3VkSm9iKHJlcSk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9qb2JzJywgcHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGZ1bmN0aW9uIChyZXEpIHtcbiAgICAgIHJldHVybiBGdW5jdGlvbnNSb3V0ZXIuaGFuZGxlQ2xvdWRKb2IocmVxKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBoYW5kbGVDbG91ZEpvYihyZXEpIHtcbiAgICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgICAgdGhyb3cgY3JlYXRlU2FuaXRpemVkRXJyb3IoXG4gICAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICAgIFwicmVhZC1vbmx5IG1hc3RlcktleSBpc24ndCBhbGxvd2VkIHRvIHJ1biBhIGpvYi5cIixcbiAgICAgICAgcmVxLmNvbmZpZ1xuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgam9iTmFtZSA9IHJlcS5wYXJhbXMuam9iTmFtZSB8fCByZXEuYm9keT8uam9iTmFtZTtcbiAgICBjb25zdCBhcHBsaWNhdGlvbklkID0gcmVxLmNvbmZpZy5hcHBsaWNhdGlvbklkO1xuICAgIGNvbnN0IGpvYkhhbmRsZXIgPSBqb2JTdGF0dXNIYW5kbGVyKHJlcS5jb25maWcpO1xuICAgIGNvbnN0IGpvYkZ1bmN0aW9uID0gdHJpZ2dlcnMuZ2V0Sm9iKGpvYk5hbWUsIGFwcGxpY2F0aW9uSWQpO1xuICAgIGlmICgham9iRnVuY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5TQ1JJUFRfRkFJTEVELCAnSW52YWxpZCBqb2IuJyk7XG4gICAgfVxuICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCByZXEuYm9keSwgcmVxLnF1ZXJ5KTtcbiAgICBwYXJhbXMgPSBwYXJzZVBhcmFtcyhwYXJhbXMsIHJlcS5jb25maWcpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIGxvZzogcmVxLmNvbmZpZy5sb2dnZXJDb250cm9sbGVyLFxuICAgICAgaGVhZGVyczogcmVxLmNvbmZpZy5oZWFkZXJzLFxuICAgICAgaXA6IHJlcS5jb25maWcuaXAsXG4gICAgICBqb2JOYW1lLFxuICAgICAgY29uZmlnOiByZXEuY29uZmlnLFxuICAgICAgbWVzc2FnZTogam9iSGFuZGxlci5zZXRNZXNzYWdlLmJpbmQoam9iSGFuZGxlciksXG4gICAgfTtcblxuICAgIHJldHVybiBqb2JIYW5kbGVyLnNldFJ1bm5pbmcoam9iTmFtZSkudGhlbihqb2JTdGF0dXMgPT4ge1xuICAgICAgcmVxdWVzdC5qb2JJZCA9IGpvYlN0YXR1cy5vYmplY3RJZDtcbiAgICAgIC8vIHJ1biB0aGUgZnVuY3Rpb24gYXN5bmNcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soKCkgPT4ge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBqb2JGdW5jdGlvbihyZXF1ZXN0KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgam9iSGFuZGxlci5zZXRTdWNjZWVkZWQocmVzdWx0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgIGpvYkhhbmRsZXIuc2V0RmFpbGVkKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ1gtUGFyc2UtSm9iLVN0YXR1cy1JZCc6IGpvYlN0YXR1cy5vYmplY3RJZCxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzcG9uc2U6IHt9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVSZXNwb25zZU9iamVjdChyZXNvbHZlLCByZWplY3QsIHN0YXR1c0NvZGUgPSBudWxsKSB7XG4gICAgbGV0IGh0dHBTdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICBjb25zdCBjdXN0b21IZWFkZXJzID0ge307XG4gICAgbGV0IHJlc3BvbnNlU2VudCA9IGZhbHNlO1xuICAgIGNvbnN0IHJlc3BvbnNlT2JqZWN0ID0ge1xuICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICBpZiAocmVzcG9uc2VTZW50KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2FsbCBzdWNjZXNzKCkgYWZ0ZXIgcmVzcG9uc2UgaGFzIGFscmVhZHkgYmVlbiBzZW50LiBNYWtlIHN1cmUgdG8gY2FsbCBzdWNjZXNzKCkgb3IgZXJyb3IoKSBvbmx5IG9uY2UgcGVyIGNsb3VkIGZ1bmN0aW9uIGV4ZWN1dGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXNwb25zZVNlbnQgPSB0cnVlO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICByZXNwb25zZToge1xuICAgICAgICAgICAgcmVzdWx0OiBQYXJzZS5fZW5jb2RlKHJlc3VsdCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGh0dHBTdGF0dXNDb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gaHR0cFN0YXR1c0NvZGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGN1c3RvbUhlYWRlcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXNwb25zZS5oZWFkZXJzID0gY3VzdG9tSGVhZGVycztcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlU2VudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNhbGwgZXJyb3IoKSBhZnRlciByZXNwb25zZSBoYXMgYWxyZWFkeSBiZWVuIHNlbnQuIE1ha2Ugc3VyZSB0byBjYWxsIHN1Y2Nlc3MoKSBvciBlcnJvcigpIG9ubHkgb25jZSBwZXIgY2xvdWQgZnVuY3Rpb24gZXhlY3V0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3BvbnNlU2VudCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGVycm9yID0gdHJpZ2dlcnMucmVzb2x2ZUVycm9yKG1lc3NhZ2UpO1xuICAgICAgICAvLyBJZiBhIGN1c3RvbSBzdGF0dXMgY29kZSB3YXMgc2V0LCBhdHRhY2ggaXQgdG8gdGhlIGVycm9yXG4gICAgICAgIGlmIChodHRwU3RhdHVzQ29kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGVycm9yLnN0YXR1cyA9IGh0dHBTdGF0dXNDb2RlO1xuICAgICAgICB9XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9LFxuICAgICAgc3RhdHVzOiBmdW5jdGlvbiAoY29kZSkge1xuICAgICAgICBodHRwU3RhdHVzQ29kZSA9IGNvZGU7XG4gICAgICAgIHJldHVybiByZXNwb25zZU9iamVjdDtcbiAgICAgIH0sXG4gICAgICBoZWFkZXI6IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgIGN1c3RvbUhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2VPYmplY3Q7XG4gICAgICB9LFxuICAgICAgX2lzUmVzcG9uc2VTZW50OiAoKSA9PiByZXNwb25zZVNlbnQsXG4gICAgfTtcbiAgICByZXR1cm4gcmVzcG9uc2VPYmplY3Q7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIG11bHRpcGFydC9mb3JtLWRhdGEgcmVxdWVzdHMgZm9yIENsb3VkIEZ1bmN0aW9uIGludm9jYXRpb24uXG4gICAqIEZvciBub24tbXVsdGlwYXJ0IHJlcXVlc3RzLCB0aGlzIGlzIGEgbm8tb3AuXG4gICAqXG4gICAqIFRleHQgZmllbGRzIGFyZSBzZXQgYXMgc3RyaW5ncyBpbiBgcmVxLmJvZHlgLiBGaWxlIGZpZWxkcyBhcmUgc2V0IGFzXG4gICAqIG9iamVjdHMgd2l0aCB0aGUgc2hhcGUgYHsgZmlsZW5hbWU6IHN0cmluZywgY29udGVudFR5cGU6IHN0cmluZywgZGF0YTogQnVmZmVyIH1gLlxuICAgKiBBbGwgZmllbGRzIGFyZSBtZXJnZWQgZmxhdCBpbnRvIGByZXEuYm9keWA7IHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yXG4gICAqIGF2b2lkaW5nIG5hbWUgY29sbGlzaW9ucyBiZXR3ZWVuIHRleHQgYW5kIGZpbGUgZmllbGRzLlxuICAgKlxuICAgKiBUaGUgdG90YWwgcmVxdWVzdCBzaXplIGlzIGxpbWl0ZWQgYnkgdGhlIHNlcnZlcidzIGBtYXhVcGxvYWRTaXplYCBvcHRpb24uXG4gICAqL1xuICBzdGF0aWMgbXVsdGlwYXJ0TWlkZGxld2FyZShyZXEpIHtcbiAgICBpZiAoIXJlcS5pcyB8fCAhcmVxLmlzKCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgY29uc3QgbWF4Qnl0ZXMgPSBVdGlscy5wYXJzZVNpemVUb0J5dGVzKHJlcS5jb25maWcubWF4VXBsb2FkU2l6ZSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICBsZXQgdG90YWxCeXRlcyA9IDA7XG4gICAgICBsZXQgc2V0dGxlZCA9IGZhbHNlO1xuICAgICAgbGV0IGJ1c2JveTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGJ1c2JveSA9IEJ1c2JveSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLCBsaW1pdHM6IHsgZmllbGRTaXplOiBtYXhCeXRlcyB9IH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoXG4gICAgICAgICAgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfSlNPTiwgYEludmFsaWQgbXVsdGlwYXJ0IHJlcXVlc3Q6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNhZmVSZWplY3QgPSAoZXJyKSA9PiB7XG4gICAgICAgIGlmIChzZXR0bGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldHRsZWQgPSB0cnVlO1xuICAgICAgICBidXNib3kuZGVzdHJveSgpO1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH07XG4gICAgICBidXNib3kub24oJ2ZpZWxkJywgKG5hbWUsIHZhbHVlLCBmaWVsZG5hbWVUcnVuY2F0ZWQsIHZhbHVlVHJ1bmNhdGVkKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZVRydW5jYXRlZCkge1xuICAgICAgICAgIHJldHVybiBzYWZlUmVqZWN0KFxuICAgICAgICAgICAgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfVE9PX0xBUkdFLFxuICAgICAgICAgICAgICAnTXVsdGlwYXJ0IHJlcXVlc3QgZXhjZWVkcyBtYXhpbXVtIHVwbG9hZCBzaXplLidcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRvdGFsQnl0ZXMgKz0gQnVmZmVyLmJ5dGVMZW5ndGgodmFsdWUpO1xuICAgICAgICBpZiAodG90YWxCeXRlcyA+IG1heEJ5dGVzKSB7XG4gICAgICAgICAgcmV0dXJuIHNhZmVSZWplY3QoXG4gICAgICAgICAgICBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9UT09fTEFSR0UsXG4gICAgICAgICAgICAgICdNdWx0aXBhcnQgcmVxdWVzdCBleGNlZWRzIG1heGltdW0gdXBsb2FkIHNpemUuJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZmllbGRzW25hbWVdID0gdmFsdWU7XG4gICAgICB9KTtcbiAgICAgIGJ1c2JveS5vbignZmlsZScsIChuYW1lLCBzdHJlYW0sIGZpbGVuYW1lLCB0cmFuc2ZlckVuY29kaW5nLCBtaW1lVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBbXTtcbiAgICAgICAgc3RyZWFtLm9uKCdkYXRhJywgY2h1bmsgPT4ge1xuICAgICAgICAgIHRvdGFsQnl0ZXMgKz0gY2h1bmsubGVuZ3RoO1xuICAgICAgICAgIGlmICh0b3RhbEJ5dGVzID4gbWF4Qnl0ZXMpIHtcbiAgICAgICAgICAgIHN0cmVhbS5kZXN0cm95KCk7XG4gICAgICAgICAgICByZXR1cm4gc2FmZVJlamVjdChcbiAgICAgICAgICAgICAgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgICAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9UT09fTEFSR0UsXG4gICAgICAgICAgICAgICAgJ011bHRpcGFydCByZXF1ZXN0IGV4Y2VlZHMgbWF4aW11bSB1cGxvYWQgc2l6ZS4nXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHN0cmVhbS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICAgIGlmIChzZXR0bGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpZWxkc1tuYW1lXSA9IHtcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgY29udGVudFR5cGU6IG1pbWVUeXBlIHx8ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICAgICAgICAgZGF0YTogQnVmZmVyLmNvbmNhdChjaHVua3MpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBidXNib3kub24oJ2ZpbmlzaCcsICgpID0+IHtcbiAgICAgICAgaWYgKHNldHRsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0dGxlZCA9IHRydWU7XG4gICAgICAgIHJlcS5ib2R5ID0gZmllbGRzO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICAgIGJ1c2JveS5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgICBzYWZlUmVqZWN0KFxuICAgICAgICAgIG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sIGBJbnZhbGlkIG11bHRpcGFydCByZXF1ZXN0OiAke2Vyci5tZXNzYWdlfWApXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJlcS5waXBlKGJ1c2JveSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlQ2xvdWRGdW5jdGlvbihyZXEpIHtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSByZXEucGFyYW1zLmZ1bmN0aW9uTmFtZTtcbiAgICBjb25zdCBhcHBsaWNhdGlvbklkID0gcmVxLmNvbmZpZy5hcHBsaWNhdGlvbklkO1xuICAgIGNvbnN0IHRoZUZ1bmN0aW9uID0gdHJpZ2dlcnMuZ2V0RnVuY3Rpb24oZnVuY3Rpb25OYW1lLCBhcHBsaWNhdGlvbklkKTtcblxuICAgIGlmICghdGhlRnVuY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5TQ1JJUFRfRkFJTEVELCBgSW52YWxpZCBmdW5jdGlvbjogXCIke2Z1bmN0aW9uTmFtZX1cImApO1xuICAgIH1cbiAgICBsZXQgcGFyYW1zID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxLmJvZHksIHJlcS5xdWVyeSk7XG4gICAgcGFyYW1zID0gcGFyc2VQYXJhbXMocGFyYW1zLCByZXEuY29uZmlnKTtcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICBjb25maWc6IHJlcS5jb25maWcsXG4gICAgICBtYXN0ZXI6IHJlcS5hdXRoICYmIHJlcS5hdXRoLmlzTWFzdGVyLFxuICAgICAgaXNSZWFkT25seTogISEocmVxLmF1dGggJiYgcmVxLmF1dGguaXNSZWFkT25seSksXG4gICAgICB1c2VyOiByZXEuYXV0aCAmJiByZXEuYXV0aC51c2VyLFxuICAgICAgaW5zdGFsbGF0aW9uSWQ6IHJlcS5pbmZvLmluc3RhbGxhdGlvbklkLFxuICAgICAgbG9nOiByZXEuY29uZmlnLmxvZ2dlckNvbnRyb2xsZXIsXG4gICAgICBoZWFkZXJzOiByZXEuY29uZmlnLmhlYWRlcnMsXG4gICAgICBpcDogcmVxLmNvbmZpZy5pcCxcbiAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgIGNvbnRleHQ6IHJlcS5pbmZvLmNvbnRleHQsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBjb25zdCB1c2VyU3RyaW5nID0gcmVxLmF1dGggJiYgcmVxLmF1dGgudXNlciA/IHJlcS5hdXRoLnVzZXIuaWQgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCByZXNwb25zZU9iamVjdCA9IEZ1bmN0aW9uc1JvdXRlci5jcmVhdGVSZXNwb25zZU9iamVjdChcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHJlcS5jb25maWcubG9nTGV2ZWxzLmNsb3VkRnVuY3Rpb25TdWNjZXNzICE9PSAnc2lsZW50Jykge1xuICAgICAgICAgICAgICBjb25zdCBjbGVhbklucHV0ID0gbG9nZ2VyLnRydW5jYXRlTG9nTWVzc2FnZShKU09OLnN0cmluZ2lmeShyZWRhY3RCdWZmZXJzKHBhcmFtcykpKTtcbiAgICAgICAgICAgICAgY29uc3QgY2xlYW5SZXN1bHQgPSBsb2dnZXIudHJ1bmNhdGVMb2dNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHJlc3VsdC5yZXNwb25zZS5yZXN1bHQpKTtcbiAgICAgICAgICAgICAgbG9nZ2VyW3JlcS5jb25maWcubG9nTGV2ZWxzLmNsb3VkRnVuY3Rpb25TdWNjZXNzXShcbiAgICAgICAgICAgICAgICBgUmFuIGNsb3VkIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSBmb3IgdXNlciAke3VzZXJTdHJpbmd9IHdpdGg6XFxuICBJbnB1dDogJHtjbGVhbklucHV0fVxcbiAgUmVzdWx0OiAke2NsZWFuUmVzdWx0fWAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgdXNlcjogdXNlclN0cmluZyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAocmVxLmNvbmZpZy5sb2dMZXZlbHMuY2xvdWRGdW5jdGlvbkVycm9yICE9PSAnc2lsZW50Jykge1xuICAgICAgICAgICAgICBjb25zdCBjbGVhbklucHV0ID0gbG9nZ2VyLnRydW5jYXRlTG9nTWVzc2FnZShKU09OLnN0cmluZ2lmeShyZWRhY3RCdWZmZXJzKHBhcmFtcykpKTtcbiAgICAgICAgICAgICAgbG9nZ2VyW3JlcS5jb25maWcubG9nTGV2ZWxzLmNsb3VkRnVuY3Rpb25FcnJvcl0oXG4gICAgICAgICAgICAgICAgYEZhaWxlZCBydW5uaW5nIGNsb3VkIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSBmb3IgdXNlciAke3VzZXJTdHJpbmd9IHdpdGg6XFxuICBJbnB1dDogJHtjbGVhbklucHV0fVxcbiAgRXJyb3I6IGAgK1xuICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZXJyb3IpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgdXNlcjogdXNlclN0cmluZyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBjb25zdCB7IHN1Y2Nlc3MsIGVycm9yIH0gPSByZXNwb25zZU9iamVjdDtcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdHJpZ2dlcnMubWF5YmVSdW5WYWxpZGF0b3IocmVxdWVzdCwgZnVuY3Rpb25OYW1lLCByZXEuYXV0aCk7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAvLyBDaGVjayBpZiBmdW5jdGlvbiBleHBlY3RzIDIgcGFyYW1ldGVycyAocmVxLCByZXMpIC0gRXhwcmVzcyBzdHlsZVxuICAgICAgICAgIGlmICh0aGVGdW5jdGlvbi5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgcmV0dXJuIHRoZUZ1bmN0aW9uKHJlcXVlc3QsIHJlc3BvbnNlT2JqZWN0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVHJhZGl0aW9uYWwgc3R5bGUgLSBzaW5nbGUgcGFyYW1ldGVyXG4gICAgICAgICAgICByZXR1cm4gdGhlRnVuY3Rpb24ocmVxdWVzdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgIC8vIEZvciBFeHByZXNzLXN0eWxlIGZ1bmN0aW9ucywgb25seSBzZW5kIHJlc3BvbnNlIGlmIG5vdCBhbHJlYWR5IHNlbnRcbiAgICAgICAgICBpZiAodGhlRnVuY3Rpb24ubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgIGlmICghcmVzcG9uc2VPYmplY3QuX2lzUmVzcG9uc2VTZW50KCkpIHtcbiAgICAgICAgICAgICAgLy8gSWYgRXhwcmVzcy1zdHlsZSBmdW5jdGlvbiByZXR1cm5zIGEgdmFsdWUgd2l0aG91dCBjYWxsaW5nIHJlcy5zdWNjZXNzL2Vycm9yXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzdWx0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBJZiBubyByZXNwb25zZSBzZW50IGFuZCBubyB2YWx1ZSByZXR1cm5lZCwgdGhpcyBpcyBhbiBlcnJvciBpbiB1c2VyIGNvZGVcbiAgICAgICAgICAgICAgLy8gYnV0IHdlIGRvbid0IGhhbmRsZSBpdCBoZXJlIHRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRm9yIHRyYWRpdGlvbmFsIGZ1bmN0aW9ucywgYWx3YXlzIGNhbGwgc3VjY2VzcyB3aXRoIHRoZSByZXN1bHQgKGV2ZW4gaWYgdW5kZWZpbmVkKVxuICAgICAgICAgICAgc3VjY2VzcyhyZXN1bHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyb3IpO1xuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUtBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUE2QixTQUFBRCx1QkFBQVMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQVo3Qjs7QUFFQSxJQUFJRyxLQUFLLEdBQUdYLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQ1csS0FBSztFQUNyQ0MsUUFBUSxH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
|
|
359
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmVzIiwiX1N0YXR1c0hhbmRsZXIiLCJfbG9kYXNoIiwiX2xvZ2dlciIsIl9FcnJvciIsIl9idXNib3kiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJQYXJzZSIsInRyaWdnZXJzIiwicmVkYWN0QnVmZmVycyIsIm9iaiIsIkJ1ZmZlciIsImlzQnVmZmVyIiwibGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwicmVzdWx0Iiwia2V5IiwiT2JqZWN0Iiwia2V5cyIsInBhcnNlT2JqZWN0IiwiY29uZmlnIiwiaXRlbSIsIl9fdHlwZSIsImFzc2lnbiIsIkRhdGUiLCJpc28iLCJ1cmwiLCJ2YWxpZGF0ZUZpbGVVcmwiLCJGaWxlIiwiZnJvbUpTT04iLCJjbGFzc05hbWUiLCJvYmplY3RJZCIsInBhcnNlUGFyYW1zIiwicGFyYW1zIiwiXyIsIm1hcFZhbHVlcyIsIkZ1bmN0aW9uc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5IiwibXVsdGlwYXJ0TWlkZGxld2FyZSIsImhhbmRsZUNsb3VkRnVuY3Rpb24iLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyIsInJlcSIsImhhbmRsZUNsb3VkSm9iIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJjcmVhdGVTYW5pdGl6ZWRFcnJvciIsIkVycm9yIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsImpvYk5hbWUiLCJib2R5IiwiYXBwbGljYXRpb25JZCIsImpvYkhhbmRsZXIiLCJqb2JTdGF0dXNIYW5kbGVyIiwiam9iRnVuY3Rpb24iLCJnZXRKb2IiLCJTQ1JJUFRfRkFJTEVEIiwicXVlcnkiLCJyZXF1ZXN0IiwibG9nIiwibG9nZ2VyQ29udHJvbGxlciIsImhlYWRlcnMiLCJpcCIsIm1lc3NhZ2UiLCJzZXRNZXNzYWdlIiwiYmluZCIsInNldFJ1bm5pbmciLCJ0aGVuIiwiam9iU3RhdHVzIiwiam9iSWQiLCJwcm9jZXNzIiwibmV4dFRpY2siLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFN1Y2NlZWRlZCIsImVycm9yIiwic2V0RmFpbGVkIiwicmVzcG9uc2UiLCJjcmVhdGVSZXNwb25zZU9iamVjdCIsInJlamVjdCIsInN0YXR1c0NvZGUiLCJodHRwU3RhdHVzQ29kZSIsImN1c3RvbUhlYWRlcnMiLCJyZXNwb25zZVNlbnQiLCJyZXNwb25zZU9iamVjdCIsInN1Y2Nlc3MiLCJfZW5jb2RlIiwic3RhdHVzIiwicmVzb2x2ZUVycm9yIiwiY29kZSIsImhlYWRlciIsInZhbHVlIiwiX2lzUmVzcG9uc2VTZW50IiwiaXMiLCJtYXhCeXRlcyIsIlV0aWxzIiwicGFyc2VTaXplVG9CeXRlcyIsIm1heFVwbG9hZFNpemUiLCJjb250ZW50TGVuZ3RoIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJPQkpFQ1RfVE9PX0xBUkdFIiwiZmllbGRzIiwiY3JlYXRlIiwidG90YWxCeXRlcyIsInNldHRsZWQiLCJidXNib3kiLCJCdXNib3kiLCJsaW1pdHMiLCJmaWVsZFNpemUiLCJlcnIiLCJJTlZBTElEX0pTT04iLCJzYWZlUmVqZWN0IiwidW5waXBlIiwiZGVzdHJveSIsIm9uIiwibmFtZSIsImZpZWxkbmFtZVRydW5jYXRlZCIsInZhbHVlVHJ1bmNhdGVkIiwiYnl0ZUxlbmd0aCIsInN0cmVhbSIsImZpbGVuYW1lIiwidHJhbnNmZXJFbmNvZGluZyIsIm1pbWVUeXBlIiwiY2h1bmtzIiwiY2h1bmsiLCJwdXNoIiwiY29udGVudFR5cGUiLCJkYXRhIiwiY29uY2F0IiwicmF3Qnl0ZXMiLCJwaXBlIiwiZnVuY3Rpb25OYW1lIiwidGhlRnVuY3Rpb24iLCJnZXRGdW5jdGlvbiIsIm1hc3RlciIsImlzTWFzdGVyIiwidXNlciIsImluc3RhbGxhdGlvbklkIiwiaW5mbyIsImNvbnRleHQiLCJ1c2VyU3RyaW5nIiwiaWQiLCJ1bmRlZmluZWQiLCJsb2dMZXZlbHMiLCJjbG91ZEZ1bmN0aW9uU3VjY2VzcyIsImNsZWFuSW5wdXQiLCJsb2dnZXIiLCJ0cnVuY2F0ZUxvZ01lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiY2xlYW5SZXN1bHQiLCJjbG91ZEZ1bmN0aW9uRXJyb3IiLCJtYXliZVJ1blZhbGlkYXRvciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9GdW5jdGlvbnNSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRnVuY3Rpb25zUm91dGVyLmpzXG5cbnZhciBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZSxcbiAgdHJpZ2dlcnMgPSByZXF1aXJlKCcuLi90cmlnZ2VycycpO1xuXG5pbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCB7IHByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3kgfSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgeyBqb2JTdGF0dXNIYW5kbGVyIH0gZnJvbSAnLi4vU3RhdHVzSGFuZGxlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGNyZWF0ZVNhbml0aXplZEVycm9yIH0gZnJvbSAnLi4vRXJyb3InO1xuaW1wb3J0IEJ1c2JveSBmcm9tICdAZmFzdGlmeS9idXNib3knO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcblxuZnVuY3Rpb24gcmVkYWN0QnVmZmVycyhvYmopIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSB7XG4gICAgcmV0dXJuIGBbQnVmZmVyOiAke29iai5sZW5ndGh9IGJ5dGVzXWA7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmoubWFwKHJlZGFjdEJ1ZmZlcnMpO1xuICB9XG4gIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHJlZGFjdEJ1ZmZlcnMob2JqW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIHBhcnNlT2JqZWN0KG9iaiwgY29uZmlnKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiBwYXJzZU9iamVjdChpdGVtLCBjb25maWcpO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKG9iaiAmJiBvYmouX190eXBlID09ICdEYXRlJykge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBEYXRlKG9iai5pc28pLCBvYmopO1xuICB9IGVsc2UgaWYgKG9iaiAmJiBvYmouX190eXBlID09ICdGaWxlJykge1xuICAgIGlmIChvYmoudXJsKSB7XG4gICAgICBjb25zdCB7IHZhbGlkYXRlRmlsZVVybCB9ID0gcmVxdWlyZSgnLi4vRmlsZVVybFZhbGlkYXRvcicpO1xuICAgICAgdmFsaWRhdGVGaWxlVXJsKG9iai51cmwsIGNvbmZpZyk7XG4gICAgfVxuICAgIHJldHVybiBQYXJzZS5GaWxlLmZyb21KU09OKG9iaik7XG4gIH0gZWxzZSBpZiAob2JqICYmIG9iai5fX3R5cGUgPT0gJ1BvaW50ZXInKSB7XG4gICAgcmV0dXJuIFBhcnNlLk9iamVjdC5mcm9tSlNPTih7XG4gICAgICBfX3R5cGU6ICdQb2ludGVyJyxcbiAgICAgIGNsYXNzTmFtZTogb2JqLmNsYXNzTmFtZSxcbiAgICAgIG9iamVjdElkOiBvYmoub2JqZWN0SWQsXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9IGVsc2UgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBwYXJzZVBhcmFtcyhvYmosIGNvbmZpZyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVBhcmFtcyhwYXJhbXMsIGNvbmZpZykge1xuICByZXR1cm4gXy5tYXBWYWx1ZXMocGFyYW1zLCBpdGVtID0+IHBhcnNlT2JqZWN0KGl0ZW0sIGNvbmZpZykpO1xufVxuXG5leHBvcnQgY2xhc3MgRnVuY3Rpb25zUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnUE9TVCcsXG4gICAgICAnL2Z1bmN0aW9ucy86ZnVuY3Rpb25OYW1lJyxcbiAgICAgIHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSxcbiAgICAgIEZ1bmN0aW9uc1JvdXRlci5tdWx0aXBhcnRNaWRkbGV3YXJlLFxuICAgICAgRnVuY3Rpb25zUm91dGVyLmhhbmRsZUNsb3VkRnVuY3Rpb25cbiAgICApO1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnUE9TVCcsXG4gICAgICAnL2pvYnMvOmpvYk5hbWUnLFxuICAgICAgcHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5LFxuICAgICAgcHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsXG4gICAgICBmdW5jdGlvbiAocmVxKSB7XG4gICAgICAgIHJldHVybiBGdW5jdGlvbnNSb3V0ZXIuaGFuZGxlQ2xvdWRKb2IocmVxKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL2pvYnMnLCBwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgZnVuY3Rpb24gKHJlcSkge1xuICAgICAgcmV0dXJuIEZ1bmN0aW9uc1JvdXRlci5oYW5kbGVDbG91ZEpvYihyZXEpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZUNsb3VkSm9iKHJlcSkge1xuICAgIGlmIChyZXEuYXV0aC5pc1JlYWRPbmx5KSB7XG4gICAgICB0aHJvdyBjcmVhdGVTYW5pdGl6ZWRFcnJvcihcbiAgICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgICAgXCJyZWFkLW9ubHkgbWFzdGVyS2V5IGlzbid0IGFsbG93ZWQgdG8gcnVuIGEgam9iLlwiLFxuICAgICAgICByZXEuY29uZmlnXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBqb2JOYW1lID0gcmVxLnBhcmFtcy5qb2JOYW1lIHx8IHJlcS5ib2R5Py5qb2JOYW1lO1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uSWQgPSByZXEuY29uZmlnLmFwcGxpY2F0aW9uSWQ7XG4gICAgY29uc3Qgam9iSGFuZGxlciA9IGpvYlN0YXR1c0hhbmRsZXIocmVxLmNvbmZpZyk7XG4gICAgY29uc3Qgam9iRnVuY3Rpb24gPSB0cmlnZ2Vycy5nZXRKb2Ioam9iTmFtZSwgYXBwbGljYXRpb25JZCk7XG4gICAgaWYgKCFqb2JGdW5jdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlNDUklQVF9GQUlMRUQsICdJbnZhbGlkIGpvYi4nKTtcbiAgICB9XG4gICAgbGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcS5ib2R5LCByZXEucXVlcnkpO1xuICAgIHBhcmFtcyA9IHBhcnNlUGFyYW1zKHBhcmFtcywgcmVxLmNvbmZpZyk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgbG9nOiByZXEuY29uZmlnLmxvZ2dlckNvbnRyb2xsZXIsXG4gICAgICBoZWFkZXJzOiByZXEuY29uZmlnLmhlYWRlcnMsXG4gICAgICBpcDogcmVxLmNvbmZpZy5pcCxcbiAgICAgIGpvYk5hbWUsXG4gICAgICBjb25maWc6IHJlcS5jb25maWcsXG4gICAgICBtZXNzYWdlOiBqb2JIYW5kbGVyLnNldE1lc3NhZ2UuYmluZChqb2JIYW5kbGVyKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpvYkhhbmRsZXIuc2V0UnVubmluZyhqb2JOYW1lKS50aGVuKGpvYlN0YXR1cyA9PiB7XG4gICAgICByZXF1ZXN0LmpvYklkID0gam9iU3RhdHVzLm9iamVjdElkO1xuICAgICAgLy8gcnVuIHRoZSBmdW5jdGlvbiBhc3luY1xuICAgICAgcHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGpvYkZ1bmN0aW9uKHJlcXVlc3QpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICByZXN1bHQgPT4ge1xuICAgICAgICAgICAgICBqb2JIYW5kbGVyLnNldFN1Y2NlZWRlZChyZXN1bHQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgam9iSGFuZGxlci5zZXRGYWlsZWQoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnWC1QYXJzZS1Kb2ItU3RhdHVzLUlkJzogam9iU3RhdHVzLm9iamVjdElkLFxuICAgICAgICB9LFxuICAgICAgICByZXNwb25zZToge30sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVJlc3BvbnNlT2JqZWN0KHJlc29sdmUsIHJlamVjdCwgc3RhdHVzQ29kZSA9IG51bGwpIHtcbiAgICBsZXQgaHR0cFN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIGNvbnN0IGN1c3RvbUhlYWRlcnMgPSB7fTtcbiAgICBsZXQgcmVzcG9uc2VTZW50ID0gZmFsc2U7XG4gICAgY29uc3QgcmVzcG9uc2VPYmplY3QgPSB7XG4gICAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgIGlmIChyZXNwb25zZVNlbnQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjYWxsIHN1Y2Nlc3MoKSBhZnRlciByZXNwb25zZSBoYXMgYWxyZWFkeSBiZWVuIHNlbnQuIE1ha2Ugc3VyZSB0byBjYWxsIHN1Y2Nlc3MoKSBvciBlcnJvcigpIG9ubHkgb25jZSBwZXIgY2xvdWQgZnVuY3Rpb24gZXhlY3V0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3BvbnNlU2VudCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgICByZXN1bHQ6IFBhcnNlLl9lbmNvZGUocmVzdWx0KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBpZiAoaHR0cFN0YXR1c0NvZGUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSBodHRwU3RhdHVzQ29kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY3VzdG9tSGVhZGVycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMgPSBjdXN0b21IZWFkZXJzO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgICAgICBpZiAocmVzcG9uc2VTZW50KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2FsbCBlcnJvcigpIGFmdGVyIHJlc3BvbnNlIGhhcyBhbHJlYWR5IGJlZW4gc2VudC4gTWFrZSBzdXJlIHRvIGNhbGwgc3VjY2VzcygpIG9yIGVycm9yKCkgb25seSBvbmNlIHBlciBjbG91ZCBmdW5jdGlvbiBleGVjdXRpb24uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzcG9uc2VTZW50ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0cmlnZ2Vycy5yZXNvbHZlRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIC8vIElmIGEgY3VzdG9tIHN0YXR1cyBjb2RlIHdhcyBzZXQsIGF0dGFjaCBpdCB0byB0aGUgZXJyb3JcbiAgICAgICAgaWYgKGh0dHBTdGF0dXNDb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gaHR0cFN0YXR1c0NvZGU7XG4gICAgICAgIH1cbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH0sXG4gICAgICBzdGF0dXM6IGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgIGh0dHBTdGF0dXNDb2RlID0gY29kZTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0O1xuICAgICAgfSxcbiAgICAgIGhlYWRlcjogZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgY3VzdG9tSGVhZGVyc1trZXldID0gdmFsdWU7XG4gICAgICAgIHJldHVybiByZXNwb25zZU9iamVjdDtcbiAgICAgIH0sXG4gICAgICBfaXNSZXNwb25zZVNlbnQ6ICgpID0+IHJlc3BvbnNlU2VudCxcbiAgICB9O1xuICAgIHJldHVybiByZXNwb25zZU9iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgbXVsdGlwYXJ0L2Zvcm0tZGF0YSByZXF1ZXN0cyBmb3IgQ2xvdWQgRnVuY3Rpb24gaW52b2NhdGlvbi5cbiAgICogRm9yIG5vbi1tdWx0aXBhcnQgcmVxdWVzdHMsIHRoaXMgaXMgYSBuby1vcC5cbiAgICpcbiAgICogVGV4dCBmaWVsZHMgYXJlIHNldCBhcyBzdHJpbmdzIGluIGByZXEuYm9keWAuIEZpbGUgZmllbGRzIGFyZSBzZXQgYXNcbiAgICogb2JqZWN0cyB3aXRoIHRoZSBzaGFwZSBgeyBmaWxlbmFtZTogc3RyaW5nLCBjb250ZW50VHlwZTogc3RyaW5nLCBkYXRhOiBCdWZmZXIgfWAuXG4gICAqIEFsbCBmaWVsZHMgYXJlIG1lcmdlZCBmbGF0IGludG8gYHJlcS5ib2R5YDsgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3JcbiAgICogYXZvaWRpbmcgbmFtZSBjb2xsaXNpb25zIGJldHdlZW4gdGV4dCBhbmQgZmlsZSBmaWVsZHMuXG4gICAqXG4gICAqIFRoZSB0b3RhbCByZXF1ZXN0IHNpemUgaXMgbGltaXRlZCBieSB0aGUgc2VydmVyJ3MgYG1heFVwbG9hZFNpemVgIG9wdGlvbi5cbiAgICovXG4gIHN0YXRpYyBtdWx0aXBhcnRNaWRkbGV3YXJlKHJlcSkge1xuICAgIGlmICghcmVxLmlzIHx8ICFyZXEuaXMoJ211bHRpcGFydC9mb3JtLWRhdGEnKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICBjb25zdCBtYXhCeXRlcyA9IFV0aWxzLnBhcnNlU2l6ZVRvQnl0ZXMocmVxLmNvbmZpZy5tYXhVcGxvYWRTaXplKTtcbiAgICAvLyBSZWplY3QgZWFybHkgd2hlbiB0aGUgZGVjbGFyZWQgcmVxdWVzdCBzaXplIGFscmVhZHkgZXhjZWVkcyB0aGUgbGltaXQuXG4gICAgY29uc3QgY29udGVudExlbmd0aCA9IE51bWJlcihyZXEuaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSk7XG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShjb250ZW50TGVuZ3RoKSAmJiBjb250ZW50TGVuZ3RoID4gbWF4Qnl0ZXMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9UT09fTEFSR0UsXG4gICAgICAgICAgJ011bHRpcGFydCByZXF1ZXN0IGV4Y2VlZHMgbWF4aW11bSB1cGxvYWQgc2l6ZS4nXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBmaWVsZHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgbGV0IHRvdGFsQnl0ZXMgPSAwO1xuICAgICAgbGV0IHNldHRsZWQgPSBmYWxzZTtcbiAgICAgIGxldCBidXNib3k7XG4gICAgICB0cnkge1xuICAgICAgICBidXNib3kgPSBCdXNib3koeyBoZWFkZXJzOiByZXEuaGVhZGVycywgbGltaXRzOiB7IGZpZWxkU2l6ZTogbWF4Qnl0ZXMgfSB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KFxuICAgICAgICAgIG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sIGBJbnZhbGlkIG11bHRpcGFydCByZXF1ZXN0OiAke2Vyci5tZXNzYWdlfWApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBzYWZlUmVqZWN0ID0gZXJyID0+IHtcbiAgICAgICAgaWYgKHNldHRsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0dGxlZCA9IHRydWU7XG4gICAgICAgIHJlcS51bnBpcGUoYnVzYm95KTtcbiAgICAgICAgYnVzYm95LmRlc3Ryb3koKTtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9O1xuICAgICAgYnVzYm95Lm9uKCdmaWVsZCcsIChuYW1lLCB2YWx1ZSwgZmllbGRuYW1lVHJ1bmNhdGVkLCB2YWx1ZVRydW5jYXRlZCkgPT4ge1xuICAgICAgICBpZiAodmFsdWVUcnVuY2F0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gc2FmZVJlamVjdChcbiAgICAgICAgICAgIG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX1RPT19MQVJHRSxcbiAgICAgICAgICAgICAgJ011bHRpcGFydCByZXF1ZXN0IGV4Y2VlZHMgbWF4aW11bSB1cGxvYWQgc2l6ZS4nXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0b3RhbEJ5dGVzICs9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlKTtcbiAgICAgICAgaWYgKHRvdGFsQnl0ZXMgPiBtYXhCeXRlcykge1xuICAgICAgICAgIHJldHVybiBzYWZlUmVqZWN0KFxuICAgICAgICAgICAgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfVE9PX0xBUkdFLFxuICAgICAgICAgICAgICAnTXVsdGlwYXJ0IHJlcXVlc3QgZXhjZWVkcyBtYXhpbXVtIHVwbG9hZCBzaXplLidcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgfSk7XG4gICAgICBidXNib3kub24oJ2ZpbGUnLCAobmFtZSwgc3RyZWFtLCBmaWxlbmFtZSwgdHJhbnNmZXJFbmNvZGluZywgbWltZVR5cGUpID0+IHtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICAgIHN0cmVhbS5vbignZGF0YScsIGNodW5rID0+IHtcbiAgICAgICAgICB0b3RhbEJ5dGVzICs9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgICBpZiAodG90YWxCeXRlcyA+IG1heEJ5dGVzKSB7XG4gICAgICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICAgICAgcmV0dXJuIHNhZmVSZWplY3QoXG4gICAgICAgICAgICAgIG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfVE9PX0xBUkdFLFxuICAgICAgICAgICAgICAgICdNdWx0aXBhcnQgcmVxdWVzdCBleGNlZWRzIG1heGltdW0gdXBsb2FkIHNpemUuJ1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgIH0pO1xuICAgICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICBpZiAoc2V0dGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmaWVsZHNbbmFtZV0gPSB7XG4gICAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBtaW1lVHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgIGRhdGE6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgYnVzYm95Lm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzZXR0bGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldHRsZWQgPSB0cnVlO1xuICAgICAgICByZXEuYm9keSA9IGZpZWxkcztcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgICBidXNib3kub24oJ2Vycm9yJywgZXJyID0+IHtcbiAgICAgICAgc2FmZVJlamVjdChcbiAgICAgICAgICBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OLCBgSW52YWxpZCBtdWx0aXBhcnQgcmVxdWVzdDogJHtlcnIubWVzc2FnZX1gKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICAvLyBFbmZvcmNlIGBtYXhVcGxvYWRTaXplYCBhZ2FpbnN0IHRoZSByYXcgcmVxdWVzdCBieXRlcyAobXVsdGlwYXJ0XG4gICAgICAvLyBib3VuZGFyaWVzLCBwYXJ0IGhlYWRlcnMsIGZpZWxkIG5hbWVzIGFuZCBwYXJ0IGNvdW50IGluY2x1ZGVkKSwgbm90IG9ubHlcbiAgICAgIC8vIHRoZSBwYXJzZWQgZmllbGQgdmFsdWVzIGFuZCBmaWxlIGNvbnRlbnRzLiBUaGlzIG1pcnJvcnMgaG93XG4gICAgICAvLyBgZXhwcmVzcy5qc29uYCBib3VuZHMgbm9uLW11bHRpcGFydCBib2RpZXMgYW5kIHN0b3BzIGEgcmVxdWVzdCBjb21wb3NlZFxuICAgICAgLy8gb2YgbWFueSBlbXB0eSBwYXJ0cyBmcm9tIGV4Y2VlZGluZyB0aGUgbGltaXQgb24gdGhlIHdpcmUuXG4gICAgICBsZXQgcmF3Qnl0ZXMgPSAwO1xuICAgICAgcmVxLm9uKCdkYXRhJywgY2h1bmsgPT4ge1xuICAgICAgICByYXdCeXRlcyArPSBjaHVuay5sZW5ndGg7XG4gICAgICAgIGlmIChyYXdCeXRlcyA+IG1heEJ5dGVzKSB7XG4gICAgICAgICAgc2FmZVJlamVjdChcbiAgICAgICAgICAgIG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX1RPT19MQVJHRSxcbiAgICAgICAgICAgICAgJ011bHRpcGFydCByZXF1ZXN0IGV4Y2VlZHMgbWF4aW11bSB1cGxvYWQgc2l6ZS4nXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXEucGlwZShidXNib3kpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZUNsb3VkRnVuY3Rpb24ocmVxKSB7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gcmVxLnBhcmFtcy5mdW5jdGlvbk5hbWU7XG4gICAgY29uc3QgYXBwbGljYXRpb25JZCA9IHJlcS5jb25maWcuYXBwbGljYXRpb25JZDtcbiAgICBjb25zdCB0aGVGdW5jdGlvbiA9IHRyaWdnZXJzLmdldEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgYXBwbGljYXRpb25JZCk7XG5cbiAgICBpZiAoIXRoZUZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuU0NSSVBUX0ZBSUxFRCwgYEludmFsaWQgZnVuY3Rpb246IFwiJHtmdW5jdGlvbk5hbWV9XCJgKTtcbiAgICB9XG4gICAgbGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcS5ib2R5LCByZXEucXVlcnkpO1xuICAgIHBhcmFtcyA9IHBhcnNlUGFyYW1zKHBhcmFtcywgcmVxLmNvbmZpZyk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgY29uZmlnOiByZXEuY29uZmlnLFxuICAgICAgbWFzdGVyOiByZXEuYXV0aCAmJiByZXEuYXV0aC5pc01hc3RlcixcbiAgICAgIGlzUmVhZE9ubHk6ICEhKHJlcS5hdXRoICYmIHJlcS5hdXRoLmlzUmVhZE9ubHkpLFxuICAgICAgdXNlcjogcmVxLmF1dGggJiYgcmVxLmF1dGgudXNlcixcbiAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuaW5mby5pbnN0YWxsYXRpb25JZCxcbiAgICAgIGxvZzogcmVxLmNvbmZpZy5sb2dnZXJDb250cm9sbGVyLFxuICAgICAgaGVhZGVyczogcmVxLmNvbmZpZy5oZWFkZXJzLFxuICAgICAgaXA6IHJlcS5jb25maWcuaXAsXG4gICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICBjb250ZXh0OiByZXEuaW5mby5jb250ZXh0LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgY29uc3QgdXNlclN0cmluZyA9IHJlcS5hdXRoICYmIHJlcS5hdXRoLnVzZXIgPyByZXEuYXV0aC51c2VyLmlkIDogdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcmVzcG9uc2VPYmplY3QgPSBGdW5jdGlvbnNSb3V0ZXIuY3JlYXRlUmVzcG9uc2VPYmplY3QoXG4gICAgICAgIHJlc3VsdCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyZXEuY29uZmlnLmxvZ0xldmVscy5jbG91ZEZ1bmN0aW9uU3VjY2VzcyAhPT0gJ3NpbGVudCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2xlYW5JbnB1dCA9IGxvZ2dlci50cnVuY2F0ZUxvZ01lc3NhZ2UoSlNPTi5zdHJpbmdpZnkocmVkYWN0QnVmZmVycyhwYXJhbXMpKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGNsZWFuUmVzdWx0ID0gbG9nZ2VyLnRydW5jYXRlTG9nTWVzc2FnZShKU09OLnN0cmluZ2lmeShyZXN1bHQucmVzcG9uc2UucmVzdWx0KSk7XG4gICAgICAgICAgICAgIGxvZ2dlcltyZXEuY29uZmlnLmxvZ0xldmVscy5jbG91ZEZ1bmN0aW9uU3VjY2Vzc10oXG4gICAgICAgICAgICAgICAgYFJhbiBjbG91ZCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gZm9yIHVzZXIgJHt1c2VyU3RyaW5nfSB3aXRoOlxcbiAgSW5wdXQ6ICR7Y2xlYW5JbnB1dH1cXG4gIFJlc3VsdDogJHtjbGVhblJlc3VsdH1gLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgIHVzZXI6IHVzZXJTdHJpbmcsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHJlcS5jb25maWcubG9nTGV2ZWxzLmNsb3VkRnVuY3Rpb25FcnJvciAhPT0gJ3NpbGVudCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2xlYW5JbnB1dCA9IGxvZ2dlci50cnVuY2F0ZUxvZ01lc3NhZ2UoSlNPTi5zdHJpbmdpZnkocmVkYWN0QnVmZmVycyhwYXJhbXMpKSk7XG4gICAgICAgICAgICAgIGxvZ2dlcltyZXEuY29uZmlnLmxvZ0xldmVscy5jbG91ZEZ1bmN0aW9uRXJyb3JdKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgcnVubmluZyBjbG91ZCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gZm9yIHVzZXIgJHt1c2VyU3RyaW5nfSB3aXRoOlxcbiAgSW5wdXQ6ICR7Y2xlYW5JbnB1dH1cXG4gIEVycm9yOiBgICtcbiAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGVycm9yKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgIHVzZXI6IHVzZXJTdHJpbmcsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY29uc3QgeyBzdWNjZXNzLCBlcnJvciB9ID0gcmVzcG9uc2VPYmplY3Q7XG5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRyaWdnZXJzLm1heWJlUnVuVmFsaWRhdG9yKHJlcXVlc3QsIGZ1bmN0aW9uTmFtZSwgcmVxLmF1dGgpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgZnVuY3Rpb24gZXhwZWN0cyAyIHBhcmFtZXRlcnMgKHJlcSwgcmVzKSAtIEV4cHJlc3Mgc3R5bGVcbiAgICAgICAgICBpZiAodGhlRnVuY3Rpb24ubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGVGdW5jdGlvbihyZXF1ZXN0LCByZXNwb25zZU9iamVjdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRyYWRpdGlvbmFsIHN0eWxlIC0gc2luZ2xlIHBhcmFtZXRlclxuICAgICAgICAgICAgcmV0dXJuIHRoZUZ1bmN0aW9uKHJlcXVlc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAvLyBGb3IgRXhwcmVzcy1zdHlsZSBmdW5jdGlvbnMsIG9ubHkgc2VuZCByZXNwb25zZSBpZiBub3QgYWxyZWFkeSBzZW50XG4gICAgICAgICAgaWYgKHRoZUZ1bmN0aW9uLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlT2JqZWN0Ll9pc1Jlc3BvbnNlU2VudCgpKSB7XG4gICAgICAgICAgICAgIC8vIElmIEV4cHJlc3Mtc3R5bGUgZnVuY3Rpb24gcmV0dXJucyBhIHZhbHVlIHdpdGhvdXQgY2FsbGluZyByZXMuc3VjY2Vzcy9lcnJvclxuICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzdWNjZXNzKHJlc3VsdCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gSWYgbm8gcmVzcG9uc2Ugc2VudCBhbmQgbm8gdmFsdWUgcmV0dXJuZWQsIHRoaXMgaXMgYW4gZXJyb3IgaW4gdXNlciBjb2RlXG4gICAgICAgICAgICAgIC8vIGJ1dCB3ZSBkb24ndCBoYW5kbGUgaXQgaGVyZSB0byBtYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZvciB0cmFkaXRpb25hbCBmdW5jdGlvbnMsIGFsd2F5cyBjYWxsIHN1Y2Nlc3Mgd2l0aCB0aGUgcmVzdWx0IChldmVuIGlmIHVuZGVmaW5lZClcbiAgICAgICAgICAgIHN1Y2Nlc3MocmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yKTtcbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFKLHNCQUFBLENB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
|
|
@@ -53,7 +53,7 @@ function validateWithAppStore(url, receipt) {
|
|
|
53
53
|
function getFileForProductIdentifier(productIdentifier, req) {
|
|
54
54
|
return rest.find(req.config, req.auth, '_Product', {
|
|
55
55
|
productIdentifier: productIdentifier
|
|
56
|
-
}, undefined, req.info.
|
|
56
|
+
}, undefined, req.info.context).then(function (result) {
|
|
57
57
|
const products = result.results;
|
|
58
58
|
if (!products || products.length != 1) {
|
|
59
59
|
// Error not found or too many
|
|
@@ -110,4 +110,4 @@ class IAPValidationRouter extends _PromiseRouter.default {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
exports.IAPValidationRouter = IAPValidationRouter;
|
|
113
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX25vZGUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJyZXF1ZXN0IiwicmVzdCIsIklBUF9TQU5EQk9YX1VSTCIsIklBUF9QUk9EVUNUSU9OX1VSTCIsIkFQUF9TVE9SRV9FUlJPUlMiLCJhcHBTdG9yZUVycm9yIiwic3RhdHVzIiwicGFyc2VJbnQiLCJlcnJvclN0cmluZyIsImVycm9yIiwidmFsaWRhdGVXaXRoQXBwU3RvcmUiLCJ1cmwiLCJyZWNlaXB0IiwibWV0aG9kIiwiYm9keSIsImhlYWRlcnMiLCJ0aGVuIiwiaHR0cFJlc3BvbnNlIiwiZGF0YSIsImdldEZpbGVGb3JQcm9kdWN0SWRlbnRpZmllciIsInByb2R1Y3RJZGVudGlmaWVyIiwicmVxIiwiZmluZCIsImNvbmZpZyIsImF1dGgiLCJ1bmRlZmluZWQiLCJpbmZvIiwiY2xpZW50U0RLIiwiY29udGV4dCIsInJlc3VsdCIsInByb2R1Y3RzIiwicmVzdWx0cyIsImxlbmd0aCIsIlBhcnNlIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiZG93bmxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlc3BvbnNlIiwiSUFQVmFsaWRhdGlvblJvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJoYW5kbGVSZXF1ZXN0IiwiSU5WQUxJRF9KU09OIiwiYmFzZTY0IiwicHJvY2VzcyIsImVudiIsIlRFU1RJTkciLCJieXBhc3NBcHBTdG9yZVZhbGlkYXRpb24iLCJzdWNjZXNzQ2FsbGJhY2siLCJlcnJvckNhbGxiYWNrIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9JQVBWYWxpZGF0aW9uUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9taXNlUm91dGVyIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoJy4uL3JlcXVlc3QnKTtcbmNvbnN0IHJlc3QgPSByZXF1aXJlKCcuLi9yZXN0Jyk7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5cbi8vIFRPRE8gbW92ZSB2YWxpZGF0aW9uIGxvZ2ljIGluIElBUFZhbGlkYXRpb25Db250cm9sbGVyXG5jb25zdCBJQVBfU0FOREJPWF9VUkwgPSAnaHR0cHM6Ly9zYW5kYm94Lml0dW5lcy5hcHBsZS5jb20vdmVyaWZ5UmVjZWlwdCc7XG5jb25zdCBJQVBfUFJPRFVDVElPTl9VUkwgPSAnaHR0cHM6Ly9idXkuaXR1bmVzLmFwcGxlLmNvbS92ZXJpZnlSZWNlaXB0JztcblxuY29uc3QgQVBQX1NUT1JFX0VSUk9SUyA9IHtcbiAgMjEwMDA6ICdUaGUgQXBwIFN0b3JlIGNvdWxkIG5vdCByZWFkIHRoZSBKU09OIG9iamVjdCB5b3UgcHJvdmlkZWQuJyxcbiAgMjEwMDI6ICdUaGUgZGF0YSBpbiB0aGUgcmVjZWlwdC1kYXRhIHByb3BlcnR5IHdhcyBtYWxmb3JtZWQgb3IgbWlzc2luZy4nLFxuICAyMTAwMzogJ1RoZSByZWNlaXB0IGNvdWxkIG5vdCBiZSBhdXRoZW50aWNhdGVkLicsXG4gIDIxMDA0OiAnVGhlIHNoYXJlZCBzZWNyZXQgeW91IHByb3ZpZGVkIGRvZXMgbm90IG1hdGNoIHRoZSBzaGFyZWQgc2VjcmV0IG9uIGZpbGUgZm9yIHlvdXIgYWNjb3VudC4nLFxuICAyMTAwNTogJ1RoZSByZWNlaXB0IHNlcnZlciBpcyBub3QgY3VycmVudGx5IGF2YWlsYWJsZS4nLFxuICAyMTAwNjogJ1RoaXMgcmVjZWlwdCBpcyB2YWxpZCBidXQgdGhlIHN1YnNjcmlwdGlvbiBoYXMgZXhwaXJlZC4nLFxuICAyMTAwNzogJ1RoaXMgcmVjZWlwdCBpcyBmcm9tIHRoZSB0ZXN0IGVudmlyb25tZW50LCBidXQgaXQgd2FzIHNlbnQgdG8gdGhlIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgZm9yIHZlcmlmaWNhdGlvbi4gU2VuZCBpdCB0byB0aGUgdGVzdCBlbnZpcm9ubWVudCBpbnN0ZWFkLicsXG4gIDIxMDA4OiAnVGhpcyByZWNlaXB0IGlzIGZyb20gdGhlIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQsIGJ1dCBpdCB3YXMgc2VudCB0byB0aGUgdGVzdCBlbnZpcm9ubWVudCBmb3IgdmVyaWZpY2F0aW9uLiBTZW5kIGl0IHRvIHRoZSBwcm9kdWN0aW9uIGVudmlyb25tZW50IGluc3RlYWQuJyxcbn07XG5cbmZ1bmN0aW9uIGFwcFN0b3JlRXJyb3Ioc3RhdHVzKSB7XG4gIHN0YXR1cyA9IHBhcnNlSW50KHN0YXR1cyk7XG4gIHZhciBlcnJvclN0cmluZyA9IEFQUF9TVE9SRV9FUlJPUlNbc3RhdHVzXSB8fCAndW5rbm93biBlcnJvci4nO1xuICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cywgZXJyb3I6IGVycm9yU3RyaW5nIH07XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlV2l0aEFwcFN0b3JlKHVybCwgcmVjZWlwdCkge1xuICByZXR1cm4gcmVxdWVzdCh7XG4gICAgdXJsOiB1cmwsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgYm9keTogeyAncmVjZWlwdC1kYXRhJzogcmVjZWlwdCB9LFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSxcbiAgfSkudGhlbihodHRwUmVzcG9uc2UgPT4ge1xuICAgIGNvbnN0IGJvZHkgPSBodHRwUmVzcG9uc2UuZGF0YTtcbiAgICBpZiAoYm9keSAmJiBib2R5LnN0YXR1cyA9PT0gMCkge1xuICAgICAgLy8gTm8gbmVlZCB0byBwYXNzIGFueXRoaW5nLCBzdGF0dXMgaXMgT0tcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gcmVjZWlwdCBpcyBmcm9tIHRlc3QgYW5kIHNob3VsZCBnbyB0byB0ZXN0XG4gICAgdGhyb3cgYm9keTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldEZpbGVGb3JQcm9kdWN0SWRlbnRpZmllcihwcm9kdWN0SWRlbnRpZmllciwgcmVxKSB7XG4gIHJldHVybiByZXN0XG4gICAgLmZpbmQoXG4gICAgICByZXEuY29uZmlnLFxuICAgICAgcmVxLmF1dGgsXG4gICAgICAnX1Byb2R1Y3QnLFxuICAgICAgeyBwcm9kdWN0SWRlbnRpZmllcjogcHJvZHVjdElkZW50aWZpZXIgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHJlcS5pbmZvLmNsaWVudFNESyxcbiAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICApXG4gICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgY29uc3QgcHJvZHVjdHMgPSByZXN1bHQucmVzdWx0cztcbiAgICAgIGlmICghcHJvZHVjdHMgfHwgcHJvZHVjdHMubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgLy8gRXJyb3Igbm90IGZvdW5kIG9yIHRvbyBtYW55XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnT2JqZWN0IG5vdCBmb3VuZC4nKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGRvd25sb2FkID0gcHJvZHVjdHNbMF0uZG93bmxvYWQ7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcmVzcG9uc2U6IGRvd25sb2FkIH0pO1xuICAgIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgSUFQVmFsaWRhdGlvblJvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBoYW5kbGVSZXF1ZXN0KHJlcSkge1xuICAgIGxldCByZWNlaXB0ID0gcmVxLmJvZHk/LnJlY2VpcHQ7XG4gICAgY29uc3QgcHJvZHVjdElkZW50aWZpZXIgPSByZXEuYm9keT8ucHJvZHVjdElkZW50aWZpZXI7XG5cbiAgICBpZiAoIXJlY2VpcHQgfHwgIXByb2R1Y3RJZGVudGlmaWVyKSB7XG4gICAgICAvLyBUT0RPOiBFcnJvciwgbWFsZm9ybWVkIHJlcXVlc3RcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICdtaXNzaW5nIHJlY2VpcHQgb3IgcHJvZHVjdElkZW50aWZpZXInKTtcbiAgICB9XG5cbiAgICAvLyBUcmFuc2Zvcm0gdGhlIG9iamVjdCBpZiB0aGVyZVxuICAgIC8vIG90aGVyd2lzZSBhc3N1bWUgaXQncyBpbiBCYXNlNjQgYWxyZWFkeVxuICAgIGlmICh0eXBlb2YgcmVjZWlwdCA9PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKHJlY2VpcHRbJ19fdHlwZSddID09ICdCeXRlcycpIHtcbiAgICAgICAgcmVjZWlwdCA9IHJlY2VpcHQuYmFzZTY0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5URVNUSU5HID09ICcxJyAmJiByZXEuYm9keT8uYnlwYXNzQXBwU3RvcmVWYWxpZGF0aW9uKSB7XG4gICAgICByZXR1cm4gZ2V0RmlsZUZvclByb2R1Y3RJZGVudGlmaWVyKHByb2R1Y3RJZGVudGlmaWVyLCByZXEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjaygpIHtcbiAgICAgIHJldHVybiBnZXRGaWxlRm9yUHJvZHVjdElkZW50aWZpZXIocHJvZHVjdElkZW50aWZpZXIsIHJlcSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhlcnJvcikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3BvbnNlOiBhcHBTdG9yZUVycm9yKGVycm9yLnN0YXR1cykgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlV2l0aEFwcFN0b3JlKElBUF9QUk9EVUNUSU9OX1VSTCwgcmVjZWlwdCkudGhlbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3NDYWxsYmFjaygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSAyMTAwNykge1xuICAgICAgICAgIHJldHVybiB2YWxpZGF0ZVdpdGhBcHBTdG9yZShJQVBfU0FOREJPWF9VUkwsIHJlY2VpcHQpLnRoZW4oXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBlcnJvckNhbGxiYWNrKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yQ2FsbGJhY2soZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy92YWxpZGF0ZV9wdXJjaGFzZScsIHRoaXMuaGFuZGxlUmVxdWVzdCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQStCLFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRi9CLE1BQU1HLE9BQU8sR0FBR0wsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUNyQyxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFHL0I7QUFDQSxNQUFNTyxlQUFlLEdBQUcsZ0RBQWdEO0FBQ3hFLE1BQU1DLGtCQUFrQixHQUFHLDRDQUE0QztBQUV2RSxNQUFNQyxnQkFBZ0IsR0FBRztFQUN2QixLQUFLLEVBQUUsNERBQTREO0VBQ25FLEtBQUssRUFBRSxpRUFBaUU7RUFDeEUsS0FBSyxFQUFFLHlDQUF5QztFQUNoRCxLQUFLLEVBQUUsMkZBQTJGO0VBQ2xHLEtBQUssRUFBRSxnREFBZ0Q7RUFDdkQsS0FBSyxFQUFFLHlEQUF5RDtFQUNoRSxLQUFLLEVBQUUscUpBQXFKO0VBQzVKLEtB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
|
|
113
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX25vZGUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJyZXF1ZXN0IiwicmVzdCIsIklBUF9TQU5EQk9YX1VSTCIsIklBUF9QUk9EVUNUSU9OX1VSTCIsIkFQUF9TVE9SRV9FUlJPUlMiLCJhcHBTdG9yZUVycm9yIiwic3RhdHVzIiwicGFyc2VJbnQiLCJlcnJvclN0cmluZyIsImVycm9yIiwidmFsaWRhdGVXaXRoQXBwU3RvcmUiLCJ1cmwiLCJyZWNlaXB0IiwibWV0aG9kIiwiYm9keSIsImhlYWRlcnMiLCJ0aGVuIiwiaHR0cFJlc3BvbnNlIiwiZGF0YSIsImdldEZpbGVGb3JQcm9kdWN0SWRlbnRpZmllciIsInByb2R1Y3RJZGVudGlmaWVyIiwicmVxIiwiZmluZCIsImNvbmZpZyIsImF1dGgiLCJ1bmRlZmluZWQiLCJpbmZvIiwiY29udGV4dCIsInJlc3VsdCIsInByb2R1Y3RzIiwicmVzdWx0cyIsImxlbmd0aCIsIlBhcnNlIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiZG93bmxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlc3BvbnNlIiwiSUFQVmFsaWRhdGlvblJvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJoYW5kbGVSZXF1ZXN0IiwiSU5WQUxJRF9KU09OIiwiYmFzZTY0IiwicHJvY2VzcyIsImVudiIsIlRFU1RJTkciLCJieXBhc3NBcHBTdG9yZVZhbGlkYXRpb24iLCJzdWNjZXNzQ2FsbGJhY2siLCJlcnJvckNhbGxiYWNrIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9JQVBWYWxpZGF0aW9uUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9taXNlUm91dGVyIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoJy4uL3JlcXVlc3QnKTtcbmNvbnN0IHJlc3QgPSByZXF1aXJlKCcuLi9yZXN0Jyk7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5cbi8vIFRPRE8gbW92ZSB2YWxpZGF0aW9uIGxvZ2ljIGluIElBUFZhbGlkYXRpb25Db250cm9sbGVyXG5jb25zdCBJQVBfU0FOREJPWF9VUkwgPSAnaHR0cHM6Ly9zYW5kYm94Lml0dW5lcy5hcHBsZS5jb20vdmVyaWZ5UmVjZWlwdCc7XG5jb25zdCBJQVBfUFJPRFVDVElPTl9VUkwgPSAnaHR0cHM6Ly9idXkuaXR1bmVzLmFwcGxlLmNvbS92ZXJpZnlSZWNlaXB0JztcblxuY29uc3QgQVBQX1NUT1JFX0VSUk9SUyA9IHtcbiAgMjEwMDA6ICdUaGUgQXBwIFN0b3JlIGNvdWxkIG5vdCByZWFkIHRoZSBKU09OIG9iamVjdCB5b3UgcHJvdmlkZWQuJyxcbiAgMjEwMDI6ICdUaGUgZGF0YSBpbiB0aGUgcmVjZWlwdC1kYXRhIHByb3BlcnR5IHdhcyBtYWxmb3JtZWQgb3IgbWlzc2luZy4nLFxuICAyMTAwMzogJ1RoZSByZWNlaXB0IGNvdWxkIG5vdCBiZSBhdXRoZW50aWNhdGVkLicsXG4gIDIxMDA0OiAnVGhlIHNoYXJlZCBzZWNyZXQgeW91IHByb3ZpZGVkIGRvZXMgbm90IG1hdGNoIHRoZSBzaGFyZWQgc2VjcmV0IG9uIGZpbGUgZm9yIHlvdXIgYWNjb3VudC4nLFxuICAyMTAwNTogJ1RoZSByZWNlaXB0IHNlcnZlciBpcyBub3QgY3VycmVudGx5IGF2YWlsYWJsZS4nLFxuICAyMTAwNjogJ1RoaXMgcmVjZWlwdCBpcyB2YWxpZCBidXQgdGhlIHN1YnNjcmlwdGlvbiBoYXMgZXhwaXJlZC4nLFxuICAyMTAwNzogJ1RoaXMgcmVjZWlwdCBpcyBmcm9tIHRoZSB0ZXN0IGVudmlyb25tZW50LCBidXQgaXQgd2FzIHNlbnQgdG8gdGhlIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgZm9yIHZlcmlmaWNhdGlvbi4gU2VuZCBpdCB0byB0aGUgdGVzdCBlbnZpcm9ubWVudCBpbnN0ZWFkLicsXG4gIDIxMDA4OiAnVGhpcyByZWNlaXB0IGlzIGZyb20gdGhlIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQsIGJ1dCBpdCB3YXMgc2VudCB0byB0aGUgdGVzdCBlbnZpcm9ubWVudCBmb3IgdmVyaWZpY2F0aW9uLiBTZW5kIGl0IHRvIHRoZSBwcm9kdWN0aW9uIGVudmlyb25tZW50IGluc3RlYWQuJyxcbn07XG5cbmZ1bmN0aW9uIGFwcFN0b3JlRXJyb3Ioc3RhdHVzKSB7XG4gIHN0YXR1cyA9IHBhcnNlSW50KHN0YXR1cyk7XG4gIHZhciBlcnJvclN0cmluZyA9IEFQUF9TVE9SRV9FUlJPUlNbc3RhdHVzXSB8fCAndW5rbm93biBlcnJvci4nO1xuICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cywgZXJyb3I6IGVycm9yU3RyaW5nIH07XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlV2l0aEFwcFN0b3JlKHVybCwgcmVjZWlwdCkge1xuICByZXR1cm4gcmVxdWVzdCh7XG4gICAgdXJsOiB1cmwsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgYm9keTogeyAncmVjZWlwdC1kYXRhJzogcmVjZWlwdCB9LFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSxcbiAgfSkudGhlbihodHRwUmVzcG9uc2UgPT4ge1xuICAgIGNvbnN0IGJvZHkgPSBodHRwUmVzcG9uc2UuZGF0YTtcbiAgICBpZiAoYm9keSAmJiBib2R5LnN0YXR1cyA9PT0gMCkge1xuICAgICAgLy8gTm8gbmVlZCB0byBwYXNzIGFueXRoaW5nLCBzdGF0dXMgaXMgT0tcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gcmVjZWlwdCBpcyBmcm9tIHRlc3QgYW5kIHNob3VsZCBnbyB0byB0ZXN0XG4gICAgdGhyb3cgYm9keTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldEZpbGVGb3JQcm9kdWN0SWRlbnRpZmllcihwcm9kdWN0SWRlbnRpZmllciwgcmVxKSB7XG4gIHJldHVybiByZXN0XG4gICAgLmZpbmQoXG4gICAgICByZXEuY29uZmlnLFxuICAgICAgcmVxLmF1dGgsXG4gICAgICAnX1Byb2R1Y3QnLFxuICAgICAgeyBwcm9kdWN0SWRlbnRpZmllcjogcHJvZHVjdElkZW50aWZpZXIgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICApXG4gICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgY29uc3QgcHJvZHVjdHMgPSByZXN1bHQucmVzdWx0cztcbiAgICAgIGlmICghcHJvZHVjdHMgfHwgcHJvZHVjdHMubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgLy8gRXJyb3Igbm90IGZvdW5kIG9yIHRvbyBtYW55XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnT2JqZWN0IG5vdCBmb3VuZC4nKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGRvd25sb2FkID0gcHJvZHVjdHNbMF0uZG93bmxvYWQ7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcmVzcG9uc2U6IGRvd25sb2FkIH0pO1xuICAgIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgSUFQVmFsaWRhdGlvblJvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBoYW5kbGVSZXF1ZXN0KHJlcSkge1xuICAgIGxldCByZWNlaXB0ID0gcmVxLmJvZHk/LnJlY2VpcHQ7XG4gICAgY29uc3QgcHJvZHVjdElkZW50aWZpZXIgPSByZXEuYm9keT8ucHJvZHVjdElkZW50aWZpZXI7XG5cbiAgICBpZiAoIXJlY2VpcHQgfHwgIXByb2R1Y3RJZGVudGlmaWVyKSB7XG4gICAgICAvLyBUT0RPOiBFcnJvciwgbWFsZm9ybWVkIHJlcXVlc3RcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICdtaXNzaW5nIHJlY2VpcHQgb3IgcHJvZHVjdElkZW50aWZpZXInKTtcbiAgICB9XG5cbiAgICAvLyBUcmFuc2Zvcm0gdGhlIG9iamVjdCBpZiB0aGVyZVxuICAgIC8vIG90aGVyd2lzZSBhc3N1bWUgaXQncyBpbiBCYXNlNjQgYWxyZWFkeVxuICAgIGlmICh0eXBlb2YgcmVjZWlwdCA9PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKHJlY2VpcHRbJ19fdHlwZSddID09ICdCeXRlcycpIHtcbiAgICAgICAgcmVjZWlwdCA9IHJlY2VpcHQuYmFzZTY0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5URVNUSU5HID09ICcxJyAmJiByZXEuYm9keT8uYnlwYXNzQXBwU3RvcmVWYWxpZGF0aW9uKSB7XG4gICAgICByZXR1cm4gZ2V0RmlsZUZvclByb2R1Y3RJZGVudGlmaWVyKHByb2R1Y3RJZGVudGlmaWVyLCByZXEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjaygpIHtcbiAgICAgIHJldHVybiBnZXRGaWxlRm9yUHJvZHVjdElkZW50aWZpZXIocHJvZHVjdElkZW50aWZpZXIsIHJlcSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhlcnJvcikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3BvbnNlOiBhcHBTdG9yZUVycm9yKGVycm9yLnN0YXR1cykgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlV2l0aEFwcFN0b3JlKElBUF9QUk9EVUNUSU9OX1VSTCwgcmVjZWlwdCkudGhlbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3NDYWxsYmFjaygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSAyMTAwNykge1xuICAgICAgICAgIHJldHVybiB2YWxpZGF0ZVdpdGhBcHBTdG9yZShJQVBfU0FOREJPWF9VUkwsIHJlY2VpcHQpLnRoZW4oXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBlcnJvckNhbGxiYWNrKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yQ2FsbGJhY2soZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy92YWxpZGF0ZV9wdXJjaGFzZScsIHRoaXMuaGFuZGxlUmVxdWVzdCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQStCLFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRi9CLE1BQU1HLE9BQU8sR0FBR0wsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUNyQyxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFHL0I7QUFDQSxNQUFNTyxlQUFlLEdBQUcsZ0RBQWdEO0FBQ3hFLE1BQU1DLGtCQUFrQixHQUFHLDRDQUE0QztBQUV2RSxNQUFNQyxnQkFBZ0IsR0FBRztFQUN2QixLQUFLLEVBQUUsNERBQTREO0VBQ25FLEtBQUssRUFBRSxpRUFBaUU7RUFDeEUsS0FBSyxFQUFFLHlDQUF5QztFQUNoRCxLQUFLLEVBQUUsMkZBQTJGO0VBQ2xHLEtBQUssRUFBRSxnREFBZ0Q7RUFDdkQsS0FBSyxFQUFFLHlEQUF5RDtFQUNoRSxLQUFLLEVBQUUscUpBQXFKO0VBQzVKLEtBQUssRUFBRTtBQUNULENBQUM7QUFFRCxTQUFTQyxhQUFhQSxDQUFD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
|
|
@@ -17,7 +17,7 @@ class InstallationsRouter extends _ClassesRouter.default {
|
|
|
17
17
|
handleFind(req) {
|
|
18
18
|
const body = Object.assign(req.body || {}, _ClassesRouter.default.JSONFromQuery(req.query));
|
|
19
19
|
const options = _ClassesRouter.default.optionsFromBody(body, req.config.defaultLimit);
|
|
20
|
-
return _rest.default.find(req.config, req.auth, '_Installation', body.where, options, req.info.
|
|
20
|
+
return _rest.default.find(req.config, req.auth, '_Installation', body.where, options, req.info.context).then(response => {
|
|
21
21
|
return {
|
|
22
22
|
response: response
|
|
23
23
|
};
|
|
@@ -43,4 +43,4 @@ class InstallationsRouter extends _ClassesRouter.default {
|
|
|
43
43
|
}
|
|
44
44
|
exports.InstallationsRouter = InstallationsRouter;
|
|
45
45
|
var _default = exports.default = InstallationsRouter;
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Jlc3QiLCJfbWlkZGxld2FyZXMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJJbnN0YWxsYXRpb25zUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsImhhbmRsZUZpbmQiLCJyZXEiLCJib2R5IiwiT2JqZWN0IiwiYXNzaWduIiwiSlNPTkZyb21RdWVyeSIsInF1ZXJ5Iiwib3B0aW9ucyIsIm9wdGlvbnNGcm9tQm9keSIsImNvbmZpZyIsImRlZmF1bHRMaW1pdCIsInJlc3QiLCJmaW5kIiwiYXV0aCIsIndoZXJlIiwiaW5mbyIsImNvbnRleHQiLCJ0aGVuIiwicmVzcG9uc2UiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwiaGFuZGxlR2V0IiwicHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5IiwiaGFuZGxlQ3JlYXRlIiwiaGFuZGxlVXBkYXRlIiwiaGFuZGxlRGVsZXRlIiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvSW5zdGFsbGF0aW9uc1JvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbnN0YWxsYXRpb25zUm91dGVyLmpzXG5cbmltcG9ydCBDbGFzc2VzUm91dGVyIGZyb20gJy4vQ2xhc3Nlc1JvdXRlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcbmltcG9ydCB7IHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSB9IGZyb20gJy4uL21pZGRsZXdhcmVzJztcblxuZXhwb3J0IGNsYXNzIEluc3RhbGxhdGlvbnNSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcbiAgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnX0luc3RhbGxhdGlvbic7XG4gIH1cblxuICBoYW5kbGVGaW5kKHJlcSkge1xuICAgIGNvbnN0IGJvZHkgPSBPYmplY3QuYXNzaWduKHJlcS5ib2R5IHx8IHt9LCBDbGFzc2VzUm91dGVyLkpTT05Gcm9tUXVlcnkocmVxLnF1ZXJ5KSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IENsYXNzZXNSb3V0ZXIub3B0aW9uc0Zyb21Cb2R5KGJvZHksIHJlcS5jb25maWcuZGVmYXVsdExpbWl0KTtcbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIHJlcS5hdXRoLFxuICAgICAgICAnX0luc3RhbGxhdGlvbicsXG4gICAgICAgIGJvZHkud2hlcmUsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3BvbnNlIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvaW5zdGFsbGF0aW9ucycsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9pbnN0YWxsYXRpb25zLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVHZXQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9pbnN0YWxsYXRpb25zJywgcHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5LCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUFVUJywgJy9pbnN0YWxsYXRpb25zLzpvYmplY3RJZCcsIHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSwgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVVwZGF0ZShyZXEpO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGUoJ0RFTEVURScsICcvaW5zdGFsbGF0aW9ucy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW5zdGFsbGF0aW9uc1JvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQTBELFNBQUFELHVCQUFBSSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBSjFEOztBQU1PLE1BQU1HLG1CQUFtQixTQUFTQyxzQkFBYSxDQUFDO0VBQ3JEQyxTQUFTQSxDQUFBLEVBQUc7SUFDVixPQUFPLGVBQWU7RUFDeEI7RUFFQUMsVUFBVUEsQ0FBQ0MsR0FBRyxFQUFFO0lBQ2QsTUFBTUMsSUFBSSxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0gsR0FBRyxDQUFDQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUVKLHNCQUFhLENBQUNPLGFBQWEsQ0FBQ0osR0FBRyxDQUFDSyxLQUFLLENBQUMsQ0FBQztJQUNsRixNQUFNQyxPQUFPLEdBQUdULHNCQUFhLENBQUNVLGVBQWUsQ0FBQ04sSUFBSSxFQUFFRCxHQUFHLENBQUNRLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDO0lBQzVFLE9BQU9DLGFBQUksQ0FDUkMsSUFBSSxDQUNIWCxHQUFHLENBQUNRLE1BQU0sRUFDVlIsR0FBRyxDQUFDWSxJQUFJLEVBQ1IsZUFBZSxFQUNmWCxJQUFJLENBQUNZLEtBQUssRUFDVlAsT0FBTyxFQUNQTixHQUFHLENBQUNjLElBQUksQ0FBQ0MsT0FDWCxDQUFDLENBQ0FDLElBQUksQ0FBQ0MsUUFBUSxJQUFJO01BQ2hCLE9BQU87UUFBRUEsUUFBUSxFQUFFQTtNQUFTLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0VBQ047RUFFQUMsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osSUFBSSxDQUFDQyxLQUFLLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFbkIsR0FBRyxJQUFJO01BQ3pDLE9BQU8sSUFBSSxDQUFDRCxVQUFVLENBQUNDLEdBQUcsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFDRixJQUFJLENBQUNtQixLQUFLLENBQUMsS0FBSyxFQUFFLDBCQUEwQixFQUFFbkIsR0FBRyxJQUFJO01BQ25ELE9BQU8sSUFBSSxDQUFDb0IsU0FBUyxDQUFDcEIsR0FBRyxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ21CLEtBQUssQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUVFLHFDQUF3QixFQUFFckIsR0FBRyxJQUFJO01BQ3BFLE9BQU8sSUFBSSxDQUFDc0IsWUFBWSxDQUFDdEIsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ21CLEtBQUssQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLEVBQUVFLHFDQUF3QixFQUFFckIsR0FBRyxJQUFJO01BQzdFLE9BQU8sSUFBSSxDQUFDdUIsWUFBWSxDQUFDdkIsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ21CLEtBQUssQ0FBQyxRQUFRLEVBQUUsMEJBQTBCLEVBQUVuQixHQUFHLElBQUk7TUFDdEQsT0FBTyxJQUFJLENBQUN3QixZQUFZLENBQUN4QixHQUFHLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0VBQ0o7QUFDRjtBQUFDeUIsT0FBQSxDQUFBN0IsbUJBQUEsR0FBQUEsbUJBQUE7QUFBQSxJQUFBOEIsUUFBQSxHQUFBRCxPQUFBLENBQUE5QixPQUFBLEdBRWNDLG1CQUFtQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -22,7 +22,7 @@ class SessionsRouter extends _ClassesRouter.default {
|
|
|
22
22
|
// Query with master key to validate the session token and get the session objectId
|
|
23
23
|
const sessionResponse = await _rest.default.find(req.config, _Auth.default.master(req.config), '_Session', {
|
|
24
24
|
sessionToken
|
|
25
|
-
}, {}, req.info.
|
|
25
|
+
}, {}, req.info.context);
|
|
26
26
|
if (!sessionResponse.results || sessionResponse.results.length == 0 || !sessionResponse.results[0].user) {
|
|
27
27
|
throw new _node.default.Error(_node.default.Error.INVALID_SESSION_TOKEN, 'Session token not found.');
|
|
28
28
|
}
|
|
@@ -40,7 +40,7 @@ class SessionsRouter extends _ClassesRouter.default {
|
|
|
40
40
|
}),
|
|
41
41
|
installationId: req.info.installationId
|
|
42
42
|
});
|
|
43
|
-
const response = await _rest.default.get(req.config, refetchAuth, '_Session', sessionObjectId, {}, req.info.
|
|
43
|
+
const response = await _rest.default.get(req.config, refetchAuth, '_Session', sessionObjectId, {}, req.info.context);
|
|
44
44
|
if (!response.results || response.results.length == 0) {
|
|
45
45
|
throw new _node.default.Error(_node.default.Error.INVALID_SESSION_TOKEN, 'Session token not found.');
|
|
46
46
|
}
|
|
@@ -89,7 +89,7 @@ class SessionsRouter extends _ClassesRouter.default {
|
|
|
89
89
|
});
|
|
90
90
|
const response = await _rest.default.find(config, refetchAuth, '_Session', {
|
|
91
91
|
sessionToken: sessionData.sessionToken
|
|
92
|
-
}, {}, req.info.
|
|
92
|
+
}, {}, req.info.context);
|
|
93
93
|
if (!response.results || response.results.length === 0) {
|
|
94
94
|
throw new _node.default.Error(_node.default.Error.INTERNAL_SERVER_ERROR, 'Failed to load upgraded session.');
|
|
95
95
|
}
|
|
@@ -123,4 +123,4 @@ class SessionsRouter extends _ClassesRouter.default {
|
|
|
123
123
|
}
|
|
124
124
|
exports.SessionsRouter = SessionsRouter;
|
|
125
125
|
var _default = exports.default = SessionsRouter;
|
|
126
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX25vZGUiLCJfcmVzdCIsIl9BdXRoIiwiX1Jlc3RXcml0ZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNlc3Npb25zUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsImhhbmRsZU1lIiwicmVxIiwiaW5mbyIsInNlc3Npb25Ub2tlbiIsIlBhcnNlIiwiRXJyb3IiLCJJTlZBTElEX1NFU1NJT05fVE9LRU4iLCJzZXNzaW9uUmVzcG9uc2UiLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsIkF1dGgiLCJtYXN0ZXIiLCJjbGllbnRTREsiLCJjb250ZXh0IiwicmVzdWx0cyIsImxlbmd0aCIsInVzZXIiLCJzZXNzaW9uT2JqZWN0SWQiLCJvYmplY3RJZCIsInVzZXJJZCIsInJlZmV0Y2hBdXRoIiwiYXV0aCIsImlzTWFzdGVyIiwiaXNNYWludGVuYW5jZSIsIk9iamVjdCIsImZyb21KU09OIiwiaW5zdGFsbGF0aW9uSWQiLCJyZXNwb25zZSIsImdldCIsImhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbiIsIk9CSkVDVF9OT1RfRk9VTkQiLCJzZXNzaW9uRGF0YSIsImNyZWF0ZVNlc3Npb24iLCJSZXN0V3JpdGUiLCJpZCIsImNyZWF0ZWRXaXRoIiwiYWN0aW9uIiwiZGF0YWJhc2UiLCJ1cGRhdGUiLCJfX29wIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsImhhbmRsZUZpbmQiLCJoYW5kbGVHZXQiLCJoYW5kbGVDcmVhdGUiLCJoYW5kbGVVcGRhdGUiLCJoYW5kbGVEZWxldGUiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9TZXNzaW9uc1JvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IHJlc3QgZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgQXV0aCBmcm9tICcuLi9BdXRoJztcbmltcG9ydCBSZXN0V3JpdGUgZnJvbSAnLi4vUmVzdFdyaXRlJztcblxuZXhwb3J0IGNsYXNzIFNlc3Npb25zUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG4gIGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gJ19TZXNzaW9uJztcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZU1lKHJlcSkge1xuICAgIGlmICghcmVxLmluZm8gfHwgIXJlcS5pbmZvLnNlc3Npb25Ub2tlbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfU0VTU0lPTl9UT0tFTiwgJ1Nlc3Npb24gdG9rZW4gcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHJlcS5pbmZvLnNlc3Npb25Ub2tlbjtcbiAgICAvLyBRdWVyeSB3aXRoIG1hc3RlciBrZXkgdG8gdmFsaWRhdGUgdGhlIHNlc3Npb24gdG9rZW4gYW5kIGdldCB0aGUgc2Vzc2lvbiBvYmplY3RJZFxuICAgIGNvbnN0IHNlc3Npb25SZXNwb25zZSA9IGF3YWl0IHJlc3QuZmluZChcbiAgICAgIHJlcS5jb25maWcsXG4gICAgICBBdXRoLm1hc3RlcihyZXEuY29uZmlnKSxcbiAgICAgICdfU2Vzc2lvbicsXG4gICAgICB7IHNlc3Npb25Ub2tlbiB9LFxuICAgICAge30sXG4gICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgKTtcbiAgICBpZiAoXG4gICAgICAhc2Vzc2lvblJlc3BvbnNlLnJlc3VsdHMgfHxcbiAgICAgIHNlc3Npb25SZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwIHx8XG4gICAgICAhc2Vzc2lvblJlc3BvbnNlLnJlc3VsdHNbMF0udXNlclxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfU0VTU0lPTl9UT0tFTiwgJ1Nlc3Npb24gdG9rZW4gbm90IGZvdW5kLicpO1xuICAgIH1cbiAgICBjb25zdCBzZXNzaW9uT2JqZWN0SWQgPSBzZXNzaW9uUmVzcG9uc2UucmVzdWx0c1swXS5vYmplY3RJZDtcbiAgICBjb25zdCB1c2VySWQgPSBzZXNzaW9uUmVzcG9uc2UucmVzdWx0c1swXS51c2VyLm9iamVjdElkO1xuICAgIC8vIFJlLWZldGNoIHRoZSBzZXNzaW9uIHdpdGggdGhlIGNhbGxlcidzIGF1dGggY29udGV4dCBzbyB0aGF0XG4gICAgLy8gcHJvdGVjdGVkRmllbGRzIGFuZCBDTFAgYXBwbHkgY29ycmVjdGx5OyBpZiB0aGUgY2FsbGVyIHVzZWQgbWFzdGVyIGtleSxcbiAgICAvLyBwcm90ZWN0ZWRGaWVsZHMgYXJlIGJ5cGFzc2VkLCBtYXRjaGluZyB0aGUgYmVoYXZpb3Igb2YgR0VUIC9zZXNzaW9ucy86aWRcbiAgICBjb25zdCByZWZldGNoQXV0aCA9XG4gICAgICByZXEuYXV0aD8uaXNNYXN0ZXIgfHwgcmVxLmF1dGg/LmlzTWFpbnRlbmFuY2VcbiAgICAgICAgPyByZXEuYXV0aFxuICAgICAgICA6IG5ldyBBdXRoLkF1dGgoe1xuICAgICAgICAgIGNvbmZpZzogcmVxLmNvbmZpZyxcbiAgICAgICAgICBpc01hc3RlcjogZmFsc2UsXG4gICAgICAgICAgdXNlcjogUGFyc2UuT2JqZWN0LmZyb21KU09OKHsgY2xhc3NOYW1lOiAnX1VzZXInLCBvYmplY3RJZDogdXNlcklkIH0pLFxuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuaW5mby5pbnN0YWxsYXRpb25JZCxcbiAgICAgICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXN0LmdldChcbiAgICAgIHJlcS5jb25maWcsXG4gICAgICByZWZldGNoQXV0aCxcbiAgICAgICdfU2Vzc2lvbicsXG4gICAgICBzZXNzaW9uT2JqZWN0SWQsXG4gICAgICB7fSxcbiAgICAgIHJlcS5pbmZvLmNsaWVudFNESyxcbiAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICApO1xuICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9TRVNTSU9OX1RPS0VOLCAnU2Vzc2lvbiB0b2tlbiBub3QgZm91bmQuJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZXNwb25zZTogcmVzcG9uc2UucmVzdWx0c1swXSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlVXBkYXRlVG9SZXZvY2FibGVTZXNzaW9uKHJlcSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG4gICAgY29uc3QgdXNlciA9IHJlcS5hdXRoLnVzZXI7XG4gICAgLy8gSXNzdWUgIzI3MjBcbiAgICAvLyBDYWxsaW5nIHdpdGhvdXQgYSBzZXNzaW9uIHRva2VuIHdvdWxkIHJlc3VsdCBpbiBhIG5vdCBmb3VuZCB1c2VyXG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ2ludmFsaWQgc2Vzc2lvbicpO1xuICAgIH1cbiAgICBjb25zdCB7IHNlc3Npb25EYXRhLCBjcmVhdGVTZXNzaW9uIH0gPSBSZXN0V3JpdGUuY3JlYXRlU2Vzc2lvbihjb25maWcsIHtcbiAgICAgIHVzZXJJZDogdXNlci5pZCxcbiAgICAgIGNyZWF0ZWRXaXRoOiB7XG4gICAgICAgIGFjdGlvbjogJ3VwZ3JhZGUnLFxuICAgICAgfSxcbiAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuYXV0aC5pbnN0YWxsYXRpb25JZCxcbiAgICB9KTtcblxuICAgIGF3YWl0IGNyZWF0ZVNlc3Npb24oKTtcbiAgICAvLyBkZWxldGUgdGhlIHNlc3Npb24gdG9rZW4sIHVzZSB0aGUgZGIgdG8gc2tpcCBiZWZvcmVTYXZlXG4gICAgYXdhaXQgY29uZmlnLmRhdGFiYXNlLnVwZGF0ZShcbiAgICAgICdfVXNlcicsXG4gICAgICB7IG9iamVjdElkOiB1c2VyLmlkIH0sXG4gICAgICB7IHNlc3Npb25Ub2tlbjogeyBfX29wOiAnRGVsZXRlJyB9IH1cbiAgICApO1xuICAgIC8vIFJlLWZldGNoIHRoZSBzZXNzaW9uIHdpdGggdGhlIGNhbGxlcidzIGF1dGggY29udGV4dCBzbyB0aGF0XG4gICAgLy8gcHJvdGVjdGVkRmllbGRzIGZpbHRlcmluZyBhcHBsaWVzIGNvcnJlY3RseTsgaWYgdGhlIGNhbGxlciB1c2VkIG1hc3RlciBrZXksXG4gICAgLy8gcHJvdGVjdGVkRmllbGRzIGFyZSBieXBhc3NlZCwgbWF0Y2hpbmcgdGhlIGJlaGF2aW9yIG9mIEdFVCAvc2Vzc2lvbnMvOmlkXG4gICAgY29uc3QgcmVmZXRjaEF1dGggPVxuICAgICAgcmVxLmF1dGguaXNNYXN0ZXIgfHwgcmVxLmF1dGguaXNNYWludGVuYW5jZVxuICAgICAgICA/IHJlcS5hdXRoXG4gICAgICAgIDogbmV3IEF1dGguQXV0aCh7XG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGlzTWFzdGVyOiBmYWxzZSxcbiAgICAgICAgICB1c2VyOiBQYXJzZS5PYmplY3QuZnJvbUpTT04oeyBjbGFzc05hbWU6ICdfVXNlcicsIG9iamVjdElkOiB1c2VyLmlkIH0pLFxuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuYXV0aC5pbnN0YWxsYXRpb25JZCxcbiAgICAgICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXN0LmZpbmQoXG4gICAgICBjb25maWcsXG4gICAgICByZWZldGNoQXV0aCxcbiAgICAgICdfU2Vzc2lvbicsXG4gICAgICB7IHNlc3Npb25Ub2tlbjogc2Vzc2lvbkRhdGEuc2Vzc2lvblRva2VuIH0sXG4gICAgICB7fSxcbiAgICAgIHJlcS5pbmZvLmNsaWVudFNESyxcbiAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICApO1xuICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0ZhaWxlZCB0byBsb2FkIHVwZ3JhZGVkIHNlc3Npb24uJyk7XG4gICAgfVxuICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXNwb25zZS5yZXN1bHRzWzBdIH07XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3Nlc3Npb25zL21lJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZU1lKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9zZXNzaW9ucycsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9zZXNzaW9ucy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlR2V0KHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvc2Vzc2lvbnMnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUFVUJywgJy9zZXNzaW9ucy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywgJy9zZXNzaW9ucy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvdXBncmFkZVRvUmV2b2NhYmxlU2Vzc2lvbicsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGVUb1Jldm9jYWJsZVNlc3Npb24ocmVxKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTZXNzaW9uc1JvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQXFDLFNBQUFELHVCQUFBTSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTlCLE1BQU1HLGNBQWMsU0FBU0Msc0JBQWEsQ0FBQztFQUNoREMsU0FBU0EsQ0FBQSxFQUFHO0lBQ1YsT0FBTyxVQUFVO0VBQ25CO0VBRUEsTUFBTUMsUUFBUUEsQ0FBQ0MsR0FBRyxFQUFFO0lBQ2xCLElBQUksQ0FBQ0EsR0FBRyxDQUFDQyxJQUFJLElBQUksQ0FBQ0QsR0FBRyxDQUFDQyxJQUFJLENBQUNDLFlBQVksRUFBRTtNQUN2QyxNQUFNLElBQUlDLGFBQUssQ0FBQ0MsS0FBSyxDQUFDRCxhQUFLLENBQUNDLEtBQUssQ0FBQ0MscUJBQXFCLEVBQUUseUJBQXlCLENBQUM7SUFDckY7SUFDQSxNQUFNSCxZQUFZLEdBQUdGLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDQyxZQUFZO0lBQzFDO0lBQ0EsTUFBTUksZUFBZSxHQUFHLE1BQU1DLGFBQUksQ0FBQ0MsSUFBSSxDQUNyQ1IsR0FBRyxDQUFDUyxNQUFNLEVBQ1ZDLGFBQUksQ0FBQ0MsTUFBTSxDQUFDWCxHQUFHLENBQUNTLE1BQU0sQ0FBQyxFQUN2QixVQUFVLEVBQ1Y7TUFBRVA7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
|
|
126
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX25vZGUiLCJfcmVzdCIsIl9BdXRoIiwiX1Jlc3RXcml0ZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNlc3Npb25zUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsImhhbmRsZU1lIiwicmVxIiwiaW5mbyIsInNlc3Npb25Ub2tlbiIsIlBhcnNlIiwiRXJyb3IiLCJJTlZBTElEX1NFU1NJT05fVE9LRU4iLCJzZXNzaW9uUmVzcG9uc2UiLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsIkF1dGgiLCJtYXN0ZXIiLCJjb250ZXh0IiwicmVzdWx0cyIsImxlbmd0aCIsInVzZXIiLCJzZXNzaW9uT2JqZWN0SWQiLCJvYmplY3RJZCIsInVzZXJJZCIsInJlZmV0Y2hBdXRoIiwiYXV0aCIsImlzTWFzdGVyIiwiaXNNYWludGVuYW5jZSIsIk9iamVjdCIsImZyb21KU09OIiwiaW5zdGFsbGF0aW9uSWQiLCJyZXNwb25zZSIsImdldCIsImhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbiIsIk9CSkVDVF9OT1RfRk9VTkQiLCJzZXNzaW9uRGF0YSIsImNyZWF0ZVNlc3Npb24iLCJSZXN0V3JpdGUiLCJpZCIsImNyZWF0ZWRXaXRoIiwiYWN0aW9uIiwiZGF0YWJhc2UiLCJ1cGRhdGUiLCJfX29wIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsImhhbmRsZUZpbmQiLCJoYW5kbGVHZXQiLCJoYW5kbGVDcmVhdGUiLCJoYW5kbGVVcGRhdGUiLCJoYW5kbGVEZWxldGUiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9TZXNzaW9uc1JvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IHJlc3QgZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgQXV0aCBmcm9tICcuLi9BdXRoJztcbmltcG9ydCBSZXN0V3JpdGUgZnJvbSAnLi4vUmVzdFdyaXRlJztcblxuZXhwb3J0IGNsYXNzIFNlc3Npb25zUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG4gIGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gJ19TZXNzaW9uJztcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZU1lKHJlcSkge1xuICAgIGlmICghcmVxLmluZm8gfHwgIXJlcS5pbmZvLnNlc3Npb25Ub2tlbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfU0VTU0lPTl9UT0tFTiwgJ1Nlc3Npb24gdG9rZW4gcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHJlcS5pbmZvLnNlc3Npb25Ub2tlbjtcbiAgICAvLyBRdWVyeSB3aXRoIG1hc3RlciBrZXkgdG8gdmFsaWRhdGUgdGhlIHNlc3Npb24gdG9rZW4gYW5kIGdldCB0aGUgc2Vzc2lvbiBvYmplY3RJZFxuICAgIGNvbnN0IHNlc3Npb25SZXNwb25zZSA9IGF3YWl0IHJlc3QuZmluZChcbiAgICAgIHJlcS5jb25maWcsXG4gICAgICBBdXRoLm1hc3RlcihyZXEuY29uZmlnKSxcbiAgICAgICdfU2Vzc2lvbicsXG4gICAgICB7IHNlc3Npb25Ub2tlbiB9LFxuICAgICAge30sXG4gICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgKTtcbiAgICBpZiAoXG4gICAgICAhc2Vzc2lvblJlc3BvbnNlLnJlc3VsdHMgfHxcbiAgICAgIHNlc3Npb25SZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwIHx8XG4gICAgICAhc2Vzc2lvblJlc3BvbnNlLnJlc3VsdHNbMF0udXNlclxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfU0VTU0lPTl9UT0tFTiwgJ1Nlc3Npb24gdG9rZW4gbm90IGZvdW5kLicpO1xuICAgIH1cbiAgICBjb25zdCBzZXNzaW9uT2JqZWN0SWQgPSBzZXNzaW9uUmVzcG9uc2UucmVzdWx0c1swXS5vYmplY3RJZDtcbiAgICBjb25zdCB1c2VySWQgPSBzZXNzaW9uUmVzcG9uc2UucmVzdWx0c1swXS51c2VyLm9iamVjdElkO1xuICAgIC8vIFJlLWZldGNoIHRoZSBzZXNzaW9uIHdpdGggdGhlIGNhbGxlcidzIGF1dGggY29udGV4dCBzbyB0aGF0XG4gICAgLy8gcHJvdGVjdGVkRmllbGRzIGFuZCBDTFAgYXBwbHkgY29ycmVjdGx5OyBpZiB0aGUgY2FsbGVyIHVzZWQgbWFzdGVyIGtleSxcbiAgICAvLyBwcm90ZWN0ZWRGaWVsZHMgYXJlIGJ5cGFzc2VkLCBtYXRjaGluZyB0aGUgYmVoYXZpb3Igb2YgR0VUIC9zZXNzaW9ucy86aWRcbiAgICBjb25zdCByZWZldGNoQXV0aCA9XG4gICAgICByZXEuYXV0aD8uaXNNYXN0ZXIgfHwgcmVxLmF1dGg/LmlzTWFpbnRlbmFuY2VcbiAgICAgICAgPyByZXEuYXV0aFxuICAgICAgICA6IG5ldyBBdXRoLkF1dGgoe1xuICAgICAgICAgIGNvbmZpZzogcmVxLmNvbmZpZyxcbiAgICAgICAgICBpc01hc3RlcjogZmFsc2UsXG4gICAgICAgICAgdXNlcjogUGFyc2UuT2JqZWN0LmZyb21KU09OKHsgY2xhc3NOYW1lOiAnX1VzZXInLCBvYmplY3RJZDogdXNlcklkIH0pLFxuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuaW5mby5pbnN0YWxsYXRpb25JZCxcbiAgICAgICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXN0LmdldChcbiAgICAgIHJlcS5jb25maWcsXG4gICAgICByZWZldGNoQXV0aCxcbiAgICAgICdfU2Vzc2lvbicsXG4gICAgICBzZXNzaW9uT2JqZWN0SWQsXG4gICAgICB7fSxcbiAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICApO1xuICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9TRVNTSU9OX1RPS0VOLCAnU2Vzc2lvbiB0b2tlbiBub3QgZm91bmQuJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZXNwb25zZTogcmVzcG9uc2UucmVzdWx0c1swXSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlVXBkYXRlVG9SZXZvY2FibGVTZXNzaW9uKHJlcSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG4gICAgY29uc3QgdXNlciA9IHJlcS5hdXRoLnVzZXI7XG4gICAgLy8gSXNzdWUgIzI3MjBcbiAgICAvLyBDYWxsaW5nIHdpdGhvdXQgYSBzZXNzaW9uIHRva2VuIHdvdWxkIHJlc3VsdCBpbiBhIG5vdCBmb3VuZCB1c2VyXG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ2ludmFsaWQgc2Vzc2lvbicpO1xuICAgIH1cbiAgICBjb25zdCB7IHNlc3Npb25EYXRhLCBjcmVhdGVTZXNzaW9uIH0gPSBSZXN0V3JpdGUuY3JlYXRlU2Vzc2lvbihjb25maWcsIHtcbiAgICAgIHVzZXJJZDogdXNlci5pZCxcbiAgICAgIGNyZWF0ZWRXaXRoOiB7XG4gICAgICAgIGFjdGlvbjogJ3VwZ3JhZGUnLFxuICAgICAgfSxcbiAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuYXV0aC5pbnN0YWxsYXRpb25JZCxcbiAgICB9KTtcblxuICAgIGF3YWl0IGNyZWF0ZVNlc3Npb24oKTtcbiAgICAvLyBkZWxldGUgdGhlIHNlc3Npb24gdG9rZW4sIHVzZSB0aGUgZGIgdG8gc2tpcCBiZWZvcmVTYXZlXG4gICAgYXdhaXQgY29uZmlnLmRhdGFiYXNlLnVwZGF0ZShcbiAgICAgICdfVXNlcicsXG4gICAgICB7IG9iamVjdElkOiB1c2VyLmlkIH0sXG4gICAgICB7IHNlc3Npb25Ub2tlbjogeyBfX29wOiAnRGVsZXRlJyB9IH1cbiAgICApO1xuICAgIC8vIFJlLWZldGNoIHRoZSBzZXNzaW9uIHdpdGggdGhlIGNhbGxlcidzIGF1dGggY29udGV4dCBzbyB0aGF0XG4gICAgLy8gcHJvdGVjdGVkRmllbGRzIGZpbHRlcmluZyBhcHBsaWVzIGNvcnJlY3RseTsgaWYgdGhlIGNhbGxlciB1c2VkIG1hc3RlciBrZXksXG4gICAgLy8gcHJvdGVjdGVkRmllbGRzIGFyZSBieXBhc3NlZCwgbWF0Y2hpbmcgdGhlIGJlaGF2aW9yIG9mIEdFVCAvc2Vzc2lvbnMvOmlkXG4gICAgY29uc3QgcmVmZXRjaEF1dGggPVxuICAgICAgcmVxLmF1dGguaXNNYXN0ZXIgfHwgcmVxLmF1dGguaXNNYWludGVuYW5jZVxuICAgICAgICA/IHJlcS5hdXRoXG4gICAgICAgIDogbmV3IEF1dGguQXV0aCh7XG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGlzTWFzdGVyOiBmYWxzZSxcbiAgICAgICAgICB1c2VyOiBQYXJzZS5PYmplY3QuZnJvbUpTT04oeyBjbGFzc05hbWU6ICdfVXNlcicsIG9iamVjdElkOiB1c2VyLmlkIH0pLFxuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuYXV0aC5pbnN0YWxsYXRpb25JZCxcbiAgICAgICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXN0LmZpbmQoXG4gICAgICBjb25maWcsXG4gICAgICByZWZldGNoQXV0aCxcbiAgICAgICdfU2Vzc2lvbicsXG4gICAgICB7IHNlc3Npb25Ub2tlbjogc2Vzc2lvbkRhdGEuc2Vzc2lvblRva2VuIH0sXG4gICAgICB7fSxcbiAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICApO1xuICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0ZhaWxlZCB0byBsb2FkIHVwZ3JhZGVkIHNlc3Npb24uJyk7XG4gICAgfVxuICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXNwb25zZS5yZXN1bHRzWzBdIH07XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3Nlc3Npb25zL21lJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZU1lKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9zZXNzaW9ucycsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9zZXNzaW9ucy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlR2V0KHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvc2Vzc2lvbnMnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUFVUJywgJy9zZXNzaW9ucy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywgJy9zZXNzaW9ucy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvdXBncmFkZVRvUmV2b2NhYmxlU2Vzc2lvbicsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGVUb1Jldm9jYWJsZVNlc3Npb24ocmVxKTtcbiAgICB9KTtcbiAgfVxufVxuXG5l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
|