Socket
Socket
Sign inDemoInstall

@aws-sdk/signature-v4

Package Overview
Dependencies
Maintainers
7
Versions
142
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/signature-v4 - npm Package Compare versions

Comparing version 3.25.0 to 3.29.0

dist/cjs/headerUtil.js

31

dist/cjs/cloneRequest.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cloneRequest = void 0;
exports.cloneQuery = exports.cloneRequest = void 0;
/**
* @internal
*/
function cloneRequest({ headers, query, ...rest }) {
const cloneRequest = ({ headers, query, ...rest }) => ({
...rest,
headers: { ...headers },
query: query ? (0, exports.cloneQuery)(query) : undefined,
});
exports.cloneRequest = cloneRequest;
const cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {
const param = query[paramName];
return {
...rest,
headers: { ...headers },
query: query ? cloneQuery(query) : undefined,
...carry,
[paramName]: Array.isArray(param) ? [...param] : param,
};
}
exports.cloneRequest = cloneRequest;
function cloneQuery(query) {
return Object.keys(query).reduce((carry, paramName) => {
const param = query[paramName];
return {
...carry,
[paramName]: Array.isArray(param) ? [...param] : param,
};
}, {});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQWU7SUFDbkUsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUM3QyxDQUFDO0FBQ0osQ0FBQztBQU5ELG9DQU1DO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBd0I7SUFDMUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXdCLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQy9FLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7U0FDdkQsQ0FBQztJQUNKLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCwgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lUmVxdWVzdCh7IGhlYWRlcnMsIHF1ZXJ5LCAuLi5yZXN0IH06IEh0dHBSZXF1ZXN0KTogSHR0cFJlcXVlc3Qge1xuICByZXR1cm4ge1xuICAgIC4uLnJlc3QsXG4gICAgaGVhZGVyczogeyAuLi5oZWFkZXJzIH0sXG4gICAgcXVlcnk6IHF1ZXJ5ID8gY2xvbmVRdWVyeShxdWVyeSkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNsb25lUXVlcnkocXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnKTogUXVlcnlQYXJhbWV0ZXJCYWcge1xuICByZXR1cm4gT2JqZWN0LmtleXMocXVlcnkpLnJlZHVjZSgoY2Fycnk6IFF1ZXJ5UGFyYW1ldGVyQmFnLCBwYXJhbU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHBhcmFtID0gcXVlcnlbcGFyYW1OYW1lXTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2FycnksXG4gICAgICBbcGFyYW1OYW1lXTogQXJyYXkuaXNBcnJheShwYXJhbSkgPyBbLi4ucGFyYW1dIDogcGFyYW0sXG4gICAgfTtcbiAgfSwge30pO1xufVxuIl19
}, {});
exports.cloneQuery = cloneQuery;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNJLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFlLEVBQWUsRUFBRSxDQUFDLENBQUM7SUFDdEYsR0FBRyxJQUFJO0lBQ1AsT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUU7SUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBQSxrQkFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0NBQzdDLENBQUMsQ0FBQztBQUpVLFFBQUEsWUFBWSxnQkFJdEI7QUFFSSxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQXdCLEVBQXFCLEVBQUUsQ0FDeEUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUF3QixFQUFFLFNBQWlCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0tBQ3ZELENBQUM7QUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFQSSxRQUFBLFVBQVUsY0FPZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgY2xvbmVSZXF1ZXN0ID0gKHsgaGVhZGVycywgcXVlcnksIC4uLnJlc3QgfTogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCA9PiAoe1xuICAuLi5yZXN0LFxuICBoZWFkZXJzOiB7IC4uLmhlYWRlcnMgfSxcbiAgcXVlcnk6IHF1ZXJ5ID8gY2xvbmVRdWVyeShxdWVyeSkgOiB1bmRlZmluZWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IGNsb25lUXVlcnkgPSAocXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnKTogUXVlcnlQYXJhbWV0ZXJCYWcgPT5cbiAgT2JqZWN0LmtleXMocXVlcnkpLnJlZHVjZSgoY2Fycnk6IFF1ZXJ5UGFyYW1ldGVyQmFnLCBwYXJhbU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHBhcmFtID0gcXVlcnlbcGFyYW1OYW1lXTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2FycnksXG4gICAgICBbcGFyYW1OYW1lXTogQXJyYXkuaXNBcnJheShwYXJhbSkgPyBbLi4ucGFyYW1dIDogcGFyYW0sXG4gICAgfTtcbiAgfSwge30pO1xuIl19
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MAX_PRESIGNED_TTL = exports.KEY_TYPE_IDENTIFIER = exports.MAX_CACHE_SIZE = exports.UNSIGNED_PAYLOAD = exports.EVENT_ALGORITHM_IDENTIFIER = exports.ALGORITHM_IDENTIFIER = exports.UNSIGNABLE_PATTERNS = exports.SEC_HEADER_PATTERN = exports.PROXY_HEADER_PATTERN = exports.ALWAYS_UNSIGNABLE_HEADERS = exports.HOST_HEADER = exports.TOKEN_HEADER = exports.SHA256_HEADER = exports.SIGNATURE_HEADER = exports.GENERATED_HEADERS = exports.DATE_HEADER = exports.AMZ_DATE_HEADER = exports.AUTH_HEADER = exports.TOKEN_QUERY_PARAM = exports.SIGNATURE_QUERY_PARAM = exports.EXPIRES_QUERY_PARAM = exports.SIGNED_HEADERS_QUERY_PARAM = exports.AMZ_DATE_QUERY_PARAM = exports.CREDENTIAL_QUERY_PARAM = exports.ALGORITHM_QUERY_PARAM = void 0;
exports.MAX_PRESIGNED_TTL = exports.KEY_TYPE_IDENTIFIER = exports.MAX_CACHE_SIZE = exports.UNSIGNED_PAYLOAD = exports.EVENT_ALGORITHM_IDENTIFIER = exports.ALGORITHM_IDENTIFIER_V4A = exports.ALGORITHM_IDENTIFIER = exports.UNSIGNABLE_PATTERNS = exports.SEC_HEADER_PATTERN = exports.PROXY_HEADER_PATTERN = exports.ALWAYS_UNSIGNABLE_HEADERS = exports.HOST_HEADER = exports.TOKEN_HEADER = exports.SHA256_HEADER = exports.SIGNATURE_HEADER = exports.GENERATED_HEADERS = exports.DATE_HEADER = exports.AMZ_DATE_HEADER = exports.AUTH_HEADER = exports.REGION_SET_PARAM = exports.TOKEN_QUERY_PARAM = exports.SIGNATURE_QUERY_PARAM = exports.EXPIRES_QUERY_PARAM = exports.SIGNED_HEADERS_QUERY_PARAM = exports.AMZ_DATE_QUERY_PARAM = exports.CREDENTIAL_QUERY_PARAM = exports.ALGORITHM_QUERY_PARAM = void 0;
exports.ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm";

@@ -11,2 +11,3 @@ exports.CREDENTIAL_QUERY_PARAM = "X-Amz-Credential";

exports.TOKEN_QUERY_PARAM = "X-Amz-Security-Token";
exports.REGION_SET_PARAM = "X-Amz-Region-Set";
exports.AUTH_HEADER = "authorization";

@@ -41,2 +42,3 @@ exports.AMZ_DATE_HEADER = exports.AMZ_DATE_QUERY_PARAM.toLowerCase();

exports.ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256";
exports.ALGORITHM_IDENTIFIER_V4A = "AWS4-ECDSA-P256-SHA256";
exports.EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD";

@@ -47,2 +49,2 @@ exports.UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD";

exports.MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQzFDLFFBQUEsc0JBQXNCLEdBQUcsa0JBQWtCLENBQUM7QUFDNUMsUUFBQSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDcEMsUUFBQSwwQkFBMEIsR0FBRyxxQkFBcUIsQ0FBQztBQUNuRCxRQUFBLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUN0QyxRQUFBLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQzFDLFFBQUEsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7QUFFM0MsUUFBQSxXQUFXLEdBQUcsZUFBZSxDQUFDO0FBQzlCLFFBQUEsZUFBZSxHQUFHLDRCQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3JELFFBQUEsV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUNyQixRQUFBLGlCQUFpQixHQUFHLENBQUMsbUJBQVcsRUFBRSx1QkFBZSxFQUFFLG1CQUFXLENBQUMsQ0FBQztBQUNoRSxRQUFBLGdCQUFnQixHQUFHLDZCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3ZELFFBQUEsYUFBYSxHQUFHLHNCQUFzQixDQUFDO0FBQ3ZDLFFBQUEsWUFBWSxHQUFHLHlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQy9DLFFBQUEsV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVyQixRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxJQUFJO0lBQ1osSUFBSSxFQUFFLElBQUk7SUFDVixZQUFZLEVBQUUsSUFBSTtJQUNsQixjQUFjLEVBQUUsSUFBSTtJQUNwQixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsRUFBRSxFQUFFLElBQUk7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLG1CQUFtQixFQUFFLElBQUk7SUFDekIsT0FBTyxFQUFFLElBQUk7SUFDYixZQUFZLEVBQUUsSUFBSTtJQUNsQixpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFFVyxRQUFBLG9CQUFvQixHQUFHLFNBQVMsQ0FBQztBQUVqQyxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUU3QixRQUFBLG1CQUFtQixHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRTdDLFFBQUEsb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7QUFFMUMsUUFBQSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUV4RCxRQUFBLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRXRDLFFBQUEsY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUNwQixRQUFBLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVyQyxRQUFBLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBTEdPUklUSE1fUVVFUllfUEFSQU0gPSBcIlgtQW16LUFsZ29yaXRobVwiO1xuZXhwb3J0IGNvbnN0IENSRURFTlRJQUxfUVVFUllfUEFSQU0gPSBcIlgtQW16LUNyZWRlbnRpYWxcIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9RVUVSWV9QQVJBTSA9IFwiWC1BbXotRGF0ZVwiO1xuZXhwb3J0IGNvbnN0IFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TaWduZWRIZWFkZXJzXCI7XG5leHBvcnQgY29uc3QgRVhQSVJFU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotRXhwaXJlc1wiO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmF0dXJlXCI7XG5leHBvcnQgY29uc3QgVE9LRU5fUVVFUllfUEFSQU0gPSBcIlgtQW16LVNlY3VyaXR5LVRva2VuXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRIX0hFQURFUiA9IFwiYXV0aG9yaXphdGlvblwiO1xuZXhwb3J0IGNvbnN0IEFNWl9EQVRFX0hFQURFUiA9IEFNWl9EQVRFX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgREFURV9IRUFERVIgPSBcImRhdGVcIjtcbmV4cG9ydCBjb25zdCBHRU5FUkFURURfSEVBREVSUyA9IFtBVVRIX0hFQURFUiwgQU1aX0RBVEVfSEVBREVSLCBEQVRFX0hFQURFUl07XG5leHBvcnQgY29uc3QgU0lHTkFUVVJFX0hFQURFUiA9IFNJR05BVFVSRV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IFNIQTI1Nl9IRUFERVIgPSBcIngtYW16LWNvbnRlbnQtc2hhMjU2XCI7XG5leHBvcnQgY29uc3QgVE9LRU5fSEVBREVSID0gVE9LRU5fUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBIT1NUX0hFQURFUiA9IFwiaG9zdFwiO1xuXG5leHBvcnQgY29uc3QgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUyA9IHtcbiAgYXV0aG9yaXphdGlvbjogdHJ1ZSxcbiAgXCJjYWNoZS1jb250cm9sXCI6IHRydWUsXG4gIGNvbm5lY3Rpb246IHRydWUsXG4gIGV4cGVjdDogdHJ1ZSxcbiAgZnJvbTogdHJ1ZSxcbiAgXCJrZWVwLWFsaXZlXCI6IHRydWUsXG4gIFwibWF4LWZvcndhcmRzXCI6IHRydWUsXG4gIHByYWdtYTogdHJ1ZSxcbiAgcmVmZXJlcjogdHJ1ZSxcbiAgdGU6IHRydWUsXG4gIHRyYWlsZXI6IHRydWUsXG4gIFwidHJhbnNmZXItZW5jb2RpbmdcIjogdHJ1ZSxcbiAgdXBncmFkZTogdHJ1ZSxcbiAgXCJ1c2VyLWFnZW50XCI6IHRydWUsXG4gIFwieC1hbXpuLXRyYWNlLWlkXCI6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgUFJPWFlfSEVBREVSX1BBVFRFUk4gPSAvXnByb3h5LS87XG5cbmV4cG9ydCBjb25zdCBTRUNfSEVBREVSX1BBVFRFUk4gPSAvXnNlYy0vO1xuXG5leHBvcnQgY29uc3QgVU5TSUdOQUJMRV9QQVRURVJOUyA9IFsvXnByb3h5LS9pLCAvXnNlYy0vaV07XG5cbmV4cG9ydCBjb25zdCBBTEdPUklUSE1fSURFTlRJRklFUiA9IFwiQVdTNC1ITUFDLVNIQTI1NlwiO1xuXG5leHBvcnQgY29uc3QgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTYtUEFZTE9BRFwiO1xuXG5leHBvcnQgY29uc3QgVU5TSUdORURfUEFZTE9BRCA9IFwiVU5TSUdORUQtUEFZTE9BRFwiO1xuXG5leHBvcnQgY29uc3QgTUFYX0NBQ0hFX1NJWkUgPSA1MDtcbmV4cG9ydCBjb25zdCBLRVlfVFlQRV9JREVOVElGSUVSID0gXCJhd3M0X3JlcXVlc3RcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9QUkVTSUdORURfVFRMID0gNjAgKiA2MCAqIDI0ICogNztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQzFDLFFBQUEsc0JBQXNCLEdBQUcsa0JBQWtCLENBQUM7QUFDNUMsUUFBQSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDcEMsUUFBQSwwQkFBMEIsR0FBRyxxQkFBcUIsQ0FBQztBQUNuRCxRQUFBLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUN0QyxRQUFBLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQzFDLFFBQUEsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7QUFDM0MsUUFBQSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV0QyxRQUFBLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDOUIsUUFBQSxlQUFlLEdBQUcsNEJBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDckQsUUFBQSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQ3JCLFFBQUEsaUJBQWlCLEdBQUcsQ0FBQyxtQkFBVyxFQUFFLHVCQUFlLEVBQUUsbUJBQVcsQ0FBQyxDQUFDO0FBQ2hFLFFBQUEsZ0JBQWdCLEdBQUcsNkJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDdkQsUUFBQSxhQUFhLEdBQUcsc0JBQXNCLENBQUM7QUFDdkMsUUFBQSxZQUFZLEdBQUcseUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDL0MsUUFBQSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBRXJCLFFBQUEseUJBQXlCLEdBQUc7SUFDdkMsYUFBYSxFQUFFLElBQUk7SUFDbkIsZUFBZSxFQUFFLElBQUk7SUFDckIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLElBQUk7SUFDWixJQUFJLEVBQUUsSUFBSTtJQUNWLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixFQUFFLEVBQUUsSUFBSTtJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsbUJBQW1CLEVBQUUsSUFBSTtJQUN6QixPQUFPLEVBQUUsSUFBSTtJQUNiLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGlCQUFpQixFQUFFLElBQUk7Q0FDeEIsQ0FBQztBQUVXLFFBQUEsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRWpDLFFBQUEsa0JBQWtCLEdBQUcsT0FBTyxDQUFDO0FBRTdCLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFN0MsUUFBQSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUMxQyxRQUFBLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO0FBRXBELFFBQUEsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUM7QUFFeEQsUUFBQSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV0QyxRQUFBLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFDcEIsUUFBQSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFFckMsUUFBQSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuZXhwb3J0IGNvbnN0IFJFR0lPTl9TRVRfUEFSQU0gPSBcIlgtQW16LVJlZ2lvbi1TZXRcIjtcblxuZXhwb3J0IGNvbnN0IEFVVEhfSEVBREVSID0gXCJhdXRob3JpemF0aW9uXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfSEVBREVSID0gQU1aX0RBVEVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBEQVRFX0hFQURFUiA9IFwiZGF0ZVwiO1xuZXhwb3J0IGNvbnN0IEdFTkVSQVRFRF9IRUFERVJTID0gW0FVVEhfSEVBREVSLCBBTVpfREFURV9IRUFERVIsIERBVEVfSEVBREVSXTtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfSEVBREVSID0gU0lHTkFUVVJFX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgU0hBMjU2X0hFQURFUiA9IFwieC1hbXotY29udGVudC1zaGEyNTZcIjtcbmV4cG9ydCBjb25zdCBUT0tFTl9IRUFERVIgPSBUT0tFTl9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IEhPU1RfSEVBREVSID0gXCJob3N0XCI7XG5cbmV4cG9ydCBjb25zdCBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTID0ge1xuICBhdXRob3JpemF0aW9uOiB0cnVlLFxuICBcImNhY2hlLWNvbnRyb2xcIjogdHJ1ZSxcbiAgY29ubmVjdGlvbjogdHJ1ZSxcbiAgZXhwZWN0OiB0cnVlLFxuICBmcm9tOiB0cnVlLFxuICBcImtlZXAtYWxpdmVcIjogdHJ1ZSxcbiAgXCJtYXgtZm9yd2FyZHNcIjogdHJ1ZSxcbiAgcHJhZ21hOiB0cnVlLFxuICByZWZlcmVyOiB0cnVlLFxuICB0ZTogdHJ1ZSxcbiAgdHJhaWxlcjogdHJ1ZSxcbiAgXCJ0cmFuc2Zlci1lbmNvZGluZ1wiOiB0cnVlLFxuICB1cGdyYWRlOiB0cnVlLFxuICBcInVzZXItYWdlbnRcIjogdHJ1ZSxcbiAgXCJ4LWFtem4tdHJhY2UtaWRcIjogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBQUk9YWV9IRUFERVJfUEFUVEVSTiA9IC9ecHJveHktLztcblxuZXhwb3J0IGNvbnN0IFNFQ19IRUFERVJfUEFUVEVSTiA9IC9ec2VjLS87XG5cbmV4cG9ydCBjb25zdCBVTlNJR05BQkxFX1BBVFRFUk5TID0gWy9ecHJveHktL2ksIC9ec2VjLS9pXTtcblxuZXhwb3J0IGNvbnN0IEFMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2XCI7XG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVJfVjRBID0gXCJBV1M0LUVDRFNBLVAyNTYtU0hBMjU2XCI7XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9BTEdPUklUSE1fSURFTlRJRklFUiA9IFwiQVdTNC1ITUFDLVNIQTI1Ni1QQVlMT0FEXCI7XG5cbmV4cG9ydCBjb25zdCBVTlNJR05FRF9QQVlMT0FEID0gXCJVTlNJR05FRC1QQVlMT0FEXCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfQ0FDSEVfU0laRSA9IDUwO1xuZXhwb3J0IGNvbnN0IEtFWV9UWVBFX0lERU5USUZJRVIgPSBcImF3czRfcmVxdWVzdFwiO1xuXG5leHBvcnQgY29uc3QgTUFYX1BSRVNJR05FRF9UVEwgPSA2MCAqIDYwICogMjQgKiA3O1xuIl19

@@ -15,5 +15,3 @@ "use strict";

*/
function createScope(shortDate, region, service) {
return `${shortDate}/${region}/${service}/${constants_1.KEY_TYPE_IDENTIFIER}`;
}
const createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${constants_1.KEY_TYPE_IDENTIFIER}`;
exports.createScope = createScope;

@@ -34,3 +32,3 @@ /**

const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);
const cacheKey = `${shortDate}:${region}:${service}:${util_hex_encoding_1.toHex(credsHash)}:${credentials.sessionToken}`;
const cacheKey = `${shortDate}:${region}:${service}:${(0, util_hex_encoding_1.toHex)(credsHash)}:${credentials.sessionToken}`;
if (cacheKey in signingKeyCache) {

@@ -53,3 +51,3 @@ return signingKeyCache[cacheKey];

*/
function clearCredentialCache() {
const clearCredentialCache = () => {
cacheQueue.length = 0;

@@ -59,9 +57,9 @@ Object.keys(signingKeyCache).forEach((cacheKey) => {

});
}
};
exports.clearCredentialCache = clearCredentialCache;
function hmac(ctor, secret, data) {
const hmac = (ctor, secret, data) => {
const hash = new ctor(secret);
hash.update(data);
return hash.digest();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0VBQW1EO0FBRW5ELDJDQUFrRTtBQUVsRSxNQUFNLGVBQWUsR0FBa0MsRUFBRSxDQUFDO0FBQzFELE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7QUFFckM7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUUsT0FBTyxHQUFHLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxJQUFJLCtCQUFtQixFQUFFLENBQUM7QUFDcEUsQ0FBQztBQUZELGtDQUVDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQ2hDLGlCQUFrQyxFQUNsQyxXQUF3QixFQUN4QixTQUFpQixFQUNqQixNQUFjLEVBQ2QsT0FBZSxFQUNNLEVBQUU7SUFDdkIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEcsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLElBQUksTUFBTSxJQUFJLE9BQU8sSUFBSSx5QkFBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyRyxJQUFJLFFBQVEsSUFBSSxlQUFlLEVBQUU7UUFDL0IsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDbEM7SUFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRywwQkFBYyxFQUFFO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO0tBQ3REO0lBRUQsSUFBSSxHQUFHLEdBQWUsT0FBTyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0QsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLCtCQUFtQixDQUFDLEVBQUU7UUFDeEUsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztLQUNwRDtJQUNELE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBaUIsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQztBQXZCVyxRQUFBLGFBQWEsaUJBdUJ4QjtBQUVGOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CO0lBQ2xDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDaEQsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBTEQsb0RBS0M7QUFFRCxTQUFTLElBQUksQ0FBQyxJQUFxQixFQUFFLE1BQWtCLEVBQUUsSUFBZ0I7SUFDdkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlZGVudGlhbHMsIEhhc2hDb25zdHJ1Y3RvciwgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgdG9IZXggfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1oZXgtZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgS0VZX1RZUEVfSURFTlRJRklFUiwgTUFYX0NBQ0hFX1NJWkUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3Qgc2lnbmluZ0tleUNhY2hlOiB7IFtrZXk6IHN0cmluZ106IFVpbnQ4QXJyYXkgfSA9IHt9O1xuY29uc3QgY2FjaGVRdWV1ZTogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4vKipcbiAqIENyZWF0ZSBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBzY29wZSBvZiBjcmVkZW50aWFscyB1c2VkIHRvIHNpZ24gYSByZXF1ZXN0LlxuICpcbiAqIEBwYXJhbSBzaG9ydERhdGUgVGhlIGN1cnJlbnQgY2FsZW5kYXIgZGF0ZSBpbiB0aGUgZm9ybSBZWVlZTU1ERC5cbiAqIEBwYXJhbSByZWdpb24gICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgVGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIHNpZ25lZCByZXF1ZXN0IGlzIGJlaW5nIHNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTY29wZShzaG9ydERhdGU6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaG9ydERhdGV9LyR7cmVnaW9ufS8ke3NlcnZpY2V9LyR7S0VZX1RZUEVfSURFTlRJRklFUn1gO1xufVxuXG4vKipcbiAqIERlcml2ZSBhIHNpZ25pbmcga2V5IGZyb20gaXRzIGNvbXBvc2l0ZSBwYXJ0c1xuICpcbiAqIEBwYXJhbSBzaGEyNTZDb25zdHJ1Y3RvciBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHRoYXQgY2FuIGluc3RhbnRpYXRlIFNIQS0yNTZcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoIG9iamVjdHMuXG4gKiBAcGFyYW0gY3JlZGVudGlhbHMgICAgICAgVGhlIGNyZWRlbnRpYWxzIHdpdGggd2hpY2ggdGhlIHJlcXVlc3Qgd2lsbCBiZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZC5cbiAqIEBwYXJhbSBzaG9ydERhdGUgICAgICAgICBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICAgICAgICAgIFRoZSBBV1MgcmVnaW9uIGluIHdoaWNoIHRoZSBzZXJ2aWNlIHJlc2lkZXMuXG4gKiBAcGFyYW0gc2VydmljZSAgICAgICAgICAgVGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIHNpZ25lZCByZXF1ZXN0IGlzIGJlaW5nXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFNpZ25pbmdLZXkgPSBhc3luYyAoXG4gIHNoYTI1NkNvbnN0cnVjdG9yOiBIYXNoQ29uc3RydWN0b3IsXG4gIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyxcbiAgc2hvcnREYXRlOiBzdHJpbmcsXG4gIHJlZ2lvbjogc3RyaW5nLFxuICBzZXJ2aWNlOiBzdHJpbmdcbik6IFByb21pc2U8VWludDhBcnJheT4gPT4ge1xuICBjb25zdCBjcmVkc0hhc2ggPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksIGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkKTtcbiAgY29uc3QgY2FjaGVLZXkgPSBgJHtzaG9ydERhdGV9OiR7cmVnaW9ufToke3NlcnZpY2V9OiR7dG9IZXgoY3JlZHNIYXNoKX06JHtjcmVkZW50aWFscy5zZXNzaW9uVG9rZW59YDtcbiAgaWYgKGNhY2hlS2V5IGluIHNpZ25pbmdLZXlDYWNoZSkge1xuICAgIHJldHVybiBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9XG5cbiAgY2FjaGVRdWV1ZS5wdXNoKGNhY2hlS2V5KTtcbiAgd2hpbGUgKGNhY2hlUXVldWUubGVuZ3RoID4gTUFYX0NBQ0hFX1NJWkUpIHtcbiAgICBkZWxldGUgc2lnbmluZ0tleUNhY2hlW2NhY2hlUXVldWUuc2hpZnQoKSBhcyBzdHJpbmddO1xuICB9XG5cbiAgbGV0IGtleTogU291cmNlRGF0YSA9IGBBV1M0JHtjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXl9YDtcbiAgZm9yIChjb25zdCBzaWduYWJsZSBvZiBbc2hvcnREYXRlLCByZWdpb24sIHNlcnZpY2UsIEtFWV9UWVBFX0lERU5USUZJRVJdKSB7XG4gICAga2V5ID0gYXdhaXQgaG1hYyhzaGEyNTZDb25zdHJ1Y3Rvciwga2V5LCBzaWduYWJsZSk7XG4gIH1cbiAgcmV0dXJuIChzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldID0ga2V5IGFzIFVpbnQ4QXJyYXkpO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQ3JlZGVudGlhbENhY2hlKCk6IHZvaWQge1xuICBjYWNoZVF1ZXVlLmxlbmd0aCA9IDA7XG4gIE9iamVjdC5rZXlzKHNpZ25pbmdLZXlDYWNoZSkuZm9yRWFjaCgoY2FjaGVLZXkpID0+IHtcbiAgICBkZWxldGUgc2lnbmluZ0tleUNhY2hlW2NhY2hlS2V5XTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhtYWMoY3RvcjogSGFzaENvbnN0cnVjdG9yLCBzZWNyZXQ6IFNvdXJjZURhdGEsIGRhdGE6IFNvdXJjZURhdGEpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgY29uc3QgaGFzaCA9IG5ldyBjdG9yKHNlY3JldCk7XG4gIGhhc2gudXBkYXRlKGRhdGEpO1xuICByZXR1cm4gaGFzaC5kaWdlc3QoKTtcbn1cbiJdfQ==
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0VBQW1EO0FBRW5ELDJDQUFrRTtBQUVsRSxNQUFNLGVBQWUsR0FBa0MsRUFBRSxDQUFDO0FBQzFELE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7QUFFckM7Ozs7OztHQU1HO0FBQ0ksTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxPQUFlLEVBQVUsRUFBRSxDQUN4RixHQUFHLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxJQUFJLCtCQUFtQixFQUFFLENBQUM7QUFEaEQsUUFBQSxXQUFXLGVBQ3FDO0FBRTdEOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUNoQyxpQkFBa0MsRUFDbEMsV0FBd0IsRUFDeEIsU0FBaUIsRUFDakIsTUFBYyxFQUNkLE9BQWUsRUFDTSxFQUFFO0lBQ3ZCLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sUUFBUSxHQUFHLEdBQUcsU0FBUyxJQUFJLE1BQU0sSUFBSSxPQUFPLElBQUksSUFBQSx5QkFBSyxFQUFDLFNBQVMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyRyxJQUFJLFFBQVEsSUFBSSxlQUFlLEVBQUU7UUFDL0IsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDbEM7SUFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRywwQkFBYyxFQUFFO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO0tBQ3REO0lBRUQsSUFBSSxHQUFHLEdBQWUsT0FBTyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0QsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLCtCQUFtQixDQUFDLEVBQUU7UUFDeEUsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztLQUNwRDtJQUNELE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBaUIsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQztBQXZCVyxRQUFBLGFBQWEsaUJBdUJ4QjtBQUVGOztHQUVHO0FBQ0ksTUFBTSxvQkFBb0IsR0FBRyxHQUFTLEVBQUU7SUFDN0MsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNoRCxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUxXLFFBQUEsb0JBQW9CLHdCQUsvQjtBQUVGLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBcUIsRUFBRSxNQUFrQixFQUFFLElBQWdCLEVBQXVCLEVBQUU7SUFDaEcsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscywgSGFzaENvbnN0cnVjdG9yLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogVWludDhBcnJheSB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVNjb3BlID0gKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgY29uc3QgZ2V0U2lnbmluZ0tleSA9IGFzeW5jIChcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGNyZWRzSGFzaCA9IGF3YWl0IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06JHt0b0hleChjcmVkc0hhc2gpfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICBsZXQga2V5OiBTb3VyY2VEYXRhID0gYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gO1xuICBmb3IgKGNvbnN0IHNpZ25hYmxlIG9mIFtzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSwgS0VZX1RZUEVfSURFTlRJRklFUl0pIHtcbiAgICBrZXkgPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBrZXksIHNpZ25hYmxlKTtcbiAgfVxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBrZXkgYXMgVWludDhBcnJheSk7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgY2xlYXJDcmVkZW50aWFsQ2FjaGUgPSAoKTogdm9pZCA9PiB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn07XG5cbmNvbnN0IGhtYWMgPSAoY3RvcjogSGFzaENvbnN0cnVjdG9yLCBzZWNyZXQ6IFNvdXJjZURhdGEsIGRhdGE6IFNvdXJjZURhdGEpOiBQcm9taXNlPFVpbnQ4QXJyYXk+ID0+IHtcbiAgY29uc3QgaGFzaCA9IG5ldyBjdG9yKHNlY3JldCk7XG4gIGhhc2gudXBkYXRlKGRhdGEpO1xuICByZXR1cm4gaGFzaC5kaWdlc3QoKTtcbn07XG4iXX0=

@@ -6,5 +6,5 @@ "use strict";

/**
* @internal
* @private
*/
function getCanonicalHeaders({ headers }, unsignableHeaders, signableHeaders) {
const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {
const canonical = {};

@@ -24,4 +24,4 @@ for (const headerName of Object.keys(headers).sort()) {

return canonical;
}
};
exports.getCanonicalHeaders = getCanonicalHeaders;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJDQUFrRztBQUVsRzs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUNqQyxFQUFFLE9BQU8sRUFBZSxFQUN4QixpQkFBK0IsRUFDL0IsZUFBNkI7SUFFN0IsTUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDO0lBQ2hDLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwRCxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRCxJQUNFLG1CQUFtQixJQUFJLHFDQUF5QjthQUNoRCxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtZQUMzQyxnQ0FBb0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDOUMsOEJBQWtCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQzVDO1lBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO2dCQUN0RixTQUFTO2FBQ1Y7U0FDRjtRQUVELFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ2xGO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQXZCRCxrREF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMsIFBST1hZX0hFQURFUl9QQVRURVJOLCBTRUNfSEVBREVSX1BBVFRFUk4gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbEhlYWRlcnMoXG4gIHsgaGVhZGVycyB9OiBIdHRwUmVxdWVzdCxcbiAgdW5zaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPixcbiAgc2lnbmFibGVIZWFkZXJzPzogU2V0PHN0cmluZz5cbik6IEhlYWRlckJhZyB7XG4gIGNvbnN0IGNhbm9uaWNhbDogSGVhZGVyQmFnID0ge307XG4gIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhoZWFkZXJzKS5zb3J0KCkpIHtcbiAgICBjb25zdCBjYW5vbmljYWxIZWFkZXJOYW1lID0gaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChcbiAgICAgIGNhbm9uaWNhbEhlYWRlck5hbWUgaW4gQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUyB8fFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnM/LmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSB8fFxuICAgICAgUFJPWFlfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKSB8fFxuICAgICAgU0VDX0hFQURFUl9QQVRURVJOLnRlc3QoY2Fub25pY2FsSGVhZGVyTmFtZSlcbiAgICApIHtcbiAgICAgIGlmICghc2lnbmFibGVIZWFkZXJzIHx8IChzaWduYWJsZUhlYWRlcnMgJiYgIXNpZ25hYmxlSGVhZGVycy5oYXMoY2Fub25pY2FsSGVhZGVyTmFtZSkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNhbm9uaWNhbFtjYW5vbmljYWxIZWFkZXJOYW1lXSA9IGhlYWRlcnNbaGVhZGVyTmFtZV0udHJpbSgpLnJlcGxhY2UoL1xccysvZywgXCIgXCIpO1xuICB9XG5cbiAgcmV0dXJuIGNhbm9uaWNhbDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJDQUFrRztBQUVsRzs7R0FFRztBQUNJLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsRUFBRSxPQUFPLEVBQWUsRUFDeEIsaUJBQStCLEVBQy9CLGVBQTZCLEVBQ2xCLEVBQUU7SUFDYixNQUFNLFNBQVMsR0FBYyxFQUFFLENBQUM7SUFDaEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3BELE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JELElBQ0UsbUJBQW1CLElBQUkscUNBQXlCO2FBQ2hELGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1lBQzNDLGdDQUFvQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM5Qyw4QkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7WUFDQSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RGLFNBQVM7YUFDVjtTQUNGO1FBRUQsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDbEY7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUF2QlcsUUFBQSxtQkFBbUIsdUJBdUI5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDYW5vbmljYWxIZWFkZXJzID0gKFxuICB7IGhlYWRlcnMgfTogSHR0cFJlcXVlc3QsXG4gIHVuc2lnbmFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4sXG4gIHNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+XG4pOiBIZWFkZXJCYWcgPT4ge1xuICBjb25zdCBjYW5vbmljYWw6IEhlYWRlckJhZyA9IHt9O1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykuc29ydCgpKSB7XG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVyTmFtZSA9IGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoXG4gICAgICBjYW5vbmljYWxIZWFkZXJOYW1lIGluIEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgfHxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzPy5oYXMoY2Fub25pY2FsSGVhZGVyTmFtZSkgfHxcbiAgICAgIFBST1hZX0hFQURFUl9QQVRURVJOLnRlc3QoY2Fub25pY2FsSGVhZGVyTmFtZSkgfHxcbiAgICAgIFNFQ19IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNpZ25hYmxlSGVhZGVycyB8fCAoc2lnbmFibGVIZWFkZXJzICYmICFzaWduYWJsZUhlYWRlcnMuaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5vbmljYWxbY2Fub25pY2FsSGVhZGVyTmFtZV0gPSBoZWFkZXJzW2hlYWRlck5hbWVdLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKTtcbiAgfVxuXG4gIHJldHVybiBjYW5vbmljYWw7XG59O1xuIl19

@@ -7,5 +7,5 @@ "use strict";

/**
* @internal
* @private
*/
function getCanonicalQuery({ query = {} }) {
const getCanonicalQuery = ({ query = {} }) => {
const keys = [];

@@ -20,3 +20,3 @@ const serialized = {};

if (typeof value === "string") {
serialized[key] = `${util_uri_escape_1.escapeUri(key)}=${util_uri_escape_1.escapeUri(value)}`;
serialized[key] = `${(0, util_uri_escape_1.escapeUri)(key)}=${(0, util_uri_escape_1.escapeUri)(value)}`;
}

@@ -27,3 +27,3 @@ else if (Array.isArray(value)) {

.sort()
.reduce((encoded, value) => encoded.concat([`${util_uri_escape_1.escapeUri(key)}=${util_uri_escape_1.escapeUri(value)}`]), [])
.reduce((encoded, value) => encoded.concat([`${(0, util_uri_escape_1.escapeUri)(key)}=${(0, util_uri_escape_1.escapeUri)(value)}`]), [])
.join("&");

@@ -36,4 +36,4 @@ }

.join("&");
}
};
exports.getCanonicalQuery = getCanonicalQuery;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOERBQXFEO0FBRXJELDJDQUErQztBQUUvQzs7R0FFRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBZTtJQUMzRCxNQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLE1BQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7SUFDakQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzNDLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLDRCQUFnQixFQUFFO1lBQzFDLFNBQVM7U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsMkJBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSwyQkFBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7U0FDM0Q7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUs7aUJBQ3BCLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ1IsSUFBSSxFQUFFO2lCQUNOLE1BQU0sQ0FDTCxDQUFDLE9BQXNCLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRywyQkFBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLDJCQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3BHLEVBQUUsQ0FDSDtpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDtLQUNGO0lBRUQsT0FBTyxJQUFJO1NBQ1IsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0IsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQTVCRCw4Q0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZXNjYXBlVXJpIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXJpLWVzY2FwZVwiO1xuXG5pbXBvcnQgeyBTSUdOQVRVUkVfSEVBREVSIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYW5vbmljYWxRdWVyeSh7IHF1ZXJ5ID0ge30gfTogSHR0cFJlcXVlc3QpOiBzdHJpbmcge1xuICBjb25zdCBrZXlzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGNvbnN0IHNlcmlhbGl6ZWQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocXVlcnkpLnNvcnQoKSkge1xuICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gU0lHTkFUVVJFX0hFQURFUikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAga2V5cy5wdXNoKGtleSk7XG4gICAgY29uc3QgdmFsdWUgPSBxdWVyeVtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IGAke2VzY2FwZVVyaShrZXkpfT0ke2VzY2FwZVVyaSh2YWx1ZSl9YDtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBzZXJpYWxpemVkW2tleV0gPSB2YWx1ZVxuICAgICAgICAuc2xpY2UoMClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChlbmNvZGVkOiBBcnJheTxzdHJpbmc+LCB2YWx1ZTogc3RyaW5nKSA9PiBlbmNvZGVkLmNvbmNhdChbYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gXSksXG4gICAgICAgICAgW11cbiAgICAgICAgKVxuICAgICAgICAuam9pbihcIiZcIik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGtleXNcbiAgICAubWFwKChrZXkpID0+IHNlcmlhbGl6ZWRba2V5XSlcbiAgICAuZmlsdGVyKChzZXJpYWxpemVkKSA9PiBzZXJpYWxpemVkKSAvLyBvbWl0IGFueSBmYWxzeSB2YWx1ZXNcbiAgICAuam9pbihcIiZcIik7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOERBQXFEO0FBRXJELDJDQUErQztBQUUvQzs7R0FFRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQWUsRUFBVSxFQUFFO0lBQ3ZFLE1BQU0sSUFBSSxHQUFrQixFQUFFLENBQUM7SUFDL0IsTUFBTSxVQUFVLEdBQThCLEVBQUUsQ0FBQztJQUNqRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDM0MsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssNEJBQWdCLEVBQUU7WUFDMUMsU0FBUztTQUNWO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFBLDJCQUFTLEVBQUMsR0FBRyxDQUFDLElBQUksSUFBQSwyQkFBUyxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7U0FDM0Q7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUs7aUJBQ3BCLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ1IsSUFBSSxFQUFFO2lCQUNOLE1BQU0sQ0FDTCxDQUFDLE9BQXNCLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFBLDJCQUFTLEVBQUMsR0FBRyxDQUFDLElBQUksSUFBQSwyQkFBUyxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNwRyxFQUFFLENBQ0g7aUJBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2Q7S0FDRjtJQUVELE9BQU8sSUFBSTtTQUNSLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsd0JBQXdCO1NBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQztBQTVCVyxRQUFBLGlCQUFpQixxQkE0QjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGVzY2FwZVVyaSB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVyaS1lc2NhcGVcIjtcblxuaW1wb3J0IHsgU0lHTkFUVVJFX0hFQURFUiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDYW5vbmljYWxRdWVyeSA9ICh7IHF1ZXJ5ID0ge30gfTogSHR0cFJlcXVlc3QpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBrZXlzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGNvbnN0IHNlcmlhbGl6ZWQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocXVlcnkpLnNvcnQoKSkge1xuICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gU0lHTkFUVVJFX0hFQURFUikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAga2V5cy5wdXNoKGtleSk7XG4gICAgY29uc3QgdmFsdWUgPSBxdWVyeVtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IGAke2VzY2FwZVVyaShrZXkpfT0ke2VzY2FwZVVyaSh2YWx1ZSl9YDtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBzZXJpYWxpemVkW2tleV0gPSB2YWx1ZVxuICAgICAgICAuc2xpY2UoMClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChlbmNvZGVkOiBBcnJheTxzdHJpbmc+LCB2YWx1ZTogc3RyaW5nKSA9PiBlbmNvZGVkLmNvbmNhdChbYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gXSksXG4gICAgICAgICAgW11cbiAgICAgICAgKVxuICAgICAgICAuam9pbihcIiZcIik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGtleXNcbiAgICAubWFwKChrZXkpID0+IHNlcmlhbGl6ZWRba2V5XSlcbiAgICAuZmlsdGVyKChzZXJpYWxpemVkKSA9PiBzZXJpYWxpemVkKSAvLyBvbWl0IGFueSBmYWxzeSB2YWx1ZXNcbiAgICAuam9pbihcIiZcIik7XG59O1xuIl19

@@ -8,5 +8,5 @@ "use strict";

/**
* @internal
* @private
*/
async function getPayloadHash({ headers, body }, hashConstructor) {
const getPayloadHash = async ({ headers, body }, hashConstructor) => {
for (const headerName of Object.keys(headers)) {

@@ -20,6 +20,6 @@ if (headerName.toLowerCase() === constants_1.SHA256_HEADER) {

}
else if (typeof body === "string" || ArrayBuffer.isView(body) || is_array_buffer_1.isArrayBuffer(body)) {
else if (typeof body === "string" || ArrayBuffer.isView(body) || (0, is_array_buffer_1.isArrayBuffer)(body)) {
const hashCtor = new hashConstructor();
hashCtor.update(body);
return util_hex_encoding_1.toHex(await hashCtor.digest());
return (0, util_hex_encoding_1.toHex)(await hashCtor.digest());
}

@@ -30,4 +30,4 @@ // As any defined body that is not a string or binary data is a stream, this

return constants_1.UNSIGNED_PAYLOAD;
}
};
exports.getPayloadHash = getPayloadHash;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQXlEO0FBRXpELGtFQUFtRDtBQUVuRCwyQ0FBOEQ7QUFFOUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUNsQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQWUsRUFDOUIsZUFBZ0M7SUFFaEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzdDLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLHlCQUFhLEVBQUU7WUFDOUMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDNUI7S0FDRjtJQUVELElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTtRQUNyQixPQUFPLGtFQUFrRSxDQUFDO0tBQzNFO1NBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwrQkFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RGLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDdkMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixPQUFPLHlCQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUN2QztJQUVELDRFQUE0RTtJQUM1RSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQU8sNEJBQWdCLENBQUM7QUFDMUIsQ0FBQztBQXRCRCx3Q0FzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5QnVmZmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2lzLWFycmF5LWJ1ZmZlclwiO1xuaW1wb3J0IHsgSGFzaENvbnN0cnVjdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgdG9IZXggfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1oZXgtZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgU0hBMjU2X0hFQURFUiwgVU5TSUdORURfUEFZTE9BRCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGF5bG9hZEhhc2goXG4gIHsgaGVhZGVycywgYm9keSB9OiBIdHRwUmVxdWVzdCxcbiAgaGFzaENvbnN0cnVjdG9yOiBIYXNoQ29uc3RydWN0b3Jcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhoZWFkZXJzKSkge1xuICAgIGlmIChoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFNIQTI1Nl9IRUFERVIpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzW2hlYWRlck5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIGlmIChib2R5ID09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBcImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTVcIjtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheUJ1ZmZlci5pc1ZpZXcoYm9keSkgfHwgaXNBcnJheUJ1ZmZlcihib2R5KSkge1xuICAgIGNvbnN0IGhhc2hDdG9yID0gbmV3IGhhc2hDb25zdHJ1Y3RvcigpO1xuICAgIGhhc2hDdG9yLnVwZGF0ZShib2R5KTtcbiAgICByZXR1cm4gdG9IZXgoYXdhaXQgaGFzaEN0b3IuZGlnZXN0KCkpO1xuICB9XG5cbiAgLy8gQXMgYW55IGRlZmluZWQgYm9keSB0aGF0IGlzIG5vdCBhIHN0cmluZyBvciBiaW5hcnkgZGF0YSBpcyBhIHN0cmVhbSwgdGhpc1xuICAvLyBib2R5IGlzIHVuc2lnbmFibGUuIEF0dGVtcHQgdG8gc2VuZCB0aGUgcmVxdWVzdCB3aXRoIGFuIHVuc2lnbmVkIHBheWxvYWQsXG4gIC8vIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIGFjY2VwdGVkIGJ5IHRoZSBzZXJ2aWNlLlxuICByZXR1cm4gVU5TSUdORURfUEFZTE9BRDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQXlEO0FBRXpELGtFQUFtRDtBQUVuRCwyQ0FBOEQ7QUFFOUQ7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQ2pDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBZSxFQUM5QixlQUFnQyxFQUNmLEVBQUU7SUFDbkIsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzdDLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLHlCQUFhLEVBQUU7WUFDOUMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDNUI7S0FDRjtJQUVELElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTtRQUNyQixPQUFPLGtFQUFrRSxDQUFDO0tBQzNFO1NBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFBLCtCQUFhLEVBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUN2QyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sSUFBQSx5QkFBSyxFQUFDLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDdkM7SUFFRCw0RUFBNEU7SUFDNUUsNEVBQTRFO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFPLDRCQUFnQixDQUFDO0FBQzFCLENBQUMsQ0FBQztBQXRCVyxRQUFBLGNBQWMsa0JBc0J6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFBheWxvYWRIYXNoID0gYXN5bmMgKFxuICB7IGhlYWRlcnMsIGJvZHkgfTogSHR0cFJlcXVlc3QsXG4gIGhhc2hDb25zdHJ1Y3RvcjogSGFzaENvbnN0cnVjdG9yXG4pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpID09PSBTSEEyNTZfSEVBREVSKSB7XG4gICAgICByZXR1cm4gaGVhZGVyc1toZWFkZXJOYW1lXTtcbiAgICB9XG4gIH1cblxuICBpZiAoYm9keSA9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gXCJlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1XCI7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09IFwic3RyaW5nXCIgfHwgQXJyYXlCdWZmZXIuaXNWaWV3KGJvZHkpIHx8IGlzQXJyYXlCdWZmZXIoYm9keSkpIHtcbiAgICBjb25zdCBoYXNoQ3RvciA9IG5ldyBoYXNoQ29uc3RydWN0b3IoKTtcbiAgICBoYXNoQ3Rvci51cGRhdGUoYm9keSk7XG4gICAgcmV0dXJuIHRvSGV4KGF3YWl0IGhhc2hDdG9yLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIC8vIEFzIGFueSBkZWZpbmVkIGJvZHkgdGhhdCBpcyBub3QgYSBzdHJpbmcgb3IgYmluYXJ5IGRhdGEgaXMgYSBzdHJlYW0sIHRoaXNcbiAgLy8gYm9keSBpcyB1bnNpZ25hYmxlLiBBdHRlbXB0IHRvIHNlbmQgdGhlIHJlcXVlc3Qgd2l0aCBhbiB1bnNpZ25lZCBwYXlsb2FkLFxuICAvLyB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSBhY2NlcHRlZCBieSB0aGUgc2VydmljZS5cbiAgcmV0dXJuIFVOU0lHTkVEX1BBWUxPQUQ7XG59O1xuIl19
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeRegionProvider = exports.normalizeCredentialsProvider = exports.prepareRequest = exports.moveHeadersToQuery = exports.getPayloadHash = exports.getCanonicalQuery = exports.getCanonicalHeaders = void 0;
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./credentialDerivation"), exports);
tslib_1.__exportStar(require("./SignatureV4"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQXVDO0FBQ3ZDLHdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NyZWRlbnRpYWxEZXJpdmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TaWduYXR1cmVWNFwiO1xuIl19
(0, tslib_1.__exportStar)(require("./credentialDerivation"), exports);
var getCanonicalHeaders_1 = require("./getCanonicalHeaders");
Object.defineProperty(exports, "getCanonicalHeaders", { enumerable: true, get: function () { return getCanonicalHeaders_1.getCanonicalHeaders; } });
var getCanonicalQuery_1 = require("./getCanonicalQuery");
Object.defineProperty(exports, "getCanonicalQuery", { enumerable: true, get: function () { return getCanonicalQuery_1.getCanonicalQuery; } });
var getPayloadHash_1 = require("./getPayloadHash");
Object.defineProperty(exports, "getPayloadHash", { enumerable: true, get: function () { return getPayloadHash_1.getPayloadHash; } });
var moveHeadersToQuery_1 = require("./moveHeadersToQuery");
Object.defineProperty(exports, "moveHeadersToQuery", { enumerable: true, get: function () { return moveHeadersToQuery_1.moveHeadersToQuery; } });
var prepareRequest_1 = require("./prepareRequest");
Object.defineProperty(exports, "prepareRequest", { enumerable: true, get: function () { return prepareRequest_1.prepareRequest; } });
var normalizeProvider_1 = require("./normalizeProvider");
Object.defineProperty(exports, "normalizeCredentialsProvider", { enumerable: true, get: function () { return normalizeProvider_1.normalizeCredentialsProvider; } });
Object.defineProperty(exports, "normalizeRegionProvider", { enumerable: true, get: function () { return normalizeProvider_1.normalizeRegionProvider; } });
(0, tslib_1.__exportStar)(require("./SignatureV4"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHNFQUF1QztBQUN2Qyw2REFBNEQ7QUFBbkQsMEhBQUEsbUJBQW1CLE9BQUE7QUFDNUIseURBQXdEO0FBQS9DLHNIQUFBLGlCQUFpQixPQUFBO0FBQzFCLG1EQUFrRDtBQUF6QyxnSEFBQSxjQUFjLE9BQUE7QUFDdkIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLG1EQUFrRDtBQUF6QyxnSEFBQSxjQUFjLE9BQUE7QUFDdkIseURBQTRGO0FBQW5GLGlJQUFBLDRCQUE0QixPQUFBO0FBQUUsNEhBQUEsdUJBQXVCLE9BQUE7QUFDOUQsNkRBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmV4cG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5leHBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5leHBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5leHBvcnQgeyBtb3ZlSGVhZGVyc1RvUXVlcnkgfSBmcm9tIFwiLi9tb3ZlSGVhZGVyc1RvUXVlcnlcIjtcbmV4cG9ydCB7IHByZXBhcmVSZXF1ZXN0IH0gZnJvbSBcIi4vcHJlcGFyZVJlcXVlc3RcIjtcbmV4cG9ydCB7IG5vcm1hbGl6ZUNyZWRlbnRpYWxzUHJvdmlkZXIsIG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyIH0gZnJvbSBcIi4vbm9ybWFsaXplUHJvdmlkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NpZ25hdHVyZVY0XCI7XG4iXX0=

@@ -6,7 +6,7 @@ "use strict";

/**
* @internal
* @private
*/
function moveHeadersToQuery(request, options = {}) {
const moveHeadersToQuery = (request, options = {}) => {
var _a;
const { headers, query = {} } = typeof request.clone === "function" ? request.clone() : cloneRequest_1.cloneRequest(request);
const { headers, query = {} } = typeof request.clone === "function" ? request.clone() : (0, cloneRequest_1.cloneRequest)(request);
for (const name of Object.keys(headers)) {

@@ -24,4 +24,4 @@ const lname = name.toLowerCase();

};
}
};
exports.moveHeadersToQuery = moveHeadersToQuery;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxpREFBOEM7QUFFOUM7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsT0FBb0IsRUFDcEIsVUFBZ0QsRUFBRTs7SUFFbEQsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBdUIsRUFBRSxHQUNoRCxPQUFRLE9BQWUsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxPQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEcsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUEsTUFBQSxPQUFPLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQSxFQUFFO1lBQzlFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEI7S0FDRjtJQUVELE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixPQUFPO1FBQ1AsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDO0FBbkJELGdEQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxpREFBOEM7QUFFOUM7O0dBRUc7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBQ2hDLE9BQW9CLEVBQ3BCLFVBQWdELEVBQUUsRUFDTixFQUFFOztJQUM5QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUF1QixFQUFFLEdBQ2hELE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSwyQkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xHLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFBLE1BQUEsT0FBTyxDQUFDLGtCQUFrQiwwQ0FBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUEsRUFBRTtZQUM5RSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RCO0tBQ0Y7SUFFRCxPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsT0FBTztRQUNQLEtBQUs7S0FDTixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBbkJXLFFBQUEsa0JBQWtCLHNCQW1CN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCwgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgY2xvbmVSZXF1ZXN0IH0gZnJvbSBcIi4vY2xvbmVSZXF1ZXN0XCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IG1vdmVIZWFkZXJzVG9RdWVyeSA9IChcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0gPT4ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufTtcbiJdfQ==

@@ -7,7 +7,7 @@ "use strict";

/**
* @internal
* @private
*/
function prepareRequest(request) {
const prepareRequest = (request) => {
// Create a clone of the request object that does not clone the body
request = typeof request.clone === "function" ? request.clone() : cloneRequest_1.cloneRequest(request);
request = typeof request.clone === "function" ? request.clone() : (0, cloneRequest_1.cloneRequest)(request);
for (const headerName of Object.keys(request.headers)) {

@@ -19,4 +19,4 @@ if (constants_1.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {

return request;
}
};
exports.prepareRequest = prepareRequest;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsaURBQThDO0FBQzlDLDJDQUFnRDtBQUVoRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFvQjtJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsMkJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUxRyxLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELElBQUksNkJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwQztLQUNGO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQVhELHdDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgY2xvbmVSZXF1ZXN0IH0gZnJvbSBcIi4vY2xvbmVSZXF1ZXN0XCI7XG5pbXBvcnQgeyBHRU5FUkFURURfSEVBREVSUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZVJlcXVlc3QocmVxdWVzdDogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIC8vIENyZWF0ZSBhIGNsb25lIG9mIHRoZSByZXF1ZXN0IG9iamVjdCB0aGF0IGRvZXMgbm90IGNsb25lIHRoZSBib2R5XG4gIHJlcXVlc3QgPSB0eXBlb2YgKHJlcXVlc3QgYXMgYW55KS5jbG9uZSA9PT0gXCJmdW5jdGlvblwiID8gKHJlcXVlc3QgYXMgYW55KS5jbG9uZSgpIDogY2xvbmVSZXF1ZXN0KHJlcXVlc3QpO1xuXG4gIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhyZXF1ZXN0LmhlYWRlcnMpKSB7XG4gICAgaWYgKEdFTkVSQVRFRF9IRUFERVJTLmluZGV4T2YoaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpKSA+IC0xKSB7XG4gICAgICBkZWxldGUgcmVxdWVzdC5oZWFkZXJzW2hlYWRlck5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXF1ZXN0O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsaURBQThDO0FBQzlDLDJDQUFnRDtBQUVoRDs7R0FFRztBQUNJLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBb0IsRUFBZSxFQUFFO0lBQ2xFLG9FQUFvRTtJQUNwRSxPQUFPLEdBQUcsT0FBUSxPQUFlLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUUsT0FBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLDJCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFMUcsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNyRCxJQUFJLDZCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUM1RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEM7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQVhXLFFBQUEsY0FBYyxrQkFXekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHByZXBhcmVSZXF1ZXN0ID0gKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0KTogSHR0cFJlcXVlc3QgPT4ge1xuICAvLyBDcmVhdGUgYSBjbG9uZSBvZiB0aGUgcmVxdWVzdCBvYmplY3QgdGhhdCBkb2VzIG5vdCBjbG9uZSB0aGUgYm9keVxuICByZXF1ZXN0ID0gdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcblxuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMocmVxdWVzdC5oZWFkZXJzKSkge1xuICAgIGlmIChHRU5FUkFURURfSEVBREVSUy5pbmRleE9mKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSkgPiAtMSkge1xuICAgICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1toZWFkZXJOYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVxdWVzdDtcbn07XG4iXX0=

@@ -10,4 +10,5 @@ "use strict";

const getPayloadHash_1 = require("./getPayloadHash");
const hasHeader_1 = require("./hasHeader");
const headerUtil_1 = require("./headerUtil");
const moveHeadersToQuery_1 = require("./moveHeadersToQuery");
const normalizeProvider_1 = require("./normalizeProvider");
const prepareRequest_1 = require("./prepareRequest");

@@ -22,4 +23,4 @@ const utilDate_1 = require("./utilDate");

this.applyChecksum = typeof applyChecksum === "boolean" ? applyChecksum : true;
this.regionProvider = normalizeRegionProvider(region);
this.credentialProvider = normalizeCredentialsProvider(credentials);
this.regionProvider = (0, normalizeProvider_1.normalizeRegionProvider)(region);
this.credentialProvider = (0, normalizeProvider_1.normalizeCredentialsProvider)(credentials);
}

@@ -34,4 +35,4 @@ async presign(originalRequest, options = {}) {

}
const scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
const request = moveHeadersToQuery_1.moveHeadersToQuery(prepareRequest_1.prepareRequest(originalRequest), { unhoistableHeaders });
const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
const request = (0, moveHeadersToQuery_1.moveHeadersToQuery)((0, prepareRequest_1.prepareRequest)(originalRequest), { unhoistableHeaders });
if (credentials.sessionToken) {

@@ -44,5 +45,5 @@ request.query[constants_1.TOKEN_QUERY_PARAM] = credentials.sessionToken;

request.query[constants_1.EXPIRES_QUERY_PARAM] = expiresIn.toString(10);
const canonicalHeaders = getCanonicalHeaders_1.getCanonicalHeaders(request, unsignableHeaders, signableHeaders);
const canonicalHeaders = (0, getCanonicalHeaders_1.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);
request.query[constants_1.SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);
request.query[constants_1.SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash_1.getPayloadHash(originalRequest, this.sha256)));
request.query[constants_1.SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await (0, getPayloadHash_1.getPayloadHash)(originalRequest, this.sha256)));
return request;

@@ -64,7 +65,7 @@ }

const { shortDate, longDate } = formatDate(signingDate);
const scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
const hashedPayload = await getPayloadHash_1.getPayloadHash({ headers: {}, body: payload }, this.sha256);
const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
const hashedPayload = await (0, getPayloadHash_1.getPayloadHash)({ headers: {}, body: payload }, this.sha256);
const hash = new this.sha256();
hash.update(headers);
const hashedHeaders = util_hex_encoding_1.toHex(await hash.digest());
const hashedHeaders = (0, util_hex_encoding_1.toHex)(await hash.digest());
const stringToSign = [

@@ -86,3 +87,3 @@ constants_1.EVENT_ALGORITHM_IDENTIFIER,

hash.update(stringToSign);
return util_hex_encoding_1.toHex(await hash.digest());
return (0, util_hex_encoding_1.toHex)(await hash.digest());
}

@@ -92,5 +93,5 @@ async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {

const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());
const request = prepareRequest_1.prepareRequest(requestToSign);
const request = (0, prepareRequest_1.prepareRequest)(requestToSign);
const { longDate, shortDate } = formatDate(signingDate);
const scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
request.headers[constants_1.AMZ_DATE_HEADER] = longDate;

@@ -100,7 +101,7 @@ if (credentials.sessionToken) {

}
const payloadHash = await getPayloadHash_1.getPayloadHash(request, this.sha256);
if (!hasHeader_1.hasHeader(constants_1.SHA256_HEADER, request.headers) && this.applyChecksum) {
const payloadHash = await (0, getPayloadHash_1.getPayloadHash)(request, this.sha256);
if (!(0, headerUtil_1.hasHeader)(constants_1.SHA256_HEADER, request.headers) && this.applyChecksum) {
request.headers[constants_1.SHA256_HEADER] = payloadHash;
}
const canonicalHeaders = getCanonicalHeaders_1.getCanonicalHeaders(request, unsignableHeaders, signableHeaders);
const canonicalHeaders = (0, getCanonicalHeaders_1.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);
const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));

@@ -118,3 +119,3 @@ request.headers[constants_1.AUTH_HEADER] =

${this.getCanonicalPath(request)}
${getCanonicalQuery_1.getCanonicalQuery(request)}
${(0, getCanonicalQuery_1.getCanonicalQuery)(request)}
${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join("\n")}

@@ -132,3 +133,3 @@

${credentialScope}
${util_hex_encoding_1.toHex(hashedRequest)}`;
${(0, util_hex_encoding_1.toHex)(hashedRequest)}`;
}

@@ -146,6 +147,6 @@ getCanonicalPath({ path }) {

hash.update(stringToSign);
return util_hex_encoding_1.toHex(await hash.digest());
return (0, util_hex_encoding_1.toHex)(await hash.digest());
}
getSigningKey(credentials, region, shortDate, service) {
return credentialDerivation_1.getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);
return (0, credentialDerivation_1.getSigningKey)(this.sha256, credentials, shortDate, region, service || this.service);
}

@@ -155,3 +156,3 @@ }

const formatDate = (now) => {
const longDate = utilDate_1.iso8601(now).replace(/[\-:]/g, "");
const longDate = (0, utilDate_1.iso8601)(now).replace(/[\-:]/g, "");
return {

@@ -163,20 +164,2 @@ longDate,

const getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(";");
const normalizeRegionProvider = (region) => {
if (typeof region === "string") {
const promisified = Promise.resolve(region);
return () => promisified;
}
else {
return region;
}
};
const normalizeCredentialsProvider = (credentials) => {
if (typeof credentials === "object") {
const promisified = Promise.resolve(credentials);
return () => promisified;
}
else {
return credentials;
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLGtFQUFtRDtBQUVuRCwyQ0FlcUI7QUFDckIsaUVBQW9FO0FBQ3BFLCtEQUE0RDtBQUM1RCwyREFBd0Q7QUFDeEQscURBQWtEO0FBQ2xELDJDQUF3QztBQUN4Qyw2REFBMEQ7QUFDMUQscURBQWtEO0FBQ2xELHlDQUFxQztBQWtEckMsTUFBYSxXQUFXO0lBUXRCLFlBQVksRUFDVixhQUFhLEVBQ2IsV0FBVyxFQUNYLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLGFBQWEsR0FBRyxJQUFJLEdBQ29CO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDL0UsSUFBSSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBNEIsRUFBRSxVQUFzQyxFQUFFO1FBQ3pGLE1BQU0sRUFDSixXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFDeEIsU0FBUyxHQUFHLElBQUksRUFDaEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsYUFBYSxFQUNiLGNBQWMsR0FDZixHQUFHLE9BQU8sQ0FBQztRQUNaLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxD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UUFDNUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFHLENBQUMsV0FBZ0QsRUFBeUIsRUFBRTtJQUMvRyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO0tBQzFCO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oYXNIZWFkZXJcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcblxuY29uc3Qgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlZ2lvbjtcbiAgfVxufTtcblxuY29uc3Qgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciA9IChjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz4pOiBQcm92aWRlcjxDcmVkZW50aWFscz4gPT4ge1xuICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLGtFQUFtRDtBQUVuRCwyQ0FlcUI7QUFDckIsaUVBQW9FO0FBQ3BFLCtEQUE0RDtBQUM1RCwyREFBd0Q7QUFDeEQscURBQWtEO0FBQ2xELDZDQUF5QztBQUN6Qyw2REFBMEQ7QUFDMUQsMkRBQTRGO0FBQzVGLHFEQUFrRDtBQUNsRCx5Q0FBcUM7QUFrRHJDLE1BQWEsV0FBVztJQVF0QixZQUFZLEVBQ1YsYUFBYSxFQUNiLFdBQVcsRUFDWCxNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixhQUFhLEdBQUcsSUFBSSxHQUNvQjtRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLGFBQWEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9FLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBQSwyQ0FBdUIsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBQSxnREFBNEIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUE0QixFQUFFLFVBQXNDLEVBQUU7UUFDekYsTUFBTSxFQUNKLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxFQUN4QixTQUFTLEdBQUcsSUFBSSxFQUNoQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixhQUFhLEVBQ2IsY0FBYyxHQUNmLEdBQUcsT0FBTyxDQUFDO1FBQ1osTUFB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ImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oZWFkZXJVdGlsXCI7XG5pbXBvcnQgeyBtb3ZlSGVhZGVyc1RvUXVlcnkgfSBmcm9tIFwiLi9tb3ZlSGVhZGVyc1RvUXVlcnlcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUNyZWRlbnRpYWxzUHJvdmlkZXIsIG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyIH0gZnJvbSBcIi4vbm9ybWFsaXplUHJvdmlkZXJcIjtcbmltcG9ydCB7IHByZXBhcmVSZXF1ZXN0IH0gZnJvbSBcIi4vcHJlcGFyZVJlcXVlc3RcIjtcbmltcG9ydCB7IGlzbzg2MDEgfSBmcm9tIFwiLi91dGlsRGF0ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZVY0SW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBzaWduaW5nIG5hbWUuXG4gICAqL1xuICBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gbmFtZSBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgdGhhdCB3aWxsIGJlXG4gICAqIHJlc29sdmVkIHdpdGggdGhlIHJlZ2lvbiBuYW1lLlxuICAgKi9cbiAgcmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCBzaG91bGQgYmUgc2lnbmVkIG9yIGEgZnVuY3Rpb25cbiAgICogdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBjcmVkZW50aWFscy5cbiAgICovXG4gIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyB8IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcblxuICAvKipcbiAgICogQSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgYSBoYXNoIG9iamVjdCB0aGF0IHdpbGwgY2FsY3VsYXRlIFNIQS0yNTYgSE1BQ1xuICAgKiBjaGVja3N1bXMuXG4gICAqL1xuICBzaGEyNTY/OiBIYXNoQ29uc3RydWN0b3I7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXJpLWVzY2FwZSB0aGUgcmVxdWVzdCBVUkkgcGF0aCBhcyBwYXJ0IG9mIGNvbXB1dGluZyB0aGVcbiAgICogY2Fub25pY2FsIHJlcXVlc3Qgc3RyaW5nLiBUaGlzIGlzIHJlcXVpcmVkIGZvciBldmVyeSBBV1Mgc2VydmljZSwgZXhjZXB0XG4gICAqIEFtYXpvbiBTMywgYXMgb2YgbGF0ZSAyMDE3LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbdHJ1ZV1cbiAgICovXG4gIHVyaUVzY2FwZVBhdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNhbGN1bGF0ZSBhIGNoZWNrc3VtIG9mIHRoZSByZXF1ZXN0IGJvZHkgYW5kIGluY2x1ZGUgaXQgYXNcbiAgICogZWl0aGVyIGEgcmVxdWVzdCBoZWFkZXIgKHdoZW4gc2lnbmluZykgb3IgYXMgYSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyXG4gICAqICh3aGVuIHByZXNpZ25pbmcpLiBUaGlzIGlzIHJlcXVpcmVkIGZvciBBV1MgR2xhY2llciBhbmQgQW1hem9uIFMzIGFuZCBvcHRpb25hbCBmb3JcbiAgICogZXZlcnkgb3RoZXIgQVdTIHNlcnZpY2UgYXMgb2YgbGF0ZSAyMDE3LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbdHJ1ZV1cbiAgICovXG4gIGFwcGx5Q2hlY2tzdW0/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCB7XG4gIHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xufVxuXG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlVjQgaW1wbGVtZW50cyBSZXF1ZXN0UHJlc2lnbmVyLCBSZXF1ZXN0U2lnbmVyLCBTdHJpbmdTaWduZXIsIEV2ZW50U2lnbmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVnaW9uUHJvdmlkZXI6IFByb3ZpZGVyPHN0cmluZz47XG4gIHByaXZhdGUgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyOiBQcm92aWRlcjxDcmVkZW50aWFscz47XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXJpRXNjYXBlUGF0aDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBseUNoZWNrc3VtOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBhcHBseUNoZWNrc3VtLFxuICAgIGNyZWRlbnRpYWxzLFxuICAgIHJlZ2lvbixcbiAgICBzZXJ2aWNlLFxuICAgIHNoYTI1NixcbiAgICB1cmlFc2NhcGVQYXRoID0gdHJ1ZSxcbiAgfTogU2lnbmF0dXJlVjRJbml0ICYgU2lnbmF0dXJlVjRDcnlwdG9Jbml0KSB7XG4gICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcbiAgICB0aGlzLnNoYTI1NiA9IHNoYTI1NjtcbiAgICB0aGlzLnVyaUVzY2FwZVBhdGggPSB1cmlFc2NhcGVQYXRoO1xuICAgIC8vIGRlZmF1bHQgdG8gdHJ1ZSBpZiBhcHBseUNoZWNrc3VtIGlzbid0IHNldFxuICAgIHRoaXMuYXBwbHlDaGVja3N1bSA9IHR5cGVvZiBhcHBseUNoZWNrc3VtID09PSBcImJvb2xlYW5cIiA/IGFwcGx5Q2hlY2tzdW0gOiB0cnVlO1xuICAgIHRoaXMucmVnaW9uUHJvdmlkZXIgPSBub3JtYWxpemVSZWdpb25Qcm92aWRlcihyZWdpb24pO1xuICAgIHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyID0gbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlcihjcmVkZW50aWFscyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHJlc2lnbihvcmlnaW5hbFJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBvcHRpb25zOiBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyA9IHt9KTogUHJvbWlzZTxIdHRwUmVxdWVzdD4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNpZ25pbmdEYXRlID0gbmV3IERhdGUoKSxcbiAgICAgIGV4cGlyZXNJbiA9IDM2MDAsXG4gICAgICB1bnNpZ25hYmxlSGVhZGVycyxcbiAgICAgIHVuaG9pc3RhYmxlSGVhZGVycyxcbiAgICAgIHNpZ25hYmxlSGVhZGVycyxcbiAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICBzaWduaW5nU2VydmljZSxcbiAgICB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyKCk7XG4gICAgY29uc3QgcmVnaW9uID0gc2lnbmluZ1JlZ2lvbiA/PyAoYXdhaXQgdGhpcy5yZWdpb25Qcm92aWRlcigpKTtcblxuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgaWYgKGV4cGlyZXNJbiA+IE1BWF9QUkVTSUdORURfVFRMKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgIFwiU2lnbmF0dXJlIHZlcnNpb24gNCBwcmVzaWduZWQgVVJMc1wiICsgXCIgbXVzdCBoYXZlIGFuIGV4cGlyYXRpb24gZGF0ZSBsZXNzIHRoYW4gb25lIHdlZWsgaW5cIiArIFwiIHRoZSBmdXR1cmVcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY29wZSA9IGNyZWF0ZVNjb3BlKHNob3J0RGF0ZSwgcmVnaW9uLCBzaWduaW5nU2VydmljZSA/PyB0aGlzLnNlcnZpY2UpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBtb3ZlSGVhZGVyc1RvUXVlcnkocHJlcGFyZVJlcXVlc3Qob3JpZ2luYWxSZXF1ZXN0KSwgeyB1bmhvaXN0YWJsZUhlYWRlcnMgfSk7XG5cbiAgICBpZiAoY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuKSB7XG4gICAgICByZXF1ZXN0LnF1ZXJ5W1RPS0VOX1FVRVJZX1BBUkFNXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICB9XG4gICAgcmVxdWVzdC5xdWVyeVtBTEdPUklUSE1fUVVFUllfUEFSQU1dID0gQUxHT1JJVEhNX0lERU5USUZJRVI7XG4gICAgcmVxdWVzdC5xdWVyeVtDUkVERU5USUFMX1FVRVJZX1BBUkFNXSA9IGAke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfWA7XG4gICAgcmVxdWVzdC5xdWVyeVtBTVpfREFURV9RVUVSWV9QQVJBTV0gPSBsb25nRGF0ZTtcbiAgICByZXF1ZXN0LnF1ZXJ5W0VYUElSRVNfUVVFUllfUEFSQU1dID0gZXhwaXJlc0luLnRvU3RyaW5nKDEwKTtcblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIHJlcXVlc3QucXVlcnlbU0lHTkVEX0hFQURFUlNfUVVFUllfUEFSQU1dID0gZ2V0Q2Fub25pY2FsSGVhZGVyTGlzdChjYW5vbmljYWxIZWFkZXJzKTtcblxuICAgIHJlcXVlc3QucXVlcnlbU0lHTkFUVVJFX1FVRVJZX1BBUkFNXSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBhd2FpdCBnZXRQYXlsb2FkSGFzaChvcmlnaW5hbFJlcXVlc3QsIHRoaXMuc2hhMjU2KSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2lnbihzdHJpbmdUb1NpZ246IHN0cmluZywgb3B0aW9ucz86IFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKGV2ZW50OiBGb3JtYXR0ZWRFdmVudCwgb3B0aW9uczogRXZlbnRTaWduaW5nQXJndW1lbnRzKTogUHJvbWlzZTxzdHJpbmc+O1xuICBwdWJsaWMgYXN5bmMgc2lnbihyZXF1ZXN0VG9TaWduOiBIdHRwUmVxdWVzdCwgb3B0aW9ucz86IFJlcXVlc3RTaWduaW5nQXJndW1lbnRzKTogUHJvbWlzZTxIdHRwUmVxdWVzdD47XG4gIHB1YmxpYyBhc3luYyBzaWduKHRvU2lnbjogYW55LCBvcHRpb25zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0eXBlb2YgdG9TaWduID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduU3RyaW5nKHRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIGlmICh0b1NpZ24uaGVhZGVycyAmJiB0b1NpZ24ucGF5bG9hZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnbkV2ZW50KHRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25SZXF1ZXN0KHRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaWduRXZlbnQoXG4gICAgeyBoZWFkZXJzLCBwYXlsb2FkIH06IEZvcm1hdHRlZEV2ZW50LFxuICAgIHsgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLCBwcmlvclNpZ25hdHVyZSwgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfTogRXZlbnRTaWduaW5nQXJndW1lbnRzXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcmVnaW9uID0gc2lnbmluZ1JlZ2lvbiA/PyAoYXdhaXQgdGhpcy5yZWdpb25Qcm92aWRlcigpKTtcbiAgICBjb25zdCB7IHNob3J0RGF0ZSwgbG9uZ0RhdGUgfSA9IGZvcm1hdERhdGUoc2lnbmluZ0RhdGUpO1xuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgaGFzaGVkUGF5bG9hZCA9IGF3YWl0IGdldFBheWxvYWRIYXNoKHsgaGVhZGVyczoge30sIGJvZHk6IHBheWxvYWQgfSBhcyBhbnksIHRoaXMuc2hhMjU2KTtcbiAgICBjb25zdCBoYXNoID0gbmV3IHRoaXMuc2hhMjU2KCk7XG4gICAgaGFzaC51cGRhdGUoaGVhZGVycyk7XG4gICAgY29uc3QgaGFzaGVkSGVhZGVycyA9IHRvSGV4KGF3YWl0IGhhc2guZGlnZXN0KCkpO1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IFtcbiAgICAgIEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSLFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHByaW9yU2lnbmF0dXJlLFxuICAgICAgaGFzaGVkSGVhZGVycyxcbiAgICAgIGhhc2hlZFBheWxvYWQsXG4gICAgXS5qb2luKFwiXFxuXCIpO1xuICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcoc3RyaW5nVG9TaWduLCB7IHNpZ25pbmdEYXRlLCBzaWduaW5nUmVnaW9uOiByZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaWduU3RyaW5nKFxuICAgIHN0cmluZ1RvU2lnbjogc3RyaW5nLFxuICAgIHsgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBTaWduaW5nQXJndW1lbnRzID0ge31cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyKCk7XG4gICAgY29uc3QgcmVnaW9uID0gc2lnbmluZ1JlZ2lvbiA/PyAoYXdhaXQgdGhpcy5yZWdpb25Qcm92aWRlcigpKTtcbiAgICBjb25zdCB7IHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG5cbiAgICBjb25zdCBoYXNoID0gbmV3IHRoaXMuc2hhMjU2KGF3YWl0IHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSk7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5nVG9TaWduKTtcbiAgICByZXR1cm4gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25SZXF1ZXN0KFxuICAgIHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LFxuICAgIHtcbiAgICAgIHNpZ25pbmdEYXRlID0gbmV3IERhdGUoKSxcbiAgICAgIHNpZ25hYmxlSGVhZGVycyxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH06IFJlcXVlc3RTaWduaW5nQXJndW1lbnRzID0ge31cbiAgKTogUHJvbWlzZTxIdHRwUmVxdWVzdD4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0VG9TaWduKTtcbiAgICBjb25zdCB7IGxvbmdEYXRlLCBzaG9ydERhdGUgfSA9IGZvcm1hdERhdGUoc2lnbmluZ0RhdGUpO1xuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG5cbiAgICByZXF1ZXN0LmhlYWRlcnNbQU1aX0RBVEVfSEVBREVSXSA9IGxvbmdEYXRlO1xuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tUT0tFTl9IRUFERVJdID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIGNvbnN0IHBheWxvYWRIYXNoID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2gocmVxdWVzdCwgdGhpcy5zaGEyNTYpO1xuICAgIGlmICghaGFzSGVhZGVyKFNIQTI1Nl9IRUFERVIsIHJlcXVlc3QuaGVhZGVycykgJiYgdGhpcy5hcHBseUNoZWNrc3VtKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnNbU0hBMjU2X0hFQURFUl0gPSBwYXlsb2FkSGFzaDtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5vbmljYWxIZWFkZXJzID0gZ2V0Q2Fub25pY2FsSGVhZGVycyhyZXF1ZXN0LCB1bnNpZ25hYmxlSGVhZGVycywgc2lnbmFibGVIZWFkZXJzKTtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCB0aGlzLmdldFNpZ25hdHVyZShcbiAgICAgIGxvbmdEYXRlLFxuICAgICAgc2NvcGUsXG4gICAgICB0aGlzLmdldFNpZ25pbmdLZXkoY3JlZGVudGlhbHMsIHJlZ2lvbiwgc2hvcnREYXRlLCBzaWduaW5nU2VydmljZSksXG4gICAgICB0aGlzLmNyZWF0ZUNhbm9uaWNhbFJlcXVlc3QocmVxdWVzdCwgY2Fub25pY2FsSGVhZGVycywgcGF5bG9hZEhhc2gpXG4gICAgKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBVVRIX0hFQURFUl0gPVxuICAgICAgYCR7QUxHT1JJVEhNX0lERU5USUZJRVJ9IGAgK1xuICAgICAgYENyZWRlbnRpYWw9JHtjcmVkZW50aWFscy5hY2Nlc3NLZXlJZH0vJHtzY29wZX0sIGAgK1xuICAgICAgYFNpZ25lZEhlYWRlcnM9JHtnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpfSwgYCArXG4gICAgICBgU2lnbmF0dXJlPSR7c2lnbmF0dXJlfWA7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCwgY2Fub25pY2FsSGVhZGVyczogSGVhZGVyQmFnLCBwYXlsb2FkSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzb3J0ZWRIZWFkZXJzID0gT2JqZWN0LmtleXMoY2Fub25pY2FsSGVhZGVycykuc29ydCgpO1xuICAgIHJldHVybiBgJHtyZXF1ZXN0Lm1ldGhvZH1cbiR7dGhpcy5nZXRDYW5vbmljYWxQYXRoKHJlcXVlc3QpfVxuJHtnZXRDYW5vbmljYWxRdWVyeShyZXF1ZXN0KX1cbiR7c29ydGVkSGVhZGVycy5tYXAoKG5hbWUpID0+IGAke25hbWV9OiR7Y2Fub25pY2FsSGVhZGVyc1tuYW1lXX1gKS5qb2luKFwiXFxuXCIpfVxuXG4ke3NvcnRlZEhlYWRlcnMuam9pbihcIjtcIil9XG4ke3BheWxvYWRIYXNofWA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVN0cmluZ1RvU2lnbihcbiAgICBsb25nRGF0ZTogc3RyaW5nLFxuICAgIGNyZWRlbnRpYWxTY29wZTogc3RyaW5nLFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShjYW5vbmljYWxSZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNoZWRSZXF1ZXN0ID0gYXdhaXQgaGFzaC5kaWdlc3QoKTtcblxuICAgIHJldHVybiBgJHtBTEdPUklUSE1fSURFTlRJRklFUn1cbiR7bG9uZ0RhdGV9XG4ke2NyZWRlbnRpYWxTY29wZX1cbiR7dG9IZXgoaGFzaGVkUmVxdWVzdCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2Fub25pY2FsUGF0aCh7IHBhdGggfTogSHR0cFJlcXVlc3QpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnVyaUVzY2FwZVBhdGgpIHtcbiAgICAgIGNvbnN0IGRvdWJsZUVuY29kZWQgPSBlbmNvZGVVUklDb21wb25lbnQocGF0aC5yZXBsYWNlKC9eXFwvLywgXCJcIikpO1xuICAgICAgcmV0dXJuIGAvJHtkb3VibGVFbmNvZGVkLnJlcGxhY2UoLyUyRi9nLCBcIi9cIil9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U2lnbmF0dXJlKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAga2V5UHJvbWlzZTogUHJvbWlzZTxVaW50OEFycmF5PixcbiAgICBjYW5vbmljYWxSZXF1ZXN0OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzdHJpbmdUb1NpZ24gPSBhd2FpdCB0aGlzLmNyZWF0ZVN0cmluZ1RvU2lnbihsb25nRGF0ZSwgY3JlZGVudGlhbFNjb3BlLCBjYW5vbmljYWxSZXF1ZXN0KTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQga2V5UHJvbWlzZSk7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5nVG9TaWduKTtcbiAgICByZXR1cm4gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNpZ25pbmdLZXkoXG4gICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHNob3J0RGF0ZTogc3RyaW5nLFxuICAgIHNlcnZpY2U/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIGdldFNpZ25pbmdLZXkodGhpcy5zaGEyNTYsIGNyZWRlbnRpYWxzLCBzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSB8fCB0aGlzLnNlcnZpY2UpO1xuICB9XG59XG5cbmNvbnN0IGZvcm1hdERhdGUgPSAobm93OiBEYXRlSW5wdXQpOiB7IGxvbmdEYXRlOiBzdHJpbmc7IHNob3J0RGF0ZTogc3RyaW5nIH0gPT4ge1xuICBjb25zdCBsb25nRGF0ZSA9IGlzbzg2MDEobm93KS5yZXBsYWNlKC9bXFwtOl0vZywgXCJcIik7XG4gIHJldHVybiB7XG4gICAgbG9uZ0RhdGUsXG4gICAgc2hvcnREYXRlOiBsb25nRGF0ZS5zdWJzdHIoMCwgOCksXG4gIH07XG59O1xuXG5jb25zdCBnZXRDYW5vbmljYWxIZWFkZXJMaXN0ID0gKGhlYWRlcnM6IG9iamVjdCk6IHN0cmluZyA9PiBPYmplY3Qua2V5cyhoZWFkZXJzKS5zb3J0KCkuam9pbihcIjtcIik7XG4iXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.toDate = exports.iso8601 = void 0;
function iso8601(time) {
return toDate(time)
.toISOString()
.replace(/\.\d{3}Z$/, "Z");
}
const iso8601 = (time) => (0, exports.toDate)(time)
.toISOString()
.replace(/\.\d{3}Z$/, "Z");
exports.iso8601 = iso8601;
function toDate(time) {
const toDate = (time) => {
if (typeof time === "number") {

@@ -21,4 +19,4 @@ return new Date(time * 1000);

return time;
}
};
exports.toDate = toDate;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsT0FBTyxDQUFDLElBQTRCO0lBQ2xELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztTQUNoQixXQUFXLEVBQUU7U0FDYixPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFKRCwwQkFJQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWJELHdCQWFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzbzg2MDEodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IHN0cmluZyB7XG4gIHJldHVybiB0b0RhdGUodGltZSlcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5yZXBsYWNlKC9cXC5cXGR7M31aJC8sIFwiWlwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvRGF0ZSh0aW1lOiBudW1iZXIgfCBzdHJpbmcgfCBEYXRlKTogRGF0ZSB7XG4gIGlmICh0eXBlb2YgdGltZSA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lICogMTAwMCk7XG4gIH1cblxuICBpZiAodHlwZW9mIHRpbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoTnVtYmVyKHRpbWUpKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTnVtYmVyKHRpbWUpICogMTAwMCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lKTtcbiAgfVxuXG4gIHJldHVybiB0aW1lO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQU8sTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUE0QixFQUFVLEVBQUUsQ0FDOUQsSUFBQSxjQUFNLEVBQUMsSUFBSSxDQUFDO0tBQ1QsV0FBVyxFQUFFO0tBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUhsQixRQUFBLE9BQU8sV0FHVztBQUV4QixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQTRCLEVBQVEsRUFBRTtJQUMzRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBYlcsUUFBQSxNQUFNLFVBYWpCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzbzg2MDEgPSAodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IHN0cmluZyA9PlxuICB0b0RhdGUodGltZSlcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5yZXBsYWNlKC9cXC5cXGR7M31aJC8sIFwiWlwiKTtcblxuZXhwb3J0IGNvbnN0IHRvRGF0ZSA9ICh0aW1lOiBudW1iZXIgfCBzdHJpbmcgfCBEYXRlKTogRGF0ZSA9PiB7XG4gIGlmICh0eXBlb2YgdGltZSA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lICogMTAwMCk7XG4gIH1cblxuICBpZiAodHlwZW9mIHRpbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoTnVtYmVyKHRpbWUpKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTnVtYmVyKHRpbWUpICogMTAwMCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lKTtcbiAgfVxuXG4gIHJldHVybiB0aW1lO1xufTtcbiJdfQ==

@@ -5,13 +5,13 @@ import { __assign, __read, __rest, __spreadArray } from "tslib";

*/
export function cloneRequest(_a) {
export var cloneRequest = function (_a) {
var headers = _a.headers, query = _a.query, rest = __rest(_a, ["headers", "query"]);
return __assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined });
}
function cloneQuery(query) {
return (__assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined }));
};
export var cloneQuery = function (query) {
return Object.keys(query).reduce(function (carry, paramName) {
var _a;
var param = query[paramName];
return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spreadArray([], __read(param)) : param, _a));
return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spreadArray([], __read(param), false) : param, _a));
}, {});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQXdDO0lBQXRDLElBQUEsT0FBTyxhQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUssSUFBSSxjQUF6QixvQkFBMkIsQ0FBRjtJQUNwRCw2QkFDSyxJQUFJLEtBQ1AsT0FBTyxlQUFPLE9BQU8sR0FDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzVDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDBCQUFLLEtBQUssR0FBRSxDQUFDLENBQUMsS0FBSyxPQUN0RDtJQUNKLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCwgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lUmVxdWVzdCh7IGhlYWRlcnMsIHF1ZXJ5LCAuLi5yZXN0IH06IEh0dHBSZXF1ZXN0KTogSHR0cFJlcXVlc3Qge1xuICByZXR1cm4ge1xuICAgIC4uLnJlc3QsXG4gICAgaGVhZGVyczogeyAuLi5oZWFkZXJzIH0sXG4gICAgcXVlcnk6IHF1ZXJ5ID8gY2xvbmVRdWVyeShxdWVyeSkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNsb25lUXVlcnkocXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnKTogUXVlcnlQYXJhbWV0ZXJCYWcge1xuICByZXR1cm4gT2JqZWN0LmtleXMocXVlcnkpLnJlZHVjZSgoY2Fycnk6IFF1ZXJ5UGFyYW1ldGVyQmFnLCBwYXJhbU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHBhcmFtID0gcXVlcnlbcGFyYW1OYW1lXTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2FycnksXG4gICAgICBbcGFyYW1OYW1lXTogQXJyYXkuaXNBcnJheShwYXJhbSkgPyBbLi4ucGFyYW1dIDogcGFyYW0sXG4gICAgfTtcbiAgfSwge30pO1xufVxuIl19
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsVUFBQyxFQUF3QztJQUF0QyxJQUFBLE9BQU8sYUFBQSxFQUFFLEtBQUssV0FBQSxFQUFLLElBQUksY0FBekIsb0JBQTJCLENBQUY7SUFBaUMsT0FBQSx1QkFDbEYsSUFBSSxLQUNQLE9BQU8sZUFBTyxPQUFPLEdBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUM1QyxDQUFBO0NBQUEsQ0FBQztBQUVILE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBRyxVQUFDLEtBQXdCO0lBQ2pELE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUNwRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDBCQUFLLEtBQUssVUFBRSxDQUFDLENBQUMsS0FBSyxPQUN0RDtJQUNKLENBQUMsRUFBRSxFQUFFLENBQUM7QUFOTixDQU1NLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCwgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGNsb25lUmVxdWVzdCA9ICh7IGhlYWRlcnMsIHF1ZXJ5LCAuLi5yZXN0IH06IEh0dHBSZXF1ZXN0KTogSHR0cFJlcXVlc3QgPT4gKHtcbiAgLi4ucmVzdCxcbiAgaGVhZGVyczogeyAuLi5oZWFkZXJzIH0sXG4gIHF1ZXJ5OiBxdWVyeSA/IGNsb25lUXVlcnkocXVlcnkpIDogdW5kZWZpbmVkLFxufSk7XG5cbmV4cG9ydCBjb25zdCBjbG9uZVF1ZXJ5ID0gKHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyk6IFF1ZXJ5UGFyYW1ldGVyQmFnID0+XG4gIE9iamVjdC5rZXlzKHF1ZXJ5KS5yZWR1Y2UoKGNhcnJ5OiBRdWVyeVBhcmFtZXRlckJhZywgcGFyYW1OYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IHF1ZXJ5W3BhcmFtTmFtZV07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcnJ5LFxuICAgICAgW3BhcmFtTmFtZV06IEFycmF5LmlzQXJyYXkocGFyYW0pID8gWy4uLnBhcmFtXSA6IHBhcmFtLFxuICAgIH07XG4gIH0sIHt9KTtcbiJdfQ==

@@ -8,2 +8,3 @@ export var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm";

export var TOKEN_QUERY_PARAM = "X-Amz-Security-Token";
export var REGION_SET_PARAM = "X-Amz-Region-Set";
export var AUTH_HEADER = "authorization";

@@ -38,2 +39,3 @@ export var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();

export var ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256";
export var ALGORITHM_IDENTIFIER_V4A = "AWS4-ECDSA-P256-SHA256";
export var EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD";

@@ -44,2 +46,2 @@ export var UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD";

export var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IRUFERVIgPSBcImF1dGhvcml6YXRpb25cIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9IRUFERVIgPSBBTVpfREFURV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IERBVEVfSEVBREVSID0gXCJkYXRlXCI7XG5leHBvcnQgY29uc3QgR0VORVJBVEVEX0hFQURFUlMgPSBbQVVUSF9IRUFERVIsIEFNWl9EQVRFX0hFQURFUiwgREFURV9IRUFERVJdO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9IRUFERVIgPSBTSUdOQVRVUkVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJ4LWFtei1jb250ZW50LXNoYTI1NlwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0hFQURFUiA9IFRPS0VOX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgSE9TVF9IRUFERVIgPSBcImhvc3RcIjtcblxuZXhwb3J0IGNvbnN0IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgPSB7XG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIFwiY2FjaGUtY29udHJvbFwiOiB0cnVlLFxuICBjb25uZWN0aW9uOiB0cnVlLFxuICBleHBlY3Q6IHRydWUsXG4gIGZyb206IHRydWUsXG4gIFwia2VlcC1hbGl2ZVwiOiB0cnVlLFxuICBcIm1heC1mb3J3YXJkc1wiOiB0cnVlLFxuICBwcmFnbWE6IHRydWUsXG4gIHJlZmVyZXI6IHRydWUsXG4gIHRlOiB0cnVlLFxuICB0cmFpbGVyOiB0cnVlLFxuICBcInRyYW5zZmVyLWVuY29kaW5nXCI6IHRydWUsXG4gIHVwZ3JhZGU6IHRydWUsXG4gIFwidXNlci1hZ2VudFwiOiB0cnVlLFxuICBcIngtYW16bi10cmFjZS1pZFwiOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFBST1hZX0hFQURFUl9QQVRURVJOID0gL15wcm94eS0vO1xuXG5leHBvcnQgY29uc3QgU0VDX0hFQURFUl9QQVRURVJOID0gL15zZWMtLztcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkFCTEVfUEFUVEVSTlMgPSBbL15wcm94eS0vaSwgL15zZWMtL2ldO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTZcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2LVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTA7XG5leHBvcnQgY29uc3QgS0VZX1RZUEVfSURFTlRJRklFUiA9IFwiYXdzNF9yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfUFJFU0lHTkVEX1RUTCA9IDYwICogNjAgKiAyNCAqIDc7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBQ3hELE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztBQUVqRSxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuZXhwb3J0IGNvbnN0IFJFR0lPTl9TRVRfUEFSQU0gPSBcIlgtQW16LVJlZ2lvbi1TZXRcIjtcblxuZXhwb3J0IGNvbnN0IEFVVEhfSEVBREVSID0gXCJhdXRob3JpemF0aW9uXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfSEVBREVSID0gQU1aX0RBVEVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBEQVRFX0hFQURFUiA9IFwiZGF0ZVwiO1xuZXhwb3J0IGNvbnN0IEdFTkVSQVRFRF9IRUFERVJTID0gW0FVVEhfSEVBREVSLCBBTVpfREFURV9IRUFERVIsIERBVEVfSEVBREVSXTtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfSEVBREVSID0gU0lHTkFUVVJFX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgU0hBMjU2X0hFQURFUiA9IFwieC1hbXotY29udGVudC1zaGEyNTZcIjtcbmV4cG9ydCBjb25zdCBUT0tFTl9IRUFERVIgPSBUT0tFTl9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IEhPU1RfSEVBREVSID0gXCJob3N0XCI7XG5cbmV4cG9ydCBjb25zdCBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTID0ge1xuICBhdXRob3JpemF0aW9uOiB0cnVlLFxuICBcImNhY2hlLWNvbnRyb2xcIjogdHJ1ZSxcbiAgY29ubmVjdGlvbjogdHJ1ZSxcbiAgZXhwZWN0OiB0cnVlLFxuICBmcm9tOiB0cnVlLFxuICBcImtlZXAtYWxpdmVcIjogdHJ1ZSxcbiAgXCJtYXgtZm9yd2FyZHNcIjogdHJ1ZSxcbiAgcHJhZ21hOiB0cnVlLFxuICByZWZlcmVyOiB0cnVlLFxuICB0ZTogdHJ1ZSxcbiAgdHJhaWxlcjogdHJ1ZSxcbiAgXCJ0cmFuc2Zlci1lbmNvZGluZ1wiOiB0cnVlLFxuICB1cGdyYWRlOiB0cnVlLFxuICBcInVzZXItYWdlbnRcIjogdHJ1ZSxcbiAgXCJ4LWFtem4tdHJhY2UtaWRcIjogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBQUk9YWV9IRUFERVJfUEFUVEVSTiA9IC9ecHJveHktLztcblxuZXhwb3J0IGNvbnN0IFNFQ19IRUFERVJfUEFUVEVSTiA9IC9ec2VjLS87XG5cbmV4cG9ydCBjb25zdCBVTlNJR05BQkxFX1BBVFRFUk5TID0gWy9ecHJveHktL2ksIC9ec2VjLS9pXTtcblxuZXhwb3J0IGNvbnN0IEFMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2XCI7XG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVJfVjRBID0gXCJBV1M0LUVDRFNBLVAyNTYtU0hBMjU2XCI7XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9BTEdPUklUSE1fSURFTlRJRklFUiA9IFwiQVdTNC1ITUFDLVNIQTI1Ni1QQVlMT0FEXCI7XG5cbmV4cG9ydCBjb25zdCBVTlNJR05FRF9QQVlMT0FEID0gXCJVTlNJR05FRC1QQVlMT0FEXCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfQ0FDSEVfU0laRSA9IDUwO1xuZXhwb3J0IGNvbnN0IEtFWV9UWVBFX0lERU5USUZJRVIgPSBcImF3czRfcmVxdWVzdFwiO1xuXG5leHBvcnQgY29uc3QgTUFYX1BSRVNJR05FRF9UVEwgPSA2MCAqIDYwICogMjQgKiA3O1xuIl19

@@ -13,5 +13,5 @@ import { __awaiter, __generator, __values } from "tslib";

*/
export function createScope(shortDate, region, service) {
export var createScope = function (shortDate, region, service) {
return shortDate + "/" + region + "/" + service + "/" + KEY_TYPE_IDENTIFIER;
}
};
/**

@@ -79,3 +79,3 @@ * Derive a signing key from its composite parts

*/
export function clearCredentialCache() {
export var clearCredentialCache = function () {
cacheQueue.length = 0;

@@ -85,8 +85,8 @@ Object.keys(signingKeyCache).forEach(function (cacheKey) {

});
}
function hmac(ctor, secret, data) {
};
var hmac = function (ctor, secret, data) {
var hash = new ctor(secret);
hash.update(data);
return hash.digest();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLElBQU0sZUFBZSxHQUFrQyxFQUFFLENBQUM7QUFDMUQsSUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUUsT0FBVSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxtQkFBcUIsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlOzs7OztvQkFFRyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O2dCQUEvRixTQUFTLEdBQUcsU0FBbUY7Z0JBQy9GLFFBQVEsR0FBTSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQUksV0FBVyxDQUFDLFlBQWMsQ0FBQztnQkFDckcsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO29CQUMvQixzQkFBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7aUJBQ2xDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQUU7b0JBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRyxHQUFHLEdBQWUsU0FBTyxXQUFXLENBQUMsZUFBaUIsQ0FBQzs7OztnQkFDcEMsS0FBQSxTQUFBLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTs7OztnQkFBN0QsUUFBUTtnQkFDWCxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBbEQsR0FBRyxHQUFHLFNBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBRXJELHNCQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQWlCLENBQUMsRUFBQzs7O0tBQ3hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxRQUFRO1FBQzVDLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLElBQXFCLEVBQUUsTUFBa0IsRUFBRSxJQUFnQjtJQUN2RSxJQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscywgSGFzaENvbnN0cnVjdG9yLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogVWludDhBcnJheSB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG59XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgY29uc3QgZ2V0U2lnbmluZ0tleSA9IGFzeW5jIChcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGNyZWRzSGFzaCA9IGF3YWl0IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06JHt0b0hleChjcmVkc0hhc2gpfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICBsZXQga2V5OiBTb3VyY2VEYXRhID0gYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gO1xuICBmb3IgKGNvbnN0IHNpZ25hYmxlIG9mIFtzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSwgS0VZX1RZUEVfSURFTlRJRklFUl0pIHtcbiAgICBrZXkgPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBrZXksIHNpZ25hYmxlKTtcbiAgfVxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBrZXkgYXMgVWludDhBcnJheSk7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1hYyhjdG9yOiBIYXNoQ29uc3RydWN0b3IsIHNlY3JldDogU291cmNlRGF0YSwgZGF0YTogU291cmNlRGF0YSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBoYXNoID0gbmV3IGN0b3Ioc2VjcmV0KTtcbiAgaGFzaC51cGRhdGUoZGF0YSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuIl19
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLElBQU0sZUFBZSxHQUFrQyxFQUFFLENBQUM7QUFDMUQsSUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsVUFBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxPQUFlO0lBQzVFLE9BQUcsU0FBUyxTQUFJLE1BQU0sU0FBSSxPQUFPLFNBQUksbUJBQXFCO0FBQTFELENBQTBELENBQUM7QUFFN0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlOzs7OztvQkFFRyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O2dCQUEvRixTQUFTLEdBQUcsU0FBbUY7Z0JBQy9GLFFBQVEsR0FBTSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQUksV0FBVyxDQUFDLFlBQWMsQ0FBQztnQkFDckcsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO29CQUMvQixzQkFBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7aUJBQ2xDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQUU7b0JBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRyxHQUFHLEdBQWUsU0FBTyxXQUFXLENBQUMsZUFBaUIsQ0FBQzs7OztnQkFDcEMsS0FBQSxTQUFBLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTs7OztnQkFBN0QsUUFBUTtnQkFDWCxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBbEQsR0FBRyxHQUFHLFNBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBRXJELHNCQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQWlCLENBQUMsRUFBQzs7O0tBQ3hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHO0lBQ2xDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsUUFBUTtRQUM1QyxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLElBQU0sSUFBSSxHQUFHLFVBQUMsSUFBcUIsRUFBRSxNQUFrQixFQUFFLElBQWdCO0lBQ3ZFLElBQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlZGVudGlhbHMsIEhhc2hDb25zdHJ1Y3RvciwgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgdG9IZXggfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1oZXgtZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgS0VZX1RZUEVfSURFTlRJRklFUiwgTUFYX0NBQ0hFX1NJWkUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3Qgc2lnbmluZ0tleUNhY2hlOiB7IFtrZXk6IHN0cmluZ106IFVpbnQ4QXJyYXkgfSA9IHt9O1xuY29uc3QgY2FjaGVRdWV1ZTogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4vKipcbiAqIENyZWF0ZSBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBzY29wZSBvZiBjcmVkZW50aWFscyB1c2VkIHRvIHNpZ24gYSByZXF1ZXN0LlxuICpcbiAqIEBwYXJhbSBzaG9ydERhdGUgVGhlIGN1cnJlbnQgY2FsZW5kYXIgZGF0ZSBpbiB0aGUgZm9ybSBZWVlZTU1ERC5cbiAqIEBwYXJhbSByZWdpb24gICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgVGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIHNpZ25lZCByZXF1ZXN0IGlzIGJlaW5nIHNlbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVTY29wZSA9IChzaG9ydERhdGU6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZyk6IHN0cmluZyA9PlxuICBgJHtzaG9ydERhdGV9LyR7cmVnaW9ufS8ke3NlcnZpY2V9LyR7S0VZX1RZUEVfSURFTlRJRklFUn1gO1xuXG4vKipcbiAqIERlcml2ZSBhIHNpZ25pbmcga2V5IGZyb20gaXRzIGNvbXBvc2l0ZSBwYXJ0c1xuICpcbiAqIEBwYXJhbSBzaGEyNTZDb25zdHJ1Y3RvciBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHRoYXQgY2FuIGluc3RhbnRpYXRlIFNIQS0yNTZcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoIG9iamVjdHMuXG4gKiBAcGFyYW0gY3JlZGVudGlhbHMgICAgICAgVGhlIGNyZWRlbnRpYWxzIHdpdGggd2hpY2ggdGhlIHJlcXVlc3Qgd2lsbCBiZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZC5cbiAqIEBwYXJhbSBzaG9ydERhdGUgICAgICAgICBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICAgICAgICAgIFRoZSBBV1MgcmVnaW9uIGluIHdoaWNoIHRoZSBzZXJ2aWNlIHJlc2lkZXMuXG4gKiBAcGFyYW0gc2VydmljZSAgICAgICAgICAgVGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIHNpZ25lZCByZXF1ZXN0IGlzIGJlaW5nXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFNpZ25pbmdLZXkgPSBhc3luYyAoXG4gIHNoYTI1NkNvbnN0cnVjdG9yOiBIYXNoQ29uc3RydWN0b3IsXG4gIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyxcbiAgc2hvcnREYXRlOiBzdHJpbmcsXG4gIHJlZ2lvbjogc3RyaW5nLFxuICBzZXJ2aWNlOiBzdHJpbmdcbik6IFByb21pc2U8VWludDhBcnJheT4gPT4ge1xuICBjb25zdCBjcmVkc0hhc2ggPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksIGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkKTtcbiAgY29uc3QgY2FjaGVLZXkgPSBgJHtzaG9ydERhdGV9OiR7cmVnaW9ufToke3NlcnZpY2V9OiR7dG9IZXgoY3JlZHNIYXNoKX06JHtjcmVkZW50aWFscy5zZXNzaW9uVG9rZW59YDtcbiAgaWYgKGNhY2hlS2V5IGluIHNpZ25pbmdLZXlDYWNoZSkge1xuICAgIHJldHVybiBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9XG5cbiAgY2FjaGVRdWV1ZS5wdXNoKGNhY2hlS2V5KTtcbiAgd2hpbGUgKGNhY2hlUXVldWUubGVuZ3RoID4gTUFYX0NBQ0hFX1NJWkUpIHtcbiAgICBkZWxldGUgc2lnbmluZ0tleUNhY2hlW2NhY2hlUXVldWUuc2hpZnQoKSBhcyBzdHJpbmddO1xuICB9XG5cbiAgbGV0IGtleTogU291cmNlRGF0YSA9IGBBV1M0JHtjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXl9YDtcbiAgZm9yIChjb25zdCBzaWduYWJsZSBvZiBbc2hvcnREYXRlLCByZWdpb24sIHNlcnZpY2UsIEtFWV9UWVBFX0lERU5USUZJRVJdKSB7XG4gICAga2V5ID0gYXdhaXQgaG1hYyhzaGEyNTZDb25zdHJ1Y3Rvciwga2V5LCBzaWduYWJsZSk7XG4gIH1cbiAgcmV0dXJuIChzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldID0ga2V5IGFzIFVpbnQ4QXJyYXkpO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGNsZWFyQ3JlZGVudGlhbENhY2hlID0gKCk6IHZvaWQgPT4ge1xuICBjYWNoZVF1ZXVlLmxlbmd0aCA9IDA7XG4gIE9iamVjdC5rZXlzKHNpZ25pbmdLZXlDYWNoZSkuZm9yRWFjaCgoY2FjaGVLZXkpID0+IHtcbiAgICBkZWxldGUgc2lnbmluZ0tleUNhY2hlW2NhY2hlS2V5XTtcbiAgfSk7XG59O1xuXG5jb25zdCBobWFjID0gKGN0b3I6IEhhc2hDb25zdHJ1Y3Rvciwgc2VjcmV0OiBTb3VyY2VEYXRhLCBkYXRhOiBTb3VyY2VEYXRhKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGhhc2ggPSBuZXcgY3RvcihzZWNyZXQpO1xuICBoYXNoLnVwZGF0ZShkYXRhKTtcbiAgcmV0dXJuIGhhc2guZGlnZXN0KCk7XG59O1xuIl19
import { __values } from "tslib";
import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from "./constants";
/**
* @internal
* @private
*/
export function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {
export var getCanonicalHeaders = function (_a, unsignableHeaders, signableHeaders) {
var e_1, _b;

@@ -33,3 +33,3 @@ var headers = _a.headers;

return canonical;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEVBQXdCLEVBQ3hCLGlCQUErQixFQUMvQixlQUE2Qjs7UUFGM0IsT0FBTyxhQUFBO0lBSVQsSUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDOztRQUNoQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQWpELElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELElBQ0UsbUJBQW1CLElBQUkseUJBQXlCO2lCQUNoRCxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtnQkFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7Z0JBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO29CQUN0RixTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSGVhZGVycyhcbiAgeyBoZWFkZXJzIH06IEh0dHBSZXF1ZXN0LFxuICB1bnNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+LFxuICBzaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPlxuKTogSGVhZGVyQmFnIHtcbiAgY29uc3QgY2Fub25pY2FsOiBIZWFkZXJCYWcgPSB7fTtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKSkge1xuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFxuICAgICAgY2Fub25pY2FsSGVhZGVyTmFtZSBpbiBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTIHx8XG4gICAgICB1bnNpZ25hYmxlSGVhZGVycz8uaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBQUk9YWV9IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBTRUNfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKVxuICAgICkge1xuICAgICAgaWYgKCFzaWduYWJsZUhlYWRlcnMgfHwgKHNpZ25hYmxlSGVhZGVycyAmJiAhc2lnbmFibGVIZWFkZXJzLmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2Fub25pY2FsW2Nhbm9uaWNhbEhlYWRlck5hbWVdID0gaGVhZGVyc1toZWFkZXJOYW1lXS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCBcIiBcIik7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuIl19
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUNqQyxFQUF3QixFQUN4QixpQkFBK0IsRUFDL0IsZUFBNkI7O1FBRjNCLE9BQU8sYUFBQTtJQUlULElBQU0sU0FBUyxHQUFjLEVBQUUsQ0FBQzs7UUFDaEMsS0FBeUIsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtZQUFqRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRCxJQUNFLG1CQUFtQixJQUFJLHlCQUF5QjtpQkFDaEQsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUE7Z0JBQzNDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztnQkFDOUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQzVDO2dCQUNBLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRTtvQkFDdEYsU0FBUztpQkFDVjthQUNGO1lBRUQsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDbEY7Ozs7Ozs7OztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDYW5vbmljYWxIZWFkZXJzID0gKFxuICB7IGhlYWRlcnMgfTogSHR0cFJlcXVlc3QsXG4gIHVuc2lnbmFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4sXG4gIHNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+XG4pOiBIZWFkZXJCYWcgPT4ge1xuICBjb25zdCBjYW5vbmljYWw6IEhlYWRlckJhZyA9IHt9O1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykuc29ydCgpKSB7XG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVyTmFtZSA9IGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoXG4gICAgICBjYW5vbmljYWxIZWFkZXJOYW1lIGluIEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgfHxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzPy5oYXMoY2Fub25pY2FsSGVhZGVyTmFtZSkgfHxcbiAgICAgIFBST1hZX0hFQURFUl9QQVRURVJOLnRlc3QoY2Fub25pY2FsSGVhZGVyTmFtZSkgfHxcbiAgICAgIFNFQ19IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNpZ25hYmxlSGVhZGVycyB8fCAoc2lnbmFibGVIZWFkZXJzICYmICFzaWduYWJsZUhlYWRlcnMuaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5vbmljYWxbY2Fub25pY2FsSGVhZGVyTmFtZV0gPSBoZWFkZXJzW2hlYWRlck5hbWVdLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKTtcbiAgfVxuXG4gIHJldHVybiBjYW5vbmljYWw7XG59O1xuIl19

@@ -5,5 +5,5 @@ import { __values } from "tslib";

/**
* @internal
* @private
*/
export function getCanonicalQuery(_a) {
export var getCanonicalQuery = function (_a) {
var e_1, _b;

@@ -47,3 +47,3 @@ var _c = _a.query, query = _c === void 0 ? {} : _c;

.join("&");
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkI7O1FBQXpCLGFBQVUsRUFBVixLQUFLLG1CQUFHLEVBQUUsS0FBQTtJQUM1QyxJQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLElBQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7NEJBQ3RDLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRTs7U0FFM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBTSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO2lCQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNSLElBQUksRUFBRTtpQkFDTixNQUFNLENBQ0wsVUFBQyxPQUFzQixFQUFFLEtBQWEsSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDLENBQUMsRUFBekQsQ0FBeUQsRUFDcEcsRUFBRSxDQUNIO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkOzs7UUFsQkgsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQTtZQUF0QyxJQUFNLEdBQUcsV0FBQTtvQkFBSCxHQUFHO1NBbUJiOzs7Ozs7Ozs7SUFFRCxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQWYsQ0FBZSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxVQUFDLFVBQVUsSUFBSyxPQUFBLFVBQVUsRUFBVixDQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbFF1ZXJ5KHsgcXVlcnkgPSB7fSB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29uc3Qgc2VyaWFsaXplZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBTSUdOQVRVUkVfSEVBREVSKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IHZhbHVlXG4gICAgICAgIC5zbGljZSgwKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGVuY29kZWQ6IEFycmF5PHN0cmluZz4sIHZhbHVlOiBzdHJpbmcpID0+IGVuY29kZWQuY29uY2F0KFtgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWBdKSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5c1xuICAgIC5tYXAoKGtleSkgPT4gc2VyaWFsaXplZFtrZXldKVxuICAgIC5maWx0ZXIoKHNlcmlhbGl6ZWQpID0+IHNlcmlhbGl6ZWQpIC8vIG9taXQgYW55IGZhbHN5IHZhbHVlc1xuICAgIC5qb2luKFwiJlwiKTtcbn1cbiJdfQ==
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLEVBQTJCOztRQUF6QixhQUFVLEVBQVYsS0FBSyxtQkFBRyxFQUFFLEtBQUE7SUFDNUMsSUFBTSxJQUFJLEdBQWtCLEVBQUUsQ0FBQztJQUMvQixJQUFNLFVBQVUsR0FBOEIsRUFBRSxDQUFDOzRCQUN0QyxHQUFHO1FBQ1osSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssZ0JBQWdCLEVBQUU7O1NBRTNDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixVQUFVLENBQUMsR0FBRyxDQUFDLEdBQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUcsQ0FBQztTQUMzRDthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQixVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSztpQkFDcEIsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDUixJQUFJLEVBQUU7aUJBQ04sTUFBTSxDQUNMLFVBQUMsT0FBc0IsRUFBRSxLQUFhLElBQUssT0FBQSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUcsQ0FBQyxDQUFDLEVBQXpELENBQXlELEVBQ3BHLEVBQUUsQ0FDSDtpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDs7O1FBbEJILEtBQWtCLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUEsZ0JBQUE7WUFBdEMsSUFBTSxHQUFHLFdBQUE7b0JBQUgsR0FBRztTQW1CYjs7Ozs7Ozs7O0lBRUQsT0FBTyxJQUFJO1NBQ1IsR0FBRyxDQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFmLENBQWUsQ0FBQztTQUM3QixNQUFNLENBQUMsVUFBQyxVQUFVLElBQUssT0FBQSxVQUFVLEVBQVYsQ0FBVSxDQUFDLENBQUMsd0JBQXdCO1NBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0Q2Fub25pY2FsUXVlcnkgPSAoeyBxdWVyeSA9IHt9IH06IEh0dHBSZXF1ZXN0KTogc3RyaW5nID0+IHtcbiAgY29uc3Qga2V5czogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBjb25zdCBzZXJpYWxpemVkOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHF1ZXJ5KS5zb3J0KCkpIHtcbiAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IFNJR05BVFVSRV9IRUFERVIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGtleXMucHVzaChrZXkpO1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBzZXJpYWxpemVkW2tleV0gPSBgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWA7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gdmFsdWVcbiAgICAgICAgLnNsaWNlKDApXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAoZW5jb2RlZDogQXJyYXk8c3RyaW5nPiwgdmFsdWU6IHN0cmluZykgPT4gZW5jb2RlZC5jb25jYXQoW2Ake2VzY2FwZVVyaShrZXkpfT0ke2VzY2FwZVVyaSh2YWx1ZSl9YF0pLFxuICAgICAgICAgIFtdXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oXCImXCIpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXlzXG4gICAgLm1hcCgoa2V5KSA9PiBzZXJpYWxpemVkW2tleV0pXG4gICAgLmZpbHRlcigoc2VyaWFsaXplZCkgPT4gc2VyaWFsaXplZCkgLy8gb21pdCBhbnkgZmFsc3kgdmFsdWVzXG4gICAgLmpvaW4oXCImXCIpO1xufTtcbiJdfQ==

@@ -6,7 +6,7 @@ import { __awaiter, __generator, __values } from "tslib";

/**
* @internal
* @private
*/
export function getPayloadHash(_a, hashConstructor) {
export var getPayloadHash = function (_a, hashConstructor) {
var headers = _a.headers, body = _a.body;
return __awaiter(this, void 0, void 0, function () {
return __awaiter(void 0, void 0, void 0, function () {
var _b, _c, headerName, hashCtor, _d;

@@ -49,3 +49,3 @@ var e_1, _e;

});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sVUFBZ0IsY0FBYyxDQUNsQyxFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYXlsb2FkSGFzaChcbiAgeyBoZWFkZXJzLCBib2R5IH06IEh0dHBSZXF1ZXN0LFxuICBoYXNoQ29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvclxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSA9PT0gU0hBMjU2X0hFQURFUikge1xuICAgICAgcmV0dXJuIGhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvZHkgPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFwiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NVwiO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiIHx8IEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSB8fCBpc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgY29uc3QgaGFzaEN0b3IgPSBuZXcgaGFzaENvbnN0cnVjdG9yKCk7XG4gICAgaGFzaEN0b3IudXBkYXRlKGJvZHkpO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoQ3Rvci5kaWdlc3QoKSk7XG4gIH1cblxuICAvLyBBcyBhbnkgZGVmaW5lZCBib2R5IHRoYXQgaXMgbm90IGEgc3RyaW5nIG9yIGJpbmFyeSBkYXRhIGlzIGEgc3RyZWFtLCB0aGlzXG4gIC8vIGJvZHkgaXMgdW5zaWduYWJsZS4gQXR0ZW1wdCB0byBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYW4gdW5zaWduZWQgcGF5bG9hZCxcbiAgLy8gd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHNlcnZpY2UuXG4gIHJldHVybiBVTlNJR05FRF9QQVlMT0FEO1xufVxuIl19
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUM1QixFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBcnJheUJ1ZmZlciB9IGZyb20gXCJAYXdzLXNkay9pcy1hcnJheS1idWZmZXJcIjtcbmltcG9ydCB7IEhhc2hDb25zdHJ1Y3RvciwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHRvSGV4IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtaGV4LWVuY29kaW5nXCI7XG5cbmltcG9ydCB7IFNIQTI1Nl9IRUFERVIsIFVOU0lHTkVEX1BBWUxPQUQgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0UGF5bG9hZEhhc2ggPSBhc3luYyAoXG4gIHsgaGVhZGVycywgYm9keSB9OiBIdHRwUmVxdWVzdCxcbiAgaGFzaENvbnN0cnVjdG9yOiBIYXNoQ29uc3RydWN0b3Jcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhoZWFkZXJzKSkge1xuICAgIGlmIChoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFNIQTI1Nl9IRUFERVIpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzW2hlYWRlck5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIGlmIChib2R5ID09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBcImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTVcIjtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheUJ1ZmZlci5pc1ZpZXcoYm9keSkgfHwgaXNBcnJheUJ1ZmZlcihib2R5KSkge1xuICAgIGNvbnN0IGhhc2hDdG9yID0gbmV3IGhhc2hDb25zdHJ1Y3RvcigpO1xuICAgIGhhc2hDdG9yLnVwZGF0ZShib2R5KTtcbiAgICByZXR1cm4gdG9IZXgoYXdhaXQgaGFzaEN0b3IuZGlnZXN0KCkpO1xuICB9XG5cbiAgLy8gQXMgYW55IGRlZmluZWQgYm9keSB0aGF0IGlzIG5vdCBhIHN0cmluZyBvciBiaW5hcnkgZGF0YSBpcyBhIHN0cmVhbSwgdGhpc1xuICAvLyBib2R5IGlzIHVuc2lnbmFibGUuIEF0dGVtcHQgdG8gc2VuZCB0aGUgcmVxdWVzdCB3aXRoIGFuIHVuc2lnbmVkIHBheWxvYWQsXG4gIC8vIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIGFjY2VwdGVkIGJ5IHRoZSBzZXJ2aWNlLlxuICByZXR1cm4gVU5TSUdORURfUEFZTE9BRDtcbn07XG4iXX0=
export * from "./credentialDerivation";
export { getCanonicalHeaders } from "./getCanonicalHeaders";
export { getCanonicalQuery } from "./getCanonicalQuery";
export { getPayloadHash } from "./getPayloadHash";
export { moveHeadersToQuery } from "./moveHeadersToQuery";
export { prepareRequest } from "./prepareRequest";
export { normalizeCredentialsProvider, normalizeRegionProvider } from "./normalizeProvider";
export * from "./SignatureV4";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NyZWRlbnRpYWxEZXJpdmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TaWduYXR1cmVWNFwiO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVGLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmV4cG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5leHBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5leHBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5leHBvcnQgeyBtb3ZlSGVhZGVyc1RvUXVlcnkgfSBmcm9tIFwiLi9tb3ZlSGVhZGVyc1RvUXVlcnlcIjtcbmV4cG9ydCB7IHByZXBhcmVSZXF1ZXN0IH0gZnJvbSBcIi4vcHJlcGFyZVJlcXVlc3RcIjtcbmV4cG9ydCB7IG5vcm1hbGl6ZUNyZWRlbnRpYWxzUHJvdmlkZXIsIG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyIH0gZnJvbSBcIi4vbm9ybWFsaXplUHJvdmlkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NpZ25hdHVyZVY0XCI7XG4iXX0=
import { __assign, __values } from "tslib";
import { cloneRequest } from "./cloneRequest";
/**
* @internal
* @private
*/
export function moveHeadersToQuery(request, options) {
export var moveHeadersToQuery = function (request, options) {
var e_1, _a;

@@ -28,5 +28,4 @@ var _b;

}
return __assign(__assign({}, request), { headers: headers,
query: query });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUFvQixFQUNwQixPQUFrRDs7O0lBQWxELHdCQUFBLEVBQUEsWUFBa0Q7SUFFNUMsSUFBQSxLQUNKLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUR6RixPQUFPLGFBQUEsRUFBRSxhQUErQixFQUEvQixLQUFLLG1CQUFHLEVBQXVCLEtBQ2lELENBQUM7O1FBQ2xHLEtBQW1CLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBcEMsSUFBTSxJQUFJLFdBQUE7WUFDYixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFBLE1BQUEsT0FBTyxDQUFDLGtCQUFrQiwwQ0FBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUEsRUFBRTtnQkFDOUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjs7Ozs7Ozs7O0lBRUQsNkJBQ0ssT0FBTyxLQUNWLE9BQU8sU0FBQTtRQUNQLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuIl19
return __assign(__assign({}, request), { headers: headers, query: query });
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsVUFDaEMsT0FBb0IsRUFDcEIsT0FBa0Q7OztJQUFsRCx3QkFBQSxFQUFBLFlBQWtEO0lBRTVDLElBQUEsS0FDSixPQUFRLE9BQWUsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxPQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFEekYsT0FBTyxhQUFBLEVBQUUsYUFBK0IsRUFBL0IsS0FBSyxtQkFBRyxFQUF1QixLQUNpRCxDQUFDOztRQUNsRyxLQUFtQixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQXBDLElBQU0sSUFBSSxXQUFBO1lBQ2IsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQSxNQUFBLE9BQU8sQ0FBQyxrQkFBa0IsMENBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBLEVBQUU7Z0JBQzlFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RCO1NBQ0Y7Ozs7Ozs7OztJQUVELDZCQUNLLE9BQU8sS0FDVixPQUFPLFNBQUEsRUFDUCxLQUFLLE9BQUEsSUFDTDtBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgbW92ZUhlYWRlcnNUb1F1ZXJ5ID0gKFxuICByZXF1ZXN0OiBIdHRwUmVxdWVzdCxcbiAgb3B0aW9uczogeyB1bmhvaXN0YWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPiB9ID0ge31cbik6IEh0dHBSZXF1ZXN0ICYgeyBxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcgfSA9PiB7XG4gIGNvbnN0IHsgaGVhZGVycywgcXVlcnkgPSB7fSBhcyBRdWVyeVBhcmFtZXRlckJhZyB9ID1cbiAgICB0eXBlb2YgKHJlcXVlc3QgYXMgYW55KS5jbG9uZSA9PT0gXCJmdW5jdGlvblwiID8gKHJlcXVlc3QgYXMgYW55KS5jbG9uZSgpIDogY2xvbmVSZXF1ZXN0KHJlcXVlc3QpO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBjb25zdCBsbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobG5hbWUuc3Vic3RyKDAsIDYpID09PSBcIngtYW16LVwiICYmICFvcHRpb25zLnVuaG9pc3RhYmxlSGVhZGVycz8uaGFzKGxuYW1lKSkge1xuICAgICAgcXVlcnlbbmFtZV0gPSBoZWFkZXJzW25hbWVdO1xuICAgICAgZGVsZXRlIGhlYWRlcnNbbmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5yZXF1ZXN0LFxuICAgIGhlYWRlcnMsXG4gICAgcXVlcnksXG4gIH07XG59O1xuIl19

@@ -5,5 +5,5 @@ import { __values } from "tslib";

/**
* @internal
* @private
*/
export function prepareRequest(request) {
export var prepareRequest = function (request) {
var e_1, _a;

@@ -28,3 +28,3 @@ // Create a clone of the request object that does not clone the body

return request;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9COztJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUUxRyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFsRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0IHtcbiAgLy8gQ3JlYXRlIGEgY2xvbmUgb2YgdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgZG9lcyBub3QgY2xvbmUgdGhlIGJvZHlcbiAgcmVxdWVzdCA9IHR5cGVvZiAocmVxdWVzdCBhcyBhbnkpLmNsb25lID09PSBcImZ1bmN0aW9uXCIgPyAocmVxdWVzdCBhcyBhbnkpLmNsb25lKCkgOiBjbG9uZVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycykpIHtcbiAgICBpZiAoR0VORVJBVEVEX0hFQURFUlMuaW5kZXhPZihoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0LmhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVlc3Q7XG59XG4iXX0=
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsVUFBQyxPQUFvQjs7SUFDakQsb0VBQW9FO0lBQ3BFLE9BQU8sR0FBRyxPQUFRLE9BQWUsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxPQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQzs7UUFFMUcsS0FBeUIsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBbEQsSUFBTSxVQUFVLFdBQUE7WUFDbkIsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNwQztTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHByZXBhcmVSZXF1ZXN0ID0gKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0KTogSHR0cFJlcXVlc3QgPT4ge1xuICAvLyBDcmVhdGUgYSBjbG9uZSBvZiB0aGUgcmVxdWVzdCBvYmplY3QgdGhhdCBkb2VzIG5vdCBjbG9uZSB0aGUgYm9keVxuICByZXF1ZXN0ID0gdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcblxuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMocmVxdWVzdC5oZWFkZXJzKSkge1xuICAgIGlmIChHRU5FUkFURURfSEVBREVSUy5pbmRleE9mKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSkgPiAtMSkge1xuICAgICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1toZWFkZXJOYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVxdWVzdDtcbn07XG4iXX0=

@@ -8,4 +8,5 @@ import { __awaiter, __generator } from "tslib";

import { getPayloadHash } from "./getPayloadHash";
import { hasHeader } from "./hasHeader";
import { hasHeader } from "./headerUtil";
import { moveHeadersToQuery } from "./moveHeadersToQuery";
import { normalizeCredentialsProvider, normalizeRegionProvider } from "./normalizeProvider";
import { prepareRequest } from "./prepareRequest";

@@ -271,20 +272,2 @@ import { iso8601 } from "./utilDate";

var getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(";"); };
var normalizeRegionProvider = function (region) {
if (typeof region === "string") {
var promisified_1 = Promise.resolve(region);
return function () { return promisified_1; };
}
else {
return region;
}
};
var normalizeCredentialsProvider = function (credentials) {
if (typeof credentials === "object") {
var promisified_2 = Promise.resolve(credentials);
return function () { return promisified_2; };
}
else {
return credentials;
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJ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YztJQUNoQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPO1FBQ0wsUUFBUSxVQUFBO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQWUsSUFBYSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO0FBRWxHLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxNQUFpQztJQUNoRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLDRCQUE0QixHQUFHLFVBQUMsV0FBZ0Q7SUFDcEYsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oYXNIZWFkZXJcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcblxuY29uc3Qgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlZ2lvbjtcbiAgfVxufTtcblxuY29uc3Qgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciA9IChjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz4pOiBQcm92aWRlcjxDcmVkZW50aWFscz4gPT4ge1xuICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLGFBQWEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9FLElBQUksQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFWSw2QkFBTyxHQUFwQixVQUFxQixlQUE0QixFQUFFLE9BQXdDO1FBQXhDLHdCQUFBLEVBQUEsWUFBd0M7Ozs7Ozt3QkFFdkYsS0FPRSxPQUFPLFlBUGUsRUFBeEIsV0FBVyxtQkFBRyxJQUFJLElBQUksRUFBRSxLQUFBLEVBQ3hCLEtBTUUsT0FBTyxVQU5PLEVBQWhCLFNBQVMsbUJBQUcsSUFBSSxLQUFBLEVBQ2hCLGlCQUFpQixHQUtmLE9BQU8sa0JBTFEsRUFDakIsa0JBQWtCLEdBSWhCLE9BQU8sbUJBSlMsRUFDbEIsZUFBZSxHQUdiLE9BQU8sZ0JBSE0sRUFDZixhQUFhLEdBRVgsT0FBTyxjQUZJLEVBQ2IsY0FBYyxHQUNaLE9BQU8sZUFESyxDQUNKO3dCQUNRLHFCQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFBOzt3QkFBN0MsV0FBVyxHQUFHLFNBQStCOzhCQUNwQyxhQUFhLGFBQWIsYUFBYTt3QkFBYixLQUFBLGFBQWEsQ0FBQTs7NEJBQUsscUJBQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFBOzt3QkFBNUIsS0FBQSxDQUFDLFNBQTJCLENBQUMsQ0FBQTs7O3dCQUF2RCxNQUFNLEtBQWlEO3dCQUV2RCxLQUEwQixVQUFVLENBQUMsV0FBVyxDQUFDLEVBQS9DLFFBQVEsY0FBQSxFQUFFLFNBQVMsZUFBQSxDQUE2Qjt3QkFDeEQsSUFBSSxTQUFTLEdBQUcsaUJBQWlCLEVBQUU7NEJBQ2pDLHNCQUFPLE9BQU8sQ0FBQyxNQUFNLENBQ25CLG9DQUFvQyxHQUFHLHFEQUFxRCxHQUFHLGFBQWEsQ0FDN0csRUFBQzt5QkFDSDt3QkFFSyxLQUFLLEdBQUcsV0FBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxhQUFkLGNBQWMsY0FBZCxjQUFjLEdBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUN2RSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsa0JBQWtCLG9CQUFBLEVBQUUsQ0FBQyxDQUFDO3dCQUU1RixJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUU7NEJBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO3lCQUM3RDt3QkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsb0JBQW9CLENBQUM7d0JBQzVELE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBTSxXQUFXLENBQUMsV0FBVyxTQUFJLEtBQU8sQ0FBQzt3QkFDOUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFFBQVEsQ0FBQzt3QkFDL0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBRXRELGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQzt3QkFDMUYsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLENBQUM7d0JBRXJGLEtBQUEsT0FBTyxDQUFDLEtBQUssQ0FBQTt3QkFBQyxLQUFBLHFCQUFxQixDQUFBO3dCQUFVLEtBQUEsSUFBSSxDQUFDLFlBQVksQ0FBQTs4QkFDNUQsUUFBUTs0QkFDUixLQUFLOzRCQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDO3dCQUNsRSxLQUFBLElBQUksQ0FBQyxzQkFBc0IsQ0FBQTs4QkFBQyxPQUFPLEVBQUUsZ0JBQWdCO3dCQUFFLHFCQUFNLGNBQWMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFBOzRCQUpwRSxxQkFBTSxTQUFBLElBQUksYUFJL0MsU0FBQSxJQUFJLGFBQW1ELFNBQWtELEdBQUMsR0FDM0csRUFBQTs7d0JBTEQsTUFBb0MsR0FBRyxTQUt0QyxDQUFDO3dCQUVGLHNCQUFPLE9BQU8sRUFBQzs7OztLQUNoQjtJQUtZLDBCQUFJLEdBQWpCLFVBQWtCLE1BQVcsRUFBRSxPQUFZOzs7Z0JBQ3pDLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO29CQUM5QixzQkFBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQztpQkFDekM7cUJBQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQzNDLHNCQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFDO2lCQUN4QztxQkFBTTtvQkFDTCxzQkFBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQztpQkFDMUM7Ozs7S0FDRjtJQUVhLCtCQUFTLEdBQXZCLFVBQ0UsRUFBb0MsRUFDcEMsRUFBa0c7WUFEaEcsT0FBTyxhQUFBLEVBQUUsT0FBTyxhQUFBO1lBQ2hCLG1CQUF3QixFQUF4QixXQUFXLG1CQUFHLElBQUksSUFBSSxFQUFFLEtBQUEsRUFBRSxjQUFjLG9CQUFBLEVBQUUsYUFBYSxtQkFBQSxFQUFFLGNBQWMsb0JBQUE7Ozs7Ozs4QkFFMUQsYUFBYSxhQUFiLGFBQWE7d0JBQWIsS0FBQSxhQUFhLENBQUE7OzRCQUFLLHFCQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBQTs7d0JBQTVCLEtBQUEsQ0FBQyxTQUEyQixDQUFDLENBQUE7Ozt3QkFBdkQsTUFBTSxLQUFpRDt3QkFDdkQsS0FBMEIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUEvQyxTQUFTLGVBQUEsRUFBRSxRQUFRLGNBQUEsQ0FBNkI7d0JBQ2xELEtBQUssR0FBRyxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLGFBQWQsY0FBYyxjQUFkLGNBQWMsR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ3ZELHFCQUFNLGNBQWMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQTs7d0JBQXhGLGFBQWEsR0FBRyxTQUF3RTt3QkFDeEYsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNDLEtBQUEsS0FBSyxDQUFBO3dCQUFDLHFCQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQTs7d0JBQXpDLGFBQWEsR0FBRyxrQkFBTSxTQUFtQixFQUFDO3dCQUMxQyxZQUFZLEdBQUc7NEJBQ25CLDBCQUEwQjs0QkFDMUIsUUFBUTs0QkFDUixLQUFLOzRCQUNMLGNBQWM7NEJBQ2QsYUFBYTs0QkFDYixhQUFhO3lCQUNkLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNiLHNCQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLEVBQUUsV0FBVyxhQUFBLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxjQUFjLGdCQUFBLEVBQUUsQ0FBQyxFQUFDOzs7O0tBQzlGO0lBRWEsZ0NBQVUsR0FBeEIsVUFDRSxZQUFvQixFQUNwQixFQUFrRjtZQUFsRixxQkFBZ0YsRUFBRSxLQUFBLEVBQWhGLG1CQUF3QixFQUF4QixXQUFXLG1CQUFHLElBQUksSUFBSSxFQUFFLEtBQUEsRUFBRSxhQUFhLG1CQUFBLEVBQUUsY0FBYyxvQkFBQTs7Ozs7NEJBRXJDLHFCQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFBOzt3QkFBN0MsV0FBVyxHQUFHLFNBQStCOzhCQUNwQyxhQUFhLGFBQWIsYUFBYTt3QkFBYixLQUFBLGFBQWEsQ0FBQTs7NEJBQUsscUJBQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFBOzt3QkFBNUIsS0FBQSxDQUFDLFNBQTJCLENBQUMsQ0FBQTs7O3dCQUF2RCxNQUFNLEtBQWlEO3dCQUNyRCxTQUFTLEdBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUE1QixDQUE2Qjs2QkFFN0IsQ0FBQSxLQUFBLElBQUksQ0FBQyxNQUFNLENBQUE7d0JBQUMscUJBQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsRUFBQTs7d0JBQS9GLElBQUksR0FBRywyQkFBZ0IsU0FBd0UsS0FBQzt3QkFDdEcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDbkIsS0FBQSxLQUFLLENBQUE7d0JBQUMscUJBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFBOzRCQUFoQyxzQkFBTyxrQkFBTSxTQUFtQixFQUFDLEVBQUM7Ozs7S0FDbkM7SUFFYSxpQ0FBVyxHQUF6QixVQUNFLGFBQTBCLEVBQzFCLEVBTStCO1lBTi9CLHFCQU02QixFQUFFLEtBQUEsRUFMN0IsbUJBQXdCLEVBQXhCLFdBQVcsbUJBQUcsSUFBSSxJQUFJLEVBQUUsS0FBQSxFQUN4QixlQUFlLHFCQUFBLEVBQ2YsaUJBQWlCLHVCQUFBLEVBQ2pCLGFBQWEsbUJBQUEsRUFDYixjQUFjLG9CQUFBOzs7Ozs0QkFHSSxxQkFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBQTs7d0JBQTdDLFdBQVcsR0FBRyxTQUErQjs4QkFDcEMsYUFBYSxhQUFiLGFBQWE7d0JBQWIsS0FBQSxhQUFhLENBQUE7OzRCQUFLLHFCQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBQTs7d0JBQTVCLEtBQUEsQ0FBQyxTQUEyQixDQUFDLENBQUE7Ozt3QkFBdkQsTUFBTSxLQUFpRDt3QkFDdkQsT0FBTyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQzt3QkFDeEMsS0FBMEIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUEvQyxRQUFRLGNBQUEsRUFBRSxTQUFTLGVBQUEsQ0FBNkI7d0JBQ2xELEtBQUssR0FBRyxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLGFBQWQsY0FBYyxjQUFkLGNBQWMsR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBRTdFLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDO3dCQUM1QyxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUU7NEJBQzVCLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQzt5QkFDMUQ7d0JBRW1CLHFCQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFBOzt3QkFBeEQsV0FBVyxHQUFHLFNBQTBDO3dCQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTs0QkFDcEUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxXQUFXLENBQUM7eUJBQzlDO3dCQUVLLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQzt3QkFDeEUscUJBQU0sSUFBSSxDQUFDLFlBQVksQ0FDdkMsUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxFQUNsRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUNwRSxFQUFBOzt3QkFMSyxTQUFTLEdBQUcsU0FLakI7d0JBRUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7NEJBQ3ZCLG9CQUFvQixNQUFHO2lDQUMxQixnQkFBYyxXQUFXLENBQUMsV0FBVyxTQUFJLEtBQUssT0FBSSxDQUFBO2lDQUNsRCxtQkFBaUIsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsT0FBSSxDQUFBO2lDQUM3RCxlQUFhLFNBQVcsQ0FBQSxDQUFDO3dCQUUzQixzQkFBTyxPQUFPLEVBQUM7Ozs7S0FDaEI7SUFFTyw0Q0FBc0IsR0FBOUIsVUFBK0IsT0FBb0IsRUFBRSxnQkFBMkIsRUFBRSxXQUFtQjtRQUNuRyxJQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0QsT0FBVSxPQUFPLENBQUMsTUFBTSxVQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQzlCLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUMxQixhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUcsSUFBSSxTQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBRyxFQUFuQyxDQUFtQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUUzRSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUN2QixXQUFhLENBQUM7SUFDZCxDQUFDO0lBRWEsd0NBQWtCLEdBQWhDLFVBQ0UsUUFBZ0IsRUFDaEIsZUFBdUIsRUFDdkIsZ0JBQXdCOzs7Ozs7d0JBRWxCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3dCQUNSLHFCQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQTs7d0JBQW5DLGFBQWEsR0FBRyxTQUFtQjt3QkFFekMsc0JBQVUsb0JBQW9CLFVBQ2hDLFFBQVEsVUFDUixlQUFlLFVBQ2YsS0FBSyxDQUFDLGFBQWEsQ0FBRyxFQUFDOzs7O0tBQ3RCO0lBRU8sc0NBQWdCLEdBQXhCLFVBQXlCLEVBQXFCO1lBQW5CLElBQUksVUFBQTtRQUM3QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRSxPQUFPLE1BQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFHLENBQUM7U0FDakQ7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFYSxrQ0FBWSxHQUExQixVQUNFLFFBQWdCLEVBQ2hCLGVBQXVCLEVBQ3ZCLFVBQStCLEVBQy9CLGdCQUF3Qjs7Ozs7NEJBRUgscUJBQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsRUFBQTs7d0JBQXpGLFlBQVksR0FBRyxTQUEwRTs2QkFFOUUsQ0FBQSxLQUFBLElBQUksQ0FBQyxNQUFNLENBQUE7d0JBQUMscUJBQU0sVUFBVSxFQUFBOzt3QkFBdkMsSUFBSSxHQUFHLDJCQUFnQixTQUFnQixLQUFDO3dCQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUNuQixLQUFBLEtBQUssQ0FBQTt3QkFBQyxxQkFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUE7NEJBQWhDLHNCQUFPLGtCQUFNLFNBQW1CLEVBQUMsRUFBQzs7OztLQUNuQztJQUVPLG1DQUFhLEdBQXJCLFVBQ0UsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLFNBQWlCLEVBQ2pCLE9BQWdCO1FBRWhCLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBeE5ELElBd05DOztBQUVELElBQU0sVUFBVSxHQUFHLFVBQUMsR0FBYztJQUNoQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPO1FBQ0wsUUFBUSxVQUFBO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQWUsSUFBYSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3JlZGVudGlhbHMsXG4gIERhdGVJbnB1dCxcbiAgRXZlbnRTaWduZXIsXG4gIEV2ZW50U2lnbmluZ0FyZ3VtZW50cyxcbiAgRm9ybWF0dGVkRXZlbnQsXG4gIEhhc2hDb25zdHJ1Y3RvcixcbiAgSGVhZGVyQmFnLFxuICBIdHRwUmVxdWVzdCxcbiAgUHJvdmlkZXIsXG4gIFJlcXVlc3RQcmVzaWduZXIsXG4gIFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzLFxuICBSZXF1ZXN0U2lnbmVyLFxuICBSZXF1ZXN0U2lnbmluZ0FyZ3VtZW50cyxcbiAgU2lnbmluZ0FyZ3VtZW50cyxcbiAgU3RyaW5nU2lnbmVyLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHRvSGV4IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtaGV4LWVuY29kaW5nXCI7XG5cbmltcG9ydCB7XG4gIEFMR09SSVRITV9JREVOVElGSUVSLFxuICBBTEdPUklUSE1fUVVFUllfUEFSQU0sXG4gIEFNWl9EQVRFX0hFQURFUixcbiAgQU1aX0RBVEVfUVVFUllfUEFSQU0sXG4gIEFVVEhfSEVBREVSLFxuICBDUkVERU5USUFMX1FVRVJZX1BBUkFNLFxuICBFVkVOVF9BTEdPUklUSE1fSURFTlRJRklFUixcbiAgRVhQSVJFU19RVUVSWV9QQVJBTSxcbiAgTUFYX1BSRVNJR05FRF9UVEwsXG4gIFNIQTI1Nl9IRUFERVIsXG4gIFNJR05BVFVSRV9RVUVSWV9QQVJBTSxcbiAgU0lHTkVEX0hFQURFUlNfUVVFUllfUEFSQU0sXG4gIFRPS0VOX0hFQURFUixcbiAgVE9LRU5fUVVFUllfUEFSQU0sXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY3JlYXRlU2NvcGUsIGdldFNpZ25pbmdLZXkgfSBmcm9tIFwiLi9jcmVkZW50aWFsRGVyaXZhdGlvblwiO1xuaW1wb3J0IHsgZ2V0Q2Fub25pY2FsSGVhZGVycyB9IGZyb20gXCIuL2dldENhbm9uaWNhbEhlYWRlcnNcIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbFF1ZXJ5IH0gZnJvbSBcIi4vZ2V0Q2Fub25pY2FsUXVlcnlcIjtcbmltcG9ydCB7IGdldFBheWxvYWRIYXNoIH0gZnJvbSBcIi4vZ2V0UGF5bG9hZEhhc2hcIjtcbmltcG9ydCB7IGhhc0hlYWRlciB9IGZyb20gXCIuL2hlYWRlclV0aWxcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciwgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgfSBmcm9tIFwiLi9ub3JtYWxpemVQcm92aWRlclwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcbiJdfQ==

@@ -1,7 +0,7 @@

export function iso8601(time) {
export var iso8601 = function (time) {
return toDate(time)
.toISOString()
.replace(/\.\d{3}Z$/, "Z");
}
export function toDate(time) {
};
export var toDate = function (time) {
if (typeof time === "number") {

@@ -17,3 +17,3 @@ return new Date(time * 1000);

return time;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUE0QjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDaEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc284NjAxKHRpbWU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EYXRlKHRpbWUpXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFwuXFxkezN9WiQvLCBcIlpcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGUge1xuICBpZiAodHlwZW9mIHRpbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKE51bWJlcih0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lKSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSk7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cbiJdfQ==
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sT0FBTyxHQUFHLFVBQUMsSUFBNEI7SUFDbEQsT0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ1QsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUM7QUFGNUIsQ0FFNEIsQ0FBQztBQUUvQixNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzbzg2MDEgPSAodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IHN0cmluZyA9PlxuICB0b0RhdGUodGltZSlcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5yZXBsYWNlKC9cXC5cXGR7M31aJC8sIFwiWlwiKTtcblxuZXhwb3J0IGNvbnN0IHRvRGF0ZSA9ICh0aW1lOiBudW1iZXIgfCBzdHJpbmcgfCBEYXRlKTogRGF0ZSA9PiB7XG4gIGlmICh0eXBlb2YgdGltZSA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lICogMTAwMCk7XG4gIH1cblxuICBpZiAodHlwZW9mIHRpbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoTnVtYmVyKHRpbWUpKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTnVtYmVyKHRpbWUpICogMTAwMCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lKTtcbiAgfVxuXG4gIHJldHVybiB0aW1lO1xufTtcbiJdfQ==

@@ -1,1 +0,2 @@

export {};
import { QueryParameterBag } from "@aws-sdk/types";
export declare const cloneQuery: (query: QueryParameterBag) => QueryParameterBag;

@@ -8,2 +8,3 @@ export declare const ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm";

export declare const TOKEN_QUERY_PARAM = "X-Amz-Security-Token";
export declare const REGION_SET_PARAM = "X-Amz-Region-Set";
export declare const AUTH_HEADER = "authorization";

@@ -38,2 +39,3 @@ export declare const AMZ_DATE_HEADER: string;

export declare const ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256";
export declare const ALGORITHM_IDENTIFIER_V4A = "AWS4-ECDSA-P256-SHA256";
export declare const EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD";

@@ -40,0 +42,0 @@ export declare const UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD";

@@ -9,3 +9,3 @@ import { Credentials, HashConstructor } from "@aws-sdk/types";

*/
export declare function createScope(shortDate: string, region: string, service: string): string;
export declare const createScope: (shortDate: string, region: string, service: string) => string;
/**

@@ -12,0 +12,0 @@ * Derive a signing key from its composite parts

@@ -1,1 +0,5 @@

export {};
import { HeaderBag, HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const getCanonicalHeaders: ({ headers }: HttpRequest, unsignableHeaders?: Set<string> | undefined, signableHeaders?: Set<string> | undefined) => HeaderBag;

@@ -1,1 +0,5 @@

export {};
import { HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const getCanonicalQuery: ({ query }: HttpRequest) => string;

@@ -1,1 +0,5 @@

export {};
import { HashConstructor, HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const getPayloadHash: ({ headers, body }: HttpRequest, hashConstructor: HashConstructor) => Promise<string>;
export * from "./credentialDerivation";
export { getCanonicalHeaders } from "./getCanonicalHeaders";
export { getCanonicalQuery } from "./getCanonicalQuery";
export { getPayloadHash } from "./getPayloadHash";
export { moveHeadersToQuery } from "./moveHeadersToQuery";
export { prepareRequest } from "./prepareRequest";
export { normalizeCredentialsProvider, normalizeRegionProvider } from "./normalizeProvider";
export * from "./SignatureV4";

@@ -1,1 +0,9 @@

export {};
import { HttpRequest, QueryParameterBag } from "@aws-sdk/types";
/**
* @private
*/
export declare const moveHeadersToQuery: (request: HttpRequest, options?: {
unhoistableHeaders?: Set<string>;
}) => HttpRequest & {
query: QueryParameterBag;
};

@@ -1,1 +0,5 @@

export {};
import { HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const prepareRequest: (request: HttpRequest) => HttpRequest;

@@ -1,1 +0,2 @@

export {};
import { QueryParameterBag } from "@aws-sdk/types";
export declare const cloneQuery: (query: QueryParameterBag) => QueryParameterBag;

@@ -8,2 +8,3 @@ export declare const ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm";

export declare const TOKEN_QUERY_PARAM = "X-Amz-Security-Token";
export declare const REGION_SET_PARAM = "X-Amz-Region-Set";
export declare const AUTH_HEADER = "authorization";

@@ -38,2 +39,3 @@ export declare const AMZ_DATE_HEADER: string;

export declare const ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256";
export declare const ALGORITHM_IDENTIFIER_V4A = "AWS4-ECDSA-P256-SHA256";
export declare const EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD";

@@ -40,0 +42,0 @@ export declare const UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD";

@@ -9,3 +9,3 @@ import { Credentials, HashConstructor } from "@aws-sdk/types";

*/
export declare function createScope(shortDate: string, region: string, service: string): string;
export declare const createScope: (shortDate: string, region: string, service: string) => string;
/**

@@ -12,0 +12,0 @@ * Derive a signing key from its composite parts

@@ -1,1 +0,5 @@

export {};
import { HeaderBag, HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const getCanonicalHeaders: ({ headers }: HttpRequest, unsignableHeaders?: Set<string> | undefined, signableHeaders?: Set<string> | undefined) => HeaderBag;

@@ -1,1 +0,5 @@

export {};
import { HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const getCanonicalQuery: ({ query }: HttpRequest) => string;

@@ -1,1 +0,5 @@

export {};
import { HashConstructor, HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const getPayloadHash: ({ headers, body }: HttpRequest, hashConstructor: HashConstructor) => Promise<string>;
export * from "./credentialDerivation";
export { getCanonicalHeaders } from "./getCanonicalHeaders";
export { getCanonicalQuery } from "./getCanonicalQuery";
export { getPayloadHash } from "./getPayloadHash";
export { moveHeadersToQuery } from "./moveHeadersToQuery";
export { prepareRequest } from "./prepareRequest";
export { normalizeCredentialsProvider, normalizeRegionProvider } from "./normalizeProvider";
export * from "./SignatureV4";

@@ -1,1 +0,9 @@

export {};
import { HttpRequest, QueryParameterBag } from "@aws-sdk/types";
/**
* @private
*/
export declare const moveHeadersToQuery: (request: HttpRequest, options?: {
unhoistableHeaders?: Set<string>;
}) => HttpRequest & {
query: QueryParameterBag;
};

@@ -1,1 +0,5 @@

export {};
import { HttpRequest } from "@aws-sdk/types";
/**
* @private
*/
export declare const prepareRequest: (request: HttpRequest) => HttpRequest;

@@ -1,2 +0,2 @@

export declare function iso8601(time: number | string | Date): string;
export declare function toDate(time: number | string | Date): Date;
export declare const iso8601: (time: number | string | Date) => string;
export declare const toDate: (time: number | string | Date) => Date;

@@ -1,2 +0,2 @@

export declare function iso8601(time: number | string | Date): string;
export declare function toDate(time: number | string | Date): Date;
export declare const iso8601: (time: number | string | Date) => string;
export declare const toDate: (time: number | string | Date) => Date;
{
"name": "@aws-sdk/signature-v4",
"version": "3.25.0",
"version": "3.29.0",
"description": "A standalone implementation of the AWS Signature V4 request signing algorithm",

@@ -22,6 +22,6 @@ "main": "./dist/cjs/index.js",

"dependencies": {
"@aws-sdk/is-array-buffer": "3.23.0",
"@aws-sdk/types": "3.25.0",
"@aws-sdk/util-hex-encoding": "3.23.0",
"@aws-sdk/util-uri-escape": "3.23.0",
"@aws-sdk/is-array-buffer": "3.29.0",
"@aws-sdk/types": "3.29.0",
"@aws-sdk/util-hex-encoding": "3.29.0",
"@aws-sdk/util-uri-escape": "3.29.0",
"tslib": "^2.3.0"

@@ -31,7 +31,7 @@ },

"@aws-crypto/sha256-js": "^1.0.0",
"@aws-sdk/protocol-http": "3.25.0",
"@aws-sdk/util-buffer-from": "3.23.0",
"@aws-sdk/protocol-http": "3.29.0",
"@aws-sdk/util-buffer-from": "3.29.0",
"@types/jest": "^26.0.4",
"jest": "^26.1.0",
"typescript": "~4.3.2"
"typescript": "~4.4.2"
},

@@ -38,0 +38,0 @@ "engines": {

@@ -6,12 +6,10 @@ import { HttpRequest, QueryParameterBag } from "@aws-sdk/types";

*/
export function cloneRequest({ headers, query, ...rest }: HttpRequest): HttpRequest {
return {
...rest,
headers: { ...headers },
query: query ? cloneQuery(query) : undefined,
};
}
export const cloneRequest = ({ headers, query, ...rest }: HttpRequest): HttpRequest => ({
...rest,
headers: { ...headers },
query: query ? cloneQuery(query) : undefined,
});
function cloneQuery(query: QueryParameterBag): QueryParameterBag {
return Object.keys(query).reduce((carry: QueryParameterBag, paramName: string) => {
export const cloneQuery = (query: QueryParameterBag): QueryParameterBag =>
Object.keys(query).reduce((carry: QueryParameterBag, paramName: string) => {
const param = query[paramName];

@@ -23,2 +21,1 @@ return {

}, {});
}

@@ -8,2 +8,3 @@ export const ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm";

export const TOKEN_QUERY_PARAM = "X-Amz-Security-Token";
export const REGION_SET_PARAM = "X-Amz-Region-Set";

@@ -44,2 +45,3 @@ export const AUTH_HEADER = "authorization";

export const ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256";
export const ALGORITHM_IDENTIFIER_V4A = "AWS4-ECDSA-P256-SHA256";

@@ -46,0 +48,0 @@ export const EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD";

@@ -16,5 +16,4 @@ import { Credentials, HashConstructor, SourceData } from "@aws-sdk/types";

*/
export function createScope(shortDate: string, region: string, service: string): string {
return `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;
}
export const createScope = (shortDate: string, region: string, service: string): string =>
`${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;

@@ -61,3 +60,3 @@ /**

*/
export function clearCredentialCache(): void {
export const clearCredentialCache = (): void => {
cacheQueue.length = 0;

@@ -67,8 +66,8 @@ Object.keys(signingKeyCache).forEach((cacheKey) => {

});
}
};
function hmac(ctor: HashConstructor, secret: SourceData, data: SourceData): Promise<Uint8Array> {
const hmac = (ctor: HashConstructor, secret: SourceData, data: SourceData): Promise<Uint8Array> => {
const hash = new ctor(secret);
hash.update(data);
return hash.digest();
}
};

@@ -6,9 +6,9 @@ import { HeaderBag, HttpRequest } from "@aws-sdk/types";

/**
* @internal
* @private
*/
export function getCanonicalHeaders(
export const getCanonicalHeaders = (
{ headers }: HttpRequest,
unsignableHeaders?: Set<string>,
signableHeaders?: Set<string>
): HeaderBag {
): HeaderBag => {
const canonical: HeaderBag = {};

@@ -32,2 +32,2 @@ for (const headerName of Object.keys(headers).sort()) {

return canonical;
}
};

@@ -7,5 +7,5 @@ import { HttpRequest } from "@aws-sdk/types";

/**
* @internal
* @private
*/
export function getCanonicalQuery({ query = {} }: HttpRequest): string {
export const getCanonicalQuery = ({ query = {} }: HttpRequest): string => {
const keys: Array<string> = [];

@@ -38,2 +38,2 @@ const serialized: { [key: string]: string } = {};

.join("&");
}
};

@@ -8,8 +8,8 @@ import { isArrayBuffer } from "@aws-sdk/is-array-buffer";

/**
* @internal
* @private
*/
export async function getPayloadHash(
export const getPayloadHash = async (
{ headers, body }: HttpRequest,
hashConstructor: HashConstructor
): Promise<string> {
): Promise<string> => {
for (const headerName of Object.keys(headers)) {

@@ -33,2 +33,2 @@ if (headerName.toLowerCase() === SHA256_HEADER) {

return UNSIGNED_PAYLOAD;
}
};
export * from "./credentialDerivation";
export { getCanonicalHeaders } from "./getCanonicalHeaders";
export { getCanonicalQuery } from "./getCanonicalQuery";
export { getPayloadHash } from "./getPayloadHash";
export { moveHeadersToQuery } from "./moveHeadersToQuery";
export { prepareRequest } from "./prepareRequest";
export { normalizeCredentialsProvider, normalizeRegionProvider } from "./normalizeProvider";
export * from "./SignatureV4";

@@ -6,8 +6,8 @@ import { HttpRequest, QueryParameterBag } from "@aws-sdk/types";

/**
* @internal
* @private
*/
export function moveHeadersToQuery(
export const moveHeadersToQuery = (
request: HttpRequest,
options: { unhoistableHeaders?: Set<string> } = {}
): HttpRequest & { query: QueryParameterBag } {
): HttpRequest & { query: QueryParameterBag } => {
const { headers, query = {} as QueryParameterBag } =

@@ -28,2 +28,2 @@ typeof (request as any).clone === "function" ? (request as any).clone() : cloneRequest(request);

};
}
};

@@ -7,5 +7,5 @@ import { HttpRequest } from "@aws-sdk/types";

/**
* @internal
* @private
*/
export function prepareRequest(request: HttpRequest): HttpRequest {
export const prepareRequest = (request: HttpRequest): HttpRequest => {
// Create a clone of the request object that does not clone the body

@@ -21,2 +21,2 @@ request = typeof (request as any).clone === "function" ? (request as any).clone() : cloneRequest(request);

return request;
}
};

@@ -40,4 +40,5 @@ import {

import { getPayloadHash } from "./getPayloadHash";
import { hasHeader } from "./hasHeader";
import { hasHeader } from "./headerUtil";
import { moveHeadersToQuery } from "./moveHeadersToQuery";
import { normalizeCredentialsProvider, normalizeRegionProvider } from "./normalizeProvider";
import { prepareRequest } from "./prepareRequest";

@@ -321,19 +322,1 @@ import { iso8601 } from "./utilDate";

const getCanonicalHeaderList = (headers: object): string => Object.keys(headers).sort().join(";");
const normalizeRegionProvider = (region: string | Provider<string>): Provider<string> => {
if (typeof region === "string") {
const promisified = Promise.resolve(region);
return () => promisified;
} else {
return region;
}
};
const normalizeCredentialsProvider = (credentials: Credentials | Provider<Credentials>): Provider<Credentials> => {
if (typeof credentials === "object") {
const promisified = Promise.resolve(credentials);
return () => promisified;
} else {
return credentials;
}
};

@@ -1,8 +0,7 @@

export function iso8601(time: number | string | Date): string {
return toDate(time)
export const iso8601 = (time: number | string | Date): string =>
toDate(time)
.toISOString()
.replace(/\.\d{3}Z$/, "Z");
}
export function toDate(time: number | string | Date): Date {
export const toDate = (time: number | string | Date): Date => {
if (typeof time === "number") {

@@ -20,2 +19,2 @@ return new Date(time * 1000);

return time;
}
};

@@ -7,3 +7,2 @@ {

"outDir": "./dist/cjs",
"noUnusedLocals": true,
"baseUrl": "."

@@ -10,0 +9,0 @@ },

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc