@bitgo/sdk-core 27.1.2 → 27.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts +11 -0
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +13 -1
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +2 -1
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
- package/dist/src/bitgo/pendingApproval/pendingApproval.js +8 -4
- package/dist/src/bitgo/staking/iStakingWallet.d.ts +1 -0
- package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
- package/dist/src/bitgo/staking/stakingWallet.d.ts +6 -1
- package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/stakingWallet.js +17 -1
- package/dist/src/bitgo/tss/common.d.ts +4 -2
- package/dist/src/bitgo/tss/common.d.ts.map +1 -1
- package/dist/src/bitgo/tss/common.js +9 -3
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +20 -3
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +2 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +14 -7
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +7 -7
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +14 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +44 -7
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +2 -2
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +2 -5
- package/dist/src/bitgo/wallet/wallets.js +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -161,6 +161,8 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
161
161
|
apiVersion: apiVersion,
|
|
162
162
|
preview,
|
|
163
163
|
};
|
|
164
|
+
const reqTracer = params.reqId || new util_1.RequestTracer();
|
|
165
|
+
this.bitgo.setRequestTracer(reqTracer);
|
|
164
166
|
const unsignedTx = (await this.bitgo
|
|
165
167
|
.post(this.bitgo.url('/wallet/' + this.wallet.id() + '/txrequests', 2))
|
|
166
168
|
.send(whitelistedParams)
|
|
@@ -186,7 +188,7 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
186
188
|
messageRaw: params.messageRaw,
|
|
187
189
|
messageEncoded: (_b = params.messageEncoded) !== null && _b !== void 0 ? _b : '',
|
|
188
190
|
};
|
|
189
|
-
return this.createTxRequestBase(intentOptions, apiVersion, preview);
|
|
191
|
+
return this.createTxRequestBase(intentOptions, apiVersion, preview, params.reqId);
|
|
190
192
|
}
|
|
191
193
|
/**
|
|
192
194
|
* Create a tx request from params for type data signing
|
|
@@ -207,14 +209,14 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
207
209
|
messageRaw: params.typedDataRaw,
|
|
208
210
|
messageEncoded: (_b = params.typedDataEncoded) !== null && _b !== void 0 ? _b : '',
|
|
209
211
|
};
|
|
210
|
-
return this.createTxRequestBase(intentOptions, apiVersion, preview);
|
|
212
|
+
return this.createTxRequestBase(intentOptions, apiVersion, preview, params.reqId);
|
|
211
213
|
}
|
|
212
214
|
/**
|
|
213
215
|
* Calls Bitgo API to create tx request.
|
|
214
216
|
*
|
|
215
217
|
* @private
|
|
216
218
|
*/
|
|
217
|
-
async createTxRequestBase(intentOptions, apiVersion, preview) {
|
|
219
|
+
async createTxRequestBase(intentOptions, apiVersion, preview, reqId) {
|
|
218
220
|
const whitelistedParams = {
|
|
219
221
|
intent: {
|
|
220
222
|
...intentOptions,
|
|
@@ -222,6 +224,8 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
222
224
|
apiVersion,
|
|
223
225
|
preview,
|
|
224
226
|
};
|
|
227
|
+
const reqTracer = reqId || new util_1.RequestTracer();
|
|
228
|
+
this.bitgo.setRequestTracer(reqTracer);
|
|
225
229
|
return this.bitgo
|
|
226
230
|
.post(this.bitgo.url(`/wallet/${this.wallet.id()}/txrequests`, 2))
|
|
227
231
|
.send(whitelistedParams)
|
|
@@ -269,9 +273,9 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
269
273
|
* @returns {Promise<any>}
|
|
270
274
|
*/
|
|
271
275
|
async recreateTxRequest(txRequestId, decryptedPrv, reqId) {
|
|
272
|
-
await this.deleteSignatureShares(txRequestId);
|
|
276
|
+
await this.deleteSignatureShares(txRequestId, reqId);
|
|
273
277
|
// after delete signatures shares get the tx without them
|
|
274
|
-
const txRequest = await (0, tss_1.getTxRequest)(this.bitgo, this.wallet.id(), txRequestId);
|
|
278
|
+
const txRequest = await (0, tss_1.getTxRequest)(this.bitgo, this.wallet.id(), txRequestId, reqId);
|
|
275
279
|
return await this.signTxRequest({ txRequest, prv: decryptedPrv, reqId });
|
|
276
280
|
}
|
|
277
281
|
/**
|
|
@@ -297,8 +301,11 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
297
301
|
* combination of coin and the feature flags on the user and their enterprise if set.
|
|
298
302
|
* @param enterpriseId - enterprise under which user wants to create the wallet
|
|
299
303
|
* @param isMPCv2 - true to get the MPCv2 GPG public key, defaults to false
|
|
304
|
+
* @param reqId - request tracer request id
|
|
300
305
|
*/
|
|
301
|
-
async getBitgoGpgPubkeyBasedOnFeatureFlags(enterpriseId, isMPCv2 = false) {
|
|
306
|
+
async getBitgoGpgPubkeyBasedOnFeatureFlags(enterpriseId, isMPCv2 = false, reqId) {
|
|
307
|
+
const reqTracer = reqId || new util_1.RequestTracer();
|
|
308
|
+
this.bitgo.setRequestTracer(reqTracer);
|
|
302
309
|
const response = await this.bitgo
|
|
303
310
|
.get(this.baseCoin.url('/tss/pubkey'))
|
|
304
311
|
.query({ enterpriseId })
|
|
@@ -339,4 +346,4 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
339
346
|
}
|
|
340
347
|
}
|
|
341
348
|
exports.default = BaseTssUtils;
|
|
342
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVRTU1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVFNTVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHFDQUEwRDtBQUkxRCxtQ0FBeUM7QUFFekMsMENBQXVDO0FBQ3ZDLDBDQUE0QjtBQTZCNUIsa0NBQXdDO0FBRXhDOztHQUVHO0FBQ0gsTUFBcUIsWUFBdUIsU0FBUSxtQkFBUTtJQUcxRCxZQUFZLEtBQWdCLEVBQUUsUUFBbUIsRUFBRSxNQUFnQjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLDZCQUE2QixDQUNqQyxVQUFxQyxFQUNyQyxVQUE4QjtRQUU5QixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLO2FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzFDLElBQUksQ0FBQztZQUNKLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsU0FBUztTQUN2QyxDQUFDO2FBQ0QsTUFBTSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUQ7UUFD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Q0FBQyxlQUFlLEVBQUUsTUFBSyxPQUFPLElBQUksVUFBVSxLQUFLLEtBQUssRUFBRTtZQUN2RixPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDhCQUE4QixDQUFDLFNBQW9CO1FBQ2pELE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLE9BQU8sVUFBVSxLQUFLLE1BQU0sSUFBSSxpQkFBaUIsS0FBSyxLQUFLLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBMVlELCtCQTBZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vLi4vYXBpJztcbmltcG9ydCB7IEtleSwgcmVhZEtleSwgU2VyaWFsaXplZEtleVBhaXIgfSBmcm9tICdvcGVucGdwJztcbmltcG9ydCB7IElCYXNlQ29pbiwgS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBLZXljaGFpbiB9IGZyb20gJy4uLy4uL2tleWNoYWluJztcbmltcG9ydCB7IGdldFR4UmVxdWVzdCB9IGZyb20gJy4uLy4uL3Rzcyc7XG5pbXBvcnQgeyBJV2FsbGV0LCBCYWNrdXBQcm92aWRlciB9IGZyb20gJy4uLy4uL3dhbGxldCc7XG5pbXBvcnQgeyBNcGNVdGlscyB9IGZyb20gJy4uL21wY1V0aWxzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIEJpdGdvR1BHUHVibGljS2V5LFxuICBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSxcbiAgQ3VzdG9tR1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIElUc3NVdGlscyxcbiAgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgVFNTUGFyYW1zLFxuICBUeFJlcXVlc3QsXG4gIFR4UmVxdWVzdFZlcnNpb24sXG4gIENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSxcbiAgSW50ZW50T3B0aW9uc0Zvck1lc3NhZ2UsXG4gIFBvcHVsYXRlZEludGVudEZvck1lc3NhZ2VTaWduaW5nLFxuICBJbnRlbnRPcHRpb25zRm9yVHlwZWREYXRhLFxuICBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nLFxuICBDcmVhdGVCaXRHb0tleWNoYWluUGFyYW1zQmFzZSxcbiAgQ29tbWl0bWVudFNoYXJlUmVjb3JkLFxuICBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCxcbiAgQ3VzdG9tQ29tbWl0bWVudEdlbmVyYXRpbmdGdW5jdGlvbixcbiAgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgUmVxdWVzdFR5cGUsXG4gIEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uLFxuICBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxufSBmcm9tICcuL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBHU2hhcmUsIFNpZ25TaGFyZSB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHsgUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uL3V0aWwnO1xuXG4vKipcbiAqIEJhc2VUc3NVdGlsIGNsYXNzIHdoaWNoIGRpZmZlcmVudCBzaWduYXR1cmUgc2NoZW1lcyBoYXZlIHRvIGV4dGVuZFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlVHNzVXRpbHM8S2V5U2hhcmU+IGV4dGVuZHMgTXBjVXRpbHMgaW1wbGVtZW50cyBJVHNzVXRpbHM8S2V5U2hhcmU+IHtcbiAgcHJpdmF0ZSBfd2FsbGV0PzogSVdhbGxldDtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luLCB3YWxsZXQ/OiBJV2FsbGV0KSB7XG4gICAgc3VwZXIoYml0Z28sIGJhc2VDb2luKTtcbiAgICB0aGlzLl93YWxsZXQgPSB3YWxsZXQ7XG4gIH1cblxuICBnZXQgd2FsbGV0KCk6IElXYWxsZXQge1xuICAgIGlmIChfLmlzTmlsKHRoaXMuX3dhbGxldCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignV2FsbGV0IG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl93YWxsZXQ7XG4gIH1cblxuICBhc3luYyBjcmVhdGVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGVudGVycHJpc2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPEJpdGdvSGVsZEJhY2t1cEtleVNoYXJlPiB7XG4gICAgY29uc3Qga2V5UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJhc2VDb2luLnVybCgnL2tycy9iYWNrdXBrZXlzJykpXG4gICAgICAuc2VuZCh7XG4gICAgICAgIGVudGVycHJpc2UsXG4gICAgICAgIHVzZXJHUEdQdWJsaWNLZXk6IHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgICBpZiAoIWtleVJlc3BvbnNlIHx8ICFrZXlSZXNwb25zZS5rZXlTaGFyZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdldCBiYWNrdXAgc2hhcmVzIGZyb20gQml0R28uJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDoga2V5UmVzcG9uc2UuaWQsXG4gICAgICBrZXlTaGFyZXM6IGtleVJlc3BvbnNlLmtleVNoYXJlcyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGZpbmFsaXplQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICBjb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBiYWNrdXBHcGdLZXk6IEtleVxuICApOiBQcm9taXNlPEJpdGdvSGVsZEJhY2t1cEtleVNoYXJlPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgY3JlYXRlVXNlcktleWNoYWluKHBhcmFtczogQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGNyZWF0ZUJhY2t1cEtleWNoYWluKHBhcmFtczogQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGNyZWF0ZUJpdGdvS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVCaXRHb0tleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBjcmVhdGVLZXljaGFpbnMocGFyYW1zOiB7XG4gICAgcGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGVudGVycHJpc2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlzVGhpcmRQYXJ0eUJhY2t1cD86IGJvb2xlYW47XG4gICAgYmFja3VwUHJvdmlkZXI/OiBCYWNrdXBQcm92aWRlcjtcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHNpZ25UeFJlcXVlc3QocGFyYW1zOiBUU1NQYXJhbXMpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHNpZ25UeFJlcXVlc3RGb3JNZXNzYWdlKHBhcmFtczogVFNTUGFyYW1zKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgYSB0cmFuc2FjdGlvbiB1c2luZyBUU1MgZm9yIEVkRFNBIGFuZCB0aHJvdWdoIHV0aWxpemF0aW9uIG9mIGN1c3RvbSBzaGFyZSBnZW5lcmF0b3JzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgVHhSZXF1ZXN0fSB0eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IHdpdGggdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyUlNoYXJlR2VuZXJhdG9yIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIFIgc2hhcmVzIGluIHRoZSBFZERTQSBUU1MgZmxvd1xuICAgKiBAcGFyYW0ge0N1c3RvbUdTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJHU2hhcmVHZW5lcmF0b3IgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgRyBzaGFyZXMgaW4gdGhlIEVkRFNBIFRTUyBmbG93XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IC0gYSBzaWduZWQgdHggcmVxdWVzdFxuICAgKi9cbiAgc2lnbkVkZHNhVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdCxcbiAgICBleHRlcm5hbFNpZ25lckNvbW1pdG1lbnRHZW5lcmF0b3I6IEN1c3RvbUNvbW1pdG1lbnRHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJSU2hhcmVHZW5lcmF0b3I6IEN1c3RvbVJTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lckdTaGFyZUdlbmVyYXRvcjogQ3VzdG9tR1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGEgdHJhbnNhY3Rpb24gdXNpbmcgVFNTIGZvciBFQ0RTQSBhbmQgdGhyb3VnaCB1dGlsaXphdGlvbiBvZiBjdXN0b20gc2hhcmUgZ2VuZXJhdG9yc1xuICAgKlxuICAgKiBAcGFyYW0ge3BhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZX0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgcGFyYW1ldGVycyB0byBzaWduIGEgdHJhbnNhY3Rpb24gb3IgYSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge1JlcXVlc3RUeXBlfSByZXF1ZXN0VHlwZSAtIHRoZSB0eXBlIG9mIHRoZSByZXF1ZXN0IHRvIHNpZ24gKHRyYW5zYWN0aW9uIG9yIG1lc3NhZ2UpLlxuICAgKiBAcGFyYW0ge0N1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9ufSBleHRlcm5hbFNpZ25lclBhaWxsaWVyTW9kdWx1c0dldHRlciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBQYWlsbGllciBNb2R1bHVzIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tS1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lcktTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBLIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lck11RGVsdGFTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBNdSBhbmQgRGVsdGEgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgZmxvdy5cbiAgICogQHBhcmFtIHtDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyU1NoYXJlR2VuZXJhdG9yIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIFMgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgZmxvdy5cbiAgICovXG4gIHNpZ25FY2RzYVRzc1VzaW5nRXh0ZXJuYWxTaWduZXIoXG4gICAgcGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlLFxuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgICBleHRlcm5hbFNpZ25lclBhaWxsaWVyTW9kdWx1c0dldHRlcjogQ3VzdG9tUGFpbGxpZXJNb2R1bHVzR2V0dGVyRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJLU2hhcmVHZW5lcmF0b3I6IEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lck11RGVsdGFTaGFyZUdlbmVyYXRvcjogQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyU1NoYXJlR2VuZXJhdG9yOiBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb25cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIENvbW1pdG1lbnQgKFVzZXIgdG8gQml0R28pIHNoYXJlIGZyb20gYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gYW5kIHByaXZhdGUgdXNlciBzaWduaW5nIG1hdGVyaWFsXG4gICAqIEVERFNBIG9ubHlcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIHBhcmFtcyBvYmplY3RcbiAgICogQHBhcmFtIHtUeFJlcXVlc3R9IHBhcmFtcy50eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IHdpdGggdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5wcnYgLSB1c2VyIHNpZ25pbmcgbWF0ZXJpYWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gd2FsbGV0IHBhc3NwaHJhc2VcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8eyB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yLCBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgfT59IC0gQ29tbWl0bWVudCBTaGFyZSBhbmQgdGhlIEVuY3J5cHRlZCBTaWduZXIgU2hhcmUgdG8gQml0R29cbiAgICovXG4gIGNyZWF0ZUNvbW1pdG1lbnRTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0OyBwcnY6IHN0cmluZzsgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nIH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBSIChVc2VyIHRvIEJpdEdvKSBzaGFyZSBmcm9tIGFuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCBwcml2YXRlIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdFxuICAgKiBAcGFyYW0ge1R4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgd2l0aCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy53YWxsZXRQYXNzcGhyYXNlXSAtIHdhbGxldCBwYXNzcGhyYXNlXG4gICAqIEBwYXJhbSB7RW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmR9IFtwYXJhbXMuZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmVdIC0gZW5jcnlwdGVkIHVzZXIgdG8gYml0Z28gUiBzaGFyZSBnZW5lcmF0ZWQgaW4gdGhlIGNvbW1pdG1lbnQgcGhhc2VcbiAgICogQHJldHVybnMge1Byb21pc2U8eyByU2hhcmU6IFNpZ25TaGFyZSB9Pn0gLSBSIFNoYXJlIHRvIEJpdEdvXG4gICAqL1xuICBjcmVhdGVSU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPHsgclNoYXJlOiBTaWduU2hhcmUgfT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBHIChVc2VyIHRvIEJpdEdvKSBzaGFyZSBmcm9tIGFuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCBwcml2YXRlIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdFxuICAgKiBAcGFyYW0ge1R4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgd2l0aCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBwYXJhbXMuYml0Z29Ub1VzZXJSU2hhcmUgLSBCaXRHbyB0byBVc2VyIFIgU2hhcmVcbiAgICogQHBhcmFtIHtTaWduU2hhcmV9IHBhcmFtcy51c2VyVG9CaXRnb1JTaGFyZSAtIFVzZXIgdG8gQml0R28gUiBTaGFyZVxuICAgKiBAcGFyYW0ge0NvbW1pdG1lbnRTaGFyZVJlY29yZH0gcGFyYW1zLmJpdGdvVG9Vc2VyQ29tbWl0bWVudCAtIEJpdEdvIHRvIFVzZXIgQ29tbWl0bWVudFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHU2hhcmU+fSAtIEdTaGFyZSBmcm9tIFVzZXIgdG8gQml0R29cbiAgICovXG4gIGNyZWF0ZUdTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgYml0Z29Ub1VzZXJSU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIHVzZXJUb0JpdGdvUlNoYXJlOiBTaWduU2hhcmU7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGFuZCB2ZXJpZnkgaXRcbiAgICpcbiAgICogQHBhcmFtIHtQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnN9IHBhcmFtcyAtIHBhcmFtZXRlcnMgdG8gYnVpbGQgdGhlIHR4XG4gICAqIEBwYXJhbSB7VHhSZXF1ZXN0VmVyc2lvbn0gYXBpVmVyc2lvbiBsaXRlIG9yIGZ1bGxcbiAgICogQHBhcmFtIHtib29sZWFufSBwcmV2aWV3IGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGlzIGlzIHRvIHByZXZpZXcgYSB0eCByZXF1ZXN0LCB3aGljaCB3aWxsIG5vdCBpbml0aWF0ZSBwb2xpY3kgY2hlY2tzIG9yIHBlbmRpbmcgYXBwcm92YWxzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IC0gYSBidWlsdCB0eCByZXF1ZXN0XG4gICAqL1xuICBhc3luYyBwcmVidWlsZFR4V2l0aEludGVudChcbiAgICBwYXJhbXM6IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgICBhcGlWZXJzaW9uOiBUeFJlcXVlc3RWZXJzaW9uID0gJ2xpdGUnLFxuICAgIHByZXZpZXc/OiBib29sZWFuXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgY29uc3QgaW50ZW50T3B0aW9ucyA9IHRoaXMucG9wdWxhdGVJbnRlbnQodGhpcy5iYXNlQ29pbiwgcGFyYW1zKTtcblxuICAgIGNvbnN0IHdoaXRlbGlzdGVkUGFyYW1zID0ge1xuICAgICAgaW50ZW50OiB7XG4gICAgICAgIC4uLmludGVudE9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbjogYXBpVmVyc2lvbixcbiAgICAgIHByZXZpZXcsXG4gICAgfTtcblxuICAgIGNvbnN0IHVuc2lnbmVkVHggPSAoYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iaXRnby51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4cmVxdWVzdHMnLCAyKSlcbiAgICAgIC5zZW5kKHdoaXRlbGlzdGVkUGFyYW1zKVxuICAgICAgLnJlc3VsdCgpKSBhcyBUeFJlcXVlc3Q7XG5cbiAgICByZXR1cm4gdW5zaWduZWRUeDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGZvciBtZXNzYWdlIHNpZ25pbmdcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0gYXBpVmVyc2lvblxuICAgKiBAcGFyYW0gcHJldmlld1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlVHhSZXF1ZXN0V2l0aEludGVudEZvck1lc3NhZ2VTaWduaW5nKFxuICAgIHBhcmFtczogSW50ZW50T3B0aW9uc0Zvck1lc3NhZ2UsXG4gICAgYXBpVmVyc2lvbjogVHhSZXF1ZXN0VmVyc2lvbiA9ICdmdWxsJyxcbiAgICBwcmV2aWV3PzogYm9vbGVhblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGNvbnN0IGludGVudE9wdGlvbnM6IFBvcHVsYXRlZEludGVudEZvck1lc3NhZ2VTaWduaW5nID0ge1xuICAgICAgY3VzdG9kaWFuTWVzc2FnZUlkOiBwYXJhbXMuY3VzdG9kaWFuTWVzc2FnZUlkLFxuICAgICAgaW50ZW50VHlwZTogcGFyYW1zLmludGVudFR5cGUsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgIGNvbW1lbnQ6IHBhcmFtcy5jb21tZW50LFxuICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgIG1lc3NhZ2VSYXc6IHBhcmFtcy5tZXNzYWdlUmF3LFxuICAgICAgbWVzc2FnZUVuY29kZWQ6IHBhcmFtcy5tZXNzYWdlRW5jb2RlZCA/PyAnJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVHhSZXF1ZXN0QmFzZShpbnRlbnRPcHRpb25zLCBhcGlWZXJzaW9uLCBwcmV2aWV3KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGZvciB0eXBlIGRhdGEgc2lnbmluZ1xuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEBwYXJhbSBhcGlWZXJzaW9uXG4gICAqIEBwYXJhbSBwcmV2aWV3XG4gICAqL1xuICBhc3luYyBjcmVhdGVUeFJlcXVlc3RXaXRoSW50ZW50Rm9yVHlwZWREYXRhU2lnbmluZyhcbiAgICBwYXJhbXM6IEludGVudE9wdGlvbnNGb3JUeXBlZERhdGEsXG4gICAgYXBpVmVyc2lvbjogVHhSZXF1ZXN0VmVyc2lvbiA9ICdmdWxsJyxcbiAgICBwcmV2aWV3PzogYm9vbGVhblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGNvbnN0IGludGVudE9wdGlvbnM6IFBvcHVsYXRlZEludGVudEZvclR5cGVkRGF0YVNpZ25pbmcgPSB7XG4gICAgICBjdXN0b2RpYW5NZXNzYWdlSWQ6IHBhcmFtcy5jdXN0b2RpYW5NZXNzYWdlSWQsXG4gICAgICBpbnRlbnRUeXBlOiBwYXJhbXMuaW50ZW50VHlwZSxcbiAgICAgIHNlcXVlbmNlSWQ6IHBhcmFtcy5zZXF1ZW5jZUlkLFxuICAgICAgY29tbWVudDogcGFyYW1zLmNvbW1lbnQsXG4gICAgICBtZW1vOiBwYXJhbXMubWVtbz8udmFsdWUsXG4gICAgICBpc1RzczogcGFyYW1zLmlzVHNzLFxuICAgICAgbWVzc2FnZVJhdzogcGFyYW1zLnR5cGVkRGF0YVJhdyxcbiAgICAgIG1lc3NhZ2VFbmNvZGVkOiBwYXJhbXMudHlwZWREYXRhRW5jb2RlZCA/PyAnJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVHhSZXF1ZXN0QmFzZShpbnRlbnRPcHRpb25zLCBhcGlWZXJzaW9uLCBwcmV2aWV3KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxscyBCaXRnbyBBUEkgdG8gY3JlYXRlIHR4IHJlcXVlc3QuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVR4UmVxdWVzdEJhc2UoXG4gICAgaW50ZW50T3B0aW9uczogUG9wdWxhdGVkSW50ZW50Rm9yVHlwZWREYXRhU2lnbmluZyB8IFBvcHVsYXRlZEludGVudEZvck1lc3NhZ2VTaWduaW5nLFxuICAgIGFwaVZlcnNpb246IFR4UmVxdWVzdFZlcnNpb24sXG4gICAgcHJldmlldz86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCB3aGl0ZWxpc3RlZFBhcmFtcyA9IHtcbiAgICAgIGludGVudDoge1xuICAgICAgICAuLi5pbnRlbnRPcHRpb25zLFxuICAgICAgfSxcbiAgICAgIGFwaVZlcnNpb24sXG4gICAgICBwcmV2aWV3LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS90eHJlcXVlc3RzYCwgMikpXG4gICAgICAuc2VuZCh3aGl0ZWxpc3RlZFBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsIGRlbGV0ZSBzaWduYXR1cmUgc2hhcmVzIGZvciBhIHR4UmVxdWVzdCwgdGhlIGVuZHBvaW50IGRlbGV0ZSB0aGUgc2lnbmF0dXJlcyBhbmQgcmV0dXJuIHRoZW1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHR4UmVxdWVzdElkIHR4IGlkIHJlZmVyZW5jZSB0byBkZWxldGUgc2lnbmF0dXJlIHNoYXJlc1xuICAgKiBAcGFyYW0ge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIHRoZSByZXF1ZXN0IHRyYWNlciByZXF1ZXN0IGlkXG4gICAqIEByZXR1cm5zIHtTaWduYXR1cmVTaGFyZVJlY29yZFtdfVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHR4UmVxdWVzdElkOiBzdHJpbmcsIHJlcUlkPzogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkW10+IHtcbiAgICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMuYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvXG4gICAgICAuZGVsKHRoaXMuYml0Z28udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vdHhyZXF1ZXN0cy8ke3R4UmVxdWVzdElkfS9zaWduYXR1cmVzaGFyZXNgLCAyKSlcbiAgICAgIC5zZW5kKClcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBzZW5kIHByb2NlZHVyZSBvbmNlIEJpdGdvIGhhcyB0aGUgVXNlciBUbyBCaXRnbyBHU2hhcmVcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICAgKiBAcGFyYW0ge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIHRoZSByZXF1ZXN0IHRyYWNlciByZXF1ZXN0IGlkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBhc3luYyBzZW5kVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcsIHJlcUlkPzogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gICAgcmV0dXJuIHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMuYmFzZUNvaW4udXJsKCcvd2FsbGV0LycgKyB0aGlzLndhbGxldC5pZCgpICsgJy90eC9zZW5kJykpXG4gICAgICAuc2VuZCh7IHR4UmVxdWVzdElkIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMsIGdldCB0aGUgdHggcmVxdWVzdCB3aXRob3V0IHRoZW0gZnJvbSB0aGUgZGIgYW5kIHNpZ24gaXQgdG8gZmluYWxseSBzZW5kIGl0LlxuICAgKlxuICAgKiBOb3RlIDogVGhpcyBjYW4gYmUgcGVyZm9ybWVkIGluIG9yZGVyIHRvIHJlYWNoIGxhdGVzdCBuZXR3b3JrIGNvbmRpdGlvbnMgcmVxdWlyZWQgb24gcGVuZGluZyBhcHByb3ZhbCBmbG93LlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkIHRvIG1ha2UgdGhlIHJlcXVlc3RzLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gZGVjcnlwdGVkUHJ2IC0gZGVjcnlwdGVkIHBydiB0byBzaWduIHRoZSB0eCByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge1JlcXVlc3RUcmFjZXJ9IHJlcUlkIGlkIHRyYWNlci5cbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIGFzeW5jIHJlY3JlYXRlVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcsIGRlY3J5cHRlZFBydjogc3RyaW5nLCByZXFJZDogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHR4UmVxdWVzdElkKTtcbiAgICAvLyBhZnRlciBkZWxldGUgc2lnbmF0dXJlcyBzaGFyZXMgZ2V0IHRoZSB0eCB3aXRob3V0IHRoZW1cbiAgICBjb25zdCB0eFJlcXVlc3QgPSBhd2FpdCBnZXRUeFJlcXVlc3QodGhpcy5iaXRnbywgdGhpcy53YWxsZXQuaWQoKSwgdHhSZXF1ZXN0SWQpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnNpZ25UeFJlcXVlc3QoeyB0eFJlcXVlc3QsIHBydjogZGVjcnlwdGVkUHJ2LCByZXFJZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYXRlc3QgVHggUmVxdWVzdCBieSBpZFxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gcmVxdWVzdCB0cmFjZXIgcmVxdWVzdCBpZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUeFJlcXVlc3Q+fVxuICAgKi9cbiAgYXN5bmMgZ2V0VHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcsIHJlcUlkPzogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHJldHVybiBnZXRUeFJlcXVlc3QodGhpcy5iaXRnbywgdGhpcy53YWxsZXQuaWQoKSwgdHhSZXF1ZXN0SWQsIHJlcUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgdGhpcmQgcGFydHkgYmFja3VwIHByb3ZpZGVyIGlzIHZhbGlkL3N1cHBvcnRlZFxuICAgKiBAcGFyYW0gYmFja3VwUHJvdmlkZXIgLSB0aGUgYmFja3VwIHByb3ZpZGVyIGNsaWVudCBzZWxlY3RlZFxuICAgKi9cbiAgaXNWYWxpZFRoaXJkUGFydHlCYWNrdXBQcm92aWRlcihcbiAgICBiYWNrdXBQcm92aWRlcjogQmFja3VwUHJvdmlkZXIgfCBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogYmFja3VwUHJvdmlkZXIgaXMgQmFja3VwUHJvdmlkZXIge1xuICAgIC8vIEFzIG9mIG5vdywgQml0R28gaXMgdGhlIG9ubHkgc3VwcG9ydGVkIEtSUyBwcm92aWRlciBmb3IgVFNTXG4gICAgcmV0dXJuICEhKGJhY2t1cFByb3ZpZGVyICYmIGJhY2t1cFByb3ZpZGVyID09PSAnQml0R29UcnVzdEFzS3JzJyk7XG4gIH1cblxuICAvKipcbiAgICogSXQgZ2V0cyB0aGUgYXBwcm9wcmlhdGUgQml0R28gR1BHIHB1YmxpYyBrZXkgZm9yIGtleSBjcmVhdGlvbiBiYXNlZCBvbiBhXG4gICAqIGNvbWJpbmF0aW9uIG9mIGNvaW4gYW5kIHRoZSBmZWF0dXJlIGZsYWdzIG9uIHRoZSB1c2VyIGFuZCB0aGVpciBlbnRlcnByaXNlIGlmIHNldC5cbiAgICogQHBhcmFtIGVudGVycHJpc2VJZCAtIGVudGVycHJpc2UgdW5kZXIgd2hpY2ggdXNlciB3YW50cyB0byBjcmVhdGUgdGhlIHdhbGxldFxuICAgKiBAcGFyYW0gaXNNUEN2MiAtIHRydWUgdG8gZ2V0IHRoZSBNUEN2MiBHUEcgcHVibGljIGtleSwgZGVmYXVsdHMgdG8gZmFsc2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRCaXRnb0dwZ1B1YmtleUJhc2VkT25GZWF0dXJlRmxhZ3MoZW50ZXJwcmlzZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsIGlzTVBDdjIgPSBmYWxzZSk6IFByb21pc2U8S2V5PiB7XG4gICAgY29uc3QgcmVzcG9uc2U6IEJpdGdvR1BHUHVibGljS2V5ID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJhc2VDb2luLnVybCgnL3Rzcy9wdWJrZXknKSlcbiAgICAgIC5xdWVyeSh7IGVudGVycHJpc2VJZCB9KVxuICAgICAgLnJldHJ5KDMpXG4gICAgICAucmVzdWx0KCk7XG4gICAgY29uc3QgYml0Z29QdWJsaWNLZXlTdHIgPSBpc01QQ3YyID8gcmVzcG9uc2UubXBjdjJQdWJsaWNLZXkgOiByZXNwb25zZS5wdWJsaWNLZXk7XG4gICAgcmV0dXJuIHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBiaXRnb1B1YmxpY0tleVN0ciBhcyBzdHJpbmcgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBzdXBwb3J0ZWQgVHhSZXF1ZXN0IHZlcnNpb25zIGZvciB0aGlzIHdhbGxldFxuICAgKi9cbiAgcHVibGljIHN1cHBvcnRlZFR4UmVxdWVzdFZlcnNpb25zKCk6IFR4UmVxdWVzdFZlcnNpb25bXSB7XG4gICAgY29uc3Qgd2FsbGV0VHlwZSA9IHRoaXMuX3dhbGxldD8udHlwZSgpO1xuICAgIGNvbnN0IHN1cHBvcnRlZFdhbGxldFR5cGVzID0gWydjdXN0b2RpYWwnLCAnY29sZCcsICdob3QnXTtcbiAgICBpZiAoIXdhbGxldFR5cGUgfHwgdGhpcy5fd2FsbGV0Py5tdWx0aXNpZ1R5cGUoKSAhPT0gJ3RzcycgfHwgIXN1cHBvcnRlZFdhbGxldFR5cGVzLmluY2x1ZGVzKHdhbGxldFR5cGUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfSBlbHNlIGlmICh0aGlzLl93YWxsZXQ/LmJhc2VDb2luLmdldE1QQ0FsZ29yaXRobSgpID09PSAnZWNkc2EnKSB7XG4gICAgICByZXR1cm4gWydmdWxsJ107XG4gICAgfSBlbHNlIGlmICh3YWxsZXRUeXBlID09PSAnY3VzdG9kaWFsJyB8fCB3YWxsZXRUeXBlID09PSAnY29sZCcpIHtcbiAgICAgIHJldHVybiBbJ2Z1bGwnXTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3dhbGxldD8uYmFzZUNvaW4uZ2V0TVBDQWxnb3JpdGhtKCkgPT09ICdlZGRzYScgJiYgd2FsbGV0VHlwZSA9PT0gJ2hvdCcpIHtcbiAgICAgIHJldHVybiBbJ2xpdGUnLCAnZnVsbCddO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB0eFJlcXVlc3QgaXMgdXNpbmcgYXBpVmVyc2lvbiA9PSBmdWxsIGFuZCBpcyBwZW5kaW5nIGFwcHJvdmFsXG4gICAqIEBwYXJhbSB0eFJlcXVlc3RcbiAgICogQHJldHVybnMgYm9vbGVhblxuICAgKi9cbiAgaXNQZW5kaW5nQXBwcm92YWxUeFJlcXVlc3RGdWxsKHR4UmVxdWVzdDogVHhSZXF1ZXN0KTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBhcGlWZXJzaW9uLCBzdGF0ZSB9ID0gdHhSZXF1ZXN0O1xuICAgIHJldHVybiBhcGlWZXJzaW9uID09PSAnZnVsbCcgJiYgJ3BlbmRpbmdBcHByb3ZhbCcgPT09IHN0YXRlO1xuICB9XG59XG4iXX0=
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVRTU1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVFNTVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHFDQUEwRDtBQUkxRCxtQ0FBeUM7QUFFekMsMENBQXVDO0FBQ3ZDLDBDQUE0QjtBQTZCNUIsa0NBQXdDO0FBRXhDOztHQUVHO0FBQ0gsTUFBcUIsWUFBdUIsU0FBUSxtQkFBUTtJQUcxRCxZQUFZLEtBQWdCLEVBQUUsUUFBbUIsRUFBRSxNQUFnQjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLDZCQUE2QixDQUNqQyxVQUFxQyxFQUNyQyxVQUE4QjtRQUU5QixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLO2FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzFDLElBQUksQ0FBQztZQUNKLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsU0FBUztTQUN2QyxDQUFDO2FBQ0QsTUFBTSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUQ7UUFD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S0FBSyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsWUFBWSxFQUFFLE1BQUssS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZHLE9BQU8sRUFBRSxDQUFDO1NBQ1g7YUFBTSxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxRQUFRLENBQUMsZUFBZSxFQUFFLE1BQUssT0FBTyxFQUFFO1lBQy9ELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQjthQUFNLElBQUksVUFBVSxLQUFLLFdBQVcsSUFBSSxVQUFVLEtBQUssTUFBTSxFQUFFO1lBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQjthQUFNLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBSyxPQUFPLElBQUksVUFBVSxLQUFLLEtBQUssRUFBRTtZQUN2RixPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDhCQUE4QixDQUFDLFNBQW9CO1FBQ2pELE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLE9BQU8sVUFBVSxLQUFLLE1BQU0sSUFBSSxpQkFBaUIsS0FBSyxLQUFLLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBdFpELCtCQXNaQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vLi4vYXBpJztcbmltcG9ydCB7IEtleSwgcmVhZEtleSwgU2VyaWFsaXplZEtleVBhaXIgfSBmcm9tICdvcGVucGdwJztcbmltcG9ydCB7IElCYXNlQ29pbiwgS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBLZXljaGFpbiB9IGZyb20gJy4uLy4uL2tleWNoYWluJztcbmltcG9ydCB7IGdldFR4UmVxdWVzdCB9IGZyb20gJy4uLy4uL3Rzcyc7XG5pbXBvcnQgeyBJV2FsbGV0LCBCYWNrdXBQcm92aWRlciB9IGZyb20gJy4uLy4uL3dhbGxldCc7XG5pbXBvcnQgeyBNcGNVdGlscyB9IGZyb20gJy4uL21wY1V0aWxzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIEJpdGdvR1BHUHVibGljS2V5LFxuICBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSxcbiAgQ3VzdG9tR1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIElUc3NVdGlscyxcbiAgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgVFNTUGFyYW1zLFxuICBUeFJlcXVlc3QsXG4gIFR4UmVxdWVzdFZlcnNpb24sXG4gIENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSxcbiAgSW50ZW50T3B0aW9uc0Zvck1lc3NhZ2UsXG4gIFBvcHVsYXRlZEludGVudEZvck1lc3NhZ2VTaWduaW5nLFxuICBJbnRlbnRPcHRpb25zRm9yVHlwZWREYXRhLFxuICBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nLFxuICBDcmVhdGVCaXRHb0tleWNoYWluUGFyYW1zQmFzZSxcbiAgQ29tbWl0bWVudFNoYXJlUmVjb3JkLFxuICBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCxcbiAgQ3VzdG9tQ29tbWl0bWVudEdlbmVyYXRpbmdGdW5jdGlvbixcbiAgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgUmVxdWVzdFR5cGUsXG4gIEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uLFxuICBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxufSBmcm9tICcuL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBHU2hhcmUsIFNpZ25TaGFyZSB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHsgUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uL3V0aWwnO1xuXG4vKipcbiAqIEJhc2VUc3NVdGlsIGNsYXNzIHdoaWNoIGRpZmZlcmVudCBzaWduYXR1cmUgc2NoZW1lcyBoYXZlIHRvIGV4dGVuZFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlVHNzVXRpbHM8S2V5U2hhcmU+IGV4dGVuZHMgTXBjVXRpbHMgaW1wbGVtZW50cyBJVHNzVXRpbHM8S2V5U2hhcmU+IHtcbiAgcHJpdmF0ZSBfd2FsbGV0PzogSVdhbGxldDtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luLCB3YWxsZXQ/OiBJV2FsbGV0KSB7XG4gICAgc3VwZXIoYml0Z28sIGJhc2VDb2luKTtcbiAgICB0aGlzLl93YWxsZXQgPSB3YWxsZXQ7XG4gIH1cblxuICBnZXQgd2FsbGV0KCk6IElXYWxsZXQge1xuICAgIGlmIChfLmlzTmlsKHRoaXMuX3dhbGxldCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignV2FsbGV0IG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl93YWxsZXQ7XG4gIH1cblxuICBhc3luYyBjcmVhdGVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGVudGVycHJpc2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPEJpdGdvSGVsZEJhY2t1cEtleVNoYXJlPiB7XG4gICAgY29uc3Qga2V5UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJhc2VDb2luLnVybCgnL2tycy9iYWNrdXBrZXlzJykpXG4gICAgICAuc2VuZCh7XG4gICAgICAgIGVudGVycHJpc2UsXG4gICAgICAgIHVzZXJHUEdQdWJsaWNLZXk6IHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgICBpZiAoIWtleVJlc3BvbnNlIHx8ICFrZXlSZXNwb25zZS5rZXlTaGFyZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdldCBiYWNrdXAgc2hhcmVzIGZyb20gQml0R28uJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDoga2V5UmVzcG9uc2UuaWQsXG4gICAgICBrZXlTaGFyZXM6IGtleVJlc3BvbnNlLmtleVNoYXJlcyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGZpbmFsaXplQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICBjb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBiYWNrdXBHcGdLZXk6IEtleVxuICApOiBQcm9taXNlPEJpdGdvSGVsZEJhY2t1cEtleVNoYXJlPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgY3JlYXRlVXNlcktleWNoYWluKHBhcmFtczogQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGNyZWF0ZUJhY2t1cEtleWNoYWluKHBhcmFtczogQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGNyZWF0ZUJpdGdvS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVCaXRHb0tleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBjcmVhdGVLZXljaGFpbnMocGFyYW1zOiB7XG4gICAgcGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGVudGVycHJpc2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlzVGhpcmRQYXJ0eUJhY2t1cD86IGJvb2xlYW47XG4gICAgYmFja3VwUHJvdmlkZXI/OiBCYWNrdXBQcm92aWRlcjtcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHNpZ25UeFJlcXVlc3QocGFyYW1zOiBUU1NQYXJhbXMpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHNpZ25UeFJlcXVlc3RGb3JNZXNzYWdlKHBhcmFtczogVFNTUGFyYW1zKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgYSB0cmFuc2FjdGlvbiB1c2luZyBUU1MgZm9yIEVkRFNBIGFuZCB0aHJvdWdoIHV0aWxpemF0aW9uIG9mIGN1c3RvbSBzaGFyZSBnZW5lcmF0b3JzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgVHhSZXF1ZXN0fSB0eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IHdpdGggdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyUlNoYXJlR2VuZXJhdG9yIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIFIgc2hhcmVzIGluIHRoZSBFZERTQSBUU1MgZmxvd1xuICAgKiBAcGFyYW0ge0N1c3RvbUdTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJHU2hhcmVHZW5lcmF0b3IgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgRyBzaGFyZXMgaW4gdGhlIEVkRFNBIFRTUyBmbG93XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IC0gYSBzaWduZWQgdHggcmVxdWVzdFxuICAgKi9cbiAgc2lnbkVkZHNhVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdCxcbiAgICBleHRlcm5hbFNpZ25lckNvbW1pdG1lbnRHZW5lcmF0b3I6IEN1c3RvbUNvbW1pdG1lbnRHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJSU2hhcmVHZW5lcmF0b3I6IEN1c3RvbVJTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lckdTaGFyZUdlbmVyYXRvcjogQ3VzdG9tR1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGEgdHJhbnNhY3Rpb24gdXNpbmcgVFNTIGZvciBFQ0RTQSBhbmQgdGhyb3VnaCB1dGlsaXphdGlvbiBvZiBjdXN0b20gc2hhcmUgZ2VuZXJhdG9yc1xuICAgKlxuICAgKiBAcGFyYW0ge3BhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZX0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgcGFyYW1ldGVycyB0byBzaWduIGEgdHJhbnNhY3Rpb24gb3IgYSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge1JlcXVlc3RUeXBlfSByZXF1ZXN0VHlwZSAtIHRoZSB0eXBlIG9mIHRoZSByZXF1ZXN0IHRvIHNpZ24gKHRyYW5zYWN0aW9uIG9yIG1lc3NhZ2UpLlxuICAgKiBAcGFyYW0ge0N1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9ufSBleHRlcm5hbFNpZ25lclBhaWxsaWVyTW9kdWx1c0dldHRlciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBQYWlsbGllciBNb2R1bHVzIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tS1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lcktTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBLIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lck11RGVsdGFTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBNdSBhbmQgRGVsdGEgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgZmxvdy5cbiAgICogQHBhcmFtIHtDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyU1NoYXJlR2VuZXJhdG9yIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIFMgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgZmxvdy5cbiAgICovXG4gIHNpZ25FY2RzYVRzc1VzaW5nRXh0ZXJuYWxTaWduZXIoXG4gICAgcGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlLFxuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgICBleHRlcm5hbFNpZ25lclBhaWxsaWVyTW9kdWx1c0dldHRlcjogQ3VzdG9tUGFpbGxpZXJNb2R1bHVzR2V0dGVyRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJLU2hhcmVHZW5lcmF0b3I6IEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lck11RGVsdGFTaGFyZUdlbmVyYXRvcjogQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyU1NoYXJlR2VuZXJhdG9yOiBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb25cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIENvbW1pdG1lbnQgKFVzZXIgdG8gQml0R28pIHNoYXJlIGZyb20gYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gYW5kIHByaXZhdGUgdXNlciBzaWduaW5nIG1hdGVyaWFsXG4gICAqIEVERFNBIG9ubHlcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIHBhcmFtcyBvYmplY3RcbiAgICogQHBhcmFtIHtUeFJlcXVlc3R9IHBhcmFtcy50eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IHdpdGggdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5wcnYgLSB1c2VyIHNpZ25pbmcgbWF0ZXJpYWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gd2FsbGV0IHBhc3NwaHJhc2VcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8eyB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yLCBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgfT59IC0gQ29tbWl0bWVudCBTaGFyZSBhbmQgdGhlIEVuY3J5cHRlZCBTaWduZXIgU2hhcmUgdG8gQml0R29cbiAgICovXG4gIGNyZWF0ZUNvbW1pdG1lbnRTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0OyBwcnY6IHN0cmluZzsgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nIH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBSIChVc2VyIHRvIEJpdEdvKSBzaGFyZSBmcm9tIGFuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCBwcml2YXRlIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdFxuICAgKiBAcGFyYW0ge1R4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgd2l0aCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy53YWxsZXRQYXNzcGhyYXNlXSAtIHdhbGxldCBwYXNzcGhyYXNlXG4gICAqIEBwYXJhbSB7RW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmR9IFtwYXJhbXMuZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmVdIC0gZW5jcnlwdGVkIHVzZXIgdG8gYml0Z28gUiBzaGFyZSBnZW5lcmF0ZWQgaW4gdGhlIGNvbW1pdG1lbnQgcGhhc2VcbiAgICogQHJldHVybnMge1Byb21pc2U8eyByU2hhcmU6IFNpZ25TaGFyZSB9Pn0gLSBSIFNoYXJlIHRvIEJpdEdvXG4gICAqL1xuICBjcmVhdGVSU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPHsgclNoYXJlOiBTaWduU2hhcmUgfT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBHIChVc2VyIHRvIEJpdEdvKSBzaGFyZSBmcm9tIGFuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCBwcml2YXRlIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdFxuICAgKiBAcGFyYW0ge1R4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgd2l0aCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBwYXJhbXMuYml0Z29Ub1VzZXJSU2hhcmUgLSBCaXRHbyB0byBVc2VyIFIgU2hhcmVcbiAgICogQHBhcmFtIHtTaWduU2hhcmV9IHBhcmFtcy51c2VyVG9CaXRnb1JTaGFyZSAtIFVzZXIgdG8gQml0R28gUiBTaGFyZVxuICAgKiBAcGFyYW0ge0NvbW1pdG1lbnRTaGFyZVJlY29yZH0gcGFyYW1zLmJpdGdvVG9Vc2VyQ29tbWl0bWVudCAtIEJpdEdvIHRvIFVzZXIgQ29tbWl0bWVudFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHU2hhcmU+fSAtIEdTaGFyZSBmcm9tIFVzZXIgdG8gQml0R29cbiAgICovXG4gIGNyZWF0ZUdTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgYml0Z29Ub1VzZXJSU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIHVzZXJUb0JpdGdvUlNoYXJlOiBTaWduU2hhcmU7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGFuZCB2ZXJpZnkgaXRcbiAgICpcbiAgICogQHBhcmFtIHtQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnN9IHBhcmFtcyAtIHBhcmFtZXRlcnMgdG8gYnVpbGQgdGhlIHR4XG4gICAqIEBwYXJhbSB7VHhSZXF1ZXN0VmVyc2lvbn0gYXBpVmVyc2lvbiBsaXRlIG9yIGZ1bGxcbiAgICogQHBhcmFtIHtib29sZWFufSBwcmV2aWV3IGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGlzIGlzIHRvIHByZXZpZXcgYSB0eCByZXF1ZXN0LCB3aGljaCB3aWxsIG5vdCBpbml0aWF0ZSBwb2xpY3kgY2hlY2tzIG9yIHBlbmRpbmcgYXBwcm92YWxzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IC0gYSBidWlsdCB0eCByZXF1ZXN0XG4gICAqL1xuICBhc3luYyBwcmVidWlsZFR4V2l0aEludGVudChcbiAgICBwYXJhbXM6IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgICBhcGlWZXJzaW9uOiBUeFJlcXVlc3RWZXJzaW9uID0gJ2xpdGUnLFxuICAgIHByZXZpZXc/OiBib29sZWFuXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgY29uc3QgaW50ZW50T3B0aW9ucyA9IHRoaXMucG9wdWxhdGVJbnRlbnQodGhpcy5iYXNlQ29pbiwgcGFyYW1zKTtcblxuICAgIGNvbnN0IHdoaXRlbGlzdGVkUGFyYW1zID0ge1xuICAgICAgaW50ZW50OiB7XG4gICAgICAgIC4uLmludGVudE9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbjogYXBpVmVyc2lvbixcbiAgICAgIHByZXZpZXcsXG4gICAgfTtcblxuICAgIGNvbnN0IHJlcVRyYWNlciA9IHBhcmFtcy5yZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMuYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICAgIGNvbnN0IHVuc2lnbmVkVHggPSAoYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iaXRnby51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4cmVxdWVzdHMnLCAyKSlcbiAgICAgIC5zZW5kKHdoaXRlbGlzdGVkUGFyYW1zKVxuICAgICAgLnJlc3VsdCgpKSBhcyBUeFJlcXVlc3Q7XG5cbiAgICByZXR1cm4gdW5zaWduZWRUeDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGZvciBtZXNzYWdlIHNpZ25pbmdcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0gYXBpVmVyc2lvblxuICAgKiBAcGFyYW0gcHJldmlld1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlVHhSZXF1ZXN0V2l0aEludGVudEZvck1lc3NhZ2VTaWduaW5nKFxuICAgIHBhcmFtczogSW50ZW50T3B0aW9uc0Zvck1lc3NhZ2UsXG4gICAgYXBpVmVyc2lvbjogVHhSZXF1ZXN0VmVyc2lvbiA9ICdmdWxsJyxcbiAgICBwcmV2aWV3PzogYm9vbGVhblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGNvbnN0IGludGVudE9wdGlvbnM6IFBvcHVsYXRlZEludGVudEZvck1lc3NhZ2VTaWduaW5nID0ge1xuICAgICAgY3VzdG9kaWFuTWVzc2FnZUlkOiBwYXJhbXMuY3VzdG9kaWFuTWVzc2FnZUlkLFxuICAgICAgaW50ZW50VHlwZTogcGFyYW1zLmludGVudFR5cGUsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgIGNvbW1lbnQ6IHBhcmFtcy5jb21tZW50LFxuICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgIG1lc3NhZ2VSYXc6IHBhcmFtcy5tZXNzYWdlUmF3LFxuICAgICAgbWVzc2FnZUVuY29kZWQ6IHBhcmFtcy5tZXNzYWdlRW5jb2RlZCA/PyAnJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVHhSZXF1ZXN0QmFzZShpbnRlbnRPcHRpb25zLCBhcGlWZXJzaW9uLCBwcmV2aWV3LCBwYXJhbXMucmVxSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHR4IHJlcXVlc3QgZnJvbSBwYXJhbXMgZm9yIHR5cGUgZGF0YSBzaWduaW5nXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIGFwaVZlcnNpb25cbiAgICogQHBhcmFtIHByZXZpZXdcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVR4UmVxdWVzdFdpdGhJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nKFxuICAgIHBhcmFtczogSW50ZW50T3B0aW9uc0ZvclR5cGVkRGF0YSxcbiAgICBhcGlWZXJzaW9uOiBUeFJlcXVlc3RWZXJzaW9uID0gJ2Z1bGwnLFxuICAgIHByZXZpZXc/OiBib29sZWFuXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgY29uc3QgaW50ZW50T3B0aW9uczogUG9wdWxhdGVkSW50ZW50Rm9yVHlwZWREYXRhU2lnbmluZyA9IHtcbiAgICAgIGN1c3RvZGlhbk1lc3NhZ2VJZDogcGFyYW1zLmN1c3RvZGlhbk1lc3NhZ2VJZCxcbiAgICAgIGludGVudFR5cGU6IHBhcmFtcy5pbnRlbnRUeXBlLFxuICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgIGlzVHNzOiBwYXJhbXMuaXNUc3MsXG4gICAgICBtZXNzYWdlUmF3OiBwYXJhbXMudHlwZWREYXRhUmF3LFxuICAgICAgbWVzc2FnZUVuY29kZWQ6IHBhcmFtcy50eXBlZERhdGFFbmNvZGVkID8/ICcnLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVUeFJlcXVlc3RCYXNlKGludGVudE9wdGlvbnMsIGFwaVZlcnNpb24sIHByZXZpZXcsIHBhcmFtcy5yZXFJZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgQml0Z28gQVBJIHRvIGNyZWF0ZSB0eCByZXF1ZXN0LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVUeFJlcXVlc3RCYXNlKFxuICAgIGludGVudE9wdGlvbnM6IFBvcHVsYXRlZEludGVudEZvclR5cGVkRGF0YVNpZ25pbmcgfCBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyxcbiAgICBhcGlWZXJzaW9uOiBUeFJlcXVlc3RWZXJzaW9uLFxuICAgIHByZXZpZXc/OiBib29sZWFuLFxuICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCB3aGl0ZWxpc3RlZFBhcmFtcyA9IHtcbiAgICAgIGludGVudDoge1xuICAgICAgICAuLi5pbnRlbnRPcHRpb25zLFxuICAgICAgfSxcbiAgICAgIGFwaVZlcnNpb24sXG4gICAgICBwcmV2aWV3LFxuICAgIH07XG5cbiAgICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMuYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L3R4cmVxdWVzdHNgLCAyKSlcbiAgICAgIC5zZW5kKHdoaXRlbGlzdGVkUGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMgZm9yIGEgdHhSZXF1ZXN0LCB0aGUgZW5kcG9pbnQgZGVsZXRlIHRoZSBzaWduYXR1cmVzIGFuZCByZXR1cm4gdGhlbVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHhSZXF1ZXN0SWQgdHggaWQgcmVmZXJlbmNlIHRvIGRlbGV0ZSBzaWduYXR1cmUgc2hhcmVzXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gdGhlIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1NpZ25hdHVyZVNoYXJlUmVjb3JkW119XG4gICAqL1xuICBhc3luYyBkZWxldGVTaWduYXR1cmVTaGFyZXModHhSZXF1ZXN0SWQ6IHN0cmluZywgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmRbXT4ge1xuICAgIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gICAgcmV0dXJuIHRoaXMuYml0Z29cbiAgICAgIC5kZWwodGhpcy5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS90eHJlcXVlc3RzLyR7dHhSZXF1ZXN0SWR9L3NpZ25hdHVyZXNoYXJlc2AsIDIpKVxuICAgICAgLnNlbmQoKVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHNlbmQgcHJvY2VkdXJlIG9uY2UgQml0Z28gaGFzIHRoZSBVc2VyIFRvIEJpdGdvIEdTaGFyZVxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gdGhlIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGFzeW5jIHNlbmRUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZywgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iYXNlQ29pbi51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4L3NlbmQnKSlcbiAgICAgIC5zZW5kKHsgdHhSZXF1ZXN0SWQgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgc2lnbmF0dXJlIHNoYXJlcywgZ2V0IHRoZSB0eCByZXF1ZXN0IHdpdGhvdXQgdGhlbSBmcm9tIHRoZSBkYiBhbmQgc2lnbiBpdCB0byBmaW5hbGx5IHNlbmQgaXQuXG4gICAqXG4gICAqIE5vdGUgOiBUaGlzIGNhbiBiZSBwZXJmb3JtZWQgaW4gb3JkZXIgdG8gcmVhY2ggbGF0ZXN0IG5ldHdvcmsgY29uZGl0aW9ucyByZXF1aXJlZCBvbiBwZW5kaW5nIGFwcHJvdmFsIGZsb3cuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWQgdG8gbWFrZSB0aGUgcmVxdWVzdHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkZWNyeXB0ZWRQcnYgLSBkZWNyeXB0ZWQgcHJ2IHRvIHNpZ24gdGhlIHR4IHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7UmVxdWVzdFRyYWNlcn0gcmVxSWQgaWQgdHJhY2VyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgYXN5bmMgcmVjcmVhdGVUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZywgZGVjcnlwdGVkUHJ2OiBzdHJpbmcsIHJlcUlkOiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVTaWduYXR1cmVTaGFyZXModHhSZXF1ZXN0SWQsIHJlcUlkKTtcbiAgICAvLyBhZnRlciBkZWxldGUgc2lnbmF0dXJlcyBzaGFyZXMgZ2V0IHRoZSB0eCB3aXRob3V0IHRoZW1cbiAgICBjb25zdCB0eFJlcXVlc3QgPSBhd2FpdCBnZXRUeFJlcXVlc3QodGhpcy5iaXRnbywgdGhpcy53YWxsZXQuaWQoKSwgdHhSZXF1ZXN0SWQsIHJlcUlkKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zaWduVHhSZXF1ZXN0KHsgdHhSZXF1ZXN0LCBwcnY6IGRlY3J5cHRlZFBydiwgcmVxSWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGF0ZXN0IFR4IFJlcXVlc3QgYnkgaWRcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICAgKiBAcGFyYW0ge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn1cbiAgICovXG4gIGFzeW5jIGdldFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nLCByZXFJZD86IElSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICByZXR1cm4gZ2V0VHhSZXF1ZXN0KHRoaXMuYml0Z28sIHRoaXMud2FsbGV0LmlkKCksIHR4UmVxdWVzdElkLCByZXFJZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHRoaXJkIHBhcnR5IGJhY2t1cCBwcm92aWRlciBpcyB2YWxpZC9zdXBwb3J0ZWRcbiAgICogQHBhcmFtIGJhY2t1cFByb3ZpZGVyIC0gdGhlIGJhY2t1cCBwcm92aWRlciBjbGllbnQgc2VsZWN0ZWRcbiAgICovXG4gIGlzVmFsaWRUaGlyZFBhcnR5QmFja3VwUHJvdmlkZXIoXG4gICAgYmFja3VwUHJvdmlkZXI6IEJhY2t1cFByb3ZpZGVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IGJhY2t1cFByb3ZpZGVyIGlzIEJhY2t1cFByb3ZpZGVyIHtcbiAgICAvLyBBcyBvZiBub3csIEJpdEdvIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBLUlMgcHJvdmlkZXIgZm9yIFRTU1xuICAgIHJldHVybiAhIShiYWNrdXBQcm92aWRlciAmJiBiYWNrdXBQcm92aWRlciA9PT0gJ0JpdEdvVHJ1c3RBc0tycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IGdldHMgdGhlIGFwcHJvcHJpYXRlIEJpdEdvIEdQRyBwdWJsaWMga2V5IGZvciBrZXkgY3JlYXRpb24gYmFzZWQgb24gYVxuICAgKiBjb21iaW5hdGlvbiBvZiBjb2luIGFuZCB0aGUgZmVhdHVyZSBmbGFncyBvbiB0aGUgdXNlciBhbmQgdGhlaXIgZW50ZXJwcmlzZSBpZiBzZXQuXG4gICAqIEBwYXJhbSBlbnRlcnByaXNlSWQgLSBlbnRlcnByaXNlIHVuZGVyIHdoaWNoIHVzZXIgd2FudHMgdG8gY3JlYXRlIHRoZSB3YWxsZXRcbiAgICogQHBhcmFtIGlzTVBDdjIgLSB0cnVlIHRvIGdldCB0aGUgTVBDdjIgR1BHIHB1YmxpYyBrZXksIGRlZmF1bHRzIHRvIGZhbHNlXG4gICAqIEBwYXJhbSByZXFJZCAtIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRCaXRnb0dwZ1B1YmtleUJhc2VkT25GZWF0dXJlRmxhZ3MoXG4gICAgZW50ZXJwcmlzZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgaXNNUEN2MiA9IGZhbHNlLFxuICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbiAgKTogUHJvbWlzZTxLZXk+IHtcbiAgICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMuYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBCaXRnb0dQR1B1YmxpY0tleSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5nZXQodGhpcy5iYXNlQ29pbi51cmwoJy90c3MvcHVia2V5JykpXG4gICAgICAucXVlcnkoeyBlbnRlcnByaXNlSWQgfSlcbiAgICAgIC5yZXRyeSgzKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIGNvbnN0IGJpdGdvUHVibGljS2V5U3RyID0gaXNNUEN2MiA/IHJlc3BvbnNlLm1wY3YyUHVibGljS2V5IDogcmVzcG9uc2UucHVibGljS2V5O1xuICAgIHJldHVybiByZWFkS2V5KHsgYXJtb3JlZEtleTogYml0Z29QdWJsaWNLZXlTdHIgYXMgc3RyaW5nIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgc3VwcG9ydGVkIFR4UmVxdWVzdCB2ZXJzaW9ucyBmb3IgdGhpcyB3YWxsZXRcbiAgICovXG4gIHB1YmxpYyBzdXBwb3J0ZWRUeFJlcXVlc3RWZXJzaW9ucygpOiBUeFJlcXVlc3RWZXJzaW9uW10ge1xuICAgIGNvbnN0IHdhbGxldFR5cGUgPSB0aGlzLl93YWxsZXQ/LnR5cGUoKTtcbiAgICBjb25zdCBzdXBwb3J0ZWRXYWxsZXRUeXBlcyA9IFsnY3VzdG9kaWFsJywgJ2NvbGQnLCAnaG90J107XG4gICAgaWYgKCF3YWxsZXRUeXBlIHx8IHRoaXMuX3dhbGxldD8ubXVsdGlzaWdUeXBlKCkgIT09ICd0c3MnIHx8ICFzdXBwb3J0ZWRXYWxsZXRUeXBlcy5pbmNsdWRlcyh3YWxsZXRUeXBlKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fd2FsbGV0Py5iYXNlQ29pbi5nZXRNUENBbGdvcml0aG0oKSA9PT0gJ2VjZHNhJykge1xuICAgICAgcmV0dXJuIFsnZnVsbCddO1xuICAgIH0gZWxzZSBpZiAod2FsbGV0VHlwZSA9PT0gJ2N1c3RvZGlhbCcgfHwgd2FsbGV0VHlwZSA9PT0gJ2NvbGQnKSB7XG4gICAgICByZXR1cm4gWydmdWxsJ107XG4gICAgfSBlbHNlIGlmICh0aGlzLl93YWxsZXQ/LmJhc2VDb2luLmdldE1QQ0FsZ29yaXRobSgpID09PSAnZWRkc2EnICYmIHdhbGxldFR5cGUgPT09ICdob3QnKSB7XG4gICAgICByZXR1cm4gWydsaXRlJywgJ2Z1bGwnXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdHhSZXF1ZXN0IGlzIHVzaW5nIGFwaVZlcnNpb24gPT0gZnVsbCBhbmQgaXMgcGVuZGluZyBhcHByb3ZhbFxuICAgKiBAcGFyYW0gdHhSZXF1ZXN0XG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIGlzUGVuZGluZ0FwcHJvdmFsVHhSZXF1ZXN0RnVsbCh0eFJlcXVlc3Q6IFR4UmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgYXBpVmVyc2lvbiwgc3RhdGUgfSA9IHR4UmVxdWVzdDtcbiAgICByZXR1cm4gYXBpVmVyc2lvbiA9PT0gJ2Z1bGwnICYmICdwZW5kaW5nQXBwcm92YWwnID09PSBzdGF0ZTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
|