@bitgo/sdk-coin-xrp 4.0.8 → 4.0.10
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/constants.d.ts +1 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +9 -2
- package/dist/src/lib/iface.d.ts +33 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +16 -1
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +22 -2
- package/dist/src/lib/utils.d.ts +15 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +33 -1
- package/dist/src/xrp.d.ts.map +1 -1
- package/dist/src/xrp.js +113 -24
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -5,4 +5,5 @@ export declare const VALID_ACCOUNT_SET_FLAGS: number[];
|
|
|
5
5
|
export declare const USER_KEY_SETTING_FLAG = 65536;
|
|
6
6
|
export declare const MASTER_KEY_DEACTIVATION_FLAG = 1048576;
|
|
7
7
|
export declare const REQUIRE_DESTINATION_TAG_FLAG = 131072;
|
|
8
|
+
export declare const TF_PARTIAL_PAYMENT = 131072;
|
|
8
9
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAGnC,eAAO,MAAM,uBAAuB,UAgBnC,CAAC;AAGF,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,4BAA4B,UAAU,CAAC;AACpD,eAAO,MAAM,4BAA4B,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAGnC,eAAO,MAAM,uBAAuB,UAgBnC,CAAC;AAGF,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,4BAA4B,UAAU,CAAC;AACpD,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAQnD,eAAO,MAAM,kBAAkB,SAAa,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.REQUIRE_DESTINATION_TAG_FLAG = exports.MASTER_KEY_DEACTIVATION_FLAG = exports.USER_KEY_SETTING_FLAG = exports.VALID_ACCOUNT_SET_FLAGS = exports.MIN_SIGNER_QUORUM = exports.MIN_SIGNERS = exports.MAX_SIGNERS = void 0;
|
|
3
|
+
exports.TF_PARTIAL_PAYMENT = exports.REQUIRE_DESTINATION_TAG_FLAG = exports.MASTER_KEY_DEACTIVATION_FLAG = exports.USER_KEY_SETTING_FLAG = exports.VALID_ACCOUNT_SET_FLAGS = exports.MIN_SIGNER_QUORUM = exports.MIN_SIGNERS = exports.MAX_SIGNERS = void 0;
|
|
4
4
|
// https://xrpl.org/signerlistset.html
|
|
5
5
|
exports.MAX_SIGNERS = 32;
|
|
6
6
|
exports.MIN_SIGNERS = 1;
|
|
@@ -27,4 +27,11 @@ exports.VALID_ACCOUNT_SET_FLAGS = [
|
|
|
27
27
|
exports.USER_KEY_SETTING_FLAG = 65536;
|
|
28
28
|
exports.MASTER_KEY_DEACTIVATION_FLAG = 1048576;
|
|
29
29
|
exports.REQUIRE_DESTINATION_TAG_FLAG = 131072;
|
|
30
|
-
|
|
30
|
+
// https://xrpl.org/payment.html#payment-flags
|
|
31
|
+
// tfPartialPayment allows a Payment to deliver less than the Amount field. The actual
|
|
32
|
+
// delivered value is in the transaction metadata (meta.delivered_amount), NOT in the signed
|
|
33
|
+
// blob. NOTE: 0x00020000 is numerically identical to REQUIRE_DESTINATION_TAG_FLAG above —
|
|
34
|
+
// they are different flag spaces (Payment tx flag vs AccountRoot ledger flag) and must not
|
|
35
|
+
// be reused interchangeably.
|
|
36
|
+
exports.TF_PARTIAL_PAYMENT = 0x00020000;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0NBQXNDO0FBQ3pCLFFBQUEsV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUNqQixRQUFBLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDaEIsUUFBQSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFFbkMsb0RBQW9EO0FBQ3ZDLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsQ0FBQyxFQUFFLGtCQUFrQjtJQUNyQixFQUFFLEVBQUUsNEJBQTRCO0lBQ2hDLEVBQUUsRUFBRSw2QkFBNkI7SUFDakMsQ0FBQyxFQUFFLG1CQUFtQjtJQUN0QixDQUFDLEVBQUUsaUJBQWlCO0lBQ3BCLENBQUMsRUFBRSxtQkFBbUI7SUFDdEIsRUFBRSxFQUFFLDJCQUEyQjtJQUMvQixFQUFFLEVBQUUsa0NBQWtDO0lBQ3RDLEVBQUUsRUFBRSw2QkFBNkI7SUFDakMsRUFBRSxFQUFFLCtCQUErQjtJQUNuQyxDQUFDLEVBQUUsaUJBQWlCO0lBQ3BCLENBQUMsRUFBRSxrQkFBa0I7SUFDckIsQ0FBQyxFQUFFLGNBQWM7SUFDakIsQ0FBQyxFQUFFLGlCQUFpQjtJQUNwQixDQUFDLEVBQUUsaUJBQWlCO0NBQ3JCLENBQUM7QUFFRixpQ0FBaUM7QUFDcEIsUUFBQSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7QUFDOUIsUUFBQSw0QkFBNEIsR0FBRyxPQUFPLENBQUM7QUFDdkMsUUFBQSw0QkFBNEIsR0FBRyxNQUFNLENBQUM7QUFFbkQsOENBQThDO0FBQzlDLHNGQUFzRjtBQUN0Riw0RkFBNEY7QUFDNUYsMEZBQTBGO0FBQzFGLDJGQUEyRjtBQUMzRiw2QkFBNkI7QUFDaEIsUUFBQSxrQkFBa0IsR0FBRyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL3hycGwub3JnL3NpZ25lcmxpc3RzZXQuaHRtbFxuZXhwb3J0IGNvbnN0IE1BWF9TSUdORVJTID0gMzI7XG5leHBvcnQgY29uc3QgTUlOX1NJR05FUlMgPSAxO1xuZXhwb3J0IGNvbnN0IE1JTl9TSUdORVJfUVVPUlVNID0gMTtcblxuLy8gaHR0cHM6Ly94cnBsLm9yZy9hY2NvdW50c2V0Lmh0bWwjYWNjb3VudHNldC1mbGFnc1xuZXhwb3J0IGNvbnN0IFZBTElEX0FDQ09VTlRfU0VUX0ZMQUdTID0gW1xuICA1LCAvLyBhc2ZBY2NvdW50VHhuSURcbiAgMTYsIC8vIGFzZkFsbG93VHJ1c3RMaW5lQ2xhd2JhY2tcbiAgMTAsIC8vIGFzZkF1dGhvcml6ZWRORlRva2VuTWludGVyXG4gIDgsIC8vIGFzZkRlZmF1bHRSaXBwbGVcbiAgOSwgLy8gYXNmRGVwb3NpdEF1dGhcbiAgNCwgLy8gYXNmRGlzYWJsZU1hc3RlclxuICAxMywgLy8gYXNmRGlzYWxsb3dJbmNvbWluZ0NoZWNrXG4gIDEyLCAvLyBhc2ZEaXNhbGxvd0luY29taW5nTkZUb2tlbk9mZmVyXG4gIDE0LCAvLyBhc2ZEaXNhbGxvd0luY29taW5nUGF5Q2hhblxuICAxNSwgLy8gYXNmRGlzYWxsb3dJbmNvbWluZ1RydXN0bGluZVxuICAzLCAvLyBhc2ZEaXNhbGxvd1hSUFxuICA3LCAvLyBhc2ZHbG9iYWxGcmVlemVcbiAgNiwgLy8gYXNmTm9GcmVlemVcbiAgMiwgLy8gYXNmUmVxdWlyZUF1dGhcbiAgMSwgLy8gYXNmUmVxdWlyZURlc3Rcbl07XG5cbi8vIEdsb2JhbCBmbGFncyBmb3IgYml0Z28gYWRkcmVzc1xuZXhwb3J0IGNvbnN0IFVTRVJfS0VZX1NFVFRJTkdfRkxBRyA9IDY1NTM2O1xuZXhwb3J0IGNvbnN0IE1BU1RFUl9LRVlfREVBQ1RJVkFUSU9OX0ZMQUcgPSAxMDQ4NTc2O1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVfREVTVElOQVRJT05fVEFHX0ZMQUcgPSAxMzEwNzI7XG5cbi8vIGh0dHBzOi8veHJwbC5vcmcvcGF5bWVudC5odG1sI3BheW1lbnQtZmxhZ3Ncbi8vIHRmUGFydGlhbFBheW1lbnQgYWxsb3dzIGEgUGF5bWVudCB0byBkZWxpdmVyIGxlc3MgdGhhbiB0aGUgQW1vdW50IGZpZWxkLiBUaGUgYWN0dWFsXG4vLyBkZWxpdmVyZWQgdmFsdWUgaXMgaW4gdGhlIHRyYW5zYWN0aW9uIG1ldGFkYXRhIChtZXRhLmRlbGl2ZXJlZF9hbW91bnQpLCBOT1QgaW4gdGhlIHNpZ25lZFxuLy8gYmxvYi4gTk9URTogMHgwMDAyMDAwMCBpcyBudW1lcmljYWxseSBpZGVudGljYWwgdG8gUkVRVUlSRV9ERVNUSU5BVElPTl9UQUdfRkxBRyBhYm92ZSDigJRcbi8vIHRoZXkgYXJlIGRpZmZlcmVudCBmbGFnIHNwYWNlcyAoUGF5bWVudCB0eCBmbGFnIHZzIEFjY291bnRSb290IGxlZGdlciBmbGFnKSBhbmQgbXVzdCBub3Rcbi8vIGJlIHJldXNlZCBpbnRlcmNoYW5nZWFibHkuXG5leHBvcnQgY29uc3QgVEZfUEFSVElBTF9QQVlNRU5UID0gMHgwMDAyMDAwMDtcbiJdfQ==
|
package/dist/src/lib/iface.d.ts
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { InitiateRecoveryOptions as BaseInitiateRecoveryOptions, SignTransactionOptions as BaseSignTransactionOptions, TransactionExplanation as BaseTransactionExplanation, VerifyAddressOptions as BaseVerifyAddressOptions, TransactionPrebuild } from '@bitgo/sdk-core';
|
|
2
|
-
import { AccountDelete, AccountSet, Amount, MPTAmount, MPTokenAuthorize, Payment, Signer, SignerEntry, SignerListSet, TrustSet } from 'xrpl';
|
|
2
|
+
import { AccountDelete, AccountSet, Amount, MPTAmount, MPTokenAuthorize, Payment, Signer, SignerEntry, SignerListSet, TransactionMetadata, TrustSet } from 'xrpl';
|
|
3
|
+
/**
|
|
4
|
+
* XRP transaction types supported by this SDK.
|
|
5
|
+
*
|
|
6
|
+
* The string values mirror XRPL's `TransactionType` field names exactly and are part of the
|
|
7
|
+
* public SDK surface — downstream consumers (e.g. bitgo-microservices `xrpToken.ts`) compare
|
|
8
|
+
* transaction types against these members with `===`/`!==`. Do NOT change the string values
|
|
9
|
+
* (e.g. switch to numeric enum values) or rename members; that would silently break string
|
|
10
|
+
* comparisons across the SDK boundary with no compile error.
|
|
11
|
+
*
|
|
12
|
+
* AMM and other newer XRPL transaction types are intentionally absent — they are rejected by
|
|
13
|
+
* `Transaction.fromRawTransaction()` via the reverse-enum lookup. To add support for a new
|
|
14
|
+
* type (e.g. an AMM family member), add it here with its exact XRPL name AND extend the
|
|
15
|
+
* switch statements in `lib/transaction.ts` (`toJson`, `explainTransaction`,
|
|
16
|
+
* `fromRawTransaction`) and the coin-level `xrp.ts:explainTransaction`.
|
|
17
|
+
*/
|
|
3
18
|
export declare enum XrpTransactionType {
|
|
4
19
|
AccountDelete = "AccountDelete",
|
|
5
20
|
AccountSet = "AccountSet",
|
|
@@ -30,6 +45,13 @@ export interface ExplainTransactionOptions {
|
|
|
30
45
|
halfSigned?: {
|
|
31
46
|
txHex: string;
|
|
32
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* Optional XRP transaction metadata. When present and the Payment `tfPartialPayment` flag
|
|
50
|
+
* is set, the explained `outputAmount` is taken from `meta.delivered_amount` (the actual
|
|
51
|
+
* delivered value) instead of the requested `Amount` field. Without metadata, a partial
|
|
52
|
+
* payment's delivered amount is unknown and `partialPayment: true` is surfaced instead.
|
|
53
|
+
*/
|
|
54
|
+
meta?: TransactionMetadata;
|
|
33
55
|
}
|
|
34
56
|
export interface VerifyAddressOptions extends BaseVerifyAddressOptions {
|
|
35
57
|
rootAddress: string;
|
|
@@ -67,7 +89,16 @@ export interface HalfSignedTransaction {
|
|
|
67
89
|
export interface SupplementGenerateWalletOptions {
|
|
68
90
|
rootPrivateKey?: string;
|
|
69
91
|
}
|
|
70
|
-
export type TransactionExplanation = BaseTransactionExplanation | AccountSetTransactionExplanation | TrustSetTransactionExplanation | SignerListSetTransactionExplanation | MPTokenAuthorizeTransactionExplanation;
|
|
92
|
+
export type TransactionExplanation = BaseTransactionExplanation | AccountSetTransactionExplanation | TrustSetTransactionExplanation | SignerListSetTransactionExplanation | MPTokenAuthorizeTransactionExplanation | PaymentTransactionExplanation;
|
|
93
|
+
export interface PaymentTransactionExplanation extends BaseTransactionExplanation {
|
|
94
|
+
/**
|
|
95
|
+
* True when the Payment `tfPartialPayment` flag is set, meaning the delivered amount may
|
|
96
|
+
* be less than the requested `Amount`. When `meta.delivered_amount` was provided to
|
|
97
|
+
* explainTransaction, `outputAmount`/`outputs[].amount` reflect the delivered value and
|
|
98
|
+
* this flag is still set so consumers can distinguish partial from full delivery.
|
|
99
|
+
*/
|
|
100
|
+
partialPayment?: boolean;
|
|
101
|
+
}
|
|
71
102
|
export interface AccountSetTransactionExplanation extends BaseTransactionExplanation {
|
|
72
103
|
accountSet: {
|
|
73
104
|
messageKey?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,IAAI,2BAA2B,EACtD,sBAAsB,IAAI,0BAA0B,EACpD,sBAAsB,IAAI,0BAA0B,EACpD,oBAAoB,IAAI,wBAAwB,EAChD,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EACb,UAAU,EACV,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACT,MAAM,MAAM,CAAC;AAEd,oBAAY,kBAAkB;IAC5B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;CACtC;AAGD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAEhH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,UAAU,EAAE,mBAAmB,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;KACf,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
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.XrpTransactionType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* XRP transaction types supported by this SDK.
|
|
6
|
+
*
|
|
7
|
+
* The string values mirror XRPL's `TransactionType` field names exactly and are part of the
|
|
8
|
+
* public SDK surface — downstream consumers (e.g. bitgo-microservices `xrpToken.ts`) compare
|
|
9
|
+
* transaction types against these members with `===`/`!==`. Do NOT change the string values
|
|
10
|
+
* (e.g. switch to numeric enum values) or rename members; that would silently break string
|
|
11
|
+
* comparisons across the SDK boundary with no compile error.
|
|
12
|
+
*
|
|
13
|
+
* AMM and other newer XRPL transaction types are intentionally absent — they are rejected by
|
|
14
|
+
* `Transaction.fromRawTransaction()` via the reverse-enum lookup. To add support for a new
|
|
15
|
+
* type (e.g. an AMM family member), add it here with its exact XRPL name AND extend the
|
|
16
|
+
* switch statements in `lib/transaction.ts` (`toJson`, `explainTransaction`,
|
|
17
|
+
* `fromRawTransaction`) and the coin-level `xrp.ts:explainTransaction`.
|
|
18
|
+
*/
|
|
4
19
|
var XrpTransactionType;
|
|
5
20
|
(function (XrpTransactionType) {
|
|
6
21
|
XrpTransactionType["AccountDelete"] = "AccountDelete";
|
|
@@ -10,4 +25,4 @@ var XrpTransactionType;
|
|
|
10
25
|
XrpTransactionType["TrustSet"] = "TrustSet";
|
|
11
26
|
XrpTransactionType["MPTokenAuthorize"] = "MPTokenAuthorize";
|
|
12
27
|
})(XrpTransactionType || (exports.XrpTransactionType = XrpTransactionType = {}));
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFCQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILElBQVksa0JBT1g7QUFQRCxXQUFZLGtCQUFrQjtJQUM1QixxREFBK0IsQ0FBQTtJQUMvQiwrQ0FBeUIsQ0FBQTtJQUN6Qix5Q0FBbUIsQ0FBQTtJQUNuQixxREFBK0IsQ0FBQTtJQUMvQiwyQ0FBcUIsQ0FBQTtJQUNyQiwyREFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBUFcsa0JBQWtCLGtDQUFsQixrQkFBa0IsUUFPN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbml0aWF0ZVJlY292ZXJ5T3B0aW9ucyBhcyBCYXNlSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMsXG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgYXMgQmFzZVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFZlcmlmeUFkZHJlc3NPcHRpb25zIGFzIEJhc2VWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgVHJhbnNhY3Rpb25QcmVidWlsZCxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIEFjY291bnREZWxldGUsXG4gIEFjY291bnRTZXQsXG4gIEFtb3VudCxcbiAgTVBUQW1vdW50LFxuICBNUFRva2VuQXV0aG9yaXplLFxuICBQYXltZW50LFxuICBTaWduZXIsXG4gIFNpZ25lckVudHJ5LFxuICBTaWduZXJMaXN0U2V0LFxuICBUcmFuc2FjdGlvbk1ldGFkYXRhLFxuICBUcnVzdFNldCxcbn0gZnJvbSAneHJwbCc7XG5cbi8qKlxuICogWFJQIHRyYW5zYWN0aW9uIHR5cGVzIHN1cHBvcnRlZCBieSB0aGlzIFNESy5cbiAqXG4gKiBUaGUgc3RyaW5nIHZhbHVlcyBtaXJyb3IgWFJQTCdzIGBUcmFuc2FjdGlvblR5cGVgIGZpZWxkIG5hbWVzIGV4YWN0bHkgYW5kIGFyZSBwYXJ0IG9mIHRoZVxuICogcHVibGljIFNESyBzdXJmYWNlIOKAlCBkb3duc3RyZWFtIGNvbnN1bWVycyAoZS5nLiBiaXRnby1taWNyb3NlcnZpY2VzIGB4cnBUb2tlbi50c2ApIGNvbXBhcmVcbiAqIHRyYW5zYWN0aW9uIHR5cGVzIGFnYWluc3QgdGhlc2UgbWVtYmVycyB3aXRoIGA9PT1gL2AhPT1gLiBEbyBOT1QgY2hhbmdlIHRoZSBzdHJpbmcgdmFsdWVzXG4gKiAoZS5nLiBzd2l0Y2ggdG8gbnVtZXJpYyBlbnVtIHZhbHVlcykgb3IgcmVuYW1lIG1lbWJlcnM7IHRoYXQgd291bGQgc2lsZW50bHkgYnJlYWsgc3RyaW5nXG4gKiBjb21wYXJpc29ucyBhY3Jvc3MgdGhlIFNESyBib3VuZGFyeSB3aXRoIG5vIGNvbXBpbGUgZXJyb3IuXG4gKlxuICogQU1NIGFuZCBvdGhlciBuZXdlciBYUlBMIHRyYW5zYWN0aW9uIHR5cGVzIGFyZSBpbnRlbnRpb25hbGx5IGFic2VudCDigJQgdGhleSBhcmUgcmVqZWN0ZWQgYnlcbiAqIGBUcmFuc2FjdGlvbi5mcm9tUmF3VHJhbnNhY3Rpb24oKWAgdmlhIHRoZSByZXZlcnNlLWVudW0gbG9va3VwLiBUbyBhZGQgc3VwcG9ydCBmb3IgYSBuZXdcbiAqIHR5cGUgKGUuZy4gYW4gQU1NIGZhbWlseSBtZW1iZXIpLCBhZGQgaXQgaGVyZSB3aXRoIGl0cyBleGFjdCBYUlBMIG5hbWUgQU5EIGV4dGVuZCB0aGVcbiAqIHN3aXRjaCBzdGF0ZW1lbnRzIGluIGBsaWIvdHJhbnNhY3Rpb24udHNgIChgdG9Kc29uYCwgYGV4cGxhaW5UcmFuc2FjdGlvbmAsXG4gKiBgZnJvbVJhd1RyYW5zYWN0aW9uYCkgYW5kIHRoZSBjb2luLWxldmVsIGB4cnAudHM6ZXhwbGFpblRyYW5zYWN0aW9uYC5cbiAqL1xuZXhwb3J0IGVudW0gWHJwVHJhbnNhY3Rpb25UeXBlIHtcbiAgQWNjb3VudERlbGV0ZSA9ICdBY2NvdW50RGVsZXRlJyxcbiAgQWNjb3VudFNldCA9ICdBY2NvdW50U2V0JyxcbiAgUGF5bWVudCA9ICdQYXltZW50JyxcbiAgU2lnbmVyTGlzdFNldCA9ICdTaWduZXJMaXN0U2V0JyxcbiAgVHJ1c3RTZXQgPSAnVHJ1c3RTZXQnLFxuICBNUFRva2VuQXV0aG9yaXplID0gJ01QVG9rZW5BdXRob3JpemUnLFxufVxuXG4vLyBSZS1leHBvcnQgc28gY29uc3VtZXJzIGNhbiBpbXBvcnQgYWxvbmdzaWRlIG90aGVyIFhSUCB0eXBlcyBmcm9tIHRoaXMgbW9kdWxlLlxuZXhwb3J0IHR5cGUgeyBNUFRBbW91bnQsIE1QVG9rZW5BdXRob3JpemUgfTtcblxuZXhwb3J0IHR5cGUgWHJwVHJhbnNhY3Rpb24gPSBBY2NvdW50RGVsZXRlIHwgUGF5bWVudCB8IEFjY291bnRTZXQgfCBTaWduZXJMaXN0U2V0IHwgVHJ1c3RTZXQgfCBNUFRva2VuQXV0aG9yaXplO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3Mge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uVGFnPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZUluZm8ge1xuICBkYXRlOiBzdHJpbmc7XG4gIGhlaWdodDogbnVtYmVyO1xuICBiYXNlUmVzZXJ2ZTogc3RyaW5nO1xuICBiYXNlRmVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIEJhc2VTaWduVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDtcbiAgcHJ2OiBzdHJpbmc7XG4gIGlzTGFzdFNpZ25hdHVyZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4SGV4Pzogc3RyaW5nO1xuICBoYWxmU2lnbmVkPzoge1xuICAgIHR4SGV4OiBzdHJpbmc7IC8vIHR4SGV4IGlzIHBvb3JseSBuYW1lZCBoZXJlOyBpdCBpcyBqdXN0IGEgd3JhcHBlZCBKU09OIG9iamVjdFxuICB9O1xuICAvKipcbiAgICogT3B0aW9uYWwgWFJQIHRyYW5zYWN0aW9uIG1ldGFkYXRhLiBXaGVuIHByZXNlbnQgYW5kIHRoZSBQYXltZW50IGB0ZlBhcnRpYWxQYXltZW50YCBmbGFnXG4gICAqIGlzIHNldCwgdGhlIGV4cGxhaW5lZCBgb3V0cHV0QW1vdW50YCBpcyB0YWtlbiBmcm9tIGBtZXRhLmRlbGl2ZXJlZF9hbW91bnRgICh0aGUgYWN0dWFsXG4gICAqIGRlbGl2ZXJlZCB2YWx1ZSkgaW5zdGVhZCBvZiB0aGUgcmVxdWVzdGVkIGBBbW91bnRgIGZpZWxkLiBXaXRob3V0IG1ldGFkYXRhLCBhIHBhcnRpYWxcbiAgICogcGF5bWVudCdzIGRlbGl2ZXJlZCBhbW91bnQgaXMgdW5rbm93biBhbmQgYHBhcnRpYWxQYXltZW50OiB0cnVlYCBpcyBzdXJmYWNlZCBpbnN0ZWFkLlxuICAgKi9cbiAgbWV0YT86IFRyYW5zYWN0aW9uTWV0YWRhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5QWRkcmVzc09wdGlvbnMgZXh0ZW5kcyBCYXNlVmVyaWZ5QWRkcmVzc09wdGlvbnMge1xuICByb290QWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJ5SW5mbyBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgdHhIZXg6IHN0cmluZztcbiAgYmFja3VwS2V5Pzogc3RyaW5nO1xuICBjb2luPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJ5VHJhbnNhY3Rpb24ge1xuICB0eEhleDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIGV4dGVuZHMgQmFzZUluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIHtcbiAga3JzUHJvdmlkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlPcHRpb25zIHtcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgcm9vdEFkZHJlc3M6IHN0cmluZztcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBiaXRnb0tleT86IHN0cmluZztcbiAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICBrcnNQcm92aWRlcj86IHN0cmluZztcbiAgaXNzdWVyQWRkcmVzcz86IHN0cmluZztcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xuICAvKiogV2hlbiB0cnVlLCBidWlsZHMgYW4gQWNjb3VudERlbGV0ZSB0cmFuc2FjdGlvbiB0byB3aXRoZHJhdyB0aGUgZnVsbCBiYWxhbmNlXG4gICAqICBpbmNsdWRpbmcgdGhlIGJhc2UgcmVzZXJ2ZSAoY3VycmVudGx5IDEwIFhSUCkgaW5zdGVhZCBvZiBhIG5vcm1hbCBQYXltZW50LiAqL1xuICByZXNlcnZlV2l0aGRyYXdhbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFsZlNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgaGFsZlNpZ25lZDoge1xuICAgIHR4SGV4OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0T3B0aW9ucyB7XG4gIHJvb3RQcml2YXRlS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID1cbiAgfCBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvblxuICB8IEFjY291bnRTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uXG4gIHwgVHJ1c3RTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uXG4gIHwgU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb25cbiAgfCBNUFRva2VuQXV0aG9yaXplVHJhbnNhY3Rpb25FeHBsYW5hdGlvblxuICB8IFBheW1lbnRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAvKipcbiAgICogVHJ1ZSB3aGVuIHRoZSBQYXltZW50IGB0ZlBhcnRpYWxQYXltZW50YCBmbGFnIGlzIHNldCwgbWVhbmluZyB0aGUgZGVsaXZlcmVkIGFtb3VudCBtYXlcbiAgICogYmUgbGVzcyB0aGFuIHRoZSByZXF1ZXN0ZWQgYEFtb3VudGAuIFdoZW4gYG1ldGEuZGVsaXZlcmVkX2Ftb3VudGAgd2FzIHByb3ZpZGVkIHRvXG4gICAqIGV4cGxhaW5UcmFuc2FjdGlvbiwgYG91dHB1dEFtb3VudGAvYG91dHB1dHNbXS5hbW91bnRgIHJlZmxlY3QgdGhlIGRlbGl2ZXJlZCB2YWx1ZSBhbmRcbiAgICogdGhpcyBmbGFnIGlzIHN0aWxsIHNldCBzbyBjb25zdW1lcnMgY2FuIGRpc3Rpbmd1aXNoIHBhcnRpYWwgZnJvbSBmdWxsIGRlbGl2ZXJ5LlxuICAgKi9cbiAgcGFydGlhbFBheW1lbnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnRTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBhY2NvdW50U2V0OiB7XG4gICAgbWVzc2FnZUtleT86IHN0cmluZztcbiAgICBzZXRGbGFnOiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJ1c3RTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBhY2NvdW50OiBzdHJpbmc7XG4gIGxpbWl0QW1vdW50OiB7XG4gICAgY3VycmVuY3k6IHN0cmluZztcbiAgICBpc3N1ZXI6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBzaWduZXJMaXN0U2V0OiB7XG4gICAgc2lnbmVyUXVvcnVtOiBudW1iZXI7XG4gICAgc2lnbmVyRW50cmllczogU2lnbmVyRW50cnlbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUFRva2VuQXV0aG9yaXplVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgbXB0SXNzdWFuY2VJZDogc3RyaW5nO1xuICBtcHRIb2xkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgLy8gbWFuZGF0b3J5IGZpZWxkc1xuICBmcm9tOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uVHlwZTogWHJwVHJhbnNhY3Rpb25UeXBlO1xuICBpc011bHRpU2lnOiBib29sZWFuO1xuICAvLyBvcHRpb25hbCBmaWVsZHNcbiAgaWQ/OiBzdHJpbmc7XG4gIGZlZT86IHN0cmluZztcbiAgZmxhZ3M6IG51bWJlcjtcbiAgc2VxdWVuY2U/OiBudW1iZXI7XG4gIGxhc3RMZWRnZXJTZXF1ZW5jZT86IG51bWJlcjtcbiAgc2lnbmluZ1B1YktleT86IHN0cmluZzsgLy8gaWYgJycgdGhlbiBpdCBpcyBhIG11bHRpIHNpZ1xuICB0eG5TaWduYXR1cmU/OiBzdHJpbmc7IC8vIG9ubHkgZm9yIHNpbmdsZSBzaWdcbiAgc2lnbmVycz86IFNpZ25lcltdOyAvLyBvbmx5IGZvciBtdWx0aSBzaWdcbiAgLy8gdHJhbnNmZXIgeHJwIC8gYWNjb3VudC1kZWxldGUgZmllbGRzXG4gIGRlc3RpbmF0aW9uPzogc3RyaW5nO1xuICBkZXN0aW5hdGlvblRhZz86IG51bWJlcjtcbiAgYW1vdW50PzogQW1vdW50O1xuICAvLyBhY2NvdW50IHNldCBmaWVsZHNcbiAgbWVzc2FnZUtleT86IHN0cmluZztcbiAgc2V0RmxhZz86IG51bWJlcjtcbiAgLy8gc2lnbmVyIGxpc3Qgc2V0IGZpZWxkc1xuICBzaWduZXJRdW9ydW0/OiBudW1iZXI7XG4gIHNpZ25lckVudHJpZXM/OiBTaWduZXJFbnRyeVtdO1xuICAvLyBtcHQgZmllbGRzXG4gIG1wdElzc3VhbmNlSWQ/OiBzdHJpbmc7XG4gIG1wdEhvbGRlcj86IHN0cmluZzsgLy8gaXNzdWVyLXNpZGUgYXV0aCBvbmx5IChQaGFzZSAyKSDigJQgYWJzZW50IGZvciBob2xkZXIgc2VsZi1hdXRoXG4gIG1wdEFtb3VudD86IE1QVEFtb3VudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduZXJEZXRhaWxzIHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB3ZWlnaHQ6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKxD,OAAO,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKxD,OAAO,EAIL,sBAAsB,EACtB,MAAM,EACN,cAAc,EAEf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAE9C,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;gBAEnB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,cAAc,CAAC,EAAE,EAAE,cAAc,EAEpC;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAO9B,MAAM,IAAI,MAAM;IA2EhB,kBAAkB,IAAI,cAAc;IAOpC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI;IAoDxC,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB,IAAI,sBAAsB;IAiB5C,OAAO,CAAC,kCAAkC;IAgB1C,OAAO,CAAC,+BAA+B;IAuBvC,OAAO,CAAC,yBAAyB;IA8CjC,OAAO,CAAC,4BAA4B;IAoBpC,OAAO,CAAC,+BAA+B;IAoBvC,OAAO,CAAC,oBAAoB;IAY5B;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IA0DhD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IA6C5B;;;;;QAKI;IACJ,OAAO,CAAC,oBAAoB;IAM5B;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,kBAAkB;CAK3B"}
|
|
@@ -253,8 +253,21 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
253
253
|
else {
|
|
254
254
|
amount = tx.Amount.value;
|
|
255
255
|
}
|
|
256
|
+
// The lib-level explainer only has the decoded signed blob, not transaction metadata, so
|
|
257
|
+
// it cannot resolve meta.delivered_amount. When tfPartialPayment is set, `amount` is the
|
|
258
|
+
// *requested* amount, not what was actually delivered — surface that via the flag so
|
|
259
|
+
// consumers don't treat outputAmount as the settled value.
|
|
260
|
+
const partialPayment = utils_1.default.isPartialPayment(tx.Flags);
|
|
256
261
|
return {
|
|
257
|
-
displayOrder: [
|
|
262
|
+
displayOrder: [
|
|
263
|
+
'id',
|
|
264
|
+
'outputAmount',
|
|
265
|
+
'changeAmount',
|
|
266
|
+
'outputs',
|
|
267
|
+
'changeOutputs',
|
|
268
|
+
'fee',
|
|
269
|
+
...(partialPayment ? ['partialPayment'] : []),
|
|
270
|
+
],
|
|
258
271
|
id: this._id,
|
|
259
272
|
changeOutputs: [],
|
|
260
273
|
outputAmount: amount,
|
|
@@ -269,6 +282,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
269
282
|
fee: tx.Fee,
|
|
270
283
|
feeRate: undefined,
|
|
271
284
|
},
|
|
285
|
+
...(partialPayment ? { partialPayment: true } : {}),
|
|
272
286
|
};
|
|
273
287
|
}
|
|
274
288
|
explainAccountSetTransaction() {
|
|
@@ -426,6 +440,12 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
426
440
|
else {
|
|
427
441
|
value = Amount.value;
|
|
428
442
|
}
|
|
443
|
+
// NOTE: `value` reflects the requested `Amount`, not the delivered amount. If the
|
|
444
|
+
// tfPartialPayment flag is set the actual delivered value lives in metadata
|
|
445
|
+
// (meta.delivered_amount), which is not available on the decoded signed blob here.
|
|
446
|
+
// This path is used for build/sign flows (BitGo never builds partial payments); for
|
|
447
|
+
// display/verification of external partial payments use explainTransaction, which
|
|
448
|
+
// honors meta.delivered_amount and surfaces partialPayment: true.
|
|
429
449
|
this.inputs.push({ address: Account, value, coin });
|
|
430
450
|
this.outputs.push({
|
|
431
451
|
address: utils_1.default.normalizeAddress({ address: Destination, destinationTag: DestinationTag }),
|
|
@@ -467,4 +487,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
467
487
|
}
|
|
468
488
|
}
|
|
469
489
|
exports.Transaction = Transaction;
|
|
470
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUF1QjtBQUN2QiwyQ0FBNkI7QUFFN0IsOENBT3lCO0FBRXpCLG9EQUE0QjtBQUU1QixnRUFBcUM7QUFFckMsbUNBT2lCO0FBR2pCOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFLOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEVBQWtCO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBWTtRQUNsQixJQUFJLENBQUMsZUFBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFxQztZQUMzRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixHQUFHLEVBQUUs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QUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFlO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUF4Y0Qsa0NBd2NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIHhycGwgZnJvbSAneHJwbCc7XG5cbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgTVBUb2tlbkF1dGhvcml6ZSwgU2lnbmVyIH0gZnJvbSAneHJwbCc7XG5pbXBvcnQge1xuICBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFR4RGF0YSxcbiAgWHJwVHJhbnNhY3Rpb24sXG4gIFhycFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcblxuLyoqXG4gKiBYUlAgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIC8vIFhSUCBzcGVjaWZpYyBmaWVsZHNcbiAgcHJvdGVjdGVkIF94cnBUcmFuc2FjdGlvbjogWHJwVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfaXNNdWx0aVNpZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHhycFRyYW5zYWN0aW9uKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5feHJwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgeHJwVHJhbnNhY3Rpb24odHg6IFhycFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGE6IFR4RGF0YSA9IHtcbiAgICAgIGZyb206IHRoaXMuX3hycFRyYW5zYWN0aW9uLkFjY291bnQsXG4gICAgICBpc011bHRpU2lnOiB0aGlzLl9pc011bHRpU2lnLFxuICAgICAgdHJhbnNhY3Rpb25UeXBlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgYXMgWHJwVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgZmVlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUsXG4gICAgICBzZXF1ZW5jZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2VxdWVuY2UsXG4gICAgICBsYXN0TGVkZ2VyU2VxdWVuY2U6IHRoaXMuX3hycFRyYW5zYWN0aW9uLkxhc3RMZWRnZXJTZXF1ZW5jZSxcbiAgICAgIGZsYWdzOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GbGFncyBhcyBudW1iZXIsXG4gICAgICBzaWduaW5nUHViS2V5OiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5LFxuICAgICAgc2lnbmVyczogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyxcbiAgICAgIHR4blNpZ25hdHVyZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uVHhuU2lnbmF0dXJlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSA9PT0gJycgJiYgIV8uaXNFbXB0eSh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzKSkge1xuICAgICAgdHhEYXRhLmlzTXVsdGlTaWcgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB1dGlscy5pc1ZhbGlkUHVibGljS2V5KHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkpKSB7XG4gICAgICB0eERhdGEuaXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50RGVsZXRlOlxuICAgICAgICB0eERhdGEuZGVzdGluYXRpb24gPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5EZXN0aW5hdGlvbjtcbiAgICAgICAgdHhEYXRhLmRlc3RpbmF0aW9uVGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uRGVzdGluYXRpb25UYWc7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlBheW1lbnQ6IHtcbiAgICAgICAgY29uc3QgcGF5bWVudFR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5QYXltZW50O1xuICAgICAgICB0eERhdGEuZGVzdGluYXRpb24gPSBwYXltZW50VHguRGVzdGluYXRpb247XG4gICAgICAgIHR4RGF0YS5kZXN0aW5hdGlvblRhZyA9IHBheW1lbnRUeC5EZXN0aW5hdGlvblRhZztcbiAgICAgICAgY29uc3QgcGF5bWVudEFtb3VudCA9IHBheW1lbnRUeC5BbW91bnQ7XG4gICAgICAgIGlmICh0eXBlb2YgcGF5bWVudEFtb3VudCA9PT0gJ3N0cmluZycgfHwgdXRpbHMuaXNJc3N1ZWRDdXJyZW5jeUFtb3VudChwYXltZW50QW1vdW50KSkge1xuICAgICAgICAgIHR4RGF0YS5hbW91bnQgPSBwYXltZW50QW1vdW50IGFzIHhycGwuQW1vdW50O1xuICAgICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzTVBUQW1vdW50KHBheW1lbnRBbW91bnQpKSB7XG4gICAgICAgICAgdHhEYXRhLm1wdEFtb3VudCA9IHBheW1lbnRBbW91bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFtb3VudCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eERhdGE7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLk1QVG9rZW5BdXRob3JpemU6IHtcbiAgICAgICAgY29uc3QgbXBUeCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIE1QVG9rZW5BdXRob3JpemU7XG4gICAgICAgIHR4RGF0YS5tcHRJc3N1YW5jZUlkID0gbXBUeC5NUFRva2VuSXNzdWFuY2VJRDtcbiAgICAgICAgaWYgKG1wVHguSG9sZGVyKSB7XG4gICAgICAgICAgdHhEYXRhLm1wdEhvbGRlciA9IG1wVHguSG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eERhdGE7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnRTZXQ6XG4gICAgICAgIHR4RGF0YS5zZXRGbGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uU2V0RmxhZztcbiAgICAgICAgdHhEYXRhLm1lc3NhZ2VLZXkgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5NZXNzYWdlS2V5O1xuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICB0eERhdGEuc2lnbmVyUXVvcnVtID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVyUXVvcnVtO1xuICAgICAgICB0eERhdGEuc2lnbmVyRW50cmllcyA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lckVudHJpZXM7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlRydXN0U2V0OlxuICAgICAgICB0eERhdGEuYW1vdW50ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uTGltaXRBbW91bnQ7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2lnbmFibGVQYXlsb2FkKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiBfLm9taXQodGhpcy5feHJwVHJhbnNhY3Rpb24sIFsnVHhuU2lnbmF0dXJlJywgJ1NpZ25lcnMnLCAnU2lnbmluZ1B1YktleSddKSBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNpZ24oa2V5UGFpcjogS2V5UGFpciB8IEtleVBhaXJbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBmZWUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbi5TZXF1ZW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIHNlcXVlbmNlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24uRmxhZ3MpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBmbGFncycpO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KGtleVBhaXIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qga2V5UGFpcnMgPSBrZXlQYWlyIGluc3RhbmNlb2YgQXJyYXkgPyBrZXlQYWlyIDogW2tleVBhaXJdO1xuICAgIGZvciAoY29uc3Qga3Agb2Yga2V5UGFpcnMpIHtcbiAgICAgIGNvbnN0IHsgcHViLCBwcnYgfSA9IGtwLmdldEtleXMoKTtcbiAgICAgIGlmICghcHJ2KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2lzTXVsdGlTaWcgPT09IGZhbHNlICYmIHRoaXMuX3hycFRyYW5zYWN0aW9uLlR4blNpZ25hdHVyZSkge1xuICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdUcmFuc2FjdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHNpZ25lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gdGhpcy5nZXRTaWduYWJsZVBheWxvYWQoKTtcblxuICAgICAgY29uc3QgeHJwV2FsbGV0ID0gbmV3IHhycGwuV2FsbGV0KHB1YiwgcHJ2KTtcbiAgICAgIGNvbnN0IHNpZ25lZFR4ID0geHJwV2FsbGV0LnNpZ24oc2lnbmFibGVQYXlsb2FkIGFzIHhycGwuVHJhbnNhY3Rpb24sIHRoaXMuX2lzTXVsdGlTaWcpO1xuICAgICAgY29uc3QgeHJwU2lnbmVkVHggPSB4cnBsLmRlY29kZShzaWduZWRUeC50eF9ibG9iKTtcbiAgICAgIHhycGwudmFsaWRhdGUoeHJwU2lnbmVkVHgpO1xuXG4gICAgICBpZiAodGhpcy5faXNNdWx0aVNpZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgeHJwV2FsbGV0LnZlcmlmeVRyYW5zYWN0aW9uKHNpZ25lZFR4LnR4X2Jsb2IpO1xuICAgICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHhycFNpZ25lZFR4IGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgICAgIHRoaXMuX2lkID0gc2lnbmVkVHguaGFzaDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2lzTXVsdGlTaWcgPT09IHRydWUpIHtcbiAgICAgICAgaWYgKCF4cnBTaWduZWRUeC5TaWduZXJzIHx8ICFfLmlzQXJyYXkoeHJwU2lnbmVkVHguU2lnbmVycykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIG9yIGludmFsaWQgc2lnbmVycycpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZFNpZ25lcnMgPSB0aGlzLmNvbmNhdEFuZFNvcnRTaWduZXJzKHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMgfHwgW10sIHhycFNpZ25lZFR4LlNpZ25lcnMpO1xuICAgICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHhycFNpZ25lZFR4IGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMgPSBzb3J0ZWRTaWduZXJzO1xuICAgICAgICB0aGlzLl9pZCA9IHRoaXMuY2FsY3VsYXRlSWRGcm9tUmF3VHgoeHJwbC5lbmNvZGUodGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5UcmFuc2FjdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHhycGwuZW5jb2RlKHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50RGVsZXRlOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluQWNjb3VudERlbGV0ZVRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluUGF5bWVudFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50U2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluQWNjb3VudFNldFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5NUFRva2VuQXV0aG9yaXplOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluTVBUb2tlbkF1dGhvcml6ZVRyYW5zYWN0aW9uKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5NUFRva2VuQXV0aG9yaXplVHJhbnNhY3Rpb24oKTogQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgTVBUb2tlbkF1dGhvcml6ZTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZSddLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiAwLFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiB0eC5GZWUgYXMgc3RyaW5nLFxuICAgICAgICBmZWVSYXRlOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5BY2NvdW50RGVsZXRlVHJhbnNhY3Rpb24oKTogQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5BY2NvdW50RGVsZXRlO1xuICAgIGNvbnN0IGFkZHJlc3MgPSB1dGlscy5ub3JtYWxpemVBZGRyZXNzKHsgYWRkcmVzczogdHguRGVzdGluYXRpb24sIGRlc3RpbmF0aW9uVGFnOiB0eC5EZXN0aW5hdGlvblRhZyB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXI6IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJ10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6ICcwJywgLy8gZnVsbCBiYWxhbmNlIGlzIHN3ZXB0OyBleGFjdCBhbW91bnQgdW5rbm93biBhdCBidWlsZCB0aW1lXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogJzAnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwbGFpblBheW1lbnRUcmFuc2FjdGlvbigpOiBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgdHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLlBheW1lbnQ7XG4gICAgY29uc3QgYWRkcmVzcyA9IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzOiB0eC5EZXN0aW5hdGlvbiwgZGVzdGluYXRpb25UYWc6IHR4LkRlc3RpbmF0aW9uVGFnIH0pO1xuICAgIGxldCBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICBpZiAoXy5pc1N0cmluZyh0eC5BbW91bnQpKSB7XG4gICAgICBhbW91bnQgPSB0eC5BbW91bnQ7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc01QVEFtb3VudCh0eC5BbW91bnQpKSB7XG4gICAgICBhbW91bnQgPSB0eC5BbW91bnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFtb3VudCA9ICh0eC5BbW91bnQgYXMgeHJwbC5Jc3N1ZWRDdXJyZW5jeUFtb3VudCkudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXlPcmRlcjogWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnXSxcbiAgICAgIGlkOiB0aGlzLl9pZCBhcyBzdHJpbmcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dEFtb3VudDogYW1vdW50LFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IFN0cmluZyhhbW91bnQpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwbGFpbkFjY291bnRTZXRUcmFuc2FjdGlvbigpOiBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgdHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLkFjY291bnRTZXQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXlPcmRlcjogWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAnYWNjb3VudFNldCddLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiAwLFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiB0eC5GZWUgYXMgc3RyaW5nLFxuICAgICAgICBmZWVSYXRlOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgYWNjb3VudFNldDoge1xuICAgICAgICBtZXNzYWdlS2V5OiB0eC5NZXNzYWdlS2V5LFxuICAgICAgICBzZXRGbGFnOiB0eC5TZXRGbGFnIGFzIHhycGwuQWNjb3VudFNldEFzZkZsYWdzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBleHBsYWluU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uKCk6IFNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuU2lnbmVyTGlzdFNldDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZScsICdzaWduZXJMaXN0U2V0J10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6IDAsXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBzaWduZXJMaXN0U2V0OiB7XG4gICAgICAgIHNpZ25lclF1b3J1bTogdHguU2lnbmVyUXVvcnVtLFxuICAgICAgICBzaWduZXJFbnRyaWVzOiB0eC5TaWduZXJFbnRyaWVzIGFzIHhycGwuU2lnbmVyRW50cnlbXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlSWRGcm9tUmF3VHgocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGlkOiBzdHJpbmc7XG4gICAgLy8gaGFzaGVzIGlkcyBhcmUgZGlmZmVyZW50IGZvciBzaWduZWQgYW5kIHVuc2lnbmVkIHR4XG4gICAgLy8gZmlyc3Qgd2UgdHJ5IHRvIGdldCB0aGUgaGFzaCBpZCBhcyBpZiBpdCBpcyBzaWduZWQsIHdpbGwgdGhyb3cgaWYgaXRzIG5vdFxuICAgIHRyeSB7XG4gICAgICBpZCA9IHhycGwuaGFzaGVzLmhhc2hTaWduZWRUeChyYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWQgPSB4cnBsLmhhc2hlcy5oYXNoVHgocmF3VHJhbnNhY3Rpb24pO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldC5cbiAgICovXG4gIHNldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICBzZXRNdWx0aVNpZ1ZhbHVlKGlzTXVsdGlTaWc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9pc011bHRpU2lnID0gaXNNdWx0aVNpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHR4SGV4ID0gcmF3VHJhbnNhY3Rpb247XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkSGV4KHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdHhIZXggPSB4cnBsLmVuY29kZShKU09OLnBhcnNlKHJhd1RyYW5zYWN0aW9uKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgICB1dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHR4SGV4KTtcblxuICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uID0geHJwbC5kZWNvZGUodHhIZXgpIGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgaWYgKCFYcnBUcmFuc2FjdGlvblR5cGVbdGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlXSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlLCBnb3Q6ICcgKyB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ICE9PSAnJykge1xuICAgICAgdGhpcy5faXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ID09PSAnJyAmJlxuICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyAmJlxuICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLl9pc011bHRpU2lnID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5faWQgPSB0aGlzLmNhbGN1bGF0ZUlkRnJvbVJhd1R4KHR4SGV4KTtcblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50RGVsZXRlOlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudERlbGV0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuU2lnbmVyTGlzdFNldDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50U2V0OlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudDoge1xuICAgICAgICBjb25zdCBwYXltZW50VHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLlBheW1lbnQ7XG4gICAgICAgIGlmICh1dGlscy5pc01QVEFtb3VudChwYXltZW50VHguQW1vdW50KSkge1xuICAgICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kTVBUKTtcbiAgICAgICAgfSBlbHNlIGlmICh1dGlscy5pc0lzc3VlZEN1cnJlbmN5QW1vdW50KHBheW1lbnRUeC5BbW91bnQpKSB7XG4gICAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuVHJ1c3RTZXQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5UcnVzdExpbmUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLk1QVG9rZW5BdXRob3JpemU6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5NUFRva2VuQXV0aG9yaXplKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29pbiA9IHRoaXMuX2NvaW5Db25maWcubmFtZTtcblxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgPT09IFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50RGVsZXRlKSB7XG4gICAgICBjb25zdCB7IEFjY291bnQsIERlc3RpbmF0aW9uLCBEZXN0aW5hdGlvblRhZyB9ID0gdGhpcy5feHJwVHJhbnNhY3Rpb247XG4gICAgICAvLyBGb3IgQWNjb3VudERlbGV0ZSB0aGUgZXhhY3QgYW1vdW50IHN3ZXB0IGlzIHVua25vd24gYXQgYnVpbGQgdGltZSAoZnVsbCBiYWxhbmNlIG1pbnVzIGZlZSkuXG4gICAgICAvLyBXZSByZWNvcmQgJzAnIGFzIGEgcGxhY2Vob2xkZXI7IHRoZSBhY3R1YWwgYW1vdW50IGlzIGRldGVybWluZWQgb24tY2hhaW4uXG4gICAgICB0aGlzLmlucHV0cy5wdXNoKHsgYWRkcmVzczogQWNjb3VudCwgdmFsdWU6ICcwJywgY29pbiB9KTtcbiAgICAgIHRoaXMub3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMubm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3M6IERlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblRhZzogRGVzdGluYXRpb25UYWcgfSksXG4gICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgIGNvaW4sXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlID09PSBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudCkge1xuICAgICAgY29uc3QgcGF5bWVudFR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5QYXltZW50O1xuICAgICAgY29uc3QgeyBBY2NvdW50LCBEZXN0aW5hdGlvbiwgQW1vdW50LCBEZXN0aW5hdGlvblRhZyB9ID0gcGF5bWVudFR4O1xuICAgICAgbGV0IHZhbHVlOiBzdHJpbmc7XG4gICAgICBpZiAodHlwZW9mIEFtb3VudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmFsdWUgPSBBbW91bnQ7XG4gICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzTVBUQW1vdW50KEFtb3VudCkpIHtcbiAgICAgICAgdmFsdWUgPSBBbW91bnQudmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IChBbW91bnQgYXMgeHJwbC5Jc3N1ZWRDdXJyZW5jeUFtb3VudCkudmFsdWU7XG4gICAgICB9XG4gICAgICB0aGlzLmlucHV0cy5wdXNoKHsgYWRkcmVzczogQWNjb3VudCwgdmFsdWUsIGNvaW4gfSk7XG4gICAgICB0aGlzLm91dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzOiBEZXN0aW5hdGlvbiwgZGVzdGluYXRpb25UYWc6IERlc3RpbmF0aW9uVGFnIH0pLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29pbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cHMgYW5kIHNvcnRzIHRoZSBzaWduZXJzIGJ5IGFjY291bnQuXG4gICAqIEBwYXJhbSB7U2lnbmVyW119c2lnbmVyczEgLSBUaGUgZmlyc3Qgc2V0IG9mIHNpZ25lcnMuXG4gICAqIEBwYXJhbSB7U2lnbmVyW119c2lnbmVyczIgLSBUaGUgc2Vjb25kIHNldCBvZiBzaWduZXJzLlxuICAgKiBAcmV0dXJucyBUaGUgZ3JvdXBlZCBhbmQgc29ydGVkIHNpZ25lcnMuXG4gICAqKi9cbiAgcHJpdmF0ZSBjb25jYXRBbmRTb3J0U2lnbmVycyhzaWduZXJzMTogU2lnbmVyW10sIHNpZ25lcnMyOiBTaWduZXJbXSk6IFNpZ25lcltdIHtcbiAgICByZXR1cm4gc2lnbmVyczFcbiAgICAgIC5jb25jYXQoc2lnbmVyczIpXG4gICAgICAuc29ydCgoc2lnbmVyMSwgc2lnbmVyMikgPT4gdGhpcy5jb21wYXJlU2lnbmVyc0J5QWNjb3VudChzaWduZXIxLlNpZ25lci5BY2NvdW50LCBzaWduZXIyLlNpZ25lci5BY2NvdW50KSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgcHJlc2VudGVkIGluIGJpbmFyeSBmb3JtLCB0aGUgU2lnbmVycyBhcnJheSBtdXN0IGJlIHNvcnRlZCBiYXNlZCBvblxuICAgKiB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgc2lnbmVyIGFkZHJlc3Nlcywgd2l0aCB0aGUgbG93ZXN0IHZhbHVlIGZpcnN0LlxuICAgKiAoSWYgc3VibWl0dGVkIGFzIEpTT04sIHRoZSBzdWJtaXRfbXVsdGlzaWduZWQgbWV0aG9kIGhhbmRsZXMgdGhpcyBhdXRvbWF0aWNhbGx5LilcbiAgICogaHR0cHM6Ly94cnBsLm9yZy9tdWx0aS1zaWduaW5nLmh0bWwuXG4gICAqXG4gICAqIEBwYXJhbSBsZWZ0IC0gQSBTaWduZXIgdG8gY29tcGFyZSB3aXRoLlxuICAgKiBAcGFyYW0gcmlnaHQgLSBBIHNlY29uZCBTaWduZXIgdG8gY29tcGFyZSB3aXRoLlxuICAgKiBAcmV0dXJucyAxIGlmIGxlZnQgXFw+IHJpZ2h0LCAwIGlmIGxlZnQgPSByaWdodCwgLTEgaWYgbGVmdCBcXDwgcmlnaHQsIGFuZCBudWxsIGlmIGxlZnQgb3IgcmlnaHQgYXJlIE5hTi5cbiAgICovXG4gIHByaXZhdGUgY29tcGFyZVNpZ25lcnNCeUFjY291bnQoYWRkcmVzczE6IHN0cmluZywgYWRkcmVzczI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgYWRkcmVzc0JOMSA9IHRoaXMuYWRkcmVzc1RvQmlnTnVtYmVyKGFkZHJlc3MxKTtcbiAgICBjb25zdCBhZGRyZXNzQk4yID0gdGhpcy5hZGRyZXNzVG9CaWdOdW1iZXIoYWRkcmVzczIpO1xuICAgIHJldHVybiBhZGRyZXNzQk4xLmNvbXBhcmVkVG8oYWRkcmVzc0JOMik7XG4gIH1cblxuICBwcml2YXRlIGFkZHJlc3NUb0JpZ051bWJlcihhZGRyZXNzOiBzdHJpbmcpOiBCaWdOdW1iZXIge1xuICAgIGNvbnN0IGhleCA9IEJ1ZmZlci5mcm9tKHhycGwuZGVjb2RlQWNjb3VudElEKGFkZHJlc3MpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgbnVtYmVyT2ZCaXRzSW5IZXggPSAxNjtcbiAgICByZXR1cm4gbmV3IEJpZ051bWJlcihoZXgsIG51bWJlck9mQml0c0luSGV4KTtcbiAgfVxufVxuIl19
|
|
490
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUF1QjtBQUN2QiwyQ0FBNkI7QUFFN0IsOENBT3lCO0FBRXpCLG9EQUE0QjtBQUU1QixnRUFBcUM7QUFFckMsbUNBUWlCO0FBR2pCOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFLOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEVBQWtCO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBWTtRQUNsQixJQUFJLENBQUMsZUFBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFxQztZQUMzRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixHQUFHLEVBQUUs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QUFNLENBQUMsUUFBUSxDQUFDO2FBQ2hCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNLLHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE9BQWU7UUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQTdkRCxrQ0E2ZEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgeHJwbCBmcm9tICd4cnBsJztcblxuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBNUFRva2VuQXV0aG9yaXplLCBTaWduZXIgfSBmcm9tICd4cnBsJztcbmltcG9ydCB7XG4gIEFjY291bnRTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBQYXltZW50VHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFR4RGF0YSxcbiAgWHJwVHJhbnNhY3Rpb24sXG4gIFhycFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcblxuLyoqXG4gKiBYUlAgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIC8vIFhSUCBzcGVjaWZpYyBmaWVsZHNcbiAgcHJvdGVjdGVkIF94cnBUcmFuc2FjdGlvbjogWHJwVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfaXNNdWx0aVNpZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHhycFRyYW5zYWN0aW9uKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5feHJwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgeHJwVHJhbnNhY3Rpb24odHg6IFhycFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGE6IFR4RGF0YSA9IHtcbiAgICAgIGZyb206IHRoaXMuX3hycFRyYW5zYWN0aW9uLkFjY291bnQsXG4gICAgICBpc011bHRpU2lnOiB0aGlzLl9pc011bHRpU2lnLFxuICAgICAgdHJhbnNhY3Rpb25UeXBlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgYXMgWHJwVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgZmVlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUsXG4gICAgICBzZXF1ZW5jZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2VxdWVuY2UsXG4gICAgICBsYXN0TGVkZ2VyU2VxdWVuY2U6IHRoaXMuX3hycFRyYW5zYWN0aW9uLkxhc3RMZWRnZXJTZXF1ZW5jZSxcbiAgICAgIGZsYWdzOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GbGFncyBhcyBudW1iZXIsXG4gICAgICBzaWduaW5nUHViS2V5OiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5LFxuICAgICAgc2lnbmVyczogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyxcbiAgICAgIHR4blNpZ25hdHVyZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uVHhuU2lnbmF0dXJlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSA9PT0gJycgJiYgIV8uaXNFbXB0eSh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzKSkge1xuICAgICAgdHhEYXRhLmlzTXVsdGlTaWcgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB1dGlscy5pc1ZhbGlkUHVibGljS2V5KHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkpKSB7XG4gICAgICB0eERhdGEuaXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50RGVsZXRlOlxuICAgICAgICB0eERhdGEuZGVzdGluYXRpb24gPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5EZXN0aW5hdGlvbjtcbiAgICAgICAgdHhEYXRhLmRlc3RpbmF0aW9uVGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uRGVzdGluYXRpb25UYWc7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlBheW1lbnQ6IHtcbiAgICAgICAgY29uc3QgcGF5bWVudFR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5QYXltZW50O1xuICAgICAgICB0eERhdGEuZGVzdGluYXRpb24gPSBwYXltZW50VHguRGVzdGluYXRpb247XG4gICAgICAgIHR4RGF0YS5kZXN0aW5hdGlvblRhZyA9IHBheW1lbnRUeC5EZXN0aW5hdGlvblRhZztcbiAgICAgICAgY29uc3QgcGF5bWVudEFtb3VudCA9IHBheW1lbnRUeC5BbW91bnQ7XG4gICAgICAgIGlmICh0eXBlb2YgcGF5bWVudEFtb3VudCA9PT0gJ3N0cmluZycgfHwgdXRpbHMuaXNJc3N1ZWRDdXJyZW5jeUFtb3VudChwYXltZW50QW1vdW50KSkge1xuICAgICAgICAgIHR4RGF0YS5hbW91bnQgPSBwYXltZW50QW1vdW50IGFzIHhycGwuQW1vdW50O1xuICAgICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzTVBUQW1vdW50KHBheW1lbnRBbW91bnQpKSB7XG4gICAgICAgICAgdHhEYXRhLm1wdEFtb3VudCA9IHBheW1lbnRBbW91bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFtb3VudCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eERhdGE7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLk1QVG9rZW5BdXRob3JpemU6IHtcbiAgICAgICAgY29uc3QgbXBUeCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIE1QVG9rZW5BdXRob3JpemU7XG4gICAgICAgIHR4RGF0YS5tcHRJc3N1YW5jZUlkID0gbXBUeC5NUFRva2VuSXNzdWFuY2VJRDtcbiAgICAgICAgaWYgKG1wVHguSG9sZGVyKSB7XG4gICAgICAgICAgdHhEYXRhLm1wdEhvbGRlciA9IG1wVHguSG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eERhdGE7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnRTZXQ6XG4gICAgICAgIHR4RGF0YS5zZXRGbGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uU2V0RmxhZztcbiAgICAgICAgdHhEYXRhLm1lc3NhZ2VLZXkgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5NZXNzYWdlS2V5O1xuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICB0eERhdGEuc2lnbmVyUXVvcnVtID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVyUXVvcnVtO1xuICAgICAgICB0eERhdGEuc2lnbmVyRW50cmllcyA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lckVudHJpZXM7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlRydXN0U2V0OlxuICAgICAgICB0eERhdGEuYW1vdW50ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uTGltaXRBbW91bnQ7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2lnbmFibGVQYXlsb2FkKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiBfLm9taXQodGhpcy5feHJwVHJhbnNhY3Rpb24sIFsnVHhuU2lnbmF0dXJlJywgJ1NpZ25lcnMnLCAnU2lnbmluZ1B1YktleSddKSBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNpZ24oa2V5UGFpcjogS2V5UGFpciB8IEtleVBhaXJbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBmZWUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbi5TZXF1ZW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIHNlcXVlbmNlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24uRmxhZ3MpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBmbGFncycpO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KGtleVBhaXIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qga2V5UGFpcnMgPSBrZXlQYWlyIGluc3RhbmNlb2YgQXJyYXkgPyBrZXlQYWlyIDogW2tleVBhaXJdO1xuICAgIGZvciAoY29uc3Qga3Agb2Yga2V5UGFpcnMpIHtcbiAgICAgIGNvbnN0IHsgcHViLCBwcnYgfSA9IGtwLmdldEtleXMoKTtcbiAgICAgIGlmICghcHJ2KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2lzTXVsdGlTaWcgPT09IGZhbHNlICYmIHRoaXMuX3hycFRyYW5zYWN0aW9uLlR4blNpZ25hdHVyZSkge1xuICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdUcmFuc2FjdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHNpZ25lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gdGhpcy5nZXRTaWduYWJsZVBheWxvYWQoKTtcblxuICAgICAgY29uc3QgeHJwV2FsbGV0ID0gbmV3IHhycGwuV2FsbGV0KHB1YiwgcHJ2KTtcbiAgICAgIGNvbnN0IHNpZ25lZFR4ID0geHJwV2FsbGV0LnNpZ24oc2lnbmFibGVQYXlsb2FkIGFzIHhycGwuVHJhbnNhY3Rpb24sIHRoaXMuX2lzTXVsdGlTaWcpO1xuICAgICAgY29uc3QgeHJwU2lnbmVkVHggPSB4cnBsLmRlY29kZShzaWduZWRUeC50eF9ibG9iKTtcbiAgICAgIHhycGwudmFsaWRhdGUoeHJwU2lnbmVkVHgpO1xuXG4gICAgICBpZiAodGhpcy5faXNNdWx0aVNpZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgeHJwV2FsbGV0LnZlcmlmeVRyYW5zYWN0aW9uKHNpZ25lZFR4LnR4X2Jsb2IpO1xuICAgICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHhycFNpZ25lZFR4IGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgICAgIHRoaXMuX2lkID0gc2lnbmVkVHguaGFzaDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2lzTXVsdGlTaWcgPT09IHRydWUpIHtcbiAgICAgICAgaWYgKCF4cnBTaWduZWRUeC5TaWduZXJzIHx8ICFfLmlzQXJyYXkoeHJwU2lnbmVkVHguU2lnbmVycykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIG9yIGludmFsaWQgc2lnbmVycycpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZFNpZ25lcnMgPSB0aGlzLmNvbmNhdEFuZFNvcnRTaWduZXJzKHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMgfHwgW10sIHhycFNpZ25lZFR4LlNpZ25lcnMpO1xuICAgICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHhycFNpZ25lZFR4IGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMgPSBzb3J0ZWRTaWduZXJzO1xuICAgICAgICB0aGlzLl9pZCA9IHRoaXMuY2FsY3VsYXRlSWRGcm9tUmF3VHgoeHJwbC5lbmNvZGUodGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5UcmFuc2FjdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHhycGwuZW5jb2RlKHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50RGVsZXRlOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluQWNjb3VudERlbGV0ZVRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluUGF5bWVudFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50U2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluQWNjb3VudFNldFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5NUFRva2VuQXV0aG9yaXplOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluTVBUb2tlbkF1dGhvcml6ZVRyYW5zYWN0aW9uKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5NUFRva2VuQXV0aG9yaXplVHJhbnNhY3Rpb24oKTogQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgTVBUb2tlbkF1dGhvcml6ZTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZSddLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiAwLFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiB0eC5GZWUgYXMgc3RyaW5nLFxuICAgICAgICBmZWVSYXRlOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5BY2NvdW50RGVsZXRlVHJhbnNhY3Rpb24oKTogQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5BY2NvdW50RGVsZXRlO1xuICAgIGNvbnN0IGFkZHJlc3MgPSB1dGlscy5ub3JtYWxpemVBZGRyZXNzKHsgYWRkcmVzczogdHguRGVzdGluYXRpb24sIGRlc3RpbmF0aW9uVGFnOiB0eC5EZXN0aW5hdGlvblRhZyB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXI6IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJ10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6ICcwJywgLy8gZnVsbCBiYWxhbmNlIGlzIHN3ZXB0OyBleGFjdCBhbW91bnQgdW5rbm93biBhdCBidWlsZCB0aW1lXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogJzAnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwbGFpblBheW1lbnRUcmFuc2FjdGlvbigpOiBQYXltZW50VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgdHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLlBheW1lbnQ7XG4gICAgY29uc3QgYWRkcmVzcyA9IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzOiB0eC5EZXN0aW5hdGlvbiwgZGVzdGluYXRpb25UYWc6IHR4LkRlc3RpbmF0aW9uVGFnIH0pO1xuICAgIGxldCBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICBpZiAoXy5pc1N0cmluZyh0eC5BbW91bnQpKSB7XG4gICAgICBhbW91bnQgPSB0eC5BbW91bnQ7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc01QVEFtb3VudCh0eC5BbW91bnQpKSB7XG4gICAgICBhbW91bnQgPSB0eC5BbW91bnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFtb3VudCA9ICh0eC5BbW91bnQgYXMgeHJwbC5Jc3N1ZWRDdXJyZW5jeUFtb3VudCkudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVGhlIGxpYi1sZXZlbCBleHBsYWluZXIgb25seSBoYXMgdGhlIGRlY29kZWQgc2lnbmVkIGJsb2IsIG5vdCB0cmFuc2FjdGlvbiBtZXRhZGF0YSwgc29cbiAgICAvLyBpdCBjYW5ub3QgcmVzb2x2ZSBtZXRhLmRlbGl2ZXJlZF9hbW91bnQuIFdoZW4gdGZQYXJ0aWFsUGF5bWVudCBpcyBzZXQsIGBhbW91bnRgIGlzIHRoZVxuICAgIC8vICpyZXF1ZXN0ZWQqIGFtb3VudCwgbm90IHdoYXQgd2FzIGFjdHVhbGx5IGRlbGl2ZXJlZCDigJQgc3VyZmFjZSB0aGF0IHZpYSB0aGUgZmxhZyBzb1xuICAgIC8vIGNvbnN1bWVycyBkb24ndCB0cmVhdCBvdXRwdXRBbW91bnQgYXMgdGhlIHNldHRsZWQgdmFsdWUuXG4gICAgY29uc3QgcGFydGlhbFBheW1lbnQgPSB1dGlscy5pc1BhcnRpYWxQYXltZW50KHR4LkZsYWdzIGFzIG51bWJlcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbXG4gICAgICAgICdpZCcsXG4gICAgICAgICdvdXRwdXRBbW91bnQnLFxuICAgICAgICAnY2hhbmdlQW1vdW50JyxcbiAgICAgICAgJ291dHB1dHMnLFxuICAgICAgICAnY2hhbmdlT3V0cHV0cycsXG4gICAgICAgICdmZWUnLFxuICAgICAgICAuLi4ocGFydGlhbFBheW1lbnQgPyBbJ3BhcnRpYWxQYXltZW50J10gOiBbXSksXG4gICAgICBdLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiBhbW91bnQsXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogU3RyaW5nKGFtb3VudCksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZmVlOiB7XG4gICAgICAgIGZlZTogdHguRmVlIGFzIHN0cmluZyxcbiAgICAgICAgZmVlUmF0ZTogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJ0aWFsUGF5bWVudCA/IHsgcGFydGlhbFBheW1lbnQ6IHRydWUgfSA6IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBleHBsYWluQWNjb3VudFNldFRyYW5zYWN0aW9uKCk6IEFjY291bnRTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuQWNjb3VudFNldDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZScsICdhY2NvdW50U2V0J10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6IDAsXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBhY2NvdW50U2V0OiB7XG4gICAgICAgIG1lc3NhZ2VLZXk6IHR4Lk1lc3NhZ2VLZXksXG4gICAgICAgIHNldEZsYWc6IHR4LlNldEZsYWcgYXMgeHJwbC5BY2NvdW50U2V0QXNmRmxhZ3MsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5TaWduZXJMaXN0U2V0VHJhbnNhY3Rpb24oKTogU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5TaWduZXJMaXN0U2V0O1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXI6IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJywgJ3NpZ25lckxpc3RTZXQnXSxcbiAgICAgIGlkOiB0aGlzLl9pZCBhcyBzdHJpbmcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dEFtb3VudDogMCxcbiAgICAgIGNoYW5nZUFtb3VudDogMCxcbiAgICAgIG91dHB1dHM6IFtdLFxuICAgICAgZmVlOiB7XG4gICAgICAgIGZlZTogdHguRmVlIGFzIHN0cmluZyxcbiAgICAgICAgZmVlUmF0ZTogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIHNpZ25lckxpc3RTZXQ6IHtcbiAgICAgICAgc2lnbmVyUXVvcnVtOiB0eC5TaWduZXJRdW9ydW0sXG4gICAgICAgIHNpZ25lckVudHJpZXM6IHR4LlNpZ25lckVudHJpZXMgYXMgeHJwbC5TaWduZXJFbnRyeVtdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVJZEZyb21SYXdUeChyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgaWQ6IHN0cmluZztcbiAgICAvLyBoYXNoZXMgaWRzIGFyZSBkaWZmZXJlbnQgZm9yIHNpZ25lZCBhbmQgdW5zaWduZWQgdHhcbiAgICAvLyBmaXJzdCB3ZSB0cnkgdG8gZ2V0IHRoZSBoYXNoIGlkIGFzIGlmIGl0IGlzIHNpZ25lZCwgd2lsbCB0aHJvdyBpZiBpdHMgbm90XG4gICAgdHJ5IHtcbiAgICAgIGlkID0geHJwbC5oYXNoZXMuaGFzaFNpZ25lZFR4KHJhd1RyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZCA9IHhycGwuaGFzaGVzLmhhc2hUeChyYXdUcmFuc2FjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIHNldE11bHRpU2lnVmFsdWUoaXNNdWx0aVNpZzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2lzTXVsdGlTaWcgPSBpc011bHRpU2lnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgdHhIZXggPSByYXdUcmFuc2FjdGlvbjtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRIZXgocmF3VHJhbnNhY3Rpb24pKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0eEhleCA9IHhycGwuZW5jb2RlKEpTT04ucGFyc2UocmF3VHJhbnNhY3Rpb24pKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24odHhIZXgpO1xuXG4gICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB4cnBsLmRlY29kZSh0eEhleCkgYXMgdW5rbm93biBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgICBpZiAoIVhycFRyYW5zYWN0aW9uVHlwZVt0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGVdKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUsIGdvdDogJyArIHRoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ICYmIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkgIT09ICcnKSB7XG4gICAgICB0aGlzLl9pc011bHRpU2lnID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkgPT09ICcnICYmXG4gICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzICYmXG4gICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX2lzTXVsdGlTaWcgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLl9pZCA9IHRoaXMuY2FsY3VsYXRlSWRGcm9tUmF3VHgodHhIZXgpO1xuXG4gICAgc3dpdGNoICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnREZWxldGU6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50RGVsZXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnRTZXQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50VXBkYXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OiB7XG4gICAgICAgIGNvbnN0IHBheW1lbnRUeCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuUGF5bWVudDtcbiAgICAgICAgaWYgKHV0aWxzLmlzTVBUQW1vdW50KHBheW1lbnRUeC5BbW91bnQpKSB7XG4gICAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmRNUFQpO1xuICAgICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzSXNzdWVkQ3VycmVuY3lBbW91bnQocGF5bWVudFR4LkFtb3VudCkpIHtcbiAgICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5UcnVzdFNldDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlRydXN0TGluZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuTVBUb2tlbkF1dGhvcml6ZTpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLk1QVG9rZW5BdXRob3JpemUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb2luID0gdGhpcy5fY29pbkNvbmZpZy5uYW1lO1xuXG4gICAgaWYgKHRoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZSA9PT0gWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnREZWxldGUpIHtcbiAgICAgIGNvbnN0IHsgQWNjb3VudCwgRGVzdGluYXRpb24sIERlc3RpbmF0aW9uVGFnIH0gPSB0aGlzLl94cnBUcmFuc2FjdGlvbjtcbiAgICAgIC8vIEZvciBBY2NvdW50RGVsZXRlIHRoZSBleGFjdCBhbW91bnQgc3dlcHQgaXMgdW5rbm93biBhdCBidWlsZCB0aW1lIChmdWxsIGJhbGFuY2UgbWludXMgZmVlKS5cbiAgICAgIC8vIFdlIHJlY29yZCAnMCcgYXMgYSBwbGFjZWhvbGRlcjsgdGhlIGFjdHVhbCBhbW91bnQgaXMgZGV0ZXJtaW5lZCBvbi1jaGFpbi5cbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBBY2NvdW50LCB2YWx1ZTogJzAnLCBjb2luIH0pO1xuICAgICAgdGhpcy5vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5ub3JtYWxpemVBZGRyZXNzKHsgYWRkcmVzczogRGVzdGluYXRpb24sIGRlc3RpbmF0aW9uVGFnOiBEZXN0aW5hdGlvblRhZyB9KSxcbiAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgY29pbixcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgPT09IFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50KSB7XG4gICAgICBjb25zdCBwYXltZW50VHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLlBheW1lbnQ7XG4gICAgICBjb25zdCB7IEFjY291bnQsIERlc3RpbmF0aW9uLCBBbW91bnQsIERlc3RpbmF0aW9uVGFnIH0gPSBwYXltZW50VHg7XG4gICAgICBsZXQgdmFsdWU6IHN0cmluZztcbiAgICAgIGlmICh0eXBlb2YgQW1vdW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YWx1ZSA9IEFtb3VudDtcbiAgICAgIH0gZWxzZSBpZiAodXRpbHMuaXNNUFRBbW91bnQoQW1vdW50KSkge1xuICAgICAgICB2YWx1ZSA9IEFtb3VudC52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gKEFtb3VudCBhcyB4cnBsLklzc3VlZEN1cnJlbmN5QW1vdW50KS52YWx1ZTtcbiAgICAgIH1cbiAgICAgIC8vIE5PVEU6IGB2YWx1ZWAgcmVmbGVjdHMgdGhlIHJlcXVlc3RlZCBgQW1vdW50YCwgbm90IHRoZSBkZWxpdmVyZWQgYW1vdW50LiBJZiB0aGVcbiAgICAgIC8vIHRmUGFydGlhbFBheW1lbnQgZmxhZyBpcyBzZXQgdGhlIGFjdHVhbCBkZWxpdmVyZWQgdmFsdWUgbGl2ZXMgaW4gbWV0YWRhdGFcbiAgICAgIC8vIChtZXRhLmRlbGl2ZXJlZF9hbW91bnQpLCB3aGljaCBpcyBub3QgYXZhaWxhYmxlIG9uIHRoZSBkZWNvZGVkIHNpZ25lZCBibG9iIGhlcmUuXG4gICAgICAvLyBUaGlzIHBhdGggaXMgdXNlZCBmb3IgYnVpbGQvc2lnbiBmbG93cyAoQml0R28gbmV2ZXIgYnVpbGRzIHBhcnRpYWwgcGF5bWVudHMpOyBmb3JcbiAgICAgIC8vIGRpc3BsYXkvdmVyaWZpY2F0aW9uIG9mIGV4dGVybmFsIHBhcnRpYWwgcGF5bWVudHMgdXNlIGV4cGxhaW5UcmFuc2FjdGlvbiwgd2hpY2hcbiAgICAgIC8vIGhvbm9ycyBtZXRhLmRlbGl2ZXJlZF9hbW91bnQgYW5kIHN1cmZhY2VzIHBhcnRpYWxQYXltZW50OiB0cnVlLlxuICAgICAgdGhpcy5pbnB1dHMucHVzaCh7IGFkZHJlc3M6IEFjY291bnQsIHZhbHVlLCBjb2luIH0pO1xuICAgICAgdGhpcy5vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5ub3JtYWxpemVBZGRyZXNzKHsgYWRkcmVzczogRGVzdGluYXRpb24sIGRlc3RpbmF0aW9uVGFnOiBEZXN0aW5hdGlvblRhZyB9KSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNvaW4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3JvdXBzIGFuZCBzb3J0cyB0aGUgc2lnbmVycyBieSBhY2NvdW50LlxuICAgKiBAcGFyYW0ge1NpZ25lcltdfXNpZ25lcnMxIC0gVGhlIGZpcnN0IHNldCBvZiBzaWduZXJzLlxuICAgKiBAcGFyYW0ge1NpZ25lcltdfXNpZ25lcnMyIC0gVGhlIHNlY29uZCBzZXQgb2Ygc2lnbmVycy5cbiAgICogQHJldHVybnMgVGhlIGdyb3VwZWQgYW5kIHNvcnRlZCBzaWduZXJzLlxuICAgKiovXG4gIHByaXZhdGUgY29uY2F0QW5kU29ydFNpZ25lcnMoc2lnbmVyczE6IFNpZ25lcltdLCBzaWduZXJzMjogU2lnbmVyW10pOiBTaWduZXJbXSB7XG4gICAgcmV0dXJuIHNpZ25lcnMxXG4gICAgICAuY29uY2F0KHNpZ25lcnMyKVxuICAgICAgLnNvcnQoKHNpZ25lcjEsIHNpZ25lcjIpID0+IHRoaXMuY29tcGFyZVNpZ25lcnNCeUFjY291bnQoc2lnbmVyMS5TaWduZXIuQWNjb3VudCwgc2lnbmVyMi5TaWduZXIuQWNjb3VudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHByZXNlbnRlZCBpbiBiaW5hcnkgZm9ybSwgdGhlIFNpZ25lcnMgYXJyYXkgbXVzdCBiZSBzb3J0ZWQgYmFzZWQgb25cbiAgICogdGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIHNpZ25lciBhZGRyZXNzZXMsIHdpdGggdGhlIGxvd2VzdCB2YWx1ZSBmaXJzdC5cbiAgICogKElmIHN1Ym1pdHRlZCBhcyBKU09OLCB0aGUgc3VibWl0X211bHRpc2lnbmVkIG1ldGhvZCBoYW5kbGVzIHRoaXMgYXV0b21hdGljYWxseS4pXG4gICAqIGh0dHBzOi8veHJwbC5vcmcvbXVsdGktc2lnbmluZy5odG1sLlxuICAgKlxuICAgKiBAcGFyYW0gbGVmdCAtIEEgU2lnbmVyIHRvIGNvbXBhcmUgd2l0aC5cbiAgICogQHBhcmFtIHJpZ2h0IC0gQSBzZWNvbmQgU2lnbmVyIHRvIGNvbXBhcmUgd2l0aC5cbiAgICogQHJldHVybnMgMSBpZiBsZWZ0IFxcPiByaWdodCwgMCBpZiBsZWZ0ID0gcmlnaHQsIC0xIGlmIGxlZnQgXFw8IHJpZ2h0LCBhbmQgbnVsbCBpZiBsZWZ0IG9yIHJpZ2h0IGFyZSBOYU4uXG4gICAqL1xuICBwcml2YXRlIGNvbXBhcmVTaWduZXJzQnlBY2NvdW50KGFkZHJlc3MxOiBzdHJpbmcsIGFkZHJlc3MyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGFkZHJlc3NCTjEgPSB0aGlzLmFkZHJlc3NUb0JpZ051bWJlcihhZGRyZXNzMSk7XG4gICAgY29uc3QgYWRkcmVzc0JOMiA9IHRoaXMuYWRkcmVzc1RvQmlnTnVtYmVyKGFkZHJlc3MyKTtcbiAgICByZXR1cm4gYWRkcmVzc0JOMS5jb21wYXJlZFRvKGFkZHJlc3NCTjIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRyZXNzVG9CaWdOdW1iZXIoYWRkcmVzczogc3RyaW5nKTogQmlnTnVtYmVyIHtcbiAgICBjb25zdCBoZXggPSBCdWZmZXIuZnJvbSh4cnBsLmRlY29kZUFjY291bnRJRChhZGRyZXNzKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IG51bWJlck9mQml0c0luSGV4ID0gMTY7XG4gICAgcmV0dXJuIG5ldyBCaWdOdW1iZXIoaGV4LCBudW1iZXJPZkJpdHNJbkhleCk7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -55,6 +55,21 @@ declare class Utils implements BaseUtils {
|
|
|
55
55
|
* Determines if the provided `amount` is an MPT payment amount.
|
|
56
56
|
*/
|
|
57
57
|
isMPTAmount(amount: Amount | MPTAmount): amount is MPTAmount;
|
|
58
|
+
/**
|
|
59
|
+
* Returns true when the Payment `tfPartialPayment` flag is set on a transaction's Flags
|
|
60
|
+
* field. When set, the delivered amount is in `meta.delivered_amount`, not `tx.Amount`.
|
|
61
|
+
*/
|
|
62
|
+
isPartialPayment(flags: number | undefined): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Extracts the numeric/string delivered amount value from XRP transaction metadata.
|
|
65
|
+
* `meta.delivered_amount` is an `Amount | 'unavailable'`:
|
|
66
|
+
* - string → XRP drops (or the literal 'unavailable' for pre-2014 txs)
|
|
67
|
+
* - IssuedCurrencyAmount → `{ currency, issuer, value }`
|
|
68
|
+
* Returns undefined when metadata is missing, the field is 'unavailable', or the shape
|
|
69
|
+
* is unexpected — callers must fall back to `tx.Amount` in that case and surface the
|
|
70
|
+
* partial-payment flag so consumers know the value is requested, not delivered.
|
|
71
|
+
*/
|
|
72
|
+
getDeliveredAmountValue(meta?: xrpl.TransactionMetadata): string | undefined;
|
|
58
73
|
/**
|
|
59
74
|
* Get the associated XRP Currency details from token name. Throws an error if token is unsupported
|
|
60
75
|
* @param {string} tokenName - The token name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAKV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAI1D,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAe,SAAS,EAAE,MAAM,MAAM,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIjD,cAAM,KAAM,YAAW,SAAS;IAC9B,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASxC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAStC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IA8ClD;;OAEG;IACI,gBAAgB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,GAAG,MAAM;IAgBrE;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAU9D;;;;;OAKG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAiBtF;;;;OAIG;IACI,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAY3D;;;;;OAKG;IACI,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAUtD,sBAAsB,CAAC,OAAO,EAAE,MAAM;IAStC,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAYlD;;OAEG;IACI,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,oBAAoB;IAIzF;;OAEG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,SAAS;IAInE;;;OAGG;IACI,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,cAAc;IAc1E;;;;;;OAMG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAWtC;;;;;;OAMG;IACI,WAAW,CAAC,aAAa,KAAA,EAAE,YAAY,KAAA,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;CAehF;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAKV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAI1D,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAe,SAAS,EAAE,MAAM,MAAM,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIjD,cAAM,KAAM,YAAW,SAAS;IAC9B,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASxC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAStC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IA8ClD;;OAEG;IACI,gBAAgB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,GAAG,MAAM;IAgBrE;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAU9D;;;;;OAKG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAiBtF;;;;OAIG;IACI,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAY3D;;;;;OAKG;IACI,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAUtD,sBAAsB,CAAC,OAAO,EAAE,MAAM;IAStC,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAYlD;;OAEG;IACI,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,oBAAoB;IAIzF;;OAEG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,SAAS;IAInE;;;OAGG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAI3D;;;;;;;;OAQG;IACI,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,mBAAmB,GAAG,MAAM,GAAG,SAAS;IAiBnF;;;OAGG;IACI,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,cAAc;IAc1E;;;;;;OAMG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAWtC;;;;;;OAMG;IACI,WAAW,CAAC,aAAa,KAAA,EAAE,YAAY,KAAA,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;CAehF;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|