@bitgo-beta/sdk-coin-cspr 1.2.19-beta.614 → 1.2.19-beta.615
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/dist/src/lib/keyPair.js
CHANGED
|
@@ -40,10 +40,9 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
40
40
|
* @returns { DefaultKeys } The keys in the defined format
|
|
41
41
|
*/
|
|
42
42
|
getKeys() {
|
|
43
|
-
var _a;
|
|
44
43
|
return {
|
|
45
44
|
pub: this.getPublicKey({ compressed: true }).toString('hex'),
|
|
46
|
-
prv:
|
|
45
|
+
prv: this.getPrivateKey()?.toString('hex'),
|
|
47
46
|
};
|
|
48
47
|
}
|
|
49
48
|
/** @inheritdoc */
|
|
@@ -53,4 +52,4 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
exports.KeyPair = KeyPair;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBcUM7QUFDckMsbURBQTZDO0FBQzdDLG1EQU84QjtBQUM5QiwyQ0FBK0M7QUFDL0MsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkMsTUFBYSxPQUFRLFNBQVEsbUNBQXdCO0lBQ25EOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksSUFBQSxpQkFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLElBQUksSUFBQSx1QkFBWSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBSSxJQUFBLHNCQUFXLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLG1DQUF3QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTztRQUNMLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDNUQsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFVBQVU7UUFDUixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsT0FBTyw0QkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQTNDRCwwQkEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7XG4gIEtleVBhaXJPcHRpb25zLFxuICBpc1ByaXZhdGVLZXksXG4gIGlzUHVibGljS2V5LFxuICBpc1NlZWQsXG4gIERlZmF1bHRLZXlzLFxuICBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFNFQ1AyNTZLMV9QUkVGSVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCBERUZBVUxUX1NFRURfU0laRV9CWVRFUyA9IDE2O1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNlZWQgPSByYW5kb21CeXRlcyhERUZBVUxUX1NFRURfU0laRV9CWVRFUyk7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNTZWVkKHNvdXJjZSkpIHtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc291cmNlLnNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNQcml2YXRlS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHNvdXJjZS5wcnYpO1xuICAgIH0gZWxzZSBpZiAoaXNQdWJsaWNLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5yZWNvcmRLZXlzRnJvbVB1YmxpY0tleShzb3VyY2UucHViKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleSBwYWlyIG9wdGlvbnMnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oZE5vZGUpIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpci50b0tleVBhaXIodGhpcy5oZE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGtleXMgZm9ybWF0IGlzIGEgcGFpciBvZiBVaW50OEFycmF5IGtleXNcbiAgICpcbiAgICogQHJldHVybnMgeyBEZWZhdWx0S2V5cyB9IFRoZSBrZXlzIGluIHRoZSBkZWZpbmVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkOiB0cnVlIH0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydjogdGhpcy5nZXRQcml2YXRlS2V5KCk/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlzID0gdGhpcy5nZXRLZXlzKCk7XG4gICAgcmV0dXJuIFNFQ1AyNTZLMV9QUkVGSVggKyBrZXlzLnB1YjtcbiAgfVxufVxuIl19
|
|
@@ -99,8 +99,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
99
99
|
}
|
|
100
100
|
/** @inheritdoc */
|
|
101
101
|
toJson() {
|
|
102
|
-
|
|
103
|
-
const deployPayment = (_a = this._deploy.payment.asModuleBytes()) === null || _a === void 0 ? void 0 : _a.getArgByName('amount');
|
|
102
|
+
const deployPayment = this._deploy.payment.asModuleBytes()?.getArgByName('amount');
|
|
104
103
|
if (!deployPayment) {
|
|
105
104
|
throw new sdk_core_1.InvalidTransactionError('Undefined fee');
|
|
106
105
|
}
|
|
@@ -238,4 +237,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
238
237
|
}
|
|
239
238
|
}
|
|
240
239
|
exports.Transaction = Transaction;
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUE0QjtBQUU1QixpREFBNkY7QUFDN0YsbURBQXdIO0FBQ3hILHVDQUFvQztBQUVwQywyQ0FNcUI7QUFDckIsbUNBVWlCO0FBRWpCLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSTlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWdCO1FBQ25CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3pCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLDRCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFBLHdCQUFnQixFQUFDLElBQUEsb0NBQTRCLEVBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQzlHLEVBQ0QsQ0FBQztZQUNELE1BQU0sSUFBSSx1QkFBWSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQUksQ0FBQyxTQUFTLENBQ2pDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJ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QUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsTUFBeUI7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztDQUdGO0FBaFBELGtDQWdQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IENMUHVibGljS2V5IGFzIFB1YmxpY0tleSwgRGVwbG95VXRpbCwgS2V5cywgQ0xTdHJpbmcsIENMVTUxMiB9IGZyb20gJ2Nhc3Blci1qcy1zZGsnO1xuaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBTaWduaW5nRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IENhc3BlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi9pZmFjZXMnO1xuaW1wb3J0IHtcbiAgREVMRUdBVEVfRlJPTV9BRERSRVNTLFxuICBERUxFR0FURV9WQUxJREFUT1IsXG4gIE9XTkVSX1BSRUZJWCxcbiAgU0VDUDI1NksxX1BSRUZJWCxcbiAgVFJBTlNBQ1RJT05fVFlQRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgZ2V0VHJhbnNmZXJBbW91bnQsXG4gIGdldFRyYW5zZmVyRGVzdGluYXRpb25BZGRyZXNzLFxuICBnZXRUcmFuc2ZlcklkLFxuICBpc1ZhbGlkUHVibGljS2V5LFxuICByZW1vdmVBbGdvUHJlZml4RnJvbUhleFZhbHVlLFxuICBnZXREZXBsb3lUeXBlLFxuICBnZXREZWxlZ2F0b3JBZGRyZXNzLFxuICBnZXRWYWxpZGF0b3JBZGRyZXNzLFxuICBnZXREZWxlZ2F0ZUFtb3VudCxcbn0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xuICBwcm90ZWN0ZWQgX2RlcGxveTogRGVwbG95VXRpbC5EZXBsb3k7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzaWduKGtleVBhaXI6IEtleVBhaXIpOiB2b2lkIHtcbiAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgaWYgKCFrZXlzLnBydikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLl9kZXBsb3kuYXBwcm92YWxzLnNvbWUoXG4gICAgICAgIChhcCkgPT4gIWFwLnNpZ25lci5zdGFydHNXaXRoKFNFQ1AyNTZLMV9QUkVGSVgpIHx8ICFpc1ZhbGlkUHVibGljS2V5KHJlbW92ZUFsZ29QcmVmaXhGcm9tSGV4VmFsdWUoYXAuc2lnbmVyKSlcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0ludmFsaWQgZGVwbG95LiBBbHJlYWR5IHNpZ25lZCB3aXRoIGFuIGludmFsaWQga2V5Jyk7XG4gICAgfVxuICAgIGNvbnN0IHNlY3BLZXlzID0gbmV3IEtleXMuU2VjcDI1NksxKFxuICAgICAgVWludDhBcnJheS5mcm9tKEJ1ZmZlci5mcm9tKGtleXMucHViLCAnaGV4JykpLFxuICAgICAgVWludDhBcnJheS5mcm9tKEJ1ZmZlci5mcm9tKGtleXMucHJ2LCAnaGV4JykpXG4gICAgKTtcbiAgICBjb25zdCBzaWduZWREZXBsb3kgPSBEZXBsb3lVdGlsLnNpZ25EZXBsb3kodGhpcy5fZGVwbG95LCBzZWNwS2V5cyk7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25lZERlcGxveS5hcHByb3ZhbHNbc2lnbmVkRGVwbG95LmFwcHJvdmFscy5sZW5ndGggLSAxXS5zaWduYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHNpZ25hdHVyZSB0byB0aGlzIHRyYW5zYWN0aW9uIGFuZCB0byBhbmQgaXRzIGRlcGxveVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgdG8gYWRkLCBpbiBzdHJpbmcgaGV4IGZvcm1hdFxuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgVGhlIGtleSBwYWlyIHRoYXQgY3JlYXRlZCB0aGUgc2lnbmF0dXJlXG4gICAqL1xuICBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcsIGtleVBhaXI6IEtleVBhaXIpOiB2b2lkIHtcbiAgICBjb25zdCBwdWIgPSBrZXlQYWlyLmdldEtleXMoKS5wdWI7XG4gICAgY29uc3Qgc2lnbmF0dXJlQnVmZmVyID0gVWludDhBcnJheS5mcm9tKEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSwgJ2hleCcpKTtcbiAgICBjb25zdCBwdWJLZXlCdWZmZXIgPSBVaW50OEFycmF5LmZyb20oQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgIGNvbnN0IHBhcnNlZFB1YmxpY0tleSA9IEtleXMuU2VjcDI1NksxLnBhcnNlUHVibGljS2V5KHB1YktleUJ1ZmZlciwgJ3JhdycpO1xuICAgIGNvbnN0IHB1YktleUhleCA9IEtleXMuU2VjcDI1NksxLmFjY291bnRIZXgocGFyc2VkUHVibGljS2V5KTtcbiAgICBpZiAocmVtb3ZlQWxnb1ByZWZpeEZyb21IZXhWYWx1ZShwdWJLZXlIZXgpICE9PSBwdWIpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ1NpZ25lciBkb2VzIG5vdCBtYXRjaCBzaWduYXR1cmUnKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmVkRGVwbG95ID0gRGVwbG95VXRpbC5zZXRTaWduYXR1cmUoXG4gICAgICB0aGlzLl9kZXBsb3ksXG4gICAgICBzaWduYXR1cmVCdWZmZXIsXG4gICAgICBQdWJsaWNLZXkuZnJvbVNlY3AyNTZLMShwYXJzZWRQdWJsaWNLZXkpXG4gICAgKTtcbiAgICBjb25zdCBhcHByb3ZhbCA9IF8ubGFzdChzaWduZWREZXBsb3kuYXBwcm92YWxzKSBhcyBEZXBsb3lVdGlsLkFwcHJvdmFsO1xuICAgIGlmIChyZW1vdmVBbGdvUHJlZml4RnJvbUhleFZhbHVlKGFwcHJvdmFsLnNpZ25hdHVyZSkgIT09IHNpZ25hdHVyZSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignSW52YWxpZCBzaWduYXR1cmUnKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY2FzcGVyVHgpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCB0eEpzb246IGFueSA9IERlcGxveVV0aWwuZGVwbG95VG9Kc29uKHRoaXMuY2FzcGVyVHgpO1xuICAgIC8vIFRoZSBuZXcgY2FzcGVyIGxpYiBpcyBjb252ZXJ0aW5nIHRoZSBUVEwgZnJvbSBtaWxpc2Vjb25kcyB0byBhbm90aGVyIGRhdGUgZm9ybWF0LCBpbiB0aGlzIGNhc2UgMSBkYXlcbiAgICAvLyB3ZSBuZWVkIHRvIGxlYXZlIGl0IGFzIG1zIGZvciB0aGUgSFNNIHRvIGJlIGFibGUgdG8gcGFyc2UgaXRcbiAgICB0eEpzb24uZGVwbG95LmhlYWRlci50dGwgPSBgJHt0aGlzLmNhc3BlclR4LmhlYWRlci50dGx9bXNgO1xuICAgIHRoaXMuc2V0T3duZXJzSW5Kc29uKHR4SnNvbik7XG4gICAgdGhpcy5zZXRUcmFuc2ZlcnNGaWVsZHNJbkpzb24odHhKc29uKTtcbiAgICB0aGlzLnNldERlbGVnYXRlRmllbGRzSW5Kc29uKHR4SnNvbik7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHR4SnNvbik7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IENhc3BlclRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBkZXBsb3lQYXltZW50ID0gdGhpcy5fZGVwbG95LnBheW1lbnQuYXNNb2R1bGVCeXRlcygpPy5nZXRBcmdCeU5hbWUoJ2Ftb3VudCcpIGFzIENMVTUxMjtcbiAgICBpZiAoIWRlcGxveVBheW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVW5kZWZpbmVkIGZlZScpO1xuICAgIH1cblxuICAgIGNvbnN0IG93bmVyMUluZGV4ID0gMDtcbiAgICBjb25zdCBvd25lcjJJbmRleCA9IDE7XG4gICAgY29uc3Qgb3duZXIzSW5kZXggPSAyO1xuICAgIGNvbnN0IHNvdXJjZVB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKHRoaXMuX2RlcGxveS5oZWFkZXIuYWNjb3VudC52YWx1ZSgpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3Qgc291cmNlQWRkcmVzcyA9IG5ldyBLZXlQYWlyKHsgcHViOiBzb3VyY2VQdWJsaWNLZXkgfSkuZ2V0QWRkcmVzcygpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBDYXNwZXJUcmFuc2FjdGlvbiA9IHtcbiAgICAgIGhhc2g6IEJ1ZmZlci5mcm9tKHRoaXMuX2RlcGxveS5oYXNoKS50b1N0cmluZygnaGV4JyksXG4gICAgICBmZWU6IHsgZ2FzTGltaXQ6IGRlcGxveVBheW1lbnQudmFsdWUoKS50b1N0cmluZygpLCBnYXNQcmljZTogdGhpcy5fZGVwbG95LmhlYWRlci5nYXNQcmljZS50b1N0cmluZygpIH0sXG4gICAgICBmcm9tOiBzb3VyY2VBZGRyZXNzLFxuICAgICAgc3RhcnRUaW1lOiBuZXcgRGF0ZSh0aGlzLl9kZXBsb3kuaGVhZGVyLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGV4cGlyYXRpb246IHRoaXMuX2RlcGxveS5oZWFkZXIudHRsLFxuICAgICAgZGVwbG95VHlwZTogKHRoaXMuX2RlcGxveS5zZXNzaW9uLmdldEFyZ0J5TmFtZShUUkFOU0FDVElPTl9UWVBFKSBhcyBDTFN0cmluZykudmFsdWUoKSxcbiAgICB9O1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25UeXBlID0gZ2V0RGVwbG95VHlwZSh0aGlzLl9kZXBsb3kuc2Vzc2lvbik7XG5cbiAgICBzd2l0Y2ggKHRyYW5zYWN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgcmVzdWx0LnRvID0gZ2V0VHJhbnNmZXJEZXN0aW5hdGlvbkFkZHJlc3ModGhpcy5fZGVwbG95LnNlc3Npb24pO1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gZ2V0VHJhbnNmZXJBbW91bnQodGhpcy5fZGVwbG95LnNlc3Npb24pO1xuICAgICAgICByZXN1bHQudHJhbnNmZXJJZCA9IGdldFRyYW5zZmVySWQodGhpcy5fZGVwbG95LnNlc3Npb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uOlxuICAgICAgICByZXN1bHQub3duZXIxID0gKHRoaXMuY2FzcGVyVHguc2Vzc2lvbi5nZXRBcmdCeU5hbWUoT1dORVJfUFJFRklYICsgb3duZXIxSW5kZXgpIGFzIENMU3RyaW5nKS52YWx1ZSgpO1xuICAgICAgICByZXN1bHQub3duZXIyID0gKHRoaXMuY2FzcGVyVHguc2Vzc2lvbi5nZXRBcmdCeU5hbWUoT1dORVJfUFJFRklYICsgb3duZXIySW5kZXgpIGFzIENMU3RyaW5nKS52YWx1ZSgpO1xuICAgICAgICByZXN1bHQub3duZXIzID0gKHRoaXMuY2FzcGVyVHguc2Vzc2lvbi5nZXRBcmdCeU5hbWUoT1dORVJfUFJFRklYICsgb3duZXIzSW5kZXgpIGFzIENMU3RyaW5nKS52YWx1ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrOlxuICAgICAgICByZXN1bHQuZnJvbURlbGVnYXRlID0gZ2V0RGVsZWdhdG9yQWRkcmVzcyh0aGlzLmNhc3BlclR4LnNlc3Npb24pO1xuICAgICAgICByZXN1bHQudmFsaWRhdG9yID0gZ2V0VmFsaWRhdG9yQWRkcmVzcyh0aGlzLmNhc3BlclR4LnNlc3Npb24pO1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gZ2V0RGVsZWdhdGVBbW91bnQodGhpcy5jYXNwZXJUeC5zZXNzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrOlxuICAgICAgICByZXN1bHQuZnJvbURlbGVnYXRlID0gZ2V0RGVsZWdhdG9yQWRkcmVzcyh0aGlzLmNhc3BlclR4LnNlc3Npb24pO1xuICAgICAgICByZXN1bHQudmFsaWRhdG9yID0gZ2V0VmFsaWRhdG9yQWRkcmVzcyh0aGlzLmNhc3BlclR4LnNlc3Npb24pO1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gZ2V0RGVsZWdhdGVBbW91bnQodGhpcy5jYXNwZXJUeC5zZXNzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0XG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHNpZ25hdHVyZXMgZnJvbSB0aGUgZGVwbG95IGluc3RhbmNlIGFuZCBsb2FkIHRoZW0gaW50byB0aGUgc2lnbmF0dXJlcyBsaXN0XG4gICAqL1xuICBsb2FkUHJldmlvdXNTaWduYXR1cmVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZXBsb3kuYXBwcm92YWxzICYmIHRoaXMuX2RlcGxveS5hcHByb3ZhbHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fZGVwbG95LmFwcHJvdmFscy5mb3JFYWNoKChhcHByb3ZhbCkgPT4ge1xuICAgICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goYXBwcm92YWwuc2lnbmF0dXJlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgb3duZXJzIGluc2lkZSBhIGpzb24gcmVwcmVzZW50aW5nIGEgd2FsbGV0IGluaXRpYWxpemF0aW9uIHR4LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHR4SnNvbiBqc29uIHRvIG1vZGlmeVxuICAgKi9cbiAgc2V0T3duZXJzSW5Kc29uKHR4SnNvbjogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIGlmIChnZXREZXBsb3lUeXBlKHRoaXMuY2FzcGVyVHguc2Vzc2lvbikgPT09IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbikge1xuICAgICAgY29uc3QgYXJnTmFtZSA9IDA7XG4gICAgICBjb25zdCBhcmdWYWx1ZSA9IDE7XG4gICAgICBjb25zdCBvd25lcjAgPSAwO1xuICAgICAgY29uc3Qgb3duZXIxID0gMTtcbiAgICAgIGNvbnN0IG93bmVyMiA9IDI7XG5cbiAgICAgIGNvbnN0IG93bmVyc1ZhbHVlcyA9IG5ldyBNYXAoKTtcblxuICAgICAgb3duZXJzVmFsdWVzLnNldChUUkFOU0FDVElPTl9UWVBFLCAodGhpcy5jYXNwZXJUeC5zZXNzaW9uLmdldEFyZ0J5TmFtZShUUkFOU0FDVElPTl9UWVBFKSBhcyBDTFN0cmluZykudmFsdWUoKSk7XG5cbiAgICAgIFtvd25lcjAsIG93bmVyMSwgb3duZXIyXS5mb3JFYWNoKChpbmRleCkgPT4ge1xuICAgICAgICBvd25lcnNWYWx1ZXMuc2V0KFxuICAgICAgICAgIE9XTkVSX1BSRUZJWCArIGluZGV4LFxuICAgICAgICAgICh0aGlzLmNhc3BlclR4LnNlc3Npb24uZ2V0QXJnQnlOYW1lKE9XTkVSX1BSRUZJWCArIGluZGV4KSBhcyBDTFN0cmluZykudmFsdWUoKVxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHR4SnNvblsnZGVwbG95J11bJ3Nlc3Npb24nXVsnTW9kdWxlQnl0ZXMnXVsnYXJncyddLmZvckVhY2goKGFyZykgPT4ge1xuICAgICAgICBpZiAob3duZXJzVmFsdWVzLmhhcyhhcmdbYXJnTmFtZV0pKSB7XG4gICAgICAgICAgYXJnW2FyZ1ZhbHVlXVsncGFyc2VkJ10gPSBvd25lcnNWYWx1ZXMuZ2V0KGFyZ1thcmdOYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdHJhbnNmZXIgZmllbGRzIGluc2lkZSBhIGpzb24gcmVwcmVzZW50aW5nIGEgdHJhbnNmZXIgdHguXG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHhKc29uIGpzb24gdG8gbW9kaWZ5XG4gICAqL1xuICBzZXRUcmFuc2ZlcnNGaWVsZHNJbkpzb24odHhKc29uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgaWYgKGdldERlcGxveVR5cGUodGhpcy5jYXNwZXJUeC5zZXNzaW9uKSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICAgIGNvbnN0IGFyZ05hbWUgPSAwO1xuICAgICAgY29uc3QgYXJnVmFsdWUgPSAxO1xuXG4gICAgICBjb25zdCB0cmFuc2ZlclZhbHVlcyA9IG5ldyBNYXAoKTtcbiAgICAgIHRyYW5zZmVyVmFsdWVzLnNldChUUkFOU0FDVElPTl9UWVBFLCAodGhpcy5jYXNwZXJUeC5zZXNzaW9uLmdldEFyZ0J5TmFtZShUUkFOU0FDVElPTl9UWVBFKSBhcyBDTFN0cmluZykudmFsdWUoKSk7XG4gICAgICB0cmFuc2ZlclZhbHVlcy5zZXQoJ2Ftb3VudCcsIGdldFRyYW5zZmVyQW1vdW50KHRoaXMuY2FzcGVyVHguc2Vzc2lvbikpO1xuICAgICAgdHJhbnNmZXJWYWx1ZXMuc2V0KCd0b19hZGRyZXNzJywgZ2V0VHJhbnNmZXJEZXN0aW5hdGlvbkFkZHJlc3ModGhpcy5jYXNwZXJUeC5zZXNzaW9uKSk7XG4gICAgICBjb25zdCB0cmFuc2ZlcklkID0gZ2V0VHJhbnNmZXJJZCh0aGlzLmNhc3BlclR4LnNlc3Npb24pO1xuICAgICAgaWYgKHRyYW5zZmVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0cmFuc2ZlclZhbHVlcy5zZXQoJ2lkJywgdHJhbnNmZXJJZC50b1N0cmluZygpKTtcbiAgICAgIH1cblxuICAgICAgdHhKc29uWydkZXBsb3knXVsnc2Vzc2lvbiddWydUcmFuc2ZlciddWydhcmdzJ10uZm9yRWFjaCgoYXJnKSA9PiB7XG4gICAgICAgIGlmICh0cmFuc2ZlclZhbHVlcy5oYXMoYXJnW2FyZ05hbWVdKSkge1xuICAgICAgICAgIGFyZ1thcmdWYWx1ZV1bJ3BhcnNlZCddID0gdHJhbnNmZXJWYWx1ZXMuZ2V0KGFyZ1thcmdOYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgZGVsZWdhdGUgLyB1bmRlbGVnYXRlIGZpZWxkcyBpbnNpZGUgYSBqc29uIHJlcHJlc2VudGluZyB0aGUgdHguXG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHhKc29uIGpzb24gdG8gbW9kaWZ5XG4gICAqL1xuICBzZXREZWxlZ2F0ZUZpZWxkc0luSnNvbih0eEpzb246IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBnZXREZXBsb3lUeXBlKHRoaXMuY2FzcGVyVHguc2Vzc2lvbikgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nTG9jayB8fFxuICAgICAgZ2V0RGVwbG95VHlwZSh0aGlzLmNhc3BlclR4LnNlc3Npb24pID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9ja1xuICAgICkge1xuICAgICAgY29uc3QgYXJnTmFtZSA9IDA7XG4gICAgICBjb25zdCBhcmdWYWx1ZSA9IDE7XG5cbiAgICAgIGNvbnN0IGRlbGVnYXRlVmFsdWVzID0gbmV3IE1hcCgpO1xuICAgICAgZGVsZWdhdGVWYWx1ZXMuc2V0KFRSQU5TQUNUSU9OX1RZUEUsICh0aGlzLmNhc3BlclR4LnNlc3Npb24uZ2V0QXJnQnlOYW1lKFRSQU5TQUNUSU9OX1RZUEUpIGFzIENMU3RyaW5nKS52YWx1ZSgpKTtcbiAgICAgIGRlbGVnYXRlVmFsdWVzLnNldCgnYW1vdW50JywgZ2V0RGVsZWdhdGVBbW91bnQodGhpcy5jYXNwZXJUeC5zZXNzaW9uKSk7XG4gICAgICBkZWxlZ2F0ZVZhbHVlcy5zZXQoREVMRUdBVEVfRlJPTV9BRERSRVNTLCBnZXREZWxlZ2F0b3JBZGRyZXNzKHRoaXMuY2FzcGVyVHguc2Vzc2lvbikpO1xuICAgICAgZGVsZWdhdGVWYWx1ZXMuc2V0KERFTEVHQVRFX1ZBTElEQVRPUiwgZ2V0VmFsaWRhdG9yQWRkcmVzcyh0aGlzLmNhc3BlclR4LnNlc3Npb24pKTtcblxuICAgICAgdHhKc29uLmRlcGxveS5zZXNzaW9uLk1vZHVsZUJ5dGVzLmFyZ3MuZm9yRWFjaCgoYXJnKSA9PiB7XG4gICAgICAgIGlmIChkZWxlZ2F0ZVZhbHVlcy5oYXMoYXJnW2FyZ05hbWVdKSkge1xuICAgICAgICAgIGFyZ1thcmdWYWx1ZV1bJ3BhcnNlZCddID0gZGVsZWdhdGVWYWx1ZXMuZ2V0KGFyZ1thcmdOYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjYXNwZXJUeCgpOiBEZXBsb3lVdGlsLkRlcGxveSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlcGxveTtcbiAgfVxuXG4gIHNldCBjYXNwZXJUeChkZXBsb3k6IERlcGxveVV0aWwuRGVwbG95KSB7XG4gICAgdGhpcy5fZGVwbG95ID0gZGVwbG95O1xuICB9XG5cbiAgLy8gZW5kcmVnaW9uXG59XG4iXX0=
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUE0QjtBQUU1QixpREFBNkY7QUFDN0YsbURBQXdIO0FBQ3hILHVDQUFvQztBQUVwQywyQ0FNcUI7QUFDckIsbUNBVWlCO0FBRWpCLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSTlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWdCO1FBQ25CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3pCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLDRCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFBLHdCQUFnQixFQUFDLElBQUEsb0NBQTRCLEVBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQzlHLEVBQ0QsQ0FBQztZQUNELE1BQU0sSUFBSSx1QkFBWSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQUksQ0FBQyxTQUFTLENBQ2pDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJ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LENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNyRCxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzdELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0NBR0Y7QUFoUEQsa0NBZ1BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ0xQdWJsaWNLZXkgYXMgUHVibGljS2V5LCBEZXBsb3lVdGlsLCBLZXlzLCBDTFN0cmluZywgQ0xVNTEyIH0gZnJvbSAnY2FzcGVyLWpzLXNkayc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uVHlwZSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFNpZ25pbmdFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgQ2FzcGVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL2lmYWNlcyc7XG5pbXBvcnQge1xuICBERUxFR0FURV9GUk9NX0FERFJFU1MsXG4gIERFTEVHQVRFX1ZBTElEQVRPUixcbiAgT1dORVJfUFJFRklYLFxuICBTRUNQMjU2SzFfUFJFRklYLFxuICBUUkFOU0FDVElPTl9UWVBFLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBnZXRUcmFuc2ZlckFtb3VudCxcbiAgZ2V0VHJhbnNmZXJEZXN0aW5hdGlvbkFkZHJlc3MsXG4gIGdldFRyYW5zZmVySWQsXG4gIGlzVmFsaWRQdWJsaWNLZXksXG4gIHJlbW92ZUFsZ29QcmVmaXhGcm9tSGV4VmFsdWUsXG4gIGdldERlcGxveVR5cGUsXG4gIGdldERlbGVnYXRvckFkZHJlc3MsXG4gIGdldFZhbGlkYXRvckFkZHJlc3MsXG4gIGdldERlbGVnYXRlQW1vdW50LFxufSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJvdGVjdGVkIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHByb3RlY3RlZCBfZGVwbG95OiBEZXBsb3lVdGlsLkRlcGxveTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHNpZ24oa2V5UGFpcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgICBpZiAoIWtleXMucHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuX2RlcGxveS5hcHByb3ZhbHMuc29tZShcbiAgICAgICAgKGFwKSA9PiAhYXAuc2lnbmVyLnN0YXJ0c1dpdGgoU0VDUDI1NksxX1BSRUZJWCkgfHwgIWlzVmFsaWRQdWJsaWNLZXkocmVtb3ZlQWxnb1ByZWZpeEZyb21IZXhWYWx1ZShhcC5zaWduZXIpKVxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignSW52YWxpZCBkZXBsb3kuIEFscmVhZHkgc2lnbmVkIHdpdGggYW4gaW52YWxpZCBrZXknKTtcbiAgICB9XG4gICAgY29uc3Qgc2VjcEtleXMgPSBuZXcgS2V5cy5TZWNwMjU2SzEoXG4gICAgICBVaW50OEFycmF5LmZyb20oQnVmZmVyLmZyb20oa2V5cy5wdWIsICdoZXgnKSksXG4gICAgICBVaW50OEFycmF5LmZyb20oQnVmZmVyLmZyb20oa2V5cy5wcnYsICdoZXgnKSlcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZERlcGxveSA9IERlcGxveVV0aWwuc2lnbkRlcGxveSh0aGlzLl9kZXBsb3ksIHNlY3BLZXlzKTtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmVkRGVwbG95LmFwcHJvdmFsc1tzaWduZWREZXBsb3kuYXBwcm92YWxzLmxlbmd0aCAtIDFdLnNpZ25hdHVyZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2lnbmF0dXJlIHRvIHRoaXMgdHJhbnNhY3Rpb24gYW5kIHRvIGFuZCBpdHMgZGVwbG95XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduYXR1cmUgVGhlIHNpZ25hdHVyZSB0byBhZGQsIGluIHN0cmluZyBoZXggZm9ybWF0XG4gICAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5UGFpciBUaGUga2V5IHBhaXIgdGhhdCBjcmVhdGVkIHRoZSBzaWduYXR1cmVcbiAgICovXG4gIGFkZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZywga2V5UGFpcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGNvbnN0IHB1YiA9IGtleVBhaXIuZ2V0S2V5cygpLnB1YjtcbiAgICBjb25zdCBzaWduYXR1cmVCdWZmZXIgPSBVaW50OEFycmF5LmZyb20oQnVmZmVyLmZyb20oc2lnbmF0dXJlLCAnaGV4JykpO1xuICAgIGNvbnN0IHB1YktleUJ1ZmZlciA9IFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShwdWIsICdoZXgnKSk7XG4gICAgY29uc3QgcGFyc2VkUHVibGljS2V5ID0gS2V5cy5TZWNwMjU2SzEucGFyc2VQdWJsaWNLZXkocHViS2V5QnVmZmVyLCAncmF3Jyk7XG4gICAgY29uc3QgcHViS2V5SGV4ID0gS2V5cy5TZWNwMjU2SzEuYWNjb3VudEhleChwYXJzZWRQdWJsaWNLZXkpO1xuICAgIGlmIChyZW1vdmVBbGdvUHJlZml4RnJvbUhleFZhbHVlKHB1YktleUhleCkgIT09IHB1Yikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignU2lnbmVyIGRvZXMgbm90IG1hdGNoIHNpZ25hdHVyZScpO1xuICAgIH1cbiAgICBjb25zdCBzaWduZWREZXBsb3kgPSBEZXBsb3lVdGlsLnNldFNpZ25hdHVyZShcbiAgICAgIHRoaXMuX2RlcGxveSxcbiAgICAgIHNpZ25hdHVyZUJ1ZmZlcixcbiAgICAgIFB1YmxpY0tleS5mcm9tU2VjcDI1NksxKHBhcnNlZFB1YmxpY0tleSlcbiAgICApO1xuICAgIGNvbnN0IGFwcHJvdmFsID0gXy5sYXN0KHNpZ25lZERlcGxveS5hcHByb3ZhbHMpIGFzIERlcGxveVV0aWwuQXBwcm92YWw7XG4gICAgaWYgKHJlbW92ZUFsZ29QcmVmaXhGcm9tSGV4VmFsdWUoYXBwcm92YWwuc2lnbmF0dXJlKSAhPT0gc2lnbmF0dXJlKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdJbnZhbGlkIHNpZ25hdHVyZScpO1xuICAgIH1cbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jYXNwZXJUeCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHR4SnNvbjogYW55ID0gRGVwbG95VXRpbC5kZXBsb3lUb0pzb24odGhpcy5jYXNwZXJUeCk7XG4gICAgLy8gVGhlIG5ldyBjYXNwZXIgbGliIGlzIGNvbnZlcnRpbmcgdGhlIFRUTCBmcm9tIG1pbGlzZWNvbmRzIHRvIGFub3RoZXIgZGF0ZSBmb3JtYXQsIGluIHRoaXMgY2FzZSAxIGRheVxuICAgIC8vIHdlIG5lZWQgdG8gbGVhdmUgaXQgYXMgbXMgZm9yIHRoZSBIU00gdG8gYmUgYWJsZSB0byBwYXJzZSBpdFxuICAgIHR4SnNvbi5kZXBsb3kuaGVhZGVyLnR0bCA9IGAke3RoaXMuY2FzcGVyVHguaGVhZGVyLnR0bH1tc2A7XG4gICAgdGhpcy5zZXRPd25lcnNJbkpzb24odHhKc29uKTtcbiAgICB0aGlzLnNldFRyYW5zZmVyc0ZpZWxkc0luSnNvbih0eEpzb24pO1xuICAgIHRoaXMuc2V0RGVsZWdhdGVGaWVsZHNJbkpzb24odHhKc29uKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodHhKc29uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogQ2FzcGVyVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGRlcGxveVBheW1lbnQgPSB0aGlzLl9kZXBsb3kucGF5bWVudC5hc01vZHVsZUJ5dGVzKCk/LmdldEFyZ0J5TmFtZSgnYW1vdW50JykgYXMgQ0xVNTEyO1xuICAgIGlmICghZGVwbG95UGF5bWVudCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbmRlZmluZWQgZmVlJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3duZXIxSW5kZXggPSAwO1xuICAgIGNvbnN0IG93bmVyMkluZGV4ID0gMTtcbiAgICBjb25zdCBvd25lcjNJbmRleCA9IDI7XG4gICAgY29uc3Qgc291cmNlUHVibGljS2V5ID0gQnVmZmVyLmZyb20odGhpcy5fZGVwbG95LmhlYWRlci5hY2NvdW50LnZhbHVlKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBzb3VyY2VBZGRyZXNzID0gbmV3IEtleVBhaXIoeyBwdWI6IHNvdXJjZVB1YmxpY0tleSB9KS5nZXRBZGRyZXNzKCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IENhc3BlclRyYW5zYWN0aW9uID0ge1xuICAgICAgaGFzaDogQnVmZmVyLmZyb20odGhpcy5fZGVwbG95Lmhhc2gpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGZlZTogeyBnYXNMaW1pdDogZGVwbG95UGF5bWVudC52YWx1ZSgpLnRvU3RyaW5nKCksIGdhc1ByaWNlOiB0aGlzLl9kZXBsb3kuaGVhZGVyLmdhc1ByaWNlLnRvU3RyaW5nKCkgfSxcbiAgICAgIGZyb206IHNvdXJjZUFkZHJlc3MsXG4gICAgICBzdGFydFRpbWU6IG5ldyBEYXRlKHRoaXMuX2RlcGxveS5oZWFkZXIudGltZXN0YW1wKS50b0lTT1N0cmluZygpLFxuICAgICAgZXhwaXJhdGlvbjogdGhpcy5fZGVwbG95LmhlYWRlci50dGwsXG4gICAgICBkZXBsb3lUeXBlOiAodGhpcy5fZGVwbG95LnNlc3Npb24uZ2V0QXJnQnlOYW1lKFRSQU5TQUNUSU9OX1RZUEUpIGFzIENMU3RyaW5nKS52YWx1ZSgpLFxuICAgIH07XG5cbiAgICBjb25zdCB0cmFuc2FjdGlvblR5cGUgPSBnZXREZXBsb3lUeXBlKHRoaXMuX2RlcGxveS5zZXNzaW9uKTtcblxuICAgIHN3aXRjaCAodHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXN1bHQudG8gPSBnZXRUcmFuc2ZlckRlc3RpbmF0aW9uQWRkcmVzcyh0aGlzLl9kZXBsb3kuc2Vzc2lvbik7XG4gICAgICAgIHJlc3VsdC5hbW91bnQgPSBnZXRUcmFuc2ZlckFtb3VudCh0aGlzLl9kZXBsb3kuc2Vzc2lvbik7XG4gICAgICAgIHJlc3VsdC50cmFuc2ZlcklkID0gZ2V0VHJhbnNmZXJJZCh0aGlzLl9kZXBsb3kuc2Vzc2lvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb246XG4gICAgICAgIHJlc3VsdC5vd25lcjEgPSAodGhpcy5jYXNwZXJUeC5zZXNzaW9uLmdldEFyZ0J5TmFtZShPV05FUl9QUkVGSVggKyBvd25lcjFJbmRleCkgYXMgQ0xTdHJpbmcpLnZhbHVlKCk7XG4gICAgICAgIHJlc3VsdC5vd25lcjIgPSAodGhpcy5jYXNwZXJUeC5zZXNzaW9uLmdldEFyZ0J5TmFtZShPV05FUl9QUkVGSVggKyBvd25lcjJJbmRleCkgYXMgQ0xTdHJpbmcpLnZhbHVlKCk7XG4gICAgICAgIHJlc3VsdC5vd25lcjMgPSAodGhpcy5jYXNwZXJUeC5zZXNzaW9uLmdldEFyZ0J5TmFtZShPV05FUl9QUkVGSVggKyBvd25lcjNJbmRleCkgYXMgQ0xTdHJpbmcpLnZhbHVlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0xvY2s6XG4gICAgICAgIHJlc3VsdC5mcm9tRGVsZWdhdGUgPSBnZXREZWxlZ2F0b3JBZGRyZXNzKHRoaXMuY2FzcGVyVHguc2Vzc2lvbik7XG4gICAgICAgIHJlc3VsdC52YWxpZGF0b3IgPSBnZXRWYWxpZGF0b3JBZGRyZXNzKHRoaXMuY2FzcGVyVHguc2Vzc2lvbik7XG4gICAgICAgIHJlc3VsdC5hbW91bnQgPSBnZXREZWxlZ2F0ZUFtb3VudCh0aGlzLmNhc3BlclR4LnNlc3Npb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2s6XG4gICAgICAgIHJlc3VsdC5mcm9tRGVsZWdhdGUgPSBnZXREZWxlZ2F0b3JBZGRyZXNzKHRoaXMuY2FzcGVyVHguc2Vzc2lvbik7XG4gICAgICAgIHJlc3VsdC52YWxpZGF0b3IgPSBnZXRWYWxpZGF0b3JBZGRyZXNzKHRoaXMuY2FzcGVyVHguc2Vzc2lvbik7XG4gICAgICAgIHJlc3VsdC5hbW91bnQgPSBnZXREZWxlZ2F0ZUFtb3VudCh0aGlzLmNhc3BlclR4LnNlc3Npb24pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXRcbiAgICovXG4gIHNldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgc2lnbmF0dXJlcyBmcm9tIHRoZSBkZXBsb3kgaW5zdGFuY2UgYW5kIGxvYWQgdGhlbSBpbnRvIHRoZSBzaWduYXR1cmVzIGxpc3RcbiAgICovXG4gIGxvYWRQcmV2aW91c1NpZ25hdHVyZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RlcGxveS5hcHByb3ZhbHMgJiYgdGhpcy5fZGVwbG95LmFwcHJvdmFscy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9kZXBsb3kuYXBwcm92YWxzLmZvckVhY2goKGFwcHJvdmFsKSA9PiB7XG4gICAgICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChhcHByb3ZhbC5zaWduYXR1cmUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBvd25lcnMgaW5zaWRlIGEganNvbiByZXByZXNlbnRpbmcgYSB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHguXG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHhKc29uIGpzb24gdG8gbW9kaWZ5XG4gICAqL1xuICBzZXRPd25lcnNJbkpzb24odHhKc29uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgaWYgKGdldERlcGxveVR5cGUodGhpcy5jYXNwZXJUeC5zZXNzaW9uKSA9PT0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKSB7XG4gICAgICBjb25zdCBhcmdOYW1lID0gMDtcbiAgICAgIGNvbnN0IGFyZ1ZhbHVlID0gMTtcbiAgICAgIGNvbnN0IG93bmVyMCA9IDA7XG4gICAgICBjb25zdCBvd25lcjEgPSAxO1xuICAgICAgY29uc3Qgb3duZXIyID0gMjtcblxuICAgICAgY29uc3Qgb3duZXJzVmFsdWVzID0gbmV3IE1hcCgpO1xuXG4gICAgICBvd25lcnNWYWx1ZXMuc2V0KFRSQU5TQUNUSU9OX1RZUEUsICh0aGlzLmNhc3BlclR4LnNlc3Npb24uZ2V0QXJnQnlOYW1lKFRSQU5TQUNUSU9OX1RZUEUpIGFzIENMU3RyaW5nKS52YWx1ZSgpKTtcblxuICAgICAgW293bmVyMCwgb3duZXIxLCBvd25lcjJdLmZvckVhY2goKGluZGV4KSA9PiB7XG4gICAgICAgIG93bmVyc1ZhbHVlcy5zZXQoXG4gICAgICAgICAgT1dORVJfUFJFRklYICsgaW5kZXgsXG4gICAgICAgICAgKHRoaXMuY2FzcGVyVHguc2Vzc2lvbi5nZXRBcmdCeU5hbWUoT1dORVJfUFJFRklYICsgaW5kZXgpIGFzIENMU3RyaW5nKS52YWx1ZSgpXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgdHhKc29uWydkZXBsb3knXVsnc2Vzc2lvbiddWydNb2R1bGVCeXRlcyddWydhcmdzJ10uZm9yRWFjaCgoYXJnKSA9PiB7XG4gICAgICAgIGlmIChvd25lcnNWYWx1ZXMuaGFzKGFyZ1thcmdOYW1lXSkpIHtcbiAgICAgICAgICBhcmdbYXJnVmFsdWVdWydwYXJzZWQnXSA9IG93bmVyc1ZhbHVlcy5nZXQoYXJnW2FyZ05hbWVdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0cmFuc2ZlciBmaWVsZHMgaW5zaWRlIGEganNvbiByZXByZXNlbnRpbmcgYSB0cmFuc2ZlciB0eC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0eEpzb24ganNvbiB0byBtb2RpZnlcbiAgICovXG4gIHNldFRyYW5zZmVyc0ZpZWxkc0luSnNvbih0eEpzb246IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkIHtcbiAgICBpZiAoZ2V0RGVwbG95VHlwZSh0aGlzLmNhc3BlclR4LnNlc3Npb24pID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgY29uc3QgYXJnTmFtZSA9IDA7XG4gICAgICBjb25zdCBhcmdWYWx1ZSA9IDE7XG5cbiAgICAgIGNvbnN0IHRyYW5zZmVyVmFsdWVzID0gbmV3IE1hcCgpO1xuICAgICAgdHJhbnNmZXJWYWx1ZXMuc2V0KFRSQU5TQUNUSU9OX1RZUEUsICh0aGlzLmNhc3BlclR4LnNlc3Npb24uZ2V0QXJnQnlOYW1lKFRSQU5TQUNUSU9OX1RZUEUpIGFzIENMU3RyaW5nKS52YWx1ZSgpKTtcbiAgICAgIHRyYW5zZmVyVmFsdWVzLnNldCgnYW1vdW50JywgZ2V0VHJhbnNmZXJBbW91bnQodGhpcy5jYXNwZXJUeC5zZXNzaW9uKSk7XG4gICAgICB0cmFuc2ZlclZhbHVlcy5zZXQoJ3RvX2FkZHJlc3MnLCBnZXRUcmFuc2ZlckRlc3RpbmF0aW9uQWRkcmVzcyh0aGlzLmNhc3BlclR4LnNlc3Npb24pKTtcbiAgICAgIGNvbnN0IHRyYW5zZmVySWQgPSBnZXRUcmFuc2ZlcklkKHRoaXMuY2FzcGVyVHguc2Vzc2lvbik7XG4gICAgICBpZiAodHJhbnNmZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRyYW5zZmVyVmFsdWVzLnNldCgnaWQnLCB0cmFuc2ZlcklkLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuXG4gICAgICB0eEpzb25bJ2RlcGxveSddWydzZXNzaW9uJ11bJ1RyYW5zZmVyJ11bJ2FyZ3MnXS5mb3JFYWNoKChhcmcpID0+IHtcbiAgICAgICAgaWYgKHRyYW5zZmVyVmFsdWVzLmhhcyhhcmdbYXJnTmFtZV0pKSB7XG4gICAgICAgICAgYXJnW2FyZ1ZhbHVlXVsncGFyc2VkJ10gPSB0cmFuc2ZlclZhbHVlcy5nZXQoYXJnW2FyZ05hbWVdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkZWxlZ2F0ZSAvIHVuZGVsZWdhdGUgZmllbGRzIGluc2lkZSBhIGpzb24gcmVwcmVzZW50aW5nIHRoZSB0eC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0eEpzb24ganNvbiB0byBtb2RpZnlcbiAgICovXG4gIHNldERlbGVnYXRlRmllbGRzSW5Kc29uKHR4SnNvbjogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGdldERlcGxveVR5cGUodGhpcy5jYXNwZXJUeC5zZXNzaW9uKSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrIHx8XG4gICAgICBnZXREZXBsb3lUeXBlKHRoaXMuY2FzcGVyVHguc2Vzc2lvbikgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrXG4gICAgKSB7XG4gICAgICBjb25zdCBhcmdOYW1lID0gMDtcbiAgICAgIGNvbnN0IGFyZ1ZhbHVlID0gMTtcblxuICAgICAgY29uc3QgZGVsZWdhdGVWYWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgICBkZWxlZ2F0ZVZhbHVlcy5zZXQoVFJBTlNBQ1RJT05fVFlQRSwgKHRoaXMuY2FzcGVyVHguc2Vzc2lvbi5nZXRBcmdCeU5hbWUoVFJBTlNBQ1RJT05fVFlQRSkgYXMgQ0xTdHJpbmcpLnZhbHVlKCkpO1xuICAgICAgZGVsZWdhdGVWYWx1ZXMuc2V0KCdhbW91bnQnLCBnZXREZWxlZ2F0ZUFtb3VudCh0aGlzLmNhc3BlclR4LnNlc3Npb24pKTtcbiAgICAgIGRlbGVnYXRlVmFsdWVzLnNldChERUxFR0FURV9GUk9NX0FERFJFU1MsIGdldERlbGVnYXRvckFkZHJlc3ModGhpcy5jYXNwZXJUeC5zZXNzaW9uKSk7XG4gICAgICBkZWxlZ2F0ZVZhbHVlcy5zZXQoREVMRUdBVEVfVkFMSURBVE9SLCBnZXRWYWxpZGF0b3JBZGRyZXNzKHRoaXMuY2FzcGVyVHguc2Vzc2lvbikpO1xuXG4gICAgICB0eEpzb24uZGVwbG95LnNlc3Npb24uTW9kdWxlQnl0ZXMuYXJncy5mb3JFYWNoKChhcmcpID0+IHtcbiAgICAgICAgaWYgKGRlbGVnYXRlVmFsdWVzLmhhcyhhcmdbYXJnTmFtZV0pKSB7XG4gICAgICAgICAgYXJnW2FyZ1ZhbHVlXVsncGFyc2VkJ10gPSBkZWxlZ2F0ZVZhbHVlcy5nZXQoYXJnW2FyZ05hbWVdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNhc3BlclR4KCk6IERlcGxveVV0aWwuRGVwbG95IHtcbiAgICByZXR1cm4gdGhpcy5fZGVwbG95O1xuICB9XG5cbiAgc2V0IGNhc3BlclR4KGRlcGxveTogRGVwbG95VXRpbC5EZXBsb3kpIHtcbiAgICB0aGlzLl9kZXBsb3kgPSBkZXBsb3k7XG4gIH1cblxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
|