Files
speckle-server/scratch/edge-debug-selection/Default/Cache/Cache_Data/f_0000a3
T

103 lines
17 KiB
Plaintext

import { __assign, __spreadArray } from "/_nuxt/node_modules/tslib/tslib.es6.js?v=e4f18c29";
import { print } from "/_nuxt/node_modules/@apollo/client/utilities/index.js?v=e4f18c29";
var defaultHttpOptions = {
includeQuery: true,
includeExtensions: false,
preserveHeaderCase: false,
};
var defaultHeaders = {
// headers are case insensitive (https://stackoverflow.com/a/5259004)
accept: "*/*",
// The content-type header describes the type of the body of the request, and
// so it typically only is sent with requests that actually have bodies. One
// could imagine that Apollo Client would remove this header when constructing
// a GET request (which has no body), but we historically have not done that.
// This means that browsers will preflight all Apollo Client requests (even
// GET requests). Apollo Server's CSRF prevention feature (introduced in
// AS3.7) takes advantage of this fact and does not block requests with this
// header. If you want to drop this header from GET requests, then you should
// probably replace it with a `apollo-require-preflight` header, or servers
// with CSRF prevention enabled might block your GET request. See
// https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf
// for more details.
"content-type": "application/json",
};
var defaultOptions = {
method: "POST",
};
export var fallbackHttpConfig = {
http: defaultHttpOptions,
headers: defaultHeaders,
options: defaultOptions,
};
export var defaultPrinter = function (ast, printer) { return printer(ast); };
export function selectHttpOptionsAndBody(operation, fallbackConfig) {
var configs = [];
for (var _i = 2; _i < arguments.length; _i++) {
configs[_i - 2] = arguments[_i];
}
configs.unshift(fallbackConfig);
return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,
defaultPrinter], configs, false));
}
export function selectHttpOptionsAndBodyInternal(operation, printer) {
var configs = [];
for (var _i = 2; _i < arguments.length; _i++) {
configs[_i - 2] = arguments[_i];
}
var options = {};
var http = {};
configs.forEach(function (config) {
options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), config.headers) });
if (config.credentials) {
options.credentials = config.credentials;
}
http = __assign(__assign({}, http), config.http);
});
if (options.headers) {
options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);
}
//The body depends on the http options
var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;
var body = { operationName: operationName, variables: variables };
if (http.includeExtensions)
body.extensions = extensions;
// not sending the query (i.e persisted queries)
if (http.includeQuery)
body.query = printer(query, print);
return {
options: options,
body: body,
};
}
// Remove potential duplicate header names, preserving last (by insertion order).
// This is done to prevent unintentionally duplicating a header instead of
// overwriting it (See #8447 and #8449).
function removeDuplicateHeaders(headers, preserveHeaderCase) {
// If we're not preserving the case, just remove duplicates w/ normalization.
if (!preserveHeaderCase) {
var normalizedHeaders_1 = {};
Object.keys(Object(headers)).forEach(function (name) {
normalizedHeaders_1[name.toLowerCase()] = headers[name];
});
return normalizedHeaders_1;
}
// If we are preserving the case, remove duplicates w/ normalization,
// preserving the original name.
// This allows for non-http-spec-compliant servers that expect intentionally
// capitalized header names (See #6741).
var headerData = {};
Object.keys(Object(headers)).forEach(function (name) {
headerData[name.toLowerCase()] = {
originalName: name,
value: headers[name],
};
});
var normalizedHeaders = {};
Object.keys(headerData).forEach(function (name) {
normalizedHeaders[headerData[name].originalName] = headerData[name].value;
});
return normalizedHeaders;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0SHR0cE9wdGlvbnNBbmRCb2R5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpbmsvaHR0cC9zZWxlY3RIdHRwT3B0aW9uc0FuZEJvZHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQWtHakQsSUFBTSxrQkFBa0IsR0FBcUI7SUFDM0MsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsS0FBSztJQUN4QixrQkFBa0IsRUFBRSxLQUFLO0NBQzFCLENBQUM7QUFFRixJQUFNLGNBQWMsR0FBRztJQUNyQixxRUFBcUU7SUFDckUsTUFBTSxFQUFFLEtBQUs7SUFDYiw2RUFBNkU7SUFDN0UsNEVBQTRFO0lBQzVFLDhFQUE4RTtJQUM5RSw2RUFBNkU7SUFDN0UsMkVBQTJFO0lBQzNFLHdFQUF3RTtJQUN4RSw0RUFBNEU7SUFDNUUsNkVBQTZFO0lBQzdFLDJFQUEyRTtJQUMzRSxpRUFBaUU7SUFDakUsNkdBQTZHO0lBQzdHLG9CQUFvQjtJQUNwQixjQUFjLEVBQUUsa0JBQWtCO0NBQ25DLENBQUM7QUFFRixJQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsTUFBTTtDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRztJQUNoQyxJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLE9BQU8sRUFBRSxjQUFjO0NBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxjQUFjLEdBQVksVUFBQyxHQUFHLEVBQUUsT0FBTyxJQUFLLE9BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFaLENBQVksQ0FBQztBQUV0RSxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLFNBQW9CLEVBQ3BCLGNBQTBCO0lBQzFCLGlCQUE2QjtTQUE3QixVQUE2QixFQUE3QixxQkFBNkIsRUFBN0IsSUFBNkI7UUFBN0Is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LGlCQUFpQixHQUEyQixFQUFFLENBQUM7SUFDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxJQUFJO1FBQ25DLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzVFLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBU1ROb2RlIH0gZnJvbSBcImdyYXBocWxcIjtcbmltcG9ydCB7IHByaW50IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9pbmRleC5qc1wiO1xuXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiB9IGZyb20gXCIuLi9jb3JlL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpbnRlciB7XG4gIChub2RlOiBBU1ROb2RlLCBvcmlnaW5hbFByaW50OiB0eXBlb2YgcHJpbnQpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXJpRnVuY3Rpb24ge1xuICAob3BlcmF0aW9uOiBPcGVyYXRpb24pOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9keSB7XG4gIHF1ZXJ5Pzogc3RyaW5nO1xuICBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuICB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBleHRlbnNpb25zPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgVVJJIHRvIHVzZSB3aGVuIGZldGNoaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvICcvZ3JhcGhxbCcuXG4gICAqL1xuICB1cmk/OiBzdHJpbmcgfCBVcmlGdW5jdGlvbjtcblxuICAvKipcbiAgICogUGFzc2VzIHRoZSBleHRlbnNpb25zIGZpZWxkIHRvIHlvdXIgZ3JhcGhxbCBzZXJ2ZXIuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgaW5jbHVkZUV4dGVuc2lvbnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGBmZXRjaGAtY29tcGF0aWJsZSBBUEkgdG8gdXNlIHdoZW4gbWFraW5nIHJlcXVlc3RzLlxuICAgKi9cbiAgZmV0Y2g/OiB0eXBlb2YgZmV0Y2g7XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCByZXByZXNlbnRpbmcgdmFsdWVzIHRvIGJlIHNlbnQgYXMgaGVhZGVycyBvbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgaGVhZGVyIG5hbWVzIHdvbid0IGJlIGF1dG9tYXRpY2FsbHkgbm9ybWFsaXplZCB0b1xuICAgKiBsb3dlcmNhc2UuIFRoaXMgYWxsb3dzIGZvciBub24taHR0cC1zcGVjLWNvbXBsaWFudCBzZXJ2ZXJzIHRoYXQgbWlnaHRcbiAgICogZXhwZWN0IGNhcGl0YWxpemVkIGhlYWRlciBuYW1lcy5cbiAgICovXG4gIHByZXNlcnZlSGVhZGVyQ2FzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyBwb2xpY3kgeW91IHdhbnQgdG8gdXNlIGZvciB0aGUgZmV0Y2ggY2FsbC5cbiAgICovXG4gIGNyZWRlbnRpYWxzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbnkgb3ZlcnJpZGVzIG9mIHRoZSBmZXRjaCBvcHRpb25zIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGZldGNoIGNhbGwuXG4gICAqL1xuICBmZXRjaE9wdGlvbnM/OiBhbnk7XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byB0cnVlLCB1c2UgdGhlIEhUVFAgR0VUIG1ldGhvZCBmb3IgcXVlcnkgb3BlcmF0aW9ucy4gTXV0YXRpb25zXG4gICAqIHdpbGwgc3RpbGwgdXNlIHRoZSBtZXRob2Qgc3BlY2lmaWVkIGluIGZldGNoT3B0aW9ucy5tZXRob2QgKHdoaWNoIGRlZmF1bHRzXG4gICAqIHRvIFBPU1QpLlxuICAgKi9cbiAgdXNlR0VURm9yUXVlcmllcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byB0cnVlLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBzdHJpcHBpbmcgdW51c2VkIHZhcmlhYmxlc1xuICAgKiBmcm9tIHRoZSByZXF1ZXN0IHdpbGwgYmUgZGlzYWJsZWQuXG4gICAqXG4gICAqIFVudXNlZCB2YXJpYWJsZXMgYXJlIGxpa2VseSB0byB0cmlnZ2VyIHNlcnZlci1zaWRlIHZhbGlkYXRpb24gZXJyb3JzLFxuICAgKiBwZXIgaHR0cHM6Ly9zcGVjLmdyYXBocWwub3JnL2RyYWZ0LyNzZWMtQWxsLVZhcmlhYmxlcy1Vc2VkLCBidXQgdGhpc1xuICAgKiBpbmNsdWRlVW51c2VkVmFyaWFibGVzIG9wdGlvbiBjYW4gYmUgdXNlZnVsIGlmIHlvdXIgc2VydmVyIGRldmlhdGVzXG4gICAqIGZyb20gdGhlIEdyYXBoUUwgc3BlY2lmaWNhdGlvbiBieSBub3Qgc3RyaWN0bHkgZW5mb3JjaW5nIHRoYXQgcnVsZS5cbiAgICovXG4gIGluY2x1ZGVVbnVzZWRWYXJpYWJsZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byBzdWJzdGl0dXRlIGZvciB0aGUgZGVmYXVsdCBxdWVyeSBwcmludCBmdW5jdGlvbi4gQ2FuIGJlXG4gICAqIHVzZWQgdG8gYXBwbHkgY2hhbmdlcyB0byB0aGUgcmVzdWx0cyBvZiB0aGUgcHJpbnQgZnVuY3Rpb24uXG4gICAqL1xuICBwcmludD86IFByaW50ZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFF1ZXJ5T3B0aW9ucyB7XG4gIGluY2x1ZGVRdWVyeT86IGJvb2xlYW47XG4gIGluY2x1ZGVFeHRlbnNpb25zPzogYm9vbGVhbjtcbiAgcHJlc2VydmVIZWFkZXJDYXNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwQ29uZmlnIHtcbiAgaHR0cD86IEh0dHBRdWVyeU9wdGlvbnM7XG4gIG9wdGlvbnM/OiBhbnk7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBjcmVkZW50aWFscz86IGFueTtcbn1cblxuY29uc3QgZGVmYXVsdEh0dHBPcHRpb25zOiBIdHRwUXVlcnlPcHRpb25zID0ge1xuICBpbmNsdWRlUXVlcnk6IHRydWUsXG4gIGluY2x1ZGVFeHRlbnNpb25zOiBmYWxzZSxcbiAgcHJlc2VydmVIZWFkZXJDYXNlOiBmYWxzZSxcbn07XG5cbmNvbnN0IGRlZmF1bHRIZWFkZXJzID0ge1xuICAvLyBoZWFkZXJzIGFyZSBjYXNlIGluc2Vuc2l0aXZlIChodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNTI1OTAwNClcbiAgYWNjZXB0OiBcIiovKlwiLFxuICAvLyBUaGUgY29udGVudC10eXBlIGhlYWRlciBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QsIGFuZFxuICAvLyBzbyBpdCB0eXBpY2FsbHkgb25seSBpcyBzZW50IHdpdGggcmVxdWVzdHMgdGhhdCBhY3R1YWxseSBoYXZlIGJvZGllcy4gT25lXG4gIC8vIGNvdWxkIGltYWdpbmUgdGhhdCBBcG9sbG8gQ2xpZW50IHdvdWxkIHJlbW92ZSB0aGlzIGhlYWRlciB3aGVuIGNvbnN0cnVjdGluZ1xuICAvLyBhIEdFVCByZXF1ZXN0ICh3aGljaCBoYXMgbm8gYm9keSksIGJ1dCB3ZSBoaXN0b3JpY2FsbHkgaGF2ZSBub3QgZG9uZSB0aGF0LlxuICAvLyBUaGlzIG1lYW5zIHRoYXQgYnJvd3NlcnMgd2lsbCBwcmVmbGlnaHQgYWxsIEFwb2xsbyBDbGllbnQgcmVxdWVzdHMgKGV2ZW5cbiAgLy8gR0VUIHJlcXVlc3RzKS4gQXBvbGxvIFNlcnZlcidzIENTUkYgcHJldmVudGlvbiBmZWF0dXJlIChpbnRyb2R1Y2VkIGluXG4gIC8vIEFTMy43KSB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhpcyBmYWN0IGFuZCBkb2VzIG5vdCBibG9jayByZXF1ZXN0cyB3aXRoIHRoaXNcbiAgLy8gaGVhZGVyLiBJZiB5b3Ugd2FudCB0byBkcm9wIHRoaXMgaGVhZGVyIGZyb20gR0VUIHJlcXVlc3RzLCB0aGVuIHlvdSBzaG91bGRcbiAgLy8gcHJvYmFibHkgcmVwbGFjZSBpdCB3aXRoIGEgYGFwb2xsby1yZXF1aXJlLXByZWZsaWdodGAgaGVhZGVyLCBvciBzZXJ2ZXJzXG4gIC8vIHdpdGggQ1NSRiBwcmV2ZW50aW9uIGVuYWJsZWQgbWlnaHQgYmxvY2sgeW91ciBHRVQgcmVxdWVzdC4gU2VlXG4gIC8vIGh0dHBzOi8vd3d3LmFwb2xsb2dyYXBocWwuY29tL2RvY3MvYXBvbGxvLXNlcnZlci9zZWN1cml0eS9jb3JzLyNwcmV2ZW50aW5nLWNyb3NzLXNpdGUtcmVxdWVzdC1mb3JnZXJ5LWNzcmZcbiAgLy8gZm9yIG1vcmUgZGV0YWlscy5cbiAgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgbWV0aG9kOiBcIlBPU1RcIixcbn07XG5cbmV4cG9ydCBjb25zdCBmYWxsYmFja0h0dHBDb25maWcgPSB7XG4gIGh0dHA6IGRlZmF1bHRIdHRwT3B0aW9ucyxcbiAgaGVhZGVyczogZGVmYXVsdEhlYWRlcnMsXG4gIG9wdGlvbnM6IGRlZmF1bHRPcHRpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRQcmludGVyOiBQcmludGVyID0gKGFzdCwgcHJpbnRlcikgPT4gcHJpbnRlcihhc3QpO1xuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0SHR0cE9wdGlvbnNBbmRCb2R5KFxuICBvcGVyYXRpb246IE9wZXJhdGlvbixcbiAgZmFsbGJhY2tDb25maWc6IEh0dHBDb25maWcsXG4gIC4uLmNvbmZpZ3M6IEFycmF5PEh0dHBDb25maWc+XG4pIHtcbiAgY29uZmlncy51bnNoaWZ0KGZhbGxiYWNrQ29uZmlnKTtcbiAgcmV0dXJuIHNlbGVjdEh0dHBPcHRpb25zQW5kQm9keUludGVybmFsKFxuICAgIG9wZXJhdGlvbixcbiAgICBkZWZhdWx0UHJpbnRlcixcbiAgICAuLi5jb25maWdzXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RIdHRwT3B0aW9uc0FuZEJvZHlJbnRlcm5hbChcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb24sXG4gIHByaW50ZXI6IFByaW50ZXIsXG4gIC4uLmNvbmZpZ3M6IEh0dHBDb25maWdbXVxuKSB7XG4gIGxldCBvcHRpb25zID0ge30gYXMgSHR0cENvbmZpZyAmIFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGxldCBodHRwID0ge30gYXMgSHR0cFF1ZXJ5T3B0aW9ucztcblxuICBjb25maWdzLmZvckVhY2goKGNvbmZpZykgPT4ge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLi4uY29uZmlnLm9wdGlvbnMsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuaGVhZGVycyxcbiAgICAgICAgLi4uY29uZmlnLmhlYWRlcnMsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnLmNyZWRlbnRpYWxzKSB7XG4gICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gY29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIH1cblxuICAgIGh0dHAgPSB7XG4gICAgICAuLi5odHRwLFxuICAgICAgLi4uY29uZmlnLmh0dHAsXG4gICAgfTtcbiAgfSk7XG5cbiAgaWYgKG9wdGlvbnMuaGVhZGVycykge1xuICAgIG9wdGlvbnMuaGVhZGVycyA9IHJlbW92ZUR1cGxpY2F0ZUhlYWRlcnMoXG4gICAgICBvcHRpb25zLmhlYWRlcnMsXG4gICAgICBodHRwLnByZXNlcnZlSGVhZGVyQ2FzZVxuICAgICk7XG4gIH1cblxuICAvL1RoZSBib2R5IGRlcGVuZHMgb24gdGhlIGh0dHAgb3B0aW9uc1xuICBjb25zdCB7IG9wZXJhdGlvbk5hbWUsIGV4dGVuc2lvbnMsIHZhcmlhYmxlcywgcXVlcnkgfSA9IG9wZXJhdGlvbjtcbiAgY29uc3QgYm9keTogQm9keSA9IHsgb3BlcmF0aW9uTmFtZSwgdmFyaWFibGVzIH07XG5cbiAgaWYgKGh0dHAuaW5jbHVkZUV4dGVuc2lvbnMpIChib2R5IGFzIGFueSkuZXh0ZW5zaW9ucyA9IGV4dGVuc2lvbnM7XG5cbiAgLy8gbm90IHNlbmRpbmcgdGhlIHF1ZXJ5IChpLmUgcGVyc2lzdGVkIHF1ZXJpZXMpXG4gIGlmIChodHRwLmluY2x1ZGVRdWVyeSkgKGJvZHkgYXMgYW55KS5xdWVyeSA9IHByaW50ZXIocXVlcnksIHByaW50KTtcblxuICByZXR1cm4ge1xuICAgIG9wdGlvbnMsXG4gICAgYm9keSxcbiAgfTtcbn1cblxuLy8gUmVtb3ZlIHBvdGVudGlhbCBkdXBsaWNhdGUgaGVhZGVyIG5hbWVzLCBwcmVzZXJ2aW5nIGxhc3QgKGJ5IGluc2VydGlvbiBvcmRlcikuXG4vLyBUaGlzIGlzIGRvbmUgdG8gcHJldmVudCB1bmludGVudGlvbmFsbHkgZHVwbGljYXRpbmcgYSBoZWFkZXIgaW5zdGVhZCBvZlxuLy8gb3ZlcndyaXRpbmcgaXQgKFNlZSAjODQ0NyBhbmQgIzg0NDkpLlxuZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlSGVhZGVycyhcbiAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgcHJlc2VydmVIZWFkZXJDYXNlOiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiB0eXBlb2YgaGVhZGVycyB7XG4gIC8vIElmIHdlJ3JlIG5vdCBwcmVzZXJ2aW5nIHRoZSBjYXNlLCBqdXN0IHJlbW92ZSBkdXBsaWNhdGVzIHcvIG5vcm1hbGl6YXRpb24uXG4gIGlmICghcHJlc2VydmVIZWFkZXJDYXNlKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBPYmplY3Qua2V5cyhPYmplY3QoaGVhZGVycykpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIG5vcm1hbGl6ZWRIZWFkZXJzW25hbWUudG9Mb3dlckNhc2UoKV0gPSBoZWFkZXJzW25hbWVdO1xuICAgIH0pO1xuICAgIHJldHVybiBub3JtYWxpemVkSGVhZGVycztcbiAgfVxuXG4gIC8vIElmIHdlIGFyZSBwcmVzZXJ2aW5nIHRoZSBjYXNlLCByZW1vdmUgZHVwbGljYXRlcyB3LyBub3JtYWxpemF0aW9uLFxuICAvLyBwcmVzZXJ2aW5nIHRoZSBvcmlnaW5hbCBuYW1lLlxuICAvLyBUaGlzIGFsbG93cyBmb3Igbm9uLWh0dHAtc3BlYy1jb21wbGlhbnQgc2VydmVycyB0aGF0IGV4cGVjdCBpbnRlbnRpb25hbGx5XG4gIC8vIGNhcGl0YWxpemVkIGhlYWRlciBuYW1lcyAoU2VlICM2NzQxKS5cbiAgY29uc3QgaGVhZGVyRGF0YTogUmVjb3JkPHN0cmluZywgeyBvcmlnaW5hbE5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PiA9XG4gICAge307XG4gIE9iamVjdC5rZXlzKE9iamVjdChoZWFkZXJzKSkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgIGhlYWRlckRhdGFbbmFtZS50b0xvd2VyQ2FzZSgpXSA9IHtcbiAgICAgIG9yaWdpbmFsTmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiBoZWFkZXJzW25hbWVdLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0IG5vcm1hbGl6ZWRIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIE9iamVjdC5rZXlzKGhlYWRlckRhdGEpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICBub3JtYWxpemVkSGVhZGVyc1toZWFkZXJEYXRhW25hbWVdLm9yaWdpbmFsTmFtZV0gPSBoZWFkZXJEYXRhW25hbWVdLnZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIG5vcm1hbGl6ZWRIZWFkZXJzO1xufVxuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswXX0=