@bitgo-beta/sdk-coin-polyx 1.0.1-beta.1065 → 1.0.1-beta.1067
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/iface.d.ts +7 -0
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +5 -2
- package/dist/test/unit/transactionBuilder/nominateBuilder.js +21 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
package/dist/src/lib/iface.d.ts
CHANGED
|
@@ -14,6 +14,13 @@ export interface TxData extends Interface.TxData {
|
|
|
14
14
|
toDID?: string;
|
|
15
15
|
instructionId?: string;
|
|
16
16
|
portfolioDID?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Hex of the full raw encoded `ExtrinsicPayload` (see `Transaction.rawExtrinsicPayload`).
|
|
19
|
+
* Surfaced alongside the MPC/combine `signableHex` so consumers that need the raw payload
|
|
20
|
+
* (e.g. the HSM `polyx/signtx` path) can use it for extrinsics larger than 256 bytes, where
|
|
21
|
+
* the signing bytes are the blake2_256 hash rather than the raw payload.
|
|
22
|
+
*/
|
|
23
|
+
rawSignableHex?: string;
|
|
17
24
|
}
|
|
18
25
|
/**
|
|
19
26
|
* Settlement type for Polyx transactions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAErG;;;GAGG;AACH,MAAM,WAAW,MAAO,SAAQ,SAAS,CAAC,MAAM;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/iface.js
CHANGED
|
@@ -36,4 +36,4 @@ exports.MethodNames = {
|
|
|
36
36
|
AddAndAffirmWithMediators: 'addAndAffirmWithMediators',
|
|
37
37
|
RejectInstruction: 'rejectInstruction',
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVFQUEyRDtBQXdCM0Q7O0dBRUc7QUFDSCxJQUFZLGNBRVg7QUFGRCxXQUFZLGNBQWM7SUFDeEIsNkRBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQUZXLGNBQWMsOEJBQWQsY0FBYyxRQUV6QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxhQUVYO0FBRkQsV0FBWSxhQUFhO0lBQ3ZCLG9DQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGVyxhQUFhLDZCQUFiLGFBQWEsUUFFeEI7QUFFRDs7O0dBR0c7QUFDVSxRQUFBLFdBQVcsR0FBRztJQUN6QiwwQ0FBMEM7SUFDMUMsR0FBRyw4QkFBUyxDQUFDLFdBQVc7SUFFeEI7Ozs7T0FJRztJQUNILGtCQUFrQixFQUFFLHVCQUFnQztJQUVwRDs7T0FFRztJQUNILGVBQWUsRUFBRSxpQkFBMEI7SUFFM0MseUJBQXlCLEVBQUUsMkJBQW9DO0lBRS9ELGlCQUFpQixFQUFFLG1CQUE0QjtDQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgSW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB7IERlY29kZWRVbnNpZ25lZFR4IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBbnlKc29uID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB7IFtrZXk6IHN0cmluZ106IEFueUpzb24gfSB8IEFycmF5PEFueUpzb24+O1xuXG4vKipcbiAqIEV4dGVuZGVkIFR4RGF0YSBpbnRlcmZhY2UgZm9yIFBvbHl4IHRyYW5zYWN0aW9uc1xuICogQWRkcyBhc3NldElkIGZpZWxkIHRvIHRoZSBiYXNlIFR4RGF0YSBpbnRlcmZhY2UgZnJvbSBhYnN0cmFjdC1zdWJzdHJhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEgZXh0ZW5kcyBJbnRlcmZhY2UuVHhEYXRhIHtcbiAgYXNzZXRJZD86IHN0cmluZztcbiAgZnJvbURJRD86IHN0cmluZztcbiAgdG9ESUQ/OiBzdHJpbmc7XG4gIGluc3RydWN0aW9uSWQ/OiBzdHJpbmc7XG4gIHBvcnRmb2xpb0RJRD86IHN0cmluZztcbiAgLyoqXG4gICAqIEhleCBvZiB0aGUgZnVsbCByYXcgZW5jb2RlZCBgRXh0cmluc2ljUGF5bG9hZGAgKHNlZSBgVHJhbnNhY3Rpb24ucmF3RXh0cmluc2ljUGF5bG9hZGApLlxuICAgKiBTdXJmYWNlZCBhbG9uZ3NpZGUgdGhlIE1QQy9jb21iaW5lIGBzaWduYWJsZUhleGAgc28gY29uc3VtZXJzIHRoYXQgbmVlZCB0aGUgcmF3IHBheWxvYWRcbiAgICogKGUuZy4gdGhlIEhTTSBgcG9seXgvc2lnbnR4YCBwYXRoKSBjYW4gdXNlIGl0IGZvciBleHRyaW5zaWNzIGxhcmdlciB0aGFuIDI1NiBieXRlcywgd2hlcmVcbiAgICogdGhlIHNpZ25pbmcgYnl0ZXMgYXJlIHRoZSBibGFrZTJfMjU2IGhhc2ggcmF0aGVyIHRoYW4gdGhlIHJhdyBwYXlsb2FkLlxuICAgKi9cbiAgcmF3U2lnbmFibGVIZXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2V0dGxlbWVudCB0eXBlIGZvciBQb2x5eCB0cmFuc2FjdGlvbnNcbiAqL1xuZXhwb3J0IGVudW0gU2V0dGxlbWVudFR5cGUge1xuICBTZXR0bGVPbkFmZmlybWF0aW9uID0gJ1NldHRsZU9uQWZmaXJtYXRpb24nLFxufVxuXG4vKipcbiAqIFBvcnRmb2xpbyBraW5kIGZvciBQb2x5eCB0cmFuc2FjdGlvbnNcbiAqL1xuZXhwb3J0IGVudW0gUG9ydGZvbGlvS2luZCB7XG4gIERlZmF1bHQgPSAnRGVmYXVsdCcsXG59XG5cbi8qKlxuICogTWV0aG9kIG5hbWVzIGZvciBQb2x5eCB0cmFuc2FjdGlvbnMuXG4gKiBFeHRlbmRzIHRoZSBiYXNlIE1ldGhvZE5hbWVzIGZyb20gSW50ZXJmYWNlIHdpdGggYWRkaXRpb25hbCBQb2x5eC1zcGVjaWZpYyBtZXRob2RzLlxuICovXG5leHBvcnQgY29uc3QgTWV0aG9kTmFtZXMgPSB7XG4gIC8vIEluY2x1ZGUgYWxsIHZhbHVlcyBmcm9tIHRoZSBiYXNlIG9iamVjdFxuICAuLi5JbnRlcmZhY2UuTWV0aG9kTmFtZXMsXG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIERlY2VudHJhbGl6ZWQgSWRlbnRpZmllciAoRElEKSBhbG9uZyB3aXRoIEN1c3RvbWVyIER1ZSBEaWxpZ2VuY2UgKENERCkgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLnBvbHltZXNoLm5ldHdvcmsvc2RrLWRvY3MvZW51bXMvR2VuZXJhdGVkL1R5cGVzL0lkZW50aXR5VHgvI2NkZHJlZ2lzdGVyZGlkd2l0aGNkZFxuICAgKi9cbiAgUmVnaXN0ZXJEaWRXaXRoQ0REOiAnY2RkUmVnaXN0ZXJEaWRXaXRoQ2RkJyBhcyBjb25zdCxcblxuICAvKipcbiAgICogUHJlLWFwcHJvdmVzIGFuIGFzc2V0LlxuICAgKi9cbiAgUHJlQXBwcm92ZUFzc2V0OiAncHJlQXBwcm92ZUFzc2V0JyBhcyBjb25zdCxcblxuICBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzOiAnYWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9ycycgYXMgY29uc3QsXG5cbiAgUmVqZWN0SW5zdHJ1Y3Rpb246ICdyZWplY3RJbnN0cnVjdGlvbicgYXMgY29uc3QsXG59IGFzIGNvbnN0O1xuXG4vLyBDcmVhdGUgYSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUga2V5cyBvZiB0aGlzIG9iamVjdFxuZXhwb3J0IHR5cGUgTWV0aG9kTmFtZXNUeXBlID0ga2V5b2YgdHlwZW9mIE1ldGhvZE5hbWVzO1xuXG4vLyBDcmVhdGUgYSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgdmFsdWVzIG9mIHRoaXMgb2JqZWN0XG5leHBvcnQgdHlwZSBNZXRob2ROYW1lc1ZhbHVlcyA9ICh0eXBlb2YgTWV0aG9kTmFtZXMpW01ldGhvZE5hbWVzVHlwZV07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJEaWRXaXRoQ0REQXJncyBleHRlbmRzIEFyZ3Mge1xuICB0YXJnZXRBY2NvdW50OiBzdHJpbmc7XG4gIHNlY29uZGFyeUtleXM6IFtdO1xuICBleHBpcnk6IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlQXBwcm92ZUFzc2V0QXJncyBleHRlbmRzIEFyZ3Mge1xuICBhc3NldElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3MgZXh0ZW5kcyBBcmdzIHtcbiAgdmVudWVJZDogbnVsbDtcbiAgc2V0dGxlbWVudFR5cGU6IFNldHRsZW1lbnRUeXBlLlNldHRsZU9uQWZmaXJtYXRpb247XG4gIHRyYWRlRGF0ZTogbnVsbDtcbiAgdmFsdWVEYXRlOiBudWxsO1xuICBsZWdzOiBBcnJheTx7XG4gICAgZnVuZ2libGU6IHtcbiAgICAgIHNlbmRlcjogeyBkaWQ6IHN0cmluZzsga2luZDogUG9ydGZvbGlvS2luZC5EZWZhdWx0IH07XG4gICAgICByZWNlaXZlcjogeyBkaWQ6IHN0cmluZzsga2luZDogUG9ydGZvbGlvS2luZC5EZWZhdWx0IH07XG4gICAgICBhc3NldElkOiBzdHJpbmc7XG4gICAgICBhbW91bnQ6IHN0cmluZztcbiAgICB9O1xuICB9PjtcbiAgcG9ydGZvbGlvczogQXJyYXk8eyBkaWQ6IHN0cmluZzsga2luZDogUG9ydGZvbGlvS2luZC5EZWZhdWx0IH0+O1xuICBpbnN0cnVjdGlvbk1lbW86IHN0cmluZztcbiAgbWVkaWF0b3JzOiBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXJBcmdzIGV4dGVuZHMgQXJncyB7XG4gIGlkOiBzdHJpbmc7XG4gIHBvcnRmb2xpbzogeyBkaWQ6IHN0cmluZzsga2luZDogUG9ydGZvbGlvS2luZC5EZWZhdWx0IH07XG4gIG51bWJlck9mQXNzZXRzOiB7IGZ1bmdpYmxlOiBudW1iZXI7IG5vbkZ1bmdpYmxlOiBudW1iZXI7IG9mZkNoYWluOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeE1ldGhvZCBleHRlbmRzIE9taXQ8SW50ZXJmYWNlLlR4TWV0aG9kLCAnYXJncycgfCAnbmFtZSc+IHtcbiAgYXJnczpcbiAgICB8IEludGVyZmFjZS5UcmFuc2ZlckFyZ3NcbiAgICB8IEludGVyZmFjZS5UcmFuc2ZlckFsbEFyZ3NcbiAgICB8IEludGVyZmFjZS5BZGRTdGFrZUFyZ3NcbiAgICB8IEludGVyZmFjZS5SZW1vdmVTdGFrZUFyZ3NcbiAgICB8IEludGVyZmFjZS5Cb25kQXJnc1xuICAgIHwgSW50ZXJmYWNlLkJvbmRFeHRyYUFyZ3NcbiAgICB8IEludGVyZmFjZS5Ob21pbmF0ZUFyZ3NcbiAgICB8IEludGVyZmFjZS5DaGlsbEFyZ3NcbiAgICB8IEludGVyZmFjZS5VbmJvbmRBcmdzXG4gICAgfCBJbnRlcmZhY2UuV2l0aGRyYXdVbmJvbmRlZEFyZ3NcbiAgICB8IEludGVyZmFjZS5CYXRjaEFyZ3NcbiAgICB8IFJlZ2lzdGVyRGlkV2l0aENEREFyZ3NcbiAgICB8IFByZUFwcHJvdmVBc3NldEFyZ3NcbiAgICB8IEFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnNBcmdzXG4gICAgfCBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXJBcmdzO1xuICBuYW1lOiBNZXRob2ROYW1lc1ZhbHVlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvZGVkVHggZXh0ZW5kcyBPbWl0PERlY29kZWRVbnNpZ25lZFR4LCAnbWV0aG9kJz4ge1xuICBtZXRob2Q6IFR4TWV0aG9kO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvbmRBcmdzIGV4dGVuZHMgQXJncyB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNvbnRyb2xsZXI6IHN0cmluZztcbiAgcGF5ZWU6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9uZEV4dHJhQXJncyBleHRlbmRzIEFyZ3Mge1xuICBtYXhBZGRpdGlvbmFsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9taW5hdGVBcmdzIGV4dGVuZHMgQXJncyB7XG4gIHRhcmdldHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoQ2FsbE9iamVjdCB7XG4gIG1ldGhvZD86IHN0cmluZztcbiAgY2FsbEluZGV4Pzogc3RyaW5nO1xuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXRjaEFyZ3Mge1xuICBjYWxsczogQmF0Y2hDYWxsT2JqZWN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5ib25kQXJncyBleHRlbmRzIEFyZ3Mge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhkcmF3VW5ib25kZWRBcmdzIGV4dGVuZHMgQXJncyB7XG4gIG51bVNsYXNoaW5nU3BhbnM6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAkB,MAAM,gCAAgC,CAAC;AAKrG,OAAO,EAIL,MAAM,EAGP,MAAM,SAAS,CAAC;AAGjB,qBAAa,WAAY,SAAQ,oBAAoB;IACnD;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B,kBAAkB;IAClB,MAAM,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAkB,MAAM,gCAAgC,CAAC;AAKrG,OAAO,EAIL,MAAM,EAGP,MAAM,SAAS,CAAC;AAGjB,qBAAa,WAAY,SAAQ,oBAAoB;IACnD;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA4DhB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAoB5B,OAAO,CAAC,2CAA2C;IAsBnD,OAAO,CAAC,wCAAwC;IAmBhD,OAAO,CAAC,kCAAkC;IAqB1C,OAAO,CAAC,0CAA0C;CAiBnD"}
|
|
@@ -62,6 +62,7 @@ class Transaction extends abstract_substrate_1.Transaction {
|
|
|
62
62
|
eraPeriod: decodedTx.eraPeriod,
|
|
63
63
|
chainName: this._chainName,
|
|
64
64
|
tip: decodedTx.tip ? Number(decodedTx.tip) : 0,
|
|
65
|
+
rawSignableHex: Buffer.from(this.rawExtrinsicPayload).toString('hex'),
|
|
65
66
|
};
|
|
66
67
|
const txMethod = decodedTx.method.args;
|
|
67
68
|
if (this.type === sdk_core_1.TransactionType.WalletInitialization) {
|
|
@@ -93,7 +94,9 @@ class Transaction extends abstract_substrate_1.Transaction {
|
|
|
93
94
|
result.amount = '0'; // Reject instruction does not transfer any value
|
|
94
95
|
}
|
|
95
96
|
else {
|
|
96
|
-
|
|
97
|
+
const baseResult = super.toJson();
|
|
98
|
+
baseResult.rawSignableHex = result.rawSignableHex;
|
|
99
|
+
return baseResult;
|
|
97
100
|
}
|
|
98
101
|
return result;
|
|
99
102
|
}
|
|
@@ -190,4 +193,4 @@ class Transaction extends abstract_substrate_1.Transaction {
|
|
|
190
193
|
}
|
|
191
194
|
}
|
|
192
195
|
exports.Transaction = Transaction;
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVFQUFxRztBQUNyRyxtREFBZ0Y7QUFDaEYsc0VBQWtFO0FBQ2xFLCtDQUFrRDtBQUNsRCxpREFBdUQ7QUFTdkQsb0RBQWlDO0FBRWpDLE1BQWEsV0FBWSxTQUFRLGdDQUFvQjtJQUNuRDs7Ozs7O09BTUc7SUFDTyxnQkFBZ0I7UUFDeEIsT0FBTyxlQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxPQUFlO1FBQzNDLGlFQUFpRTtRQUNqRSxJQUFJLFVBQThCLENBQUM7UUFDbkMsZUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLElBQUksSUFBSSxZQUFZLG1CQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDMUQsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywrQkFBK0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLDJCQUFNLEVBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lB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QixLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sMENBQTBDLENBQUMsU0FBb0I7UUFDckUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFvQyxDQUFDO1FBQ3ZFLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLGlEQUFpRDtRQUVwRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixPQUFPLEVBQUUsWUFBWTtZQUNyQixLQUFLO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtTQUM1QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixPQUFPLEVBQUUsWUFBWTtZQUNyQixLQUFLO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsTUQsa0NBa01DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgU3Vic3RyYXRlVHJhbnNhY3Rpb24sIHV0aWxzLCBLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBjb25zdHJ1Y3QsIGRlY29kZSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IGRlY29kZUFkZHJlc3MgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBjb2lucywgUG9seXhDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBEZWNvZGVkVHgsXG4gIFJlZ2lzdGVyRGlkV2l0aENEREFyZ3MsXG4gIFByZUFwcHJvdmVBc3NldEFyZ3MsXG4gIFR4RGF0YSxcbiAgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3MsXG4gIFJlamVjdEluc3RydWN0aW9uQnVpbGRlckFyZ3MsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHBvbHl4VXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIFN1YnN0cmF0ZVRyYW5zYWN0aW9uIHtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBnZXRBZGRyZXNzRm9ybWF0IG1ldGhvZCB0byByZXR1cm4gZGlmZmVyZW50IHZhbHVlcyBiYXNlZCBvbiBuZXR3b3JrIHR5cGVcbiAgICogUmV0dXJucyAxMiBmb3IgbWFpbm5ldCBhbmQgNDIgZm9yIHRlc3RuZXRcbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGFkZHJlc3MgZm9ybWF0IHRvIHVzZVxuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRBZGRyZXNzRm9ybWF0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBvbHl4VXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZmluZCBhIHRva2VuIG5hbWUgYnkgYXNzZXRJZFxuICAgKiBAcGFyYW0gYXNzZXRJZCBUaGUgYXNzZXRJZCB0byBzZWFyY2ggZm9yXG4gICAqIEByZXR1cm5zIFRoZSB0b2tlbiBuYW1lIGlmIGZvdW5kXG4gICAqIEB0aHJvd3Mge0ludmFsaWRUcmFuc2FjdGlvbkVycm9yfSBJZiBubyBtYXRjaGluZyB0b2tlbiBpcyBmb3VuZFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRUb2tlbk5hbWVCeUFzc2V0SWQoYXNzZXRJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBTZWFyY2ggdGhyb3VnaCBhbGwgY29pbnMgdG8gZmluZCB0aGUgb25lIHdpdGggbWF0Y2hpbmcgYXNzZXRJZFxuICAgIGxldCBmb3VuZFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29pbnMuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBQb2x5eENvaW4gJiYgY29pbi5hc3NldElkID09PSBhc3NldElkKSB7XG4gICAgICAgIGZvdW5kVG9rZW4gPSBjb2luLm5hbWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWZvdW5kVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgTm8gdG9rZW4gZm91bmQgZm9yIGFzc2V0SWQ6ICR7YXNzZXRJZH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmRUb2tlbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZGVjb2RlKHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICBpc0ltbW9ydGFsRXJhOiB1dGlscy5pc1plcm9IZXgodGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24uZXJhKSxcbiAgICB9KSBhcyB1bmtub3duIGFzIERlY29kZWRUeDtcblxuICAgIGNvbnN0IHJlc3VsdDogVHhEYXRhID0ge1xuICAgICAgaWQ6IGNvbnN0cnVjdC50eEhhc2godGhpcy50b0Jyb2FkY2FzdEZvcm1hdCgpKSxcbiAgICAgIHNlbmRlcjogZGVjb2RlZFR4LmFkZHJlc3MsXG4gICAgICByZWZlcmVuY2VCbG9jazogZGVjb2RlZFR4LmJsb2NrSGFzaCxcbiAgICAgIGJsb2NrTnVtYmVyOiBkZWNvZGVkVHguYmxvY2tOdW1iZXIsXG4gICAgICBnZW5lc2lzSGFzaDogZGVjb2RlZFR4LmdlbmVzaXNIYXNoLFxuICAgICAgbm9uY2U6IGRlY29kZWRUeC5ub25jZSxcbiAgICAgIHNwZWNWZXJzaW9uOiBkZWNvZGVkVHguc3BlY1ZlcnNpb24sXG4gICAgICB0cmFuc2FjdGlvblZlcnNpb246IGRlY29kZWRUeC50cmFuc2FjdGlvblZlcnNpb24sXG4gICAgICBlcmFQZXJpb2Q6IGRlY29kZWRUeC5lcmFQZXJpb2QsXG4gICAgICBjaGFpbk5hbWU6IHRoaXMuX2NoYWluTmFtZSxcbiAgICAgIHRpcDogZGVjb2RlZFR4LnRpcCA/IE51bWJlcihkZWNvZGVkVHgudGlwKSA6IDAsXG4gICAgfTtcblxuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzO1xuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbikge1xuICAgICAgY29uc3QgeyB0YXJnZXRBY2NvdW50IH0gPSB0eE1ldGhvZCBhcyBSZWdpc3RlckRpZFdpdGhDRERBcmdzO1xuICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0YXJnZXRBY2NvdW50KSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSk7XG4gICAgICByZXN1bHQudG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHRoaXMuZ2V0QWRkcmVzc0Zvcm1hdCgpKTtcbiAgICAgIHJlc3VsdC5hbW91bnQgPSAnMCc7IC8vIFJlZ2lzdGVyRGlkV2l0aENERCBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRydXN0TGluZSkge1xuICAgICAgY29uc3QgeyBhc3NldElkIH0gPSB0eE1ldGhvZCBhcyBQcmVBcHByb3ZlQXNzZXRBcmdzO1xuICAgICAgcmVzdWx0LmFzc2V0SWQgPSBhc3NldElkO1xuICAgICAgcmVzdWx0LnNlbmRlciA9IGRlY29kZWRUeC5hZGRyZXNzO1xuICAgICAgcmVzdWx0LmFtb3VudCA9ICcwJzsgLy8gUHJlLWFwcHJvdmFsIGRvZXMgbm90IHRyYW5zZmVyIGFueSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuKSB7XG4gICAgICBjb25zdCBzZW5kVG9rZW5BcmdzID0gdHhNZXRob2QgYXMgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3M7XG4gICAgICByZXN1bHQuZnJvbURJRCA9IHNlbmRUb2tlbkFyZ3MubGVnc1swXS5mdW5naWJsZS5zZW5kZXIuZGlkO1xuICAgICAgcmVzdWx0LnRvRElEID0gc2VuZFRva2VuQXJncy5sZWdzWzBdLmZ1bmdpYmxlLnJlY2VpdmVyLmRpZDtcbiAgICAgIHJlc3VsdC5hbW91bnQgPSBzZW5kVG9rZW5BcmdzLmxlZ3NbMF0uZnVuZ2libGUuYW1vdW50LnRvU3RyaW5nKCk7XG4gICAgICByZXN1bHQuYXNzZXRJZCA9IHNlbmRUb2tlbkFyZ3MubGVnc1swXS5mdW5naWJsZS5hc3NldElkO1xuICAgICAgcmVzdWx0Lm1lbW8gPSBzZW5kVG9rZW5BcmdzLmluc3RydWN0aW9uTWVtbztcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlJlamVjdEluc3RydWN0aW9uKSB7XG4gICAgICBjb25zdCByZWplY3RJbnN0cnVjdGlvbkFyZ3MgPSB0eE1ldGhvZCBhcyBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXJBcmdzO1xuICAgICAgcmVzdWx0Lmluc3RydWN0aW9uSWQgPSByZWplY3RJbnN0cnVjdGlvbkFyZ3MuaWQgYXMgc3RyaW5nO1xuICAgICAgcmVzdWx0LnBvcnRmb2xpb0RJRCA9IHJlamVjdEluc3RydWN0aW9uQXJncy5wb3J0Zm9saW8uZGlkIGFzIHN0cmluZztcbiAgICAgIHJlc3VsdC5hbW91bnQgPSAnMCc7IC8vIFJlamVjdCBpbnN0cnVjdGlvbiBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN1cGVyLnRvSnNvbigpIGFzIFR4RGF0YTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgc3VwZXIubG9hZElucHV0c0FuZE91dHB1dHMoKTtcblxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGRlY29kZSh0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgaXNJbW1vcnRhbEVyYTogdXRpbHMuaXNaZXJvSGV4KHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLmVyYSksXG4gICAgfSkgYXMgdW5rbm93biBhcyBEZWNvZGVkVHg7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclJlZ2lzdGVyRGlkV2l0aENERChkZWNvZGVkVHgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJ1c3RMaW5lKSB7XG4gICAgICB0aGlzLmRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JQcmVBcHByb3ZlQXNzZXQoZGVjb2RlZFR4KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbikge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yU2VuZFRva2VuKGRlY29kZWRUeCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5SZWplY3RJbnN0cnVjdGlvbikge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUmVqZWN0SW5zdHJ1Y3Rpb24oZGVjb2RlZFR4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JSZWdpc3RlckRpZFdpdGhDREQoZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBSZWdpc3RlckRpZFdpdGhDRERBcmdzO1xuICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKHR4TWV0aG9kLnRhcmdldEFjY291bnQpKS50b1N0cmluZygnaGV4JyksXG4gICAgfSk7XG4gICAgY29uc3QgdG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHRoaXMuZ2V0QWRkcmVzc0Zvcm1hdCgpKTtcbiAgICBjb25zdCB2YWx1ZSA9ICcwJztcbiAgICBjb25zdCBmcm9tID0gZGVjb2RlZFR4LmFkZHJlc3M7XG5cbiAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBmcm9tLFxuICAgICAgdmFsdWUsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogdG8sXG4gICAgICB2YWx1ZSxcbiAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclByZUFwcHJvdmVBc3NldChkZWNvZGVkVHg6IERlY29kZWRUeCkge1xuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzIGFzIFByZUFwcHJvdmVBc3NldEFyZ3M7XG4gICAgY29uc3Qgc2VuZGVyID0gZGVjb2RlZFR4LmFkZHJlc3M7XG4gICAgY29uc3QgdmFsdWUgPSAnMCc7IC8vIFByZS1hcHByb3ZhbCBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcbiAgICBjb25zdCB0b2tlbk5hbWUgPSB0aGlzLmdldFRva2VuTmFtZUJ5QXNzZXRJZCh0eE1ldGhvZC5hc3NldElkKTtcblxuICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHNlbmRlcixcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdG9rZW5OYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHNlbmRlciwgLy8gSW4gcHJlLWFwcHJvdmFsLCB0aGUgb3V0cHV0IGlzIHRoZSBzYW1lIGFzIHRoZSBpbnB1dFxuICAgICAgdmFsdWUsXG4gICAgICBjb2luOiB0b2tlbk5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JTZW5kVG9rZW4oZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzQXJncztcbiAgICBjb25zdCBmcm9tRElEID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5zZW5kZXIuZGlkO1xuICAgIGNvbnN0IHRvRElEID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5yZWNlaXZlci5kaWQ7XG4gICAgY29uc3QgYW1vdW50ID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5hbW91bnQudG9TdHJpbmcoKTtcbiAgICBjb25zdCBhc3NldElkID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5hc3NldElkO1xuICAgIGNvbnN0IHRva2VuTmFtZSA9IHRoaXMuZ2V0VG9rZW5OYW1lQnlBc3NldElkKGFzc2V0SWQpO1xuXG4gICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogZnJvbURJRCxcbiAgICAgIHZhbHVlOiBhbW91bnQsXG4gICAgICBjb2luOiB0b2tlbk5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogdG9ESUQsXG4gICAgICB2YWx1ZTogYW1vdW50LFxuICAgICAgY29pbjogdG9rZW5OYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUmVqZWN0SW5zdHJ1Y3Rpb24oZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXJBcmdzO1xuICAgIGNvbnN0IHBvcnRmb2xpb0RJRCA9IHR4TWV0aG9kLnBvcnRmb2xpby5kaWQ7XG4gICAgY29uc3QgdmFsdWUgPSAnMCc7IC8vIFJlamVjdCBpbnN0cnVjdGlvbiBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcblxuICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHBvcnRmb2xpb0RJRCxcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHBvcnRmb2xpb0RJRCxcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVFQUFxRztBQUNyRyxtREFBZ0Y7QUFDaEYsc0VBQWtFO0FBQ2xFLCtDQUFrRDtBQUNsRCxpREFBdUQ7QUFTdkQsb0RBQWlDO0FBRWpDLE1BQWEsV0FBWSxTQUFRLGdDQUFvQjtJQUNuRDs7Ozs7O09BTUc7SUFDTyxnQkFBZ0I7UUFDeEIsT0FBTyxlQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxPQUFlO1FBQzNDLGlFQUFpRTtRQUNqRSxJQUFJLFVBQThCLENBQUM7UUFDbkMsZUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLElBQUksSUFBSSxZQUFZLG1CQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDMUQsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywrQkFBK0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLDJCQUFNLEVBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lB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LENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLDBDQUEwQyxDQUFDLFNBQW9CO1FBQ3JFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBb0MsQ0FBQztRQUN2RSxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxpREFBaUQ7UUFFcEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsT0FBTyxFQUFFLFlBQVk7WUFDckIsS0FBSztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7U0FDNUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsT0FBTyxFQUFFLFlBQVk7WUFDckIsS0FBSztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBck1ELGtDQXFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFN1YnN0cmF0ZVRyYW5zYWN0aW9uLCB1dGlscywgS2V5UGFpciB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29uc3RydWN0LCBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBkZWNvZGVBZGRyZXNzIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcnO1xuaW1wb3J0IHsgY29pbnMsIFBvbHl4Q29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgRGVjb2RlZFR4LFxuICBSZWdpc3RlckRpZFdpdGhDRERBcmdzLFxuICBQcmVBcHByb3ZlQXNzZXRBcmdzLFxuICBUeERhdGEsXG4gIEFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnNBcmdzLFxuICBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXJBcmdzLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCBwb2x5eFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBTdWJzdHJhdGVUcmFuc2FjdGlvbiB7XG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgZ2V0QWRkcmVzc0Zvcm1hdCBtZXRob2QgdG8gcmV0dXJuIGRpZmZlcmVudCB2YWx1ZXMgYmFzZWQgb24gbmV0d29yayB0eXBlXG4gICAqIFJldHVybnMgMTIgZm9yIG1haW5uZXQgYW5kIDQyIGZvciB0ZXN0bmV0XG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBhZGRyZXNzIGZvcm1hdCB0byB1c2VcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0QWRkcmVzc0Zvcm1hdCgpOiBudW1iZXIge1xuICAgIHJldHVybiBwb2x5eFV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGZpbmQgYSB0b2tlbiBuYW1lIGJ5IGFzc2V0SWRcbiAgICogQHBhcmFtIGFzc2V0SWQgVGhlIGFzc2V0SWQgdG8gc2VhcmNoIGZvclxuICAgKiBAcmV0dXJucyBUaGUgdG9rZW4gbmFtZSBpZiBmb3VuZFxuICAgKiBAdGhyb3dzIHtJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcn0gSWYgbm8gbWF0Y2hpbmcgdG9rZW4gaXMgZm91bmRcbiAgICovXG4gIHByaXZhdGUgZ2V0VG9rZW5OYW1lQnlBc3NldElkKGFzc2V0SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gU2VhcmNoIHRocm91Z2ggYWxsIGNvaW5zIHRvIGZpbmQgdGhlIG9uZSB3aXRoIG1hdGNoaW5nIGFzc2V0SWRcbiAgICBsZXQgZm91bmRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvaW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgICAgIGlmIChjb2luIGluc3RhbmNlb2YgUG9seXhDb2luICYmIGNvaW4uYXNzZXRJZCA9PT0gYXNzZXRJZCkge1xuICAgICAgICBmb3VuZFRva2VuID0gY29pbi5uYW1lO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFmb3VuZFRva2VuKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYE5vIHRva2VuIGZvdW5kIGZvciBhc3NldElkOiAke2Fzc2V0SWR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kVG9rZW47XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGRlY29kZSh0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgaXNJbW1vcnRhbEVyYTogdXRpbHMuaXNaZXJvSGV4KHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLmVyYSksXG4gICAgfSkgYXMgdW5rbm93biBhcyBEZWNvZGVkVHg7XG5cbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiBjb25zdHJ1Y3QudHhIYXNoKHRoaXMudG9Ccm9hZGNhc3RGb3JtYXQoKSksXG4gICAgICBzZW5kZXI6IGRlY29kZWRUeC5hZGRyZXNzLFxuICAgICAgcmVmZXJlbmNlQmxvY2s6IGRlY29kZWRUeC5ibG9ja0hhc2gsXG4gICAgICBibG9ja051bWJlcjogZGVjb2RlZFR4LmJsb2NrTnVtYmVyLFxuICAgICAgZ2VuZXNpc0hhc2g6IGRlY29kZWRUeC5nZW5lc2lzSGFzaCxcbiAgICAgIG5vbmNlOiBkZWNvZGVkVHgubm9uY2UsXG4gICAgICBzcGVjVmVyc2lvbjogZGVjb2RlZFR4LnNwZWNWZXJzaW9uLFxuICAgICAgdHJhbnNhY3Rpb25WZXJzaW9uOiBkZWNvZGVkVHgudHJhbnNhY3Rpb25WZXJzaW9uLFxuICAgICAgZXJhUGVyaW9kOiBkZWNvZGVkVHguZXJhUGVyaW9kLFxuICAgICAgY2hhaW5OYW1lOiB0aGlzLl9jaGFpbk5hbWUsXG4gICAgICB0aXA6IGRlY29kZWRUeC50aXAgPyBOdW1iZXIoZGVjb2RlZFR4LnRpcCkgOiAwLFxuICAgICAgcmF3U2lnbmFibGVIZXg6IEJ1ZmZlci5mcm9tKHRoaXMucmF3RXh0cmluc2ljUGF5bG9hZCkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG5cbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncztcbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIGNvbnN0IHsgdGFyZ2V0QWNjb3VudCB9ID0gdHhNZXRob2QgYXMgUmVnaXN0ZXJEaWRXaXRoQ0REQXJncztcbiAgICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModGFyZ2V0QWNjb3VudCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSk7XG4gICAgICByZXN1bHQuYW1vdW50ID0gJzAnOyAvLyBSZWdpc3RlckRpZFdpdGhDREQgZG9lcyBub3QgdHJhbnNmZXIgYW55IHZhbHVlXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcnVzdExpbmUpIHtcbiAgICAgIGNvbnN0IHsgYXNzZXRJZCB9ID0gdHhNZXRob2QgYXMgUHJlQXBwcm92ZUFzc2V0QXJncztcbiAgICAgIHJlc3VsdC5hc3NldElkID0gYXNzZXRJZDtcbiAgICAgIHJlc3VsdC5zZW5kZXIgPSBkZWNvZGVkVHguYWRkcmVzcztcbiAgICAgIHJlc3VsdC5hbW91bnQgPSAnMCc7IC8vIFByZS1hcHByb3ZhbCBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbikge1xuICAgICAgY29uc3Qgc2VuZFRva2VuQXJncyA9IHR4TWV0aG9kIGFzIEFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnNBcmdzO1xuICAgICAgcmVzdWx0LmZyb21ESUQgPSBzZW5kVG9rZW5BcmdzLmxlZ3NbMF0uZnVuZ2libGUuc2VuZGVyLmRpZDtcbiAgICAgIHJlc3VsdC50b0RJRCA9IHNlbmRUb2tlbkFyZ3MubGVnc1swXS5mdW5naWJsZS5yZWNlaXZlci5kaWQ7XG4gICAgICByZXN1bHQuYW1vdW50ID0gc2VuZFRva2VuQXJncy5sZWdzWzBdLmZ1bmdpYmxlLmFtb3VudC50b1N0cmluZygpO1xuICAgICAgcmVzdWx0LmFzc2V0SWQgPSBzZW5kVG9rZW5BcmdzLmxlZ3NbMF0uZnVuZ2libGUuYXNzZXRJZDtcbiAgICAgIHJlc3VsdC5tZW1vID0gc2VuZFRva2VuQXJncy5pbnN0cnVjdGlvbk1lbW87XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5SZWplY3RJbnN0cnVjdGlvbikge1xuICAgICAgY29uc3QgcmVqZWN0SW5zdHJ1Y3Rpb25BcmdzID0gdHhNZXRob2QgYXMgUmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyQXJncztcbiAgICAgIHJlc3VsdC5pbnN0cnVjdGlvbklkID0gcmVqZWN0SW5zdHJ1Y3Rpb25BcmdzLmlkIGFzIHN0cmluZztcbiAgICAgIHJlc3VsdC5wb3J0Zm9saW9ESUQgPSByZWplY3RJbnN0cnVjdGlvbkFyZ3MucG9ydGZvbGlvLmRpZCBhcyBzdHJpbmc7XG4gICAgICByZXN1bHQuYW1vdW50ID0gJzAnOyAvLyBSZWplY3QgaW5zdHJ1Y3Rpb24gZG9lcyBub3QgdHJhbnNmZXIgYW55IHZhbHVlXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGJhc2VSZXN1bHQgPSBzdXBlci50b0pzb24oKSBhcyBUeERhdGE7XG4gICAgICBiYXNlUmVzdWx0LnJhd1NpZ25hYmxlSGV4ID0gcmVzdWx0LnJhd1NpZ25hYmxlSGV4O1xuICAgICAgcmV0dXJuIGJhc2VSZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIHN1cGVyLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICBjb25zdCBkZWNvZGVkVHggPSBkZWNvZGUodGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgIGlzSW1tb3J0YWxFcmE6IHV0aWxzLmlzWmVyb0hleCh0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbi5lcmEpLFxuICAgIH0pIGFzIHVua25vd24gYXMgRGVjb2RlZFR4O1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKSB7XG4gICAgICB0aGlzLmRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JSZWdpc3RlckRpZFdpdGhDREQoZGVjb2RlZFR4KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRydXN0TGluZSkge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUHJlQXBwcm92ZUFzc2V0KGRlY29kZWRUeCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW4pIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclNlbmRUb2tlbihkZWNvZGVkVHgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuUmVqZWN0SW5zdHJ1Y3Rpb24pIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclJlamVjdEluc3RydWN0aW9uKGRlY29kZWRUeCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUmVnaXN0ZXJEaWRXaXRoQ0REKGRlY29kZWRUeDogRGVjb2RlZFR4KSB7XG4gICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgUmVnaXN0ZXJEaWRXaXRoQ0REQXJncztcbiAgICBjb25zdCBrZXlwYWlyRGVzdCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC50YXJnZXRBY2NvdW50KSkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH0pO1xuICAgIGNvbnN0IHRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSk7XG4gICAgY29uc3QgdmFsdWUgPSAnMCc7XG4gICAgY29uc3QgZnJvbSA9IGRlY29kZWRUeC5hZGRyZXNzO1xuXG4gICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogZnJvbSxcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHRvLFxuICAgICAgdmFsdWUsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JQcmVBcHByb3ZlQXNzZXQoZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBQcmVBcHByb3ZlQXNzZXRBcmdzO1xuICAgIGNvbnN0IHNlbmRlciA9IGRlY29kZWRUeC5hZGRyZXNzO1xuICAgIGNvbnN0IHZhbHVlID0gJzAnOyAvLyBQcmUtYXBwcm92YWwgZG9lcyBub3QgdHJhbnNmZXIgYW55IHZhbHVlXG4gICAgY29uc3QgdG9rZW5OYW1lID0gdGhpcy5nZXRUb2tlbk5hbWVCeUFzc2V0SWQodHhNZXRob2QuYXNzZXRJZCk7XG5cbiAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBzZW5kZXIsXG4gICAgICB2YWx1ZSxcbiAgICAgIGNvaW46IHRva2VuTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuX291dHB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBzZW5kZXIsIC8vIEluIHByZS1hcHByb3ZhbCwgdGhlIG91dHB1dCBpcyB0aGUgc2FtZSBhcyB0aGUgaW5wdXRcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdG9rZW5OYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yU2VuZFRva2VuKGRlY29kZWRUeDogRGVjb2RlZFR4KSB7XG4gICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3M7XG4gICAgY29uc3QgZnJvbURJRCA9IHR4TWV0aG9kLmxlZ3NbMF0uZnVuZ2libGUuc2VuZGVyLmRpZDtcbiAgICBjb25zdCB0b0RJRCA9IHR4TWV0aG9kLmxlZ3NbMF0uZnVuZ2libGUucmVjZWl2ZXIuZGlkO1xuICAgIGNvbnN0IGFtb3VudCA9IHR4TWV0aG9kLmxlZ3NbMF0uZnVuZ2libGUuYW1vdW50LnRvU3RyaW5nKCk7XG4gICAgY29uc3QgYXNzZXRJZCA9IHR4TWV0aG9kLmxlZ3NbMF0uZnVuZ2libGUuYXNzZXRJZDtcbiAgICBjb25zdCB0b2tlbk5hbWUgPSB0aGlzLmdldFRva2VuTmFtZUJ5QXNzZXRJZChhc3NldElkKTtcblxuICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IGZyb21ESUQsXG4gICAgICB2YWx1ZTogYW1vdW50LFxuICAgICAgY29pbjogdG9rZW5OYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHRvRElELFxuICAgICAgdmFsdWU6IGFtb3VudCxcbiAgICAgIGNvaW46IHRva2VuTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclJlamVjdEluc3RydWN0aW9uKGRlY29kZWRUeDogRGVjb2RlZFR4KSB7XG4gICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgUmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyQXJncztcbiAgICBjb25zdCBwb3J0Zm9saW9ESUQgPSB0eE1ldGhvZC5wb3J0Zm9saW8uZGlkO1xuICAgIGNvbnN0IHZhbHVlID0gJzAnOyAvLyBSZWplY3QgaW5zdHJ1Y3Rpb24gZG9lcyBub3QgdHJhbnNmZXIgYW55IHZhbHVlXG5cbiAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBwb3J0Zm9saW9ESUQsXG4gICAgICB2YWx1ZSxcbiAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuX291dHB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBwb3J0Zm9saW9ESUQsXG4gICAgICB2YWx1ZSxcbiAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -167,7 +167,7 @@ describe('Polyx Nominate Builder', function () {
|
|
|
167
167
|
.sequenceId({ name: 'Nonce', keyword: 'nonce', value: 15 })
|
|
168
168
|
.fee({ amount: 0, type: 'tip' })
|
|
169
169
|
.material(material);
|
|
170
|
-
return nominateBuilder.build();
|
|
170
|
+
return (await nominateBuilder.build());
|
|
171
171
|
};
|
|
172
172
|
it('should return raw payload bytes when the extrinsic is at most 256 bytes', async () => {
|
|
173
173
|
const tx = await buildNominateTx([validatorAddress, validatorAddress2]);
|
|
@@ -175,13 +175,30 @@ describe('Polyx Nominate Builder', function () {
|
|
|
175
175
|
// small nominate extrinsic stays under the 256-byte threshold, so it is signed as-is
|
|
176
176
|
signablePayload.length.should.be.belowOrEqual(256);
|
|
177
177
|
signablePayload.length.should.not.equal(32);
|
|
178
|
+
// for a sub-256-byte payload, signablePayload is exactly the raw extrinsic payload
|
|
179
|
+
const rawExtrinsicPayload = Buffer.from(tx.rawExtrinsicPayload);
|
|
180
|
+
rawExtrinsicPayload.should.deepEqual(signablePayload);
|
|
181
|
+
// toJson surfaces the full raw payload as rawSignableHex even when it equals signablePayload
|
|
182
|
+
should_1.default.equal(tx.toJson().rawSignableHex, rawExtrinsicPayload.toString('hex'));
|
|
178
183
|
});
|
|
179
184
|
it('should return the 32-byte blake2_256 hash when the extrinsic exceeds 256 bytes', async () => {
|
|
180
|
-
//
|
|
181
|
-
|
|
185
|
+
// Each nominate target adds a 33-byte MultiAddress (1-byte variant + 32-byte account id) on
|
|
186
|
+
// top of 79 bytes of fixed signing-payload overhead (call index, era, nonce, tip,
|
|
187
|
+
// spec/transaction versions, genesis + block hash). So 5 targets stay raw at 244 bytes and
|
|
188
|
+
// 6 already cross to 277 bytes (hashed). 8 would also exceed the threshold; this uses 9 to
|
|
189
|
+
// mirror the multi-nomination scenario from SI-926 with margin (376 bytes).
|
|
190
|
+
const manyValidators = Array(9).fill(validatorAddress);
|
|
182
191
|
const tx = await buildNominateTx(manyValidators);
|
|
183
192
|
const signablePayload = tx.signablePayload;
|
|
184
193
|
should_1.default.equal(signablePayload.length, 32);
|
|
194
|
+
// the raw extrinsic payload stays full-length and diverges from the hashed signablePayload
|
|
195
|
+
const rawExtrinsicPayload = Buffer.from(tx.rawExtrinsicPayload);
|
|
196
|
+
rawExtrinsicPayload.length.should.be.greaterThan(256);
|
|
197
|
+
rawExtrinsicPayload.should.not.deepEqual(signablePayload);
|
|
198
|
+
// signablePayload is the blake2_256 hash of the raw extrinsic payload
|
|
199
|
+
utils_1.default.getSubstrateSigningBytes(tx.rawExtrinsicPayload).should.deepEqual(signablePayload);
|
|
200
|
+
// toJson surfaces the full raw payload as rawSignableHex for the HSM signing path
|
|
201
|
+
should_1.default.equal(tx.toJson().rawSignableHex, rawExtrinsicPayload.toString('hex'));
|
|
185
202
|
});
|
|
186
203
|
// The 256-byte boundary is impractical to hit with a real extrinsic, so exercise the
|
|
187
204
|
// raw-vs-hash decision directly through the shared Substrate signing-bytes helper.
|
|
@@ -206,4 +223,4 @@ describe('Polyx Nominate Builder', function () {
|
|
|
206
223
|
});
|
|
207
224
|
});
|
|
208
225
|
});
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9taW5hdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9ub21pbmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzRUFBdUQ7QUFDdkQsaURBQTRDO0FBQzVDLG9EQUE0QjtBQUM1QiwwQ0FBNEY7QUFDNUYsbURBQXVEO0FBQ3ZELG1FQUEyQztBQUMzQywrQ0FBc0Y7QUFFdEYsUUFBUSxDQUFDLHdCQUF3QixFQUFFO0lBQ2pDLElBQUksT0FBd0IsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVuRSxNQUFNLGFBQWEsR0FBRyxvQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyw4QkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxNQUFNLGlCQUFpQixHQUFHLDhCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWhELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7WUFDcEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsMEJBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUM1QyxFQUFFLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO1lBQzlDLGdCQUFN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QUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFFLGdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7UUFDL0IsRUFBRSxDQUFDLHdEQUF3RCxFQUFFLEdBQUcsRUFBRTtZQUNoRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEQsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxZQUFZLHFCQUFlLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFDN0QsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBUyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0UsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxZQUFZLGtCQUFZLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgTm9taW5hdGVCdWlsZGVyLCBCYXRjaEJ1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCB7IGFjY291bnRzLCBub21pbmF0ZVR4LCBub21pbmF0ZVZhbGlkYXRvcnMsIHN0YWtpbmdUeCB9IGZyb20gJy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdQb2x5eCBOb21pbmF0ZSBCdWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICBsZXQgYnVpbGRlcjogTm9taW5hdGVCdWlsZGVyO1xuICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0cG9seXgnKSk7XG5cbiAgY29uc3Qgc2VuZGVyQWRkcmVzcyA9IGFjY291bnRzLmFjY291bnQxLmFkZHJlc3M7XG4gIGNvbnN0IHZhbGlkYXRvckFkZHJlc3MgPSBub21pbmF0ZVZhbGlkYXRvcnNbMF07XG4gIGNvbnN0IHZhbGlkYXRvckFkZHJlc3MyID0gbm9taW5hdGVWYWxpZGF0b3JzWzFdO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGJ1aWxkZXIgPSBmYWN0b3J5LmdldE5vbWluYXRlQnVpbGRlcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgndHJhbnNhY3Rpb24gdHlwZScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBTdGFraW5nVm90ZSB0cmFuc2FjdGlvbiB0eXBlJywgKCkgPT4ge1xuICAgICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXJbJ3RyYW5zYWN0aW9uVHlwZSddLCBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1ZvdGUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndmFsaWRhdG9ycyBzZXR0ZXIgdmFsaWRhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlamVjdCBlbXB0eSB2YWxpZGF0b3JzIGFycmF5JywgKCkgPT4ge1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBidWlsZGVyLnZhbGlkYXRvcnMoW10pLCAvYXQgbGVhc3QgMS8pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWplY3QgbW9yZSB0aGFuIDE2IHZhbGlkYXRvcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0b29NYW55ID0gQXJyYXkoMTcpLmZpbGwodmFsaWRhdG9yQWRkcmVzcyk7XG4gICAgICBzaG91bGQudGhyb3dzKCgpID0+IGJ1aWxkZXIudmFsaWRhdG9ycyh0b29NYW55KSwgL2F0IG1vc3QgMTYvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IG1hbGZvcm1lZCB2YWxpZGF0b3IgYWRkcmVzc2VzJywgKCkgPT4ge1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBidWlsZGVyLnZhbGlkYXRvcnMoWydub3QtYS12YWxpZC1hZGRyZXNzJ10pLCAvaXMgbm90IGEgd2VsbC1mb3JtZWQvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWNjZXB0IHZhbGlkIHNpbmdsZSB2YWxpZGF0b3InLCAoKSA9PiB7XG4gICAgICBzaG91bGQuZG9lc05vdFRocm93KCgpID0+IGJ1aWxkZXIudmFsaWRhdG9ycyhbdmFsaWRhdG9yQWRkcmVzc10pKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRWYWxpZGF0b3JzKCksIFt2YWxpZGF0b3JBZGRyZXNzXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjY2VwdCBtdWx0aXBsZSB2YWxpZCB2YWxpZGF0b3JzJywgKCkgPT4ge1xuICAgICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBidWlsZGVyLnZhbGlkYXRvcnMoW3ZhbGlkYXRvckFkZHJlc3MsIHZhbGlkYXRvckFkZHJlc3MyXSkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldFZhbGlkYXRvcnMoKSwgW3ZhbGlkYXRvckFkZHJlc3MsIHZhbGlkYXRvckFkZHJlc3MyXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjY2VwdCBleGFjdGx5IDE2IHZhbGlkYXRvcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBleGFjdGx5MTYgPSBBcnJheSgxNikuZmlsbCh2YWxpZGF0b3JBZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci52YWxpZGF0b3JzKGV4YWN0bHkxNikpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYnVpbGQgdW5zaWduZWQgbm9taW5hdGUgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhbiB1bnNpZ25lZCBub21pbmF0ZSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoY29pbnMuZ2V0KCd0cG9seXgnKS5uZXR3b3JrLnR5cGUpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAudmFsaWRhdG9ycyhbdmFsaWRhdG9yQWRkcmVzcywgdmFsaWRhdG9yQWRkcmVzczJdKVxuICAgICAgICAuc2VuZGVyKHsgYWRkcmVzczogc2VuZGVyQWRkcmVzcyB9KVxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKVxuICAgICAgICAuc2VxdWVuY2VJZCh7IG5hbWU6ICdOb25jZScsIGtleXdvcmQ6ICdub25jZScsIHZhbHVlOiAxNSB9KVxuICAgICAgICAuZmVlKHsgYW1vdW50OiAwLCB0eXBlOiAndGlwJyB9KVxuICAgICAgICAubWF0ZXJpYWwobWF0ZXJpYWwpO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5leGlzdCh0eCk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdWb3RlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkIHNpZ25lZCBub21pbmF0ZSB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGEgc2lnbmVkIG5vbWluYXRlIHRyYW5zYWN0aW9uIGZyb20gaGV4JywgKCkgPT4ge1xuICAgICAgY29uc3QgbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChjb2lucy5nZXQoJ3Rwb2x5eCcpLm5ldHdvcmsudHlwZSk7XG4gICAgICBjb25zdCBzaWduZWRCdWlsZGVyID0gZmFjdG9yeS5nZXROb21pbmF0ZUJ1aWxkZXIoKTtcbiAgICAgIHNpZ25lZEJ1aWxkZXIubWF0ZXJpYWwobWF0ZXJpYWwpO1xuICAgICAgc2lnbmVkQnVpbGRlci5mcm9tKG5vbWluYXRlVHguc2lnbmVkKTtcblxuICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHNpZ25lZEJ1aWxkZXIuZ2V0VmFsaWRhdG9ycygpO1xuICAgICAgc2hvdWxkLmV4aXN0KHZhbGlkYXRvcnMpO1xuICAgICAgdmFsaWRhdG9ycy5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZWplY3Qgbm9uLW5vbWluYXRlIG1ldGhvZCBuYW1lJywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9ja0RlY29kZWQgPSB7XG4gICAgICAgIG1ldGhvZDogeyBuYW1lOiAnYm9uZCcsIHBhbGxldDogJ3N0YWtpbmcnLCBhcmdzOiB7fSB9LFxuICAgICAgfTtcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gYnVpbGRlci52YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihtb2NrRGVjb2RlZCBhcyBuZXZlciksIC9JbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGUvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYSByZWFsIGJ1aWx0IG5vbWluYXRlIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChjb2lucy5nZXQoJ3Rwb2x5eCcpLm5ldHdvcmsudHlwZSk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC52YWxpZGF0b3JzKFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXJBZGRyZXNzIH0pXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpXG4gICAgICAgIC5zZXF1ZW5jZUlkKHsgbmFtZTogJ05vbmNlJywga2V5d29yZDogJ25vbmNlJywgdmFsdWU6IDE1IH0pXG4gICAgICAgIC5mZWUoeyBhbW91bnQ6IDAsIHR5cGU6ICd0aXAnIH0pXG4gICAgICAgIC5tYXRlcmlhbChtYXRlcmlhbCk7XG5cbiAgICAgIGNvbnN0IHVuc2lnbmVkVHggPSBidWlsZGVyWydidWlsZFRyYW5zYWN0aW9uJ10oKTtcbiAgICAgIGNvbnN0IGRlY29kZWRUeCA9IGRlY29kZSh1bnNpZ25lZFR4LCB7XG4gICAgICAgIG1ldGFkYXRhUnBjOiBtYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgICAgcmVnaXN0cnk6IGJ1aWxkZXJbJ19yZWdpc3RyeSddLFxuICAgICAgfSk7XG5cbiAgICAgIHNob3VsZC5lcXVhbChkZWNvZGVkVHgubWV0aG9kLm5hbWUsICdub21pbmF0ZScpO1xuICAgICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBidWlsZGVyLnZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncGFyc2UgZnJvbSByYXcgc2lnbmVkIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcGFyc2Ugc2lnbmVkIG5vbWluYXRlIHR4IGFuZCByZWNvdmVyIHZhbGlkYXRvcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHV0aWxzLmdldE1hdGVyaWFsKGNvaW5zLmdldCgndHBvbHl4JykubmV0d29yay50eXBlKTtcbiAgICAgIGNvbnN0IG5ld0J1aWxkZXIgPSBmYWN0b3J5LmdldE5vbWluYXRlQnVpbGRlcigpO1xuICAgICAgbmV3QnVpbGRlci5tYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgICBuZXdCdWlsZGVyLmZyb20obm9taW5hdGVUeC5zaWduZWQpO1xuXG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gbmV3QnVpbGRlci5nZXRWYWxpZGF0b3JzKCk7XG4gICAgICBzaG91bGQuZXhpc3QodmFsaWRhdG9ycyk7XG4gICAgICB2YWxpZGF0b3JzLmxlbmd0aC5zaG91bGQuYmUuZ3JlYXRlclRoYW4oMCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwYXJzZSBmcm9tIHJhdyB1bnNpZ25lZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIHVuc2lnbmVkIG5vbWluYXRlIHR4IGFuZCByZWNvdmVyIHZhbGlkYXRvcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHV0aWxzLmdldE1hdGVyaWFsKGNvaW5zLmdldCgndHBvbHl4JykubmV0d29yay50eXBlKTtcbiAgICAgIC8vIEJ1aWxkIGEgcmVhbCB1bnNpZ25lZCB0eCBmaXJzdCwgdGhlbiBwYXJzZSBpdCBiYWNrXG4gICAgICBjb25zdCBvcmlnaW5hbEJ1aWxkZXIgPSBmYWN0b3J5LmdldE5vbWluYXRlQnVpbGRlcigpO1xuICAgICAgb3JpZ2luYWxCdWlsZGVyXG4gICAgICAgIC52YWxpZGF0b3JzKFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXJBZGRyZXNzIH0pXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpXG4gICAgICAgIC5zZXF1ZW5jZUlkKHsgbmFtZTogJ05vbmNlJywga2V5d29yZDogJ25vbmNlJywgdmFsdWU6IDE1IH0pXG4gICAgICAgIC5mZWUoeyBhbW91bnQ6IDAsIHR5cGU6ICd0aXAnIH0pXG4gICAgICAgIC5tYXRlcmlhbChtYXRlcmlhbCk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgb3JpZ2luYWxCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdIZXggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBjb25zdCBuZXdCdWlsZGVyID0gZmFjdG9yeS5nZXROb21pbmF0ZUJ1aWxkZXIoKTtcbiAgICAgIG5ld0J1aWxkZXIubWF0ZXJpYWwobWF0ZXJpYWwpO1xuICAgICAgbmV3QnVpbGRlci5mcm9tKHJhd0hleCk7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBuZXdCdWlsZGVyLmdldFZhbGlkYXRvcnMoKTtcbiAgICAgIHNob3VsZC5leGlzdCh2YWxpZGF0b3JzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodmFsaWRhdG9ycywgW3ZhbGlkYXRvckFkZHJlc3MsIHZhbGlkYXRvckFkZHJlc3MyXSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyb3VuZC10cmlwJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVidWlsZCBmcm9tIHNlcmlhbGl6ZWQgdW5zaWduZWQgdHJhbnNhY3Rpb24gYW5kIHByZXNlcnZlIHZhbGlkYXRvcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHV0aWxzLmdldE1hdGVyaWFsKGNvaW5zLmdldCgndHBvbHl4JykubmV0d29yay50eXBlKTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsQnVpbGRlciA9IGZhY3RvcnkuZ2V0Tm9taW5hdGVCdWlsZGVyKCk7XG4gICAgICBvcmlnaW5hbEJ1aWxkZXJcbiAgICAgICAgLnZhbGlkYXRvcnMoW3ZhbGlkYXRvckFkZHJlc3MsIHZhbGlkYXRvckFkZHJlc3MyXSlcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IHNlbmRlckFkZHJlc3MgfSlcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMywgbWF4RHVyYXRpb246IDY0IH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJylcbiAgICAgICAgLnNlcXVlbmNlSWQoeyBuYW1lOiAnTm9uY2UnLCBrZXl3b3JkOiAnbm9uY2UnLCB2YWx1ZTogMTUgfSlcbiAgICAgICAgLmZlZSh7IGFtb3VudDogMCwgdHlwZTogJ3RpcCcgfSlcbiAgICAgICAgLm1hdGVyaWFsKG1hdGVyaWFsKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCBvcmlnaW5hbEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd0hleCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIGNvbnN0IHJlYnVpbHRCdWlsZGVyID0gZmFjdG9yeS5nZXROb21pbmF0ZUJ1aWxkZXIoKTtcbiAgICAgIHJlYnVpbHRCdWlsZGVyLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgICAgIHJlYnVpbHRCdWlsZGVyLmZyb20ocmF3SGV4KTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChyZWJ1aWx0QnVpbGRlci5nZXRWYWxpZGF0b3JzKCksIFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2lnbmFibGVQYXlsb2FkIChTdWJzdHJhdGUgMjU2LWJ5dGUgYmxha2UyIHJ1bGUpJywgKCkgPT4ge1xuICAgIGNvbnN0IGJ1aWxkTm9taW5hdGVUeCA9IGFzeW5jICh2YWxpZGF0b3JzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgY29uc3QgbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChjb2lucy5nZXQoJ3Rwb2x5eCcpLm5ldHdvcmsudHlwZSk7XG4gICAgICBjb25zdCBub21pbmF0ZUJ1aWxkZXIgPSBmYWN0b3J5LmdldE5vbWluYXRlQnVpbGRlcigpO1xuICAgICAgbm9taW5hdGVCdWlsZGVyXG4gICAgICAgIC52YWxpZGF0b3JzKHZhbGlkYXRvcnMpXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXJBZGRyZXNzIH0pXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpXG4gICAgICAgIC5zZXF1ZW5jZUlkKHsgbmFtZTogJ05vbmNlJywga2V5d29yZDogJ25vbmNlJywgdmFsdWU6IDE1IH0pXG4gICAgICAgIC5mZWUoeyBhbW91bnQ6IDAsIHR5cGU6ICd0aXAnIH0pXG4gICAgICAgIC5tYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgICByZXR1cm4gbm9taW5hdGVCdWlsZGVyLmJ1aWxkKCk7XG4gICAgfTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHJhdyBwYXlsb2FkIGJ5dGVzIHdoZW4gdGhlIGV4dHJpbnNpYyBpcyBhdCBtb3N0IDI1NiBieXRlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGROb21pbmF0ZVR4KFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pO1xuICAgICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gdHguc2lnbmFibGVQYXlsb2FkO1xuICAgICAgLy8gc21hbGwgbm9taW5hdGUgZXh0cmluc2ljIHN0YXlzIHVuZGVyIHRoZSAyNTYtYnl0ZSB0aHJlc2hvbGQsIHNvIGl0IGlzIHNpZ25lZCBhcy1pc1xuICAgICAgc2lnbmFibGVQYXlsb2FkLmxlbmd0aC5zaG91bGQuYmUuYmVsb3dPckVxdWFsKDI1Nik7XG4gICAgICBzaWduYWJsZVBheWxvYWQubGVuZ3RoLnNob3VsZC5ub3QuZXF1YWwoMzIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIDMyLWJ5dGUgYmxha2UyXzI1NiBoYXNoIHdoZW4gdGhlIGV4dHJpbnNpYyBleGNlZWRzIDI1NiBieXRlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIDYrIHZhbGlkYXRvcnMgKH4zMyBieXRlcyBlYWNoKSBwdXNoZXMgdGhlIG5vbWluYXRlIGV4dHJpbnNpYyBvdmVyIHRoZSAyNTYtYnl0ZSB0aHJlc2hvbGRcbiAgICAgIGNvbnN0IG1hbnlWYWxpZGF0b3JzID0gQXJyYXkoOCkuZmlsbCh2YWxpZGF0b3JBZGRyZXNzKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGROb21pbmF0ZVR4KG1hbnlWYWxpZGF0b3JzKTtcbiAgICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IHR4LnNpZ25hYmxlUGF5bG9hZDtcbiAgICAgIHNob3VsZC5lcXVhbChzaWduYWJsZVBheWxvYWQubGVuZ3RoLCAzMik7XG4gICAgfSk7XG5cbiAgICAvLyBUaGUgMjU2LWJ5dGUgYm91bmRhcnkgaXMgaW1wcmFjdGljYWwgdG8gaGl0IHdpdGggYSByZWFsIGV4dHJpbnNpYywgc28gZXhlcmNpc2UgdGhlXG4gICAgLy8gcmF3LXZzLWhhc2ggZGVjaXNpb24gZGlyZWN0bHkgdGhyb3VnaCB0aGUgc2hhcmVkIFN1YnN0cmF0ZSBzaWduaW5nLWJ5dGVzIGhlbHBlci5cbiAgICBpdCgnc2hvdWxkIGtlZXAgcGF5bG9hZHMgb2YgZXhhY3RseSAyNTYgYnl0ZXMgcmF3IGFuZCBvbmx5IGhhc2ggc3RyaWN0bHkgbGFyZ2VyIG9uZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBhdCA9IHV0aWxzLmdldFN1YnN0cmF0ZVNpZ25pbmdCeXRlcyhuZXcgVWludDhBcnJheSgyNTYpLmZpbGwoNykpO1xuICAgICAgc2hvdWxkLmVxdWFsKGF0Lmxlbmd0aCwgMjU2KTtcbiAgICAgIGF0LnNob3VsZC5kZWVwRXF1YWwoQnVmZmVyLmFsbG9jKDI1NiwgNykpO1xuXG4gICAgICBjb25zdCBiZWxvdyA9IHV0aWxzLmdldFN1YnN0cmF0ZVNpZ25pbmdCeXRlcyhuZXcgVWludDhBcnJheSgyNTUpLmZpbGwoNykpO1xuICAgICAgc2hvdWxkLmVxdWFsKGJlbG93Lmxlbmd0aCwgMjU1KTtcblxuICAgICAgY29uc3QgYWJvdmUgPSB1dGlscy5nZXRTdWJzdHJhdGVTaWduaW5nQnl0ZXMobmV3IFVpbnQ4QXJyYXkoMjU3KS5maWxsKDcpKTtcbiAgICAgIHNob3VsZC5lcXVhbChhYm92ZS5sZW5ndGgsIDMyKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ZhY3Rvcnkgcm91dGluZycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJvdXRlIHJhdyBub21pbmF0ZSBleHRyaW5zaWMgdG8gTm9taW5hdGVCdWlsZGVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRCdWlsZGVyID0gZmFjdG9yeS5mcm9tKG5vbWluYXRlVHguc2lnbmVkKTtcbiAgICAgIHNob3VsZC5vayhyZXNvbHZlZEJ1aWxkZXIgaW5zdGFuY2VvZiBOb21pbmF0ZUJ1aWxkZXIsICdleHBlY3RlZCBOb21pbmF0ZUJ1aWxkZXInKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcm91dGUgYmF0Y2hBbGwgYm9uZCtub21pbmF0ZSB0byBCYXRjaEJ1aWxkZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvbHZlZEJ1aWxkZXIgPSBmYWN0b3J5LmZyb20oc3Rha2luZ1R4LmJhdGNoLmJvbmRBbmROb21pbmF0ZS5zaWduZWQpO1xuICAgICAgc2hvdWxkLm9rKHJlc29sdmVkQnVpbGRlciBpbnN0YW5jZW9mIEJhdGNoQnVpbGRlciwgJ2V4cGVjdGVkIEJhdGNoQnVpbGRlcicpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9taW5hdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9ub21pbmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzRUFBdUQ7QUFDdkQsaURBQTRDO0FBQzVDLG9EQUE0QjtBQUM1QiwwQ0FBOEc7QUFDOUcsbURBQXVEO0FBQ3ZELG1FQUEyQztBQUMzQywrQ0FBc0Y7QUFFdEYsUUFBUSxDQUFDLHdCQUF3QixFQUFFO0lBQ2pDLElBQUksT0FBd0IsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVuRSxNQUFNLGFBQWEsR0FBRyxvQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyw4QkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxNQUFNLGlCQUFpQixHQUFHLDhCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWhELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7WUFDcEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsMEJBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUM1QyxFQUFFLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO1lBQzlDLGdCQUFN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QyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7WUFDaEUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELGdCQUFNLENBQUMsRUFBRSxDQUFDLGVBQWUsWUFBWSxxQkFBZSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1lBQzdELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQVMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdFLGdCQUFNLENBQUMsRUFBRSxDQUFDLGVBQWUsWUFBWSxrQkFBWSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVjb2RlIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIE5vbWluYXRlQnVpbGRlciwgQmF0Y2hCdWlsZGVyLCBQb2x5eFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgeyBhY2NvdW50cywgbm9taW5hdGVUeCwgbm9taW5hdGVWYWxpZGF0b3JzLCBzdGFraW5nVHggfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMnO1xuXG5kZXNjcmliZSgnUG9seXggTm9taW5hdGUgQnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJ1aWxkZXI6IE5vbWluYXRlQnVpbGRlcjtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndHBvbHl4JykpO1xuXG4gIGNvbnN0IHNlbmRlckFkZHJlc3MgPSBhY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzO1xuICBjb25zdCB2YWxpZGF0b3JBZGRyZXNzID0gbm9taW5hdGVWYWxpZGF0b3JzWzBdO1xuICBjb25zdCB2YWxpZGF0b3JBZGRyZXNzMiA9IG5vbWluYXRlVmFsaWRhdG9yc1sxXTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBidWlsZGVyID0gZmFjdG9yeS5nZXROb21pbmF0ZUJ1aWxkZXIoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3RyYW5zYWN0aW9uIHR5cGUnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gU3Rha2luZ1ZvdGUgdHJhbnNhY3Rpb24gdHlwZScsICgpID0+IHtcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyWyd0cmFuc2FjdGlvblR5cGUnXSwgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdWb3RlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3ZhbGlkYXRvcnMgc2V0dGVyIHZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZWplY3QgZW1wdHkgdmFsaWRhdG9ycyBhcnJheScsICgpID0+IHtcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gYnVpbGRlci52YWxpZGF0b3JzKFtdKSwgL2F0IGxlYXN0IDEvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IG1vcmUgdGhhbiAxNiB2YWxpZGF0b3JzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdG9vTWFueSA9IEFycmF5KDE3KS5maWxsKHZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBidWlsZGVyLnZhbGlkYXRvcnModG9vTWFueSksIC9hdCBtb3N0IDE2Lyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBtYWxmb3JtZWQgdmFsaWRhdG9yIGFkZHJlc3NlcycsICgpID0+IHtcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gYnVpbGRlci52YWxpZGF0b3JzKFsnbm90LWEtdmFsaWQtYWRkcmVzcyddKSwgL2lzIG5vdCBhIHdlbGwtZm9ybWVkLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjY2VwdCB2YWxpZCBzaW5nbGUgdmFsaWRhdG9yJywgKCkgPT4ge1xuICAgICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBidWlsZGVyLnZhbGlkYXRvcnMoW3ZhbGlkYXRvckFkZHJlc3NdKSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0VmFsaWRhdG9ycygpLCBbdmFsaWRhdG9yQWRkcmVzc10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgbXVsdGlwbGUgdmFsaWQgdmFsaWRhdG9ycycsICgpID0+IHtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci52YWxpZGF0b3JzKFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRWYWxpZGF0b3JzKCksIFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgZXhhY3RseSAxNiB2YWxpZGF0b3JzJywgKCkgPT4ge1xuICAgICAgY29uc3QgZXhhY3RseTE2ID0gQXJyYXkoMTYpLmZpbGwodmFsaWRhdG9yQWRkcmVzcyk7XG4gICAgICBzaG91bGQuZG9lc05vdFRocm93KCgpID0+IGJ1aWxkZXIudmFsaWRhdG9ycyhleGFjdGx5MTYpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkIHVuc2lnbmVkIG5vbWluYXRlIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYW4gdW5zaWduZWQgbm9taW5hdGUgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHV0aWxzLmdldE1hdGVyaWFsKGNvaW5zLmdldCgndHBvbHl4JykubmV0d29yay50eXBlKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnZhbGlkYXRvcnMoW3ZhbGlkYXRvckFkZHJlc3MsIHZhbGlkYXRvckFkZHJlc3MyXSlcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IHNlbmRlckFkZHJlc3MgfSlcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMywgbWF4RHVyYXRpb246IDY0IH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJylcbiAgICAgICAgLnNlcXVlbmNlSWQoeyBuYW1lOiAnTm9uY2UnLCBrZXl3b3JkOiAnbm9uY2UnLCB2YWx1ZTogMTUgfSlcbiAgICAgICAgLmZlZSh7IGFtb3VudDogMCwgdHlwZTogJ3RpcCcgfSlcbiAgICAgICAgLm1hdGVyaWFsKG1hdGVyaWFsKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBzaG91bGQuZXhpc3QodHgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnR5cGUsIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVm90ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZCBzaWduZWQgbm9taW5hdGUgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBhIHNpZ25lZCBub21pbmF0ZSB0cmFuc2FjdGlvbiBmcm9tIGhleCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoY29pbnMuZ2V0KCd0cG9seXgnKS5uZXR3b3JrLnR5cGUpO1xuICAgICAgY29uc3Qgc2lnbmVkQnVpbGRlciA9IGZhY3RvcnkuZ2V0Tm9taW5hdGVCdWlsZGVyKCk7XG4gICAgICBzaWduZWRCdWlsZGVyLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgICAgIHNpZ25lZEJ1aWxkZXIuZnJvbShub21pbmF0ZVR4LnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzaWduZWRCdWlsZGVyLmdldFZhbGlkYXRvcnMoKTtcbiAgICAgIHNob3VsZC5leGlzdCh2YWxpZGF0b3JzKTtcbiAgICAgIHZhbGlkYXRvcnMubGVuZ3RoLnNob3VsZC5iZS5ncmVhdGVyVGhhbigwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3ZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVqZWN0IG5vbi1ub21pbmF0ZSBtZXRob2QgbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1vY2tEZWNvZGVkID0ge1xuICAgICAgICBtZXRob2Q6IHsgbmFtZTogJ2JvbmQnLCBwYWxsZXQ6ICdzdGFraW5nJywgYXJnczoge30gfSxcbiAgICAgIH07XG4gICAgICBzaG91bGQudGhyb3dzKCgpID0+IGJ1aWxkZXIudmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24obW9ja0RlY29kZWQgYXMgbmV2ZXIpLCAvSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgcmVhbCBidWlsdCBub21pbmF0ZSB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoY29pbnMuZ2V0KCd0cG9seXgnKS5uZXR3b3JrLnR5cGUpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAudmFsaWRhdG9ycyhbdmFsaWRhdG9yQWRkcmVzcywgdmFsaWRhdG9yQWRkcmVzczJdKVxuICAgICAgICAuc2VuZGVyKHsgYWRkcmVzczogc2VuZGVyQWRkcmVzcyB9KVxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKVxuICAgICAgICAuc2VxdWVuY2VJZCh7IG5hbWU6ICdOb25jZScsIGtleXdvcmQ6ICdub25jZScsIHZhbHVlOiAxNSB9KVxuICAgICAgICAuZmVlKHsgYW1vdW50OiAwLCB0eXBlOiAndGlwJyB9KVxuICAgICAgICAubWF0ZXJpYWwobWF0ZXJpYWwpO1xuXG4gICAgICBjb25zdCB1bnNpZ25lZFR4ID0gYnVpbGRlclsnYnVpbGRUcmFuc2FjdGlvbiddKCk7XG4gICAgICBjb25zdCBkZWNvZGVkVHggPSBkZWNvZGUodW5zaWduZWRUeCwge1xuICAgICAgICBtZXRhZGF0YVJwYzogbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICAgIHJlZ2lzdHJ5OiBidWlsZGVyWydfcmVnaXN0cnknXSxcbiAgICAgIH0pO1xuXG4gICAgICBzaG91bGQuZXF1YWwoZGVjb2RlZFR4Lm1ldGhvZC5uYW1lLCAnbm9taW5hdGUnKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci52YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHgpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3BhcnNlIGZyb20gcmF3IHNpZ25lZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIHNpZ25lZCBub21pbmF0ZSB0eCBhbmQgcmVjb3ZlciB2YWxpZGF0b3JzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChjb2lucy5nZXQoJ3Rwb2x5eCcpLm5ldHdvcmsudHlwZSk7XG4gICAgICBjb25zdCBuZXdCdWlsZGVyID0gZmFjdG9yeS5nZXROb21pbmF0ZUJ1aWxkZXIoKTtcbiAgICAgIG5ld0J1aWxkZXIubWF0ZXJpYWwobWF0ZXJpYWwpO1xuICAgICAgbmV3QnVpbGRlci5mcm9tKG5vbWluYXRlVHguc2lnbmVkKTtcblxuICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IG5ld0J1aWxkZXIuZ2V0VmFsaWRhdG9ycygpO1xuICAgICAgc2hvdWxkLmV4aXN0KHZhbGlkYXRvcnMpO1xuICAgICAgdmFsaWRhdG9ycy5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncGFyc2UgZnJvbSByYXcgdW5zaWduZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB1bnNpZ25lZCBub21pbmF0ZSB0eCBhbmQgcmVjb3ZlciB2YWxpZGF0b3JzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChjb2lucy5nZXQoJ3Rwb2x5eCcpLm5ldHdvcmsudHlwZSk7XG4gICAgICAvLyBCdWlsZCBhIHJlYWwgdW5zaWduZWQgdHggZmlyc3QsIHRoZW4gcGFyc2UgaXQgYmFja1xuICAgICAgY29uc3Qgb3JpZ2luYWxCdWlsZGVyID0gZmFjdG9yeS5nZXROb21pbmF0ZUJ1aWxkZXIoKTtcbiAgICAgIG9yaWdpbmFsQnVpbGRlclxuICAgICAgICAudmFsaWRhdG9ycyhbdmFsaWRhdG9yQWRkcmVzcywgdmFsaWRhdG9yQWRkcmVzczJdKVxuICAgICAgICAuc2VuZGVyKHsgYWRkcmVzczogc2VuZGVyQWRkcmVzcyB9KVxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKVxuICAgICAgICAuc2VxdWVuY2VJZCh7IG5hbWU6ICdOb25jZScsIGtleXdvcmQ6ICdub25jZScsIHZhbHVlOiAxNSB9KVxuICAgICAgICAuZmVlKHsgYW1vdW50OiAwLCB0eXBlOiAndGlwJyB9KVxuICAgICAgICAubWF0ZXJpYWwobWF0ZXJpYWwpO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IG9yaWdpbmFsQnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3SGV4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgY29uc3QgbmV3QnVpbGRlciA9IGZhY3RvcnkuZ2V0Tm9taW5hdGVCdWlsZGVyKCk7XG4gICAgICBuZXdCdWlsZGVyLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgICAgIG5ld0J1aWxkZXIuZnJvbShyYXdIZXgpO1xuXG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gbmV3QnVpbGRlci5nZXRWYWxpZGF0b3JzKCk7XG4gICAgICBzaG91bGQuZXhpc3QodmFsaWRhdG9ycyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHZhbGlkYXRvcnMsIFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncm91bmQtdHJpcCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlYnVpbGQgZnJvbSBzZXJpYWxpemVkIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCBwcmVzZXJ2ZSB2YWxpZGF0b3JzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChjb2lucy5nZXQoJ3Rwb2x5eCcpLm5ldHdvcmsudHlwZSk7XG4gICAgICBjb25zdCBvcmlnaW5hbEJ1aWxkZXIgPSBmYWN0b3J5LmdldE5vbWluYXRlQnVpbGRlcigpO1xuICAgICAgb3JpZ2luYWxCdWlsZGVyXG4gICAgICAgIC52YWxpZGF0b3JzKFt2YWxpZGF0b3JBZGRyZXNzLCB2YWxpZGF0b3JBZGRyZXNzMl0pXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXJBZGRyZXNzIH0pXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpXG4gICAgICAgIC5zZXF1ZW5jZUlkKHsgbmFtZTogJ05vbmNlJywga2V5d29yZDogJ25vbmNlJywgdmFsdWU6IDE1IH0pXG4gICAgICAgIC5mZWUoeyBhbW91bnQ6IDAsIHR5cGU6ICd0aXAnIH0pXG4gICAgICAgIC5tYXRlcmlhbChtYXRlcmlhbCk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgb3JpZ2luYWxCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdIZXggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBjb25zdCByZWJ1aWx0QnVpbGRlciA9IGZhY3RvcnkuZ2V0Tm9taW5hdGVCdWlsZGVyKCk7XG4gICAgICByZWJ1aWx0QnVpbGRlci5tYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgICByZWJ1aWx0QnVpbGRlci5mcm9tKHJhd0hleCk7XG5cbiAgICAgIHNob3VsZC5kZWVwRXF1YWwocmVidWlsdEJ1aWxkZXIuZ2V0VmFsaWRhdG9ycygpLCBbdmFsaWRhdG9yQWRkcmVzcywgdmFsaWRhdG9yQWRkcmVzczJdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NpZ25hYmxlUGF5bG9hZCAoU3Vic3RyYXRlIDI1Ni1ieXRlIGJsYWtlMiBydWxlKScsICgpID0+IHtcbiAgICBjb25zdCBidWlsZE5vbWluYXRlVHggPSBhc3luYyAodmFsaWRhdG9yczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoY29pbnMuZ2V0KCd0cG9seXgnKS5uZXR3b3JrLnR5cGUpO1xuICAgICAgY29uc3Qgbm9taW5hdGVCdWlsZGVyID0gZmFjdG9yeS5nZXROb21pbmF0ZUJ1aWxkZXIoKTtcbiAgICAgIG5vbWluYXRlQnVpbGRlclxuICAgICAgICAudmFsaWRhdG9ycyh2YWxpZGF0b3JzKVxuICAgICAgICAuc2VuZGVyKHsgYWRkcmVzczogc2VuZGVyQWRkcmVzcyB9KVxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKVxuICAgICAgICAuc2VxdWVuY2VJZCh7IG5hbWU6ICdOb25jZScsIGtleXdvcmQ6ICdub25jZScsIHZhbHVlOiAxNSB9KVxuICAgICAgICAuZmVlKHsgYW1vdW50OiAwLCB0eXBlOiAndGlwJyB9KVxuICAgICAgICAubWF0ZXJpYWwobWF0ZXJpYWwpO1xuICAgICAgcmV0dXJuIChhd2FpdCBub21pbmF0ZUJ1aWxkZXIuYnVpbGQoKSkgYXMgUG9seXhUcmFuc2FjdGlvbjtcbiAgICB9O1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gcmF3IHBheWxvYWQgYnl0ZXMgd2hlbiB0aGUgZXh0cmluc2ljIGlzIGF0IG1vc3QgMjU2IGJ5dGVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZE5vbWluYXRlVHgoW3ZhbGlkYXRvckFkZHJlc3MsIHZhbGlkYXRvckFkZHJlc3MyXSk7XG4gICAgICBjb25zdCBzaWduYWJsZVBheWxvYWQgPSB0eC5zaWduYWJsZVBheWxvYWQ7XG4gICAgICAvLyBzbWFsbCBub21pbmF0ZSBleHRyaW5zaWMgc3RheXMgdW5kZXIgdGhlIDI1Ni1ieXRlIHRocmVzaG9sZCwgc28gaXQgaXMgc2lnbmVkIGFzLWlzXG4gICAgICBzaWduYWJsZVBheWxvYWQubGVuZ3RoLnNob3VsZC5iZS5iZWxvd09yRXF1YWwoMjU2KTtcbiAgICAgIHNpZ25hYmxlUGF5bG9hZC5sZW5ndGguc2hvdWxkLm5vdC5lcXVhbCgzMik7XG4gICAgICAvLyBmb3IgYSBzdWItMjU2LWJ5dGUgcGF5bG9hZCwgc2lnbmFibGVQYXlsb2FkIGlzIGV4YWN0bHkgdGhlIHJhdyBleHRyaW5zaWMgcGF5bG9hZFxuICAgICAgY29uc3QgcmF3RXh0cmluc2ljUGF5bG9hZCA9IEJ1ZmZlci5mcm9tKHR4LnJhd0V4dHJpbnNpY1BheWxvYWQpO1xuICAgICAgcmF3RXh0cmluc2ljUGF5bG9hZC5zaG91bGQuZGVlcEVxdWFsKHNpZ25hYmxlUGF5bG9hZCk7XG4gICAgICAvLyB0b0pzb24gc3VyZmFjZXMgdGhlIGZ1bGwgcmF3IHBheWxvYWQgYXMgcmF3U2lnbmFibGVIZXggZXZlbiB3aGVuIGl0IGVxdWFscyBzaWduYWJsZVBheWxvYWRcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0pzb24oKS5yYXdTaWduYWJsZUhleCwgcmF3RXh0cmluc2ljUGF5bG9hZC50b1N0cmluZygnaGV4JykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIDMyLWJ5dGUgYmxha2UyXzI1NiBoYXNoIHdoZW4gdGhlIGV4dHJpbnNpYyBleGNlZWRzIDI1NiBieXRlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIEVhY2ggbm9taW5hdGUgdGFyZ2V0IGFkZHMgYSAzMy1ieXRlIE11bHRpQWRkcmVzcyAoMS1ieXRlIHZhcmlhbnQgKyAzMi1ieXRlIGFjY291bnQgaWQpIG9uXG4gICAgICAvLyB0b3Agb2YgNzkgYnl0ZXMgb2YgZml4ZWQgc2lnbmluZy1wYXlsb2FkIG92ZXJoZWFkIChjYWxsIGluZGV4LCBlcmEsIG5vbmNlLCB0aXAsXG4gICAgICAvLyBzcGVjL3RyYW5zYWN0aW9uIHZlcnNpb25zLCBnZW5lc2lzICsgYmxvY2sgaGFzaCkuIFNvIDUgdGFyZ2V0cyBzdGF5IHJhdyBhdCAyNDQgYnl0ZXMgYW5kXG4gICAgICAvLyA2IGFscmVhZHkgY3Jvc3MgdG8gMjc3IGJ5dGVzIChoYXNoZWQpLiA4IHdvdWxkIGFsc28gZXhjZWVkIHRoZSB0aHJlc2hvbGQ7IHRoaXMgdXNlcyA5IHRvXG4gICAgICAvLyBtaXJyb3IgdGhlIG11bHRpLW5vbWluYXRpb24gc2NlbmFyaW8gZnJvbSBTSS05MjYgd2l0aCBtYXJnaW4gKDM3NiBieXRlcykuXG4gICAgICBjb25zdCBtYW55VmFsaWRhdG9ycyA9IEFycmF5KDkpLmZpbGwodmFsaWRhdG9yQWRkcmVzcyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkTm9taW5hdGVUeChtYW55VmFsaWRhdG9ycyk7XG4gICAgICBjb25zdCBzaWduYWJsZVBheWxvYWQgPSB0eC5zaWduYWJsZVBheWxvYWQ7XG4gICAgICBzaG91bGQuZXF1YWwoc2lnbmFibGVQYXlsb2FkLmxlbmd0aCwgMzIpO1xuICAgICAgLy8gdGhlIHJhdyBleHRyaW5zaWMgcGF5bG9hZCBzdGF5cyBmdWxsLWxlbmd0aCBhbmQgZGl2ZXJnZXMgZnJvbSB0aGUgaGFzaGVkIHNpZ25hYmxlUGF5bG9hZFxuICAgICAgY29uc3QgcmF3RXh0cmluc2ljUGF5bG9hZCA9IEJ1ZmZlci5mcm9tKHR4LnJhd0V4dHJpbnNpY1BheWxvYWQpO1xuICAgICAgcmF3RXh0cmluc2ljUGF5bG9hZC5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDI1Nik7XG4gICAgICByYXdFeHRyaW5zaWNQYXlsb2FkLnNob3VsZC5ub3QuZGVlcEVxdWFsKHNpZ25hYmxlUGF5bG9hZCk7XG4gICAgICAvLyBzaWduYWJsZVBheWxvYWQgaXMgdGhlIGJsYWtlMl8yNTYgaGFzaCBvZiB0aGUgcmF3IGV4dHJpbnNpYyBwYXlsb2FkXG4gICAgICB1dGlscy5nZXRTdWJzdHJhdGVTaWduaW5nQnl0ZXModHgucmF3RXh0cmluc2ljUGF5bG9hZCkuc2hvdWxkLmRlZXBFcXVhbChzaWduYWJsZVBheWxvYWQpO1xuICAgICAgLy8gdG9Kc29uIHN1cmZhY2VzIHRoZSBmdWxsIHJhdyBwYXlsb2FkIGFzIHJhd1NpZ25hYmxlSGV4IGZvciB0aGUgSFNNIHNpZ25pbmcgcGF0aFxuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvSnNvbigpLnJhd1NpZ25hYmxlSGV4LCByYXdFeHRyaW5zaWNQYXlsb2FkLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgfSk7XG5cbiAgICAvLyBUaGUgMjU2LWJ5dGUgYm91bmRhcnkgaXMgaW1wcmFjdGljYWwgdG8gaGl0IHdpdGggYSByZWFsIGV4dHJpbnNpYywgc28gZXhlcmNpc2UgdGhlXG4gICAgLy8gcmF3LXZzLWhhc2ggZGVjaXNpb24gZGlyZWN0bHkgdGhyb3VnaCB0aGUgc2hhcmVkIFN1YnN0cmF0ZSBzaWduaW5nLWJ5dGVzIGhlbHBlci5cbiAgICBpdCgnc2hvdWxkIGtlZXAgcGF5bG9hZHMgb2YgZXhhY3RseSAyNTYgYnl0ZXMgcmF3IGFuZCBvbmx5IGhhc2ggc3RyaWN0bHkgbGFyZ2VyIG9uZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBhdCA9IHV0aWxzLmdldFN1YnN0cmF0ZVNpZ25pbmdCeXRlcyhuZXcgVWludDhBcnJheSgyNTYpLmZpbGwoNykpO1xuICAgICAgc2hvdWxkLmVxdWFsKGF0Lmxlbmd0aCwgMjU2KTtcbiAgICAgIGF0LnNob3VsZC5kZWVwRXF1YWwoQnVmZmVyLmFsbG9jKDI1NiwgNykpO1xuXG4gICAgICBjb25zdCBiZWxvdyA9IHV0aWxzLmdldFN1YnN0cmF0ZVNpZ25pbmdCeXRlcyhuZXcgVWludDhBcnJheSgyNTUpLmZpbGwoNykpO1xuICAgICAgc2hvdWxkLmVxdWFsKGJlbG93Lmxlbmd0aCwgMjU1KTtcblxuICAgICAgY29uc3QgYWJvdmUgPSB1dGlscy5nZXRTdWJzdHJhdGVTaWduaW5nQnl0ZXMobmV3IFVpbnQ4QXJyYXkoMjU3KS5maWxsKDcpKTtcbiAgICAgIHNob3VsZC5lcXVhbChhYm92ZS5sZW5ndGgsIDMyKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ZhY3Rvcnkgcm91dGluZycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJvdXRlIHJhdyBub21pbmF0ZSBleHRyaW5zaWMgdG8gTm9taW5hdGVCdWlsZGVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRCdWlsZGVyID0gZmFjdG9yeS5mcm9tKG5vbWluYXRlVHguc2lnbmVkKTtcbiAgICAgIHNob3VsZC5vayhyZXNvbHZlZEJ1aWxkZXIgaW5zdGFuY2VvZiBOb21pbmF0ZUJ1aWxkZXIsICdleHBlY3RlZCBOb21pbmF0ZUJ1aWxkZXInKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcm91dGUgYmF0Y2hBbGwgYm9uZCtub21pbmF0ZSB0byBCYXRjaEJ1aWxkZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvbHZlZEJ1aWxkZXIgPSBmYWN0b3J5LmZyb20oc3Rha2luZ1R4LmJhdGNoLmJvbmRBbmROb21pbmF0ZS5zaWduZWQpO1xuICAgICAgc2hvdWxkLm9rKHJlc29sdmVkQnVpbGRlciBpbnN0YW5jZW9mIEJhdGNoQnVpbGRlciwgJ2V4cGVjdGVkIEJhdGNoQnVpbGRlcicpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|