@bitgo-beta/abstract-lightning 1.0.0-alpha.189 → 1.0.0-alpha.190

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.
@@ -13,15 +13,18 @@ export declare const PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = "INSUFFICIENT
13
13
  /** Excess custodial lightning balance for the customer's wallet */
14
14
  export declare const PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = "EXCESS_WALLET_BALANCE";
15
15
  export declare const PAYMENT_FAILURE_INVOICE_EXPIRED = "INVOICE_EXPIRED";
16
- export declare const PAYMENT_FAILURE_PAYMENT_ALREADY_EXISTS = "PAYMENT_ALREADY_EXISTS";
16
+ export declare const PAYMENT_FAILURE_PAYMENT_ALREADY_SETTLED = "PAYMENT_ALREADY_SETTLED";
17
+ export declare const PAYMENT_FAILURE_PAYMENT_ALREADY_IN_FLIGHT = "PAYMENT_ALREADY_IN_FLIGHT";
18
+ export declare const PAYMENT_FAILURE_TRANSIENT_ERROR_RETRY_LATER = "TRANSIENT_ERROR_RETRY_LATER";
17
19
  export declare const PAYMENT_FAILURE_CANCELED = "CANCELED";
18
20
  export declare const PAYMENT_FAILURE_FORCE_FAILED = "FORCE_FAILED";
19
- export declare const PaymentFailureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_EXISTS">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
21
+ export declare const PaymentFailureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_SETTLED">, t.LiteralC<"PAYMENT_ALREADY_IN_FLIGHT">, t.LiteralC<"TRANSIENT_ERROR_RETRY_LATER">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
20
22
  export type PaymentFailureReason = t.TypeOf<typeof PaymentFailureReason>;
21
23
  /**
22
24
  * Off-chain payment information
23
25
  */
24
26
  export declare const PaymentInfo: t.IntersectionC<[t.TypeC<{
27
+ id: t.StringC;
25
28
  paymentHash: t.StringC;
26
29
  walletId: t.StringC;
27
30
  txRequestId: t.StringC;
@@ -34,12 +37,13 @@ export declare const PaymentInfo: t.IntersectionC<[t.TypeC<{
34
37
  amountMsat: import("io-ts-types/BigIntFromString").BigIntFromStringC;
35
38
  }>, t.PartialC<{
36
39
  feeMsat: import("io-ts-types/BigIntFromString").BigIntFromStringC;
37
- failureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_EXISTS">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
40
+ failureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_SETTLED">, t.LiteralC<"PAYMENT_ALREADY_IN_FLIGHT">, t.LiteralC<"TRANSIENT_ERROR_RETRY_LATER">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
38
41
  paymentPreimage: t.StringC;
39
42
  }>]>;
40
43
  export type PaymentInfo = t.TypeOf<typeof PaymentInfo>;
41
44
  export declare const ListPaymentsResponse: t.IntersectionC<[t.TypeC<{
42
45
  payments: t.ArrayC<t.IntersectionC<[t.TypeC<{
46
+ id: t.StringC;
43
47
  paymentHash: t.StringC;
44
48
  walletId: t.StringC;
45
49
  txRequestId: t.StringC;
@@ -52,12 +56,12 @@ export declare const ListPaymentsResponse: t.IntersectionC<[t.TypeC<{
52
56
  amountMsat: import("io-ts-types/BigIntFromString").BigIntFromStringC;
53
57
  }>, t.PartialC<{
54
58
  feeMsat: import("io-ts-types/BigIntFromString").BigIntFromStringC;
55
- failureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_EXISTS">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
59
+ failureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_SETTLED">, t.LiteralC<"PAYMENT_ALREADY_IN_FLIGHT">, t.LiteralC<"TRANSIENT_ERROR_RETRY_LATER">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
56
60
  paymentPreimage: t.StringC;
57
61
  }>]>>;
58
62
  }>, t.PartialC<{
59
63
  /**
60
- * This is the paymentHash of the last Payment in the last iteration.
64
+ * This is the paymentId of the last Payment in the last iteration.
61
65
  * Providing this value as the prevId in the next request will return the next batch of payments.
62
66
  * */
63
67
  nextBatchPrevId: t.StringC;
@@ -71,7 +75,8 @@ export declare const PaymentQuery: t.PartialC<{
71
75
  limit: import("io-ts-types/BigIntFromString").BigIntFromStringC;
72
76
  startDate: import("io-ts-types/DateFromISOString").DateFromISOStringC;
73
77
  endDate: import("io-ts-types/DateFromISOString").DateFromISOStringC;
74
- /** paymentHash provided by nextBatchPrevId in the previous list */
78
+ paymentHash: t.StringC;
79
+ /** paymentId provided by nextBatchPrevId in the previous list */
75
80
  prevId: t.StringC;
76
81
  }>;
77
82
  export type PaymentQuery = t.TypeOf<typeof PaymentQuery>;
@@ -92,10 +97,11 @@ export declare const LndCreatePaymentResponse: t.IntersectionC<[t.TypeC<{
92
97
  status: t.UnionC<[t.LiteralC<"in_flight">, t.LiteralC<"settled">, t.LiteralC<"failed">]>;
93
98
  paymentHash: t.StringC;
94
99
  }>, t.PartialC<{
100
+ paymentId: t.StringC;
95
101
  paymentPreimage: t.StringC;
96
102
  amountMsat: t.StringC;
97
103
  feeMsat: t.StringC;
98
- failureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_EXISTS">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
104
+ failureReason: t.UnionC<[t.LiteralC<"TIMEOUT">, t.LiteralC<"NO_ROUTE">, t.LiteralC<"ERROR">, t.LiteralC<"INCORRECT_PAYMENT_DETAILS">, t.LiteralC<"INSUFFICIENT_BALANCE">, t.LiteralC<"INSUFFICIENT_WALLET_BALANCE">, t.LiteralC<"EXCESS_WALLET_BALANCE">, t.LiteralC<"INVOICE_EXPIRED">, t.LiteralC<"PAYMENT_ALREADY_SETTLED">, t.LiteralC<"PAYMENT_ALREADY_IN_FLIGHT">, t.LiteralC<"TRANSIENT_ERROR_RETRY_LATER">, t.LiteralC<"CANCELED">, t.LiteralC<"FORCE_FAILED">]>;
99
105
  }>]>;
100
106
  export type LndCreatePaymentResponse = t.TypeOf<typeof LndCreatePaymentResponse>;
101
107
  //# sourceMappingURL=payment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../../src/codecs/api/payment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAO3B,eAAO,MAAM,aAAa,kFAQxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,8BAA8B;AAC9B,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,iCAAiC,8BAA8B,CAAC;AAC7E,6CAA6C;AAC7C,eAAO,MAAM,4CAA4C,yBAAyB,CAAC;AACnF,yEAAyE;AACzE,eAAO,MAAM,2CAA2C,gCAAgC,CAAC;AACzF,mEAAmE;AACnE,eAAO,MAAM,qCAAqC,0BAA0B,CAAC;AAC7E,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AACjE,eAAO,MAAM,sCAAsC,2BAA2B,CAAC;AAC/E,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,sWAY/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;IAqBvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;IAM3B;;;SAGK;;IAKV,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;IAMrB,mEAAmE;;EAItE,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AAEzD,eAAO,MAAM,mBAAmB;aA5FS,EAAG,OAAO;;uBAEzC,8BAAa;yBACA,8BAAa;mBAAuC,EAE3E,OADO;;;;;;IAiGL,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;;;;;;;IAcpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../../src/codecs/api/payment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAO3B,eAAO,MAAM,aAAa,kFAQxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,8BAA8B;AAC9B,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,iCAAiC,8BAA8B,CAAC;AAC7E,6CAA6C;AAC7C,eAAO,MAAM,4CAA4C,yBAAyB,CAAC;AACnF,yEAAyE;AACzE,eAAO,MAAM,2CAA2C,gCAAgC,CAAC;AACzF,mEAAmE;AACnE,eAAO,MAAM,qCAAqC,0BAA0B,CAAC;AAC7E,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AACjE,eAAO,MAAM,uCAAuC,4BAA4B,CAAC;AACjF,eAAO,MAAM,yCAAyC,8BAA8B,CAAC;AACrF,eAAO,MAAM,2CAA2C,gCAAgC,CAAC;AACzF,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,2bAc/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;IAsBvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;IAM3B;;;SAGK;;IAKV,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;IAOrB,iEAAiE;;EAIpE,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AAEzD,eAAO,MAAM,mBAAmB;aAlGS,EAAG,OAAO;;uBAEzC,8BAAa;yBACA,8BAAa;mBAAuC,EAE3E,OADO;;;;;;IAuGL,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;;;;;;;;IAepC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.LndCreatePaymentResponse = exports.SubmitPaymentParams = exports.PaymentQuery = exports.ListPaymentsResponse = exports.PaymentInfo = exports.PaymentFailureReason = exports.PAYMENT_FAILURE_FORCE_FAILED = exports.PAYMENT_FAILURE_CANCELED = exports.PAYMENT_FAILURE_PAYMENT_ALREADY_EXISTS = exports.PAYMENT_FAILURE_INVOICE_EXPIRED = exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_CHANNEL_BALANCE = exports.PAYMENT_FAILURE_INCORRECT_DETAILS = exports.PAYMENT_FAILURE_ERROR = exports.PAYMENT_FAILURE_NO_ROUTE = exports.PAYMENT_FAILURE_TIMEOUT = exports.PaymentStatus = void 0;
36
+ exports.LndCreatePaymentResponse = exports.SubmitPaymentParams = exports.PaymentQuery = exports.ListPaymentsResponse = exports.PaymentInfo = exports.PaymentFailureReason = exports.PAYMENT_FAILURE_FORCE_FAILED = exports.PAYMENT_FAILURE_CANCELED = exports.PAYMENT_FAILURE_TRANSIENT_ERROR_RETRY_LATER = exports.PAYMENT_FAILURE_PAYMENT_ALREADY_IN_FLIGHT = exports.PAYMENT_FAILURE_PAYMENT_ALREADY_SETTLED = exports.PAYMENT_FAILURE_INVOICE_EXPIRED = exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_CHANNEL_BALANCE = exports.PAYMENT_FAILURE_INCORRECT_DETAILS = exports.PAYMENT_FAILURE_ERROR = exports.PAYMENT_FAILURE_NO_ROUTE = exports.PAYMENT_FAILURE_TIMEOUT = exports.PaymentStatus = void 0;
37
37
  const t = __importStar(require("io-ts"));
38
38
  const BigIntFromString_1 = require("io-ts-types/BigIntFromString");
39
39
  const DateFromISOString_1 = require("io-ts-types/DateFromISOString");
@@ -60,7 +60,9 @@ exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = 'INSUFFICIENT_WALLET_BALAN
60
60
  /** Excess custodial lightning balance for the customer's wallet */
61
61
  exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = 'EXCESS_WALLET_BALANCE';
62
62
  exports.PAYMENT_FAILURE_INVOICE_EXPIRED = 'INVOICE_EXPIRED';
63
- exports.PAYMENT_FAILURE_PAYMENT_ALREADY_EXISTS = 'PAYMENT_ALREADY_EXISTS';
63
+ exports.PAYMENT_FAILURE_PAYMENT_ALREADY_SETTLED = 'PAYMENT_ALREADY_SETTLED';
64
+ exports.PAYMENT_FAILURE_PAYMENT_ALREADY_IN_FLIGHT = 'PAYMENT_ALREADY_IN_FLIGHT';
65
+ exports.PAYMENT_FAILURE_TRANSIENT_ERROR_RETRY_LATER = 'TRANSIENT_ERROR_RETRY_LATER';
64
66
  exports.PAYMENT_FAILURE_CANCELED = 'CANCELED';
65
67
  exports.PAYMENT_FAILURE_FORCE_FAILED = 'FORCE_FAILED';
66
68
  exports.PaymentFailureReason = t.union([
@@ -72,7 +74,9 @@ exports.PaymentFailureReason = t.union([
72
74
  t.literal(exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE),
73
75
  t.literal(exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE),
74
76
  t.literal(exports.PAYMENT_FAILURE_INVOICE_EXPIRED),
75
- t.literal(exports.PAYMENT_FAILURE_PAYMENT_ALREADY_EXISTS),
77
+ t.literal(exports.PAYMENT_FAILURE_PAYMENT_ALREADY_SETTLED),
78
+ t.literal(exports.PAYMENT_FAILURE_PAYMENT_ALREADY_IN_FLIGHT),
79
+ t.literal(exports.PAYMENT_FAILURE_TRANSIENT_ERROR_RETRY_LATER),
76
80
  t.literal(exports.PAYMENT_FAILURE_CANCELED),
77
81
  t.literal(exports.PAYMENT_FAILURE_FORCE_FAILED),
78
82
  ]);
@@ -81,6 +85,7 @@ exports.PaymentFailureReason = t.union([
81
85
  */
82
86
  exports.PaymentInfo = t.intersection([
83
87
  t.type({
88
+ id: t.string,
84
89
  paymentHash: t.string,
85
90
  walletId: t.string,
86
91
  txRequestId: t.string,
@@ -104,7 +109,7 @@ exports.ListPaymentsResponse = t.intersection([
104
109
  }),
105
110
  t.partial({
106
111
  /**
107
- * This is the paymentHash of the last Payment in the last iteration.
112
+ * This is the paymentId of the last Payment in the last iteration.
108
113
  * Providing this value as the prevId in the next request will return the next batch of payments.
109
114
  * */
110
115
  nextBatchPrevId: t.string,
@@ -118,7 +123,8 @@ exports.PaymentQuery = t.partial({
118
123
  limit: BigIntFromString_1.BigIntFromString,
119
124
  startDate: DateFromISOString_1.DateFromISOString,
120
125
  endDate: DateFromISOString_1.DateFromISOString,
121
- /** paymentHash provided by nextBatchPrevId in the previous list */
126
+ paymentHash: t.string,
127
+ /** paymentId provided by nextBatchPrevId in the previous list */
122
128
  prevId: t.string,
123
129
  }, 'PaymentQuery');
124
130
  exports.SubmitPaymentParams = t.intersection([
@@ -137,10 +143,11 @@ exports.LndCreatePaymentResponse = t.intersection([
137
143
  paymentHash: t.string,
138
144
  }),
139
145
  t.partial({
146
+ paymentId: t.string,
140
147
  paymentPreimage: t.string,
141
148
  amountMsat: t.string,
142
149
  feeMsat: t.string,
143
150
  failureReason: exports.PaymentFailureReason,
144
151
  }),
145
152
  ], 'LndCreatePaymentResponse');
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2RlY3MvYXBpL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTJCO0FBQzNCLG1FQUFnRTtBQUNoRSxxRUFBa0U7QUFDbEUsc0RBQThFO0FBRTlFLG1EQUFtRDtBQUV0QyxRQUFBLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25DLDJDQUEyQztJQUMzQyw0REFBNEQ7SUFDNUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDdEIsZUFBZTtJQUNmLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BCLGVBQWU7SUFDZixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztDQUNwQixDQUFDLENBQUM7QUFHVSxRQUFBLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztBQUNwQyxRQUFBLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztBQUNuRCw4QkFBOEI7QUFDakIsUUFBQSxxQkFBcUIsR0FBRyxPQUFPLENBQUM7QUFDaEMsUUFBQSxpQ0FBaUMsR0FBRywyQkFBMkIsQ0FBQztBQUM3RSw2Q0FBNkM7QUFDaEMsUUFBQSw0Q0FBNEMsR0FBRyxzQkFBc0IsQ0FBQztBQUNuRix5RUFBeUU7QUFDNUQsUUFBQSwyQ0FBMkMsR0FBRyw2QkFBNkIsQ0FBQztBQUN6RixtRUFBbUU7QUFDdEQsUUFBQSxxQ0FBcUMsR0FBRyx1QkFBdUIsQ0FBQztBQUNoRSxRQUFBLCtCQUErQixHQUFHLGlCQUFpQixDQUFDO0FBQ3BELFFBQUEsc0NBQXNDLEdBQUcsd0JBQXdCLENBQUM7QUFDbEUsUUFBQSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFDdEMsUUFBQSw0QkFBNEIsR0FBRyxjQUFjLENBQUM7QUFFOUMsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsS0FBSyxD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QyxNQUFNO1FBQ3BCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixhQUFhLEVBQUUsNEJBQW9CO0tBQ3BDLENBQUM7Q0FDSCxFQUNELDBCQUEwQixDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgeyBCaWdJbnRGcm9tU3RyaW5nIH0gZnJvbSAnaW8tdHMtdHlwZXMvQmlnSW50RnJvbVN0cmluZyc7XG5pbXBvcnQgeyBEYXRlRnJvbUlTT1N0cmluZyB9IGZyb20gJ2lvLXRzLXR5cGVzL0RhdGVGcm9tSVNPU3RyaW5nJztcbmltcG9ydCB7IExpZ2h0bmluZ1BheW1lbnRSZXF1ZXN0LCBvcHRpb25hbFN0cmluZyB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuXG4vLyBjb2RlY3MgZm9yIGxpZ2h0bmluZyB3YWxsZXQgcGF5bWVudCByZWxhdGVkIGFwaXNcblxuZXhwb3J0IGNvbnN0IFBheW1lbnRTdGF0dXMgPSB0LnVuaW9uKFtcbiAgLy8gSW5pdGlhbCBzdGF0ZSB3aGVuIHBheW1lbnQgaXMgaW5pdGlhdGVkLlxuICAvLyBUcmFuc2l0aW9ucyB0byAnc2V0dGxlZCcgb3IgJ2ZhaWxlZCcgb24gTE5EIG5vdGlmaWNhdGlvbi5cbiAgdC5saXRlcmFsKCdpbl9mbGlnaHQnKSxcbiAgLy8gRmluYWwgc3RhdGUuXG4gIHQubGl0ZXJhbCgnc2V0dGxlZCcpLFxuICAvLyBGaW5hbCBzdGF0ZS5cbiAgdC5saXRlcmFsKCdmYWlsZWQnKSxcbl0pO1xuZXhwb3J0IHR5cGUgUGF5bWVudFN0YXR1cyA9IHQuVHlwZU9mPHR5cGVvZiBQYXltZW50U3RhdHVzPjtcblxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9USU1FT1VUID0gJ1RJTUVPVVQnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9OT19ST1VURSA9ICdOT19ST1VURSc7XG4vKiogQSBub24tcmVjb3ZlcmFibGUgZXJyb3IgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfRVJST1IgPSAnRVJST1InO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTkNPUlJFQ1RfREVUQUlMUyA9ICdJTkNPUlJFQ1RfUEFZTUVOVF9ERVRBSUxTJztcbi8qKiBJbnN1ZmZpY2llbnQgY2hhbm5lbCBvdXRib3VuZCBjYXBhY2l0eSAqL1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTlNVRkZJQ0lFTlRfQ0hBTk5FTF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9CQUxBTkNFJztcbi8qKiBJbnN1ZmZpY2llbnQgY3VzdG9kaWFsIGxpZ2h0bmluZyBiYWxhbmNlIGZvciB0aGUgY3VzdG9tZXIncyB3YWxsZXQgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX1dBTExFVF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9XQUxMRVRfQkFMQU5DRSc7XG4vKiogRXhjZXNzIGN1c3RvZGlhbCBsaWdodG5pbmcgYmFsYW5jZSBmb3IgdGhlIGN1c3RvbWVyJ3Mgd2FsbGV0ICovXG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0VYQ0VTU19XQUxMRVRfQkFMQU5DRSA9ICdFWENFU1NfV0FMTEVUX0JBTEFOQ0UnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTlZPSUNFX0VYUElSRUQgPSAnSU5WT0lDRV9FWFBJUkVEJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfUEFZTUVOVF9BTFJFQURZX0VYSVNUUyA9ICdQQVlNRU5UX0FMUkVBRFlfRVhJU1RTJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfQ0FOQ0VMRUQgPSAnQ0FOQ0VMRUQnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9GT1JDRV9GQUlMRUQgPSAnRk9SQ0VfRkFJTEVEJztcblxuZXhwb3J0IGNvbnN0IFBheW1lbnRGYWlsdXJlUmVhc29uID0gdC51bmlvbihbXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfVElNRU9VVCksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfTk9fUk9VVEUpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0VSUk9SKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9JTkNPUlJFQ1RfREVUQUlMUyksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX0NIQU5ORUxfQkFMQU5DRSksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX1dBTExFVF9CQUxBTkNFKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9FWENFU1NfV0FMTEVUX0JBTEFOQ0UpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0lOVk9JQ0VfRVhQSVJFRCksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfUEFZTUVOVF9BTFJFQURZX0VYSVNUUyksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfQ0FOQ0VMRUQpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0ZPUkNFX0ZBSUxFRCksXG5dKTtcblxuZXhwb3J0IHR5cGUgUGF5bWVudEZhaWx1cmVSZWFzb24gPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudEZhaWx1cmVSZWFzb24+O1xuXG4vKipcbiAqIE9mZi1jaGFpbiBwYXltZW50IGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBQYXltZW50SW5mbyA9IHQuaW50ZXJzZWN0aW9uKFxuICBbXG4gICAgdC50eXBlKHtcbiAgICAgIHBheW1lbnRIYXNoOiB0LnN0cmluZyxcbiAgICAgIHdhbGxldElkOiB0LnN0cmluZyxcbiAgICAgIHR4UmVxdWVzdElkOiB0LnN0cmluZyxcbiAgICAgIHN0YXR1czogUGF5bWVudFN0YXR1cyxcbiAgICAgIGludm9pY2U6IHQuc3RyaW5nLFxuICAgICAgZmVlTGltaXRNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgICAgZGVzdGluYXRpb246IHQuc3RyaW5nLFxuICAgICAgdXBkYXRlZEF0OiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgICAgIGNyZWF0ZWRBdDogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgICBhbW91bnRNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgIH0pLFxuICAgIHQucGFydGlhbCh7XG4gICAgICBmZWVNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgICAgZmFpbHVyZVJlYXNvbjogUGF5bWVudEZhaWx1cmVSZWFzb24sXG4gICAgICBwYXltZW50UHJlaW1hZ2U6IHQuc3RyaW5nLFxuICAgIH0pLFxuICBdLFxuICAnUGF5bWVudEluZm8nXG4pO1xuXG5leHBvcnQgdHlwZSBQYXltZW50SW5mbyA9IHQuVHlwZU9mPHR5cGVvZiBQYXltZW50SW5mbz47XG5cbmV4cG9ydCBjb25zdCBMaXN0UGF5bWVudHNSZXNwb25zZSA9IHQuaW50ZXJzZWN0aW9uKFxuICBbXG4gICAgdC50eXBlKHtcbiAgICAgIHBheW1lbnRzOiB0LmFycmF5KFBheW1lbnRJbmZvKSxcbiAgICB9KSxcbiAgICB0LnBhcnRpYWwoe1xuICAgICAgLyoqXG4gICAgICAgKiBUaGlzIGlzIHRoZSBwYXltZW50SGFzaCBvZiB0aGUgbGFzdCBQYXltZW50IGluIHRoZSBsYXN0IGl0ZXJhdGlvbi5cbiAgICAgICAqIFByb3ZpZGluZyB0aGlzIHZhbHVlIGFzIHRoZSBwcmV2SWQgaW4gdGhlIG5leHQgcmVxdWVzdCB3aWxsIHJldHVybiB0aGUgbmV4dCBiYXRjaCBvZiBwYXltZW50cy5cbiAgICAgICAqICovXG4gICAgICBuZXh0QmF0Y2hQcmV2SWQ6IHQuc3RyaW5nLFxuICAgIH0pLFxuICBdLFxuICAnTGlzdFBheW1lbnRzUmVzcG9uc2UnXG4pO1xuZXhwb3J0IHR5cGUgTGlzdFBheW1lbnRzUmVzcG9uc2UgPSB0LlR5cGVPZjx0eXBlb2YgTGlzdFBheW1lbnRzUmVzcG9uc2U+O1xuXG4vKipcbiAqIFBheW1lbnQgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGF5bWVudFF1ZXJ5ID0gdC5wYXJ0aWFsKFxuICB7XG4gICAgc3RhdHVzOiBQYXltZW50U3RhdHVzLFxuICAgIGxpbWl0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgIHN0YXJ0RGF0ZTogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgZW5kRGF0ZTogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgLyoqIHBheW1lbnRIYXNoIHByb3ZpZGVkIGJ5IG5leHRCYXRjaFByZXZJZCBpbiB0aGUgcHJldmlvdXMgbGlzdCAqL1xuICAgIHByZXZJZDogdC5zdHJpbmcsXG4gIH0sXG4gICdQYXltZW50UXVlcnknXG4pO1xuZXhwb3J0IHR5cGUgUGF5bWVudFF1ZXJ5ID0gdC5UeXBlT2Y8dHlwZW9mIFBheW1lbnRRdWVyeT47XG5cbmV4cG9ydCBjb25zdCBTdWJtaXRQYXltZW50UGFyYW1zID0gdC5pbnRlcnNlY3Rpb24oW1xuICBMaWdodG5pbmdQYXltZW50UmVxdWVzdCxcbiAgdC50eXBlKHtcbiAgICBwYXNzcGhyYXNlOiB0LnN0cmluZyxcbiAgfSksXG4gIHQucGFydGlhbCh7XG4gICAgc2VxdWVuY2VJZDogb3B0aW9uYWxTdHJpbmcsXG4gICAgY29tbWVudDogb3B0aW9uYWxTdHJpbmcsXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCB0eXBlIFN1Ym1pdFBheW1lbnRQYXJhbXMgPSB0LlR5cGVPZjx0eXBlb2YgU3VibWl0UGF5bWVudFBhcmFtcz47XG5cbmV4cG9ydCBjb25zdCBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UgPSB0LmludGVyc2VjdGlvbihcbiAgW1xuICAgIHQudHlwZSh7XG4gICAgICBzdGF0dXM6IFBheW1lbnRTdGF0dXMsXG4gICAgICBwYXltZW50SGFzaDogdC5zdHJpbmcsXG4gICAgfSksXG4gICAgdC5wYXJ0aWFsKHtcbiAgICAgIHBheW1lbnRQcmVpbWFnZTogdC5zdHJpbmcsXG4gICAgICBhbW91bnRNc2F0OiB0LnN0cmluZyxcbiAgICAgIGZlZU1zYXQ6IHQuc3RyaW5nLFxuICAgICAgZmFpbHVyZVJlYXNvbjogUGF5bWVudEZhaWx1cmVSZWFzb24sXG4gICAgfSksXG4gIF0sXG4gICdMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UnXG4pO1xuXG5leHBvcnQgdHlwZSBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UgPSB0LlR5cGVPZjx0eXBlb2YgTG5kQ3JlYXRlUGF5bWVudFJlc3BvbnNlPjtcbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2RlY3MvYXBpL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTJCO0FBQzNCLG1FQUFnRTtBQUNoRSxxRUFBa0U7QUFDbEUsc0RBQThFO0FBRTlFLG1EQUFtRDtBQUV0QyxRQUFBLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25DLDJDQUEyQztJQUMzQyw0REFBNEQ7SUFDNUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDdEIsZUFBZTtJQUNmLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BCLGVBQWU7SUFDZixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztDQUNwQixDQUFDLENBQUM7QUFHVSxRQUFBLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztBQUNwQyxRQUFBLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztBQUNuRCw4QkFBOEI7QUFDakIsUUFBQSxxQkFBcUIsR0FBRyxPQUFPLENBQUM7QUFDaEMsUUFBQSxpQ0FBaUMsR0FBRywyQkFBMkIsQ0FBQztBQUM3RSw2Q0FBNkM7QUFDaEMsUUFBQSw0Q0FBNEMsR0FBRyxzQkFBc0IsQ0FBQztBQUNuRix5RUFBeUU7QUFDNUQsUUFBQSwyQ0FBMkMsR0FBRyw2QkFBNkIsQ0FBQztBQUN6RixtRUFBbUU7QUFDdEQsUUFBQSxxQ0FBcUMsR0FBRyx1QkFBdUIsQ0FBQztBQUNoRSxRQUFBLCtCQUErQixHQUFHLGlCQUFpQixDQUFDO0FBQ3BELFFBQUEsdUNBQXVDLEdBQUcseUJBQXlCLENBQUM7QUFDcEUsUUFBQSx5Q0FBeUMsR0FBRywyQkFBMkIsQ0FBQztBQUN4RSxRQUFBLDJDQUEyQyxHQUFHLDZCQUE2QixDQUFDO0FBQzVFLFFBQUEsd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0FB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VSxRQUFBLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxZQUFZLENBQ3BEO0lBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNMLE1BQU0sRUFBRSxxQkFBYTtRQUNyQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDdEIsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDbkIsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3pCLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNwQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDakIsYUFBYSxFQUFFLDRCQUFvQjtLQUNwQyxDQUFDO0NBQ0gsRUFDRCwwQkFBMEIsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgQmlnSW50RnJvbVN0cmluZyB9IGZyb20gJ2lvLXRzLXR5cGVzL0JpZ0ludEZyb21TdHJpbmcnO1xuaW1wb3J0IHsgRGF0ZUZyb21JU09TdHJpbmcgfSBmcm9tICdpby10cy10eXBlcy9EYXRlRnJvbUlTT1N0cmluZyc7XG5pbXBvcnQgeyBMaWdodG5pbmdQYXltZW50UmVxdWVzdCwgb3B0aW9uYWxTdHJpbmcgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcblxuLy8gY29kZWNzIGZvciBsaWdodG5pbmcgd2FsbGV0IHBheW1lbnQgcmVsYXRlZCBhcGlzXG5cbmV4cG9ydCBjb25zdCBQYXltZW50U3RhdHVzID0gdC51bmlvbihbXG4gIC8vIEluaXRpYWwgc3RhdGUgd2hlbiBwYXltZW50IGlzIGluaXRpYXRlZC5cbiAgLy8gVHJhbnNpdGlvbnMgdG8gJ3NldHRsZWQnIG9yICdmYWlsZWQnIG9uIExORCBub3RpZmljYXRpb24uXG4gIHQubGl0ZXJhbCgnaW5fZmxpZ2h0JyksXG4gIC8vIEZpbmFsIHN0YXRlLlxuICB0LmxpdGVyYWwoJ3NldHRsZWQnKSxcbiAgLy8gRmluYWwgc3RhdGUuXG4gIHQubGl0ZXJhbCgnZmFpbGVkJyksXG5dKTtcbmV4cG9ydCB0eXBlIFBheW1lbnRTdGF0dXMgPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudFN0YXR1cz47XG5cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfVElNRU9VVCA9ICdUSU1FT1VUJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfTk9fUk9VVEUgPSAnTk9fUk9VVEUnO1xuLyoqIEEgbm9uLXJlY292ZXJhYmxlIGVycm9yICovXG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0VSUk9SID0gJ0VSUk9SJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5DT1JSRUNUX0RFVEFJTFMgPSAnSU5DT1JSRUNUX1BBWU1FTlRfREVUQUlMUyc7XG4vKiogSW5zdWZmaWNpZW50IGNoYW5uZWwgb3V0Ym91bmQgY2FwYWNpdHkgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX0NIQU5ORUxfQkFMQU5DRSA9ICdJTlNVRkZJQ0lFTlRfQkFMQU5DRSc7XG4vKiogSW5zdWZmaWNpZW50IGN1c3RvZGlhbCBsaWdodG5pbmcgYmFsYW5jZSBmb3IgdGhlIGN1c3RvbWVyJ3Mgd2FsbGV0ICovXG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0lOU1VGRklDSUVOVF9XQUxMRVRfQkFMQU5DRSA9ICdJTlNVRkZJQ0lFTlRfV0FMTEVUX0JBTEFOQ0UnO1xuLyoqIEV4Y2VzcyBjdXN0b2RpYWwgbGlnaHRuaW5nIGJhbGFuY2UgZm9yIHRoZSBjdXN0b21lcidzIHdhbGxldCAqL1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9FWENFU1NfV0FMTEVUX0JBTEFOQ0UgPSAnRVhDRVNTX1dBTExFVF9CQUxBTkNFJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5WT0lDRV9FWFBJUkVEID0gJ0lOVk9JQ0VfRVhQSVJFRCc7XG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX1BBWU1FTlRfQUxSRUFEWV9TRVRUTEVEID0gJ1BBWU1FTlRfQUxSRUFEWV9TRVRUTEVEJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfUEFZTUVOVF9BTFJFQURZX0lOX0ZMSUdIVCA9ICdQQVlNRU5UX0FMUkVBRFlfSU5fRkxJR0hUJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfVFJBTlNJRU5UX0VSUk9SX1JFVFJZX0xBVEVSID0gJ1RSQU5TSUVOVF9FUlJPUl9SRVRSWV9MQVRFUic7XG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0NBTkNFTEVEID0gJ0NBTkNFTEVEJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfRk9SQ0VfRkFJTEVEID0gJ0ZPUkNFX0ZBSUxFRCc7XG5cbmV4cG9ydCBjb25zdCBQYXltZW50RmFpbHVyZVJlYXNvbiA9IHQudW5pb24oW1xuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX1RJTUVPVVQpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX05PX1JPVVRFKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9FUlJPUiksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5DT1JSRUNUX0RFVEFJTFMpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0lOU1VGRklDSUVOVF9DSEFOTkVMX0JBTEFOQ0UpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0lOU1VGRklDSUVOVF9XQUxMRVRfQkFMQU5DRSksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfRVhDRVNTX1dBTExFVF9CQUxBTkNFKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9JTlZPSUNFX0VYUElSRUQpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX1BBWU1FTlRfQUxSRUFEWV9TRVRUTEVEKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9QQVlNRU5UX0FMUkVBRFlfSU5fRkxJR0hUKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9UUkFOU0lFTlRfRVJST1JfUkVUUllfTEFURVIpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0NBTkNFTEVEKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9GT1JDRV9GQUlMRUQpLFxuXSk7XG5cbmV4cG9ydCB0eXBlIFBheW1lbnRGYWlsdXJlUmVhc29uID0gdC5UeXBlT2Y8dHlwZW9mIFBheW1lbnRGYWlsdXJlUmVhc29uPjtcblxuLyoqXG4gKiBPZmYtY2hhaW4gcGF5bWVudCBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgY29uc3QgUGF5bWVudEluZm8gPSB0LmludGVyc2VjdGlvbihcbiAgW1xuICAgIHQudHlwZSh7XG4gICAgICBpZDogdC5zdHJpbmcsXG4gICAgICBwYXltZW50SGFzaDogdC5zdHJpbmcsXG4gICAgICB3YWxsZXRJZDogdC5zdHJpbmcsXG4gICAgICB0eFJlcXVlc3RJZDogdC5zdHJpbmcsXG4gICAgICBzdGF0dXM6IFBheW1lbnRTdGF0dXMsXG4gICAgICBpbnZvaWNlOiB0LnN0cmluZyxcbiAgICAgIGZlZUxpbWl0TXNhdDogQmlnSW50RnJvbVN0cmluZyxcbiAgICAgIGRlc3RpbmF0aW9uOiB0LnN0cmluZyxcbiAgICAgIHVwZGF0ZWRBdDogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgICBjcmVhdGVkQXQ6IERhdGVGcm9tSVNPU3RyaW5nLFxuICAgICAgYW1vdW50TXNhdDogQmlnSW50RnJvbVN0cmluZyxcbiAgICB9KSxcbiAgICB0LnBhcnRpYWwoe1xuICAgICAgZmVlTXNhdDogQmlnSW50RnJvbVN0cmluZyxcbiAgICAgIGZhaWx1cmVSZWFzb246IFBheW1lbnRGYWlsdXJlUmVhc29uLFxuICAgICAgcGF5bWVudFByZWltYWdlOiB0LnN0cmluZyxcbiAgICB9KSxcbiAgXSxcbiAgJ1BheW1lbnRJbmZvJ1xuKTtcblxuZXhwb3J0IHR5cGUgUGF5bWVudEluZm8gPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudEluZm8+O1xuXG5leHBvcnQgY29uc3QgTGlzdFBheW1lbnRzUmVzcG9uc2UgPSB0LmludGVyc2VjdGlvbihcbiAgW1xuICAgIHQudHlwZSh7XG4gICAgICBwYXltZW50czogdC5hcnJheShQYXltZW50SW5mbyksXG4gICAgfSksXG4gICAgdC5wYXJ0aWFsKHtcbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBpcyB0aGUgcGF5bWVudElkIG9mIHRoZSBsYXN0IFBheW1lbnQgaW4gdGhlIGxhc3QgaXRlcmF0aW9uLlxuICAgICAgICogUHJvdmlkaW5nIHRoaXMgdmFsdWUgYXMgdGhlIHByZXZJZCBpbiB0aGUgbmV4dCByZXF1ZXN0IHdpbGwgcmV0dXJuIHRoZSBuZXh0IGJhdGNoIG9mIHBheW1lbnRzLlxuICAgICAgICogKi9cbiAgICAgIG5leHRCYXRjaFByZXZJZDogdC5zdHJpbmcsXG4gICAgfSksXG4gIF0sXG4gICdMaXN0UGF5bWVudHNSZXNwb25zZSdcbik7XG5leHBvcnQgdHlwZSBMaXN0UGF5bWVudHNSZXNwb25zZSA9IHQuVHlwZU9mPHR5cGVvZiBMaXN0UGF5bWVudHNSZXNwb25zZT47XG5cbi8qKlxuICogUGF5bWVudCBxdWVyeSBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBQYXltZW50UXVlcnkgPSB0LnBhcnRpYWwoXG4gIHtcbiAgICBzdGF0dXM6IFBheW1lbnRTdGF0dXMsXG4gICAgbGltaXQ6IEJpZ0ludEZyb21TdHJpbmcsXG4gICAgc3RhcnREYXRlOiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgICBlbmREYXRlOiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgICBwYXltZW50SGFzaDogdC5zdHJpbmcsXG4gICAgLyoqIHBheW1lbnRJZCBwcm92aWRlZCBieSBuZXh0QmF0Y2hQcmV2SWQgaW4gdGhlIHByZXZpb3VzIGxpc3QgKi9cbiAgICBwcmV2SWQ6IHQuc3RyaW5nLFxuICB9LFxuICAnUGF5bWVudFF1ZXJ5J1xuKTtcbmV4cG9ydCB0eXBlIFBheW1lbnRRdWVyeSA9IHQuVHlwZU9mPHR5cGVvZiBQYXltZW50UXVlcnk+O1xuXG5leHBvcnQgY29uc3QgU3VibWl0UGF5bWVudFBhcmFtcyA9IHQuaW50ZXJzZWN0aW9uKFtcbiAgTGlnaHRuaW5nUGF5bWVudFJlcXVlc3QsXG4gIHQudHlwZSh7XG4gICAgcGFzc3BocmFzZTogdC5zdHJpbmcsXG4gIH0pLFxuICB0LnBhcnRpYWwoe1xuICAgIHNlcXVlbmNlSWQ6IG9wdGlvbmFsU3RyaW5nLFxuICAgIGNvbW1lbnQ6IG9wdGlvbmFsU3RyaW5nLFxuICB9KSxcbl0pO1xuXG5leHBvcnQgdHlwZSBTdWJtaXRQYXltZW50UGFyYW1zID0gdC5UeXBlT2Y8dHlwZW9mIFN1Ym1pdFBheW1lbnRQYXJhbXM+O1xuXG5leHBvcnQgY29uc3QgTG5kQ3JlYXRlUGF5bWVudFJlc3BvbnNlID0gdC5pbnRlcnNlY3Rpb24oXG4gIFtcbiAgICB0LnR5cGUoe1xuICAgICAgc3RhdHVzOiBQYXltZW50U3RhdHVzLFxuICAgICAgcGF5bWVudEhhc2g6IHQuc3RyaW5nLFxuICAgIH0pLFxuICAgIHQucGFydGlhbCh7XG4gICAgICBwYXltZW50SWQ6IHQuc3RyaW5nLFxuICAgICAgcGF5bWVudFByZWltYWdlOiB0LnN0cmluZyxcbiAgICAgIGFtb3VudE1zYXQ6IHQuc3RyaW5nLFxuICAgICAgZmVlTXNhdDogdC5zdHJpbmcsXG4gICAgICBmYWlsdXJlUmVhc29uOiBQYXltZW50RmFpbHVyZVJlYXNvbixcbiAgICB9KSxcbiAgXSxcbiAgJ0xuZENyZWF0ZVBheW1lbnRSZXNwb25zZSdcbik7XG5cbmV4cG9ydCB0eXBlIExuZENyZWF0ZVBheW1lbnRSZXNwb25zZSA9IHQuVHlwZU9mPHR5cGVvZiBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2U+O1xuIl19
@@ -92,12 +92,12 @@ export interface ILightningWallet {
92
92
  */
93
93
  withdrawOnchain(params: LightningOnchainWithdrawParams): Promise<LightningOnchainWithdrawResponse>;
94
94
  /**
95
- * Get payment details by payment hash
96
- * @param {string} paymentHash - Payment hash to lookup
95
+ * Get payment details by payment id
96
+ * @param {string} paymentId - Payment id to lookup
97
97
  * @returns {Promise<PaymentInfo>} Payment details
98
- * @throws {InvalidPaymentHash} When payment hash is not valid
98
+ * @throws {InvalidPaymentId} When payment id is not valid
99
99
  */
100
- getPayment(paymentHash: string): Promise<PaymentInfo>;
100
+ getPayment(paymentId: string): Promise<PaymentInfo>;
101
101
  /**
102
102
  * List payments for a wallet with optional filtering
103
103
  * @param {PaymentQuery} params Query parameters for filtering payments
@@ -105,6 +105,7 @@ export interface ILightningWallet {
105
105
  * @param {bigint} [params.limit] The maximum number of payments to return
106
106
  * @param {Date} [params.startDate] The start date for the query
107
107
  * @param {Date} [params.endDate] The end date for the query
108
+ * @param {string} [params.paymentHash] The payment hash of the payments
108
109
  * @param {string} [params.prevId] Continue iterating (provided by nextBatchPrevId in the previous list)
109
110
  * @returns {Promise<ListPaymentsResponse>} List of payments and nextBatchPrevId
110
111
  */
@@ -134,7 +135,7 @@ export declare class LightningWallet implements ILightningWallet {
134
135
  listInvoices(params: InvoiceQuery): Promise<ListInvoicesResponse>;
135
136
  payInvoice(params: SubmitPaymentParams): Promise<PayInvoiceResponse>;
136
137
  withdrawOnchain(params: LightningOnchainWithdrawParams): Promise<LightningOnchainWithdrawResponse>;
137
- getPayment(paymentHash: string): Promise<PaymentInfo>;
138
+ getPayment(paymentId: string): Promise<PaymentInfo>;
138
139
  listPayments(params: PaymentQuery): Promise<ListPaymentsResponse>;
139
140
  getTransaction(txId: string): Promise<Transaction>;
140
141
  listTransactions(params: TransactionQuery): Promise<Transaction[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../src/wallet/lightning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../src/wallet/lightning.ts"],"names":[],"mappings":"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"}
@@ -228,9 +228,9 @@ class LightningWallet {
228
228
  transfer: updatedTransfer,
229
229
  };
230
230
  }
231
- async getPayment(paymentHash) {
231
+ async getPayment(paymentId) {
232
232
  const response = await this.wallet.bitgo
233
- .get(this.wallet.bitgo.url(`/wallet/${this.wallet.id()}/lightning/payment/${paymentHash}`, 2))
233
+ .get(this.wallet.bitgo.url(`/wallet/${this.wallet.id()}/lightning/payment/${paymentId}`, 2))
234
234
  .result();
235
235
  return (0, sdk_core_1.decodeOrElse)(codecs_1.PaymentInfo.name, codecs_1.PaymentInfo, response, (error) => {
236
236
  throw new Error(`Invalid payment response: ${error}`);
@@ -264,4 +264,4 @@ class LightningWallet {
264
264
  }
265
265
  }
266
266
  exports.LightningWallet = LightningWallet;
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dhbGxldC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0VBLG9EQWFDO0FBS0QsOERBOEJDO0FBeEhELDhEQUFnRDtBQUNoRCxtREFTOEI7QUFDOUIseUNBQTJCO0FBQzNCLDRDQUFtRjtBQUNuRixzQ0FnQm1CO0FBQ25CLHNEQUFzRjtBQXVDdEY7O0dBRUc7QUFDSSxLQUFLLFVBQVUsb0JBQW9CLENBQUMsTUFBdUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvRCxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsMEJBQWlCLENBQUMsSUFBSSxFQUFFLDBCQUFpQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3JGLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFD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Yml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQge1xuICBQZW5kaW5nQXBwcm92YWxEYXRhLFxuICBQZW5kaW5nQXBwcm92YWxzLFxuICBSZXF1ZXN0VHJhY2VyLFxuICBSZXF1ZXN0VHlwZSxcbiAgVHhSZXF1ZXN0LFxuICBjb21tb25Uc3NNZXRob2RzLFxuICBUeFJlcXVlc3RTdGF0ZSxcbiAgZGVjb2RlT3JFbHNlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUsIHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYyB9IGZyb20gJy4uL2xpZ2h0bmluZyc7XG5pbXBvcnQge1xuICBDcmVhdGVJbnZvaWNlQm9keSxcbiAgSW52b2ljZSxcbiAgSW52b2ljZVF1ZXJ5LFxuICBMaWdodG5pbmdBdXRoS2V5Y2hhaW4sXG4gIExpZ2h0bmluZ0tleWNoYWluLFxuICBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UsXG4gIFN1Ym1pdFBheW1lbnRQYXJhbXMsXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblF1ZXJ5LFxuICBQYXltZW50SW5mbyxcbiAgUGF5bWVudFF1ZXJ5LFxuICBMaWdodG5pbmdPbmNoYWluV2l0aGRyYXdQYXJhbXMsXG4gIExpZ2h0bmluZ09uY2hhaW5XaXRoZHJhd1Jlc3BvbnNlLFxuICBMaXN0SW52b2ljZXNSZXNwb25zZSxcbiAgTGlzdFBheW1lbnRzUmVzcG9uc2UsXG59IGZyb20gJy4uL2NvZGVjcyc7XG5pbXBvcnQgeyBMaWdodG5pbmdQYXltZW50SW50ZW50LCBMaWdodG5pbmdQYXltZW50UmVxdWVzdCB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBQYXlJbnZvaWNlUmVzcG9uc2UgPSB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBheW1lbnQgcmVxdWVzdCBzdWJtaXR0ZWQgdG8gQml0R28uXG4gICAqL1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdGhlIHBheW1lbnQgcmVxdWVzdCBzdWJtaXNzaW9uIHRvIEJpdEdvLlxuICAgKiAtIGAnZGVsaXZlcmVkJ2A6IFN1Y2Nlc3NmdWxseSByZWNlaXZlZCBieSBCaXRHbywgYnV0IG1heSBvciBtYXkgbm90IGhhdmUgYmVlbiBzZW50IHRvIHRoZSBMaWdodG5pbmcgTmV0d29yayB5ZXQuXG4gICAqIC0gRm9yIHRoZSBhY3R1YWwgcGF5bWVudCBzdGF0dXMsIHJlZmVyIHRvIGBwYXltZW50U3RhdHVzYCBhbmQgdHJhY2sgYHRyYW5zZmVyYC5cbiAgICovXG4gIHR4UmVxdWVzdFN0YXRlOiBUeFJlcXVlc3RTdGF0ZTtcblxuICAvKipcbiAgICogUGVuZGluZyBhcHByb3ZhbCBkZXRhaWxzLCBpZiBhcHBsaWNhYmxlLlxuICAgKiAtIElmIHByZXNlbnQsIHRoZSBwYXltZW50IGhhcyBub3QgYmVlbiBpbml0aWF0ZWQgeWV0LlxuICAgKi9cbiAgcGVuZGluZ0FwcHJvdmFsPzogUGVuZGluZ0FwcHJvdmFsRGF0YTtcblxuICAvKipcbiAgICogQ3VycmVudCBzbmFwc2hvdCBvZiBwYXltZW50IHN0YXR1cyAoaWYgYXZhaWxhYmxlKS5cbiAgICogLSAqKmAnaW5fZmxpZ2h0J2AqKjogUGF5bWVudCBpcyBpbiBwcm9ncmVzcy5cbiAgICogLSAqKmAnc2V0dGxlZCdgKio6IFBheW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuXG4gICAqIC0gKipgJ2ZhaWxlZCdgKio6IFBheW1lbnQgZmFpbGVkLlxuICAgKiBUaGlzIGZpZWxkIGlzIGFic2VudCBpZiBhcHByb3ZhbCBpcyByZXF1aXJlZCBiZWZvcmUgcHJvY2Vzc2luZy5cbiAgICovXG4gIHBheW1lbnRTdGF0dXM/OiBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2U7XG5cbiAgLyoqXG4gICAqIExhdGVzdCB0cmFuc2ZlciBkZXRhaWxzIGZvciB0aGlzIHBheW1lbnQgcmVxdWVzdCAoaWYgYXZhaWxhYmxlKS5cbiAgICogLSBQcm92aWRlcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdHJhbnNmZXIuXG4gICAqIC0gVG8gdHJhY2sgdGhlIGZpbmFsIHBheW1lbnQgc3RhdHVzLCBtb25pdG9yIGB0cmFuc2ZlcmAgYXN5bmNocm9ub3VzbHkuXG4gICAqIFRoaXMgZmllbGQgaXMgYWJzZW50IGlmIGFwcHJvdmFsIGlzIHJlcXVpcmVkIGJlZm9yZSBwcm9jZXNzaW5nLlxuICAgKi9cbiAgdHJhbnNmZXI/OiBhbnk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlnaHRuaW5nIGtleWNoYWluIGZvciB0aGUgZ2l2ZW4gd2FsbGV0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGlnaHRuaW5nS2V5Y2hhaW4od2FsbGV0OiBzZGtjb3JlLklXYWxsZXQpOiBQcm9taXNlPExpZ2h0bmluZ0tleWNoYWluPiB7XG4gIGNvbnN0IGNvaW4gPSB3YWxsZXQuYmFzZUNvaW47XG4gIGlmIChjb2luLmdldEZhbWlseSgpICE9PSAnbG5idGMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW4gdG8gZ2V0IGxpZ2h0bmluZyB3YWxsZXQga2V5OiAke2NvaW4uZ2V0RmFtaWx5KCl9YCk7XG4gIH1cbiAgY29uc3Qga2V5SWRzID0gd2FsbGV0LmtleUlkcygpO1xuICBpZiAoa2V5SWRzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBudW1iZXIgb2Yga2V5IGluIGxpZ2h0bmluZyB3YWxsZXQ6ICR7a2V5SWRzLmxlbmd0aH1gKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbiA9IGF3YWl0IGNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IGtleUlkc1swXSB9KTtcbiAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKExpZ2h0bmluZ0tleWNoYWluLm5hbWUsIExpZ2h0bmluZ0tleWNoYWluLCBrZXljaGFpbiwgKF8pID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdXNlciBrZXlgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBsaWdodG5pbmcgYXV0aCBrZXljaGFpbnMgZm9yIHRoZSBnaXZlbiB3YWxsZXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKHdhbGxldDogc2RrY29yZS5JV2FsbGV0KTogUHJvbWlzZTx7XG4gIHVzZXJBdXRoS2V5OiBMaWdodG5pbmdBdXRoS2V5Y2hhaW47XG4gIG5vZGVBdXRoS2V5OiBMaWdodG5pbmdBdXRoS2V5Y2hhaW47XG59PiB7XG4gIGNvbnN0IGNvaW4gPSB3YWxsZXQuYmFzZUNvaW47XG4gIGlmIChjb2luLmdldEZhbWlseSgpICE9PSAnbG5idGMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW4gdG8gZ2V0IGxpZ2h0bmluZyB3YWxsZXQgYXV0aCBrZXlzOiAke2NvaW4uZ2V0RmFtaWx5KCl9YCk7XG4gIH1cbiAgY29uc3QgYXV0aEtleUlkcyA9IHdhbGxldC5jb2luU3BlY2lmaWMoKT8ua2V5cztcbiAgaWYgKGF1dGhLZXlJZHM/Lmxlbmd0aCAhPT0gMikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBudW1iZXIgb2YgYXV0aCBrZXlzIGluIGxpZ2h0bmluZyB3YWxsZXQ6ICR7YXV0aEtleUlkcz8ubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWNoYWlucyA9IGF3YWl0IFByb21pc2UuYWxsKGF1dGhLZXlJZHMubWFwKChpZCkgPT4gY29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZCB9KSkpO1xuICBjb25zdCBhdXRoS2V5Y2hhaW5zID0ga2V5Y2hhaW5zLm1hcCgoa2V5Y2hhaW4pID0+IHtcbiAgICByZXR1cm4gc2RrY29yZS5kZWNvZGVPckVsc2UoTGlnaHRuaW5nQXV0aEtleWNoYWluLm5hbWUsIExpZ2h0bmluZ0F1dGhLZXljaGFpbiwga2V5Y2hhaW4sIChfKSA9PiB7XG4gICAgICAvLyBET04nVCB0aHJvdyBlcnJvcnMgZnJvbSBkZWNvZGVPckVsc2UuIEl0IGNvdWxkIGxlYWsgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxpZ2h0bmluZyBhdXRoIGtleTogJHtrZXljaGFpbj8uaWR9YCk7XG4gICAgfSk7XG4gIH0pO1xuICBjb25zdCBbdXNlckF1dGhLZXksIG5vZGVBdXRoS2V5XSA9IChbJ3VzZXJBdXRoJywgJ25vZGVBdXRoJ10gYXMgY29uc3QpLm1hcCgocHVycG9zZSkgPT4ge1xuICAgIGNvbnN0IGtleWNoYWluID0gYXV0aEtleWNoYWlucy5maW5kKFxuICAgICAgKGspID0+IHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYyhrLmNvaW5TcGVjaWZpYywgY29pbi5nZXRDaGFpbigpKS5wdXJwb3NlID09PSBwdXJwb3NlXG4gICAgKTtcbiAgICBpZiAoIWtleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgJHtwdXJwb3NlfSBrZXlgKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleWNoYWluO1xuICB9KTtcblxuICByZXR1cm4geyB1c2VyQXV0aEtleSwgbm9kZUF1dGhLZXkgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBsaWdodG5pbmcgaW52b2ljZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zIEludm9pY2UgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge2JpZ2ludH0gcGFyYW1zLnZhbHVlTXNhdCBUaGUgdmFsdWUgb2YgdGhlIGludm9pY2UgaW4gbWlsbGlzYXRvc2hpc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5tZW1vXSBBIG1lbW8gb3IgZGVzY3JpcHRpb24gZm9yIHRoZSBpbnZvaWNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbcGFyYW1zLmV4cGlyeV0gVGhlIGV4cGlyeSB0aW1lIG9mIHRoZSBpbnZvaWNlIGluIHNlY29uZHNcbiAgICogQHJldHVybnMge1Byb21pc2U8SW52b2ljZT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjcmVhdGVkIGludm9pY2VcbiAgICovXG4gIGNyZWF0ZUludm9pY2UocGFyYW1zOiBDcmVhdGVJbnZvaWNlQm9keSk6IFByb21pc2U8SW52b2ljZT47XG4gIC8qKlxuICAgKiBHZXQgaW52b2ljZSBkZXRhaWxzIGJ5IHBheW1lbnQgaGFzaFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF5bWVudEhhc2ggLSBQYXltZW50IGhhc2ggdG8gbG9va3VwXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEludm9pY2U+fSBJbnZvaWNlIGRldGFpbHNcbiAgICogQHRocm93cyB7SW52YWxpZFBheW1lbnRIYXNofSBXaGVuIHBheW1lbnQgaGFzaCBpcyBub3QgdmFsaWRcbiAgICovXG4gIGdldEludm9pY2UocGF5bWVudEhhc2g6IHN0cmluZyk6IFByb21pc2U8SW52b2ljZT47XG4gIC8qKlxuICAgKiBMaXN0cyBjdXJyZW50IGxpZ2h0bmluZyBpbnZvaWNlc1xuICAgKiBAcGFyYW0ge0ludm9pY2VRdWVyeX0gcGFyYW1zIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyBpbnZvaWNlc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5zdGF0dXNdIFRoZSBzdGF0dXMgb2YgdGhlIGludm9pY2UgKG9wZW4sIHNldHRsZWQsIGNhbmNlbGVkKVxuICAgKiBAcGFyYW0ge2JpZ2ludH0gW3BhcmFtcy5saW1pdF0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVyblxuICAgKiBAcGFyYW0ge0RhdGV9IFtwYXJhbXMuc3RhcnREYXRlXSBUaGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5lbmREYXRlXSBUaGUgZW5kIGRhdGUgZm9yIHRoZSBxdWVyeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5wcmV2SWRdIENvbnRpbnVlIGl0ZXJhdGluZyAocHJvdmlkZWQgYnkgbmV4dEJhdGNoUHJldklkIGluIHRoZSBwcmV2aW91cyBsaXN0KVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMaXN0SW52b2ljZXNSZXNwb25zZT59IExpc3Qgb2YgaW52b2ljZXMgYW5kIG5leHRCYXRjaFByZXZJZFxuICAgKi9cbiAgbGlzdEludm9pY2VzKHBhcmFtczogSW52b2ljZVF1ZXJ5KTogUHJvbWlzZTxMaXN0SW52b2ljZXNSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFBheSBhIGxpZ2h0bmluZyBpbnZvaWNlXG4gICAqIEBwYXJhbSB7U3VibWl0UGF5bWVudFBhcmFtc30gcGFyYW1zIC0gUGF5bWVudCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMuaW52b2ljZSAtIFRoZSBpbnZvaWNlIHRvIHBheVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmFtb3VudE1zYXQgLSBUaGUgYW1vdW50IHRvIHBheSBpbiBtaWxsaXNhdG9zaGlzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucGFzc3BocmFzZSAtIFRoZSB3YWxsZXQgcGFzc3BocmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5zZXF1ZW5jZUlkXSAtIE9wdGlvbmFsIHNlcXVlbmNlIElEIGZvciB0aGUgcmVzcGVjdGl2ZSBwYXltZW50IHRyYW5zZmVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLmNvbW1lbnRdIC0gT3B0aW9uYWwgY29tbWVudCBmb3IgdGhlIHJlc3BlY3RpdmUgcGF5bWVudCB0cmFuc2ZlclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxQYXlJbnZvaWNlUmVzcG9uc2U+fSBQYXltZW50IHJlc3VsdCBjb250YWluaW5nIHRyYW5zYWN0aW9uIHJlcXVlc3QgZGV0YWlscyBhbmQgcGF5bWVudCBzdGF0dXNcbiAgICovXG4gIHBheUludm9pY2UocGFyYW1zOiBTdWJtaXRQYXltZW50UGFyYW1zKTogUHJvbWlzZTxQYXlJbnZvaWNlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBPbiBjaGFpbiB3aXRoZHJhd2FsXG4gICAqIEBwYXJhbSB7TGlnaHRuaW5nT25jaGFpbldpdGhkcmF3UGFyYW1zfSBwYXJhbXMgLSBXaXRoZHJhdyBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7TGlnaHRuaW5nT25jaGFpblJlY2lwaWVudFtdfSBwYXJhbXMucmVjaXBpZW50cyAtIFRoZSByZWNpcGllbnRzIHRvIHBheVxuICAgKiBAcGFyYW0ge2JpZ2ludH0gcGFyYW1zLnNhdHNQZXJWYnl0ZSAtIFZhbHVlIGZvciBzYXRzIHBlciB2aXJ0dWFsIGJ5dGVcbiAgICogQHJldHVybnMge1Byb21pc2U8TGlnaHRuaW5nT25jaGFpbldpdGhkcmF3UmVzcG9uc2U+fSBXaXRoZHJhdyByZXN1bHQgY29udGFpbmluZyB0cmFuc2FjdGlvbiByZXF1ZXN0IGRldGFpbHMgYW5kIHN0YXR1c1xuICAgKi9cbiAgd2l0aGRyYXdPbmNoYWluKHBhcmFtczogTGlnaHRuaW5nT25jaGFpbldpdGhkcmF3UGFyYW1zKTogUHJvbWlzZTxMaWdodG5pbmdPbmNoYWluV2l0aGRyYXdSZXNwb25zZT47XG4gIC8qKlxuICAgKiBHZXQgcGF5bWVudCBkZXRhaWxzIGJ5IHBheW1lbnQgaGFzaFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF5bWVudEhhc2ggLSBQYXltZW50IGhhc2ggdG8gbG9va3VwXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFBheW1lbnRJbmZvPn0gUGF5bWVudCBkZXRhaWxzXG4gICAqIEB0aHJvd3Mge0ludmFsaWRQYXltZW50SGFzaH0gV2hlbiBwYXltZW50IGhhc2ggaXMgbm90IHZhbGlkXG4gICAqL1xuICBnZXRQYXltZW50KHBheW1lbnRIYXNoOiBzdHJpbmcpOiBQcm9taXNlPFBheW1lbnRJbmZvPjtcbiAgLyoqXG4gICAqIExpc3QgcGF5bWVudHMgZm9yIGEgd2FsbGV0IHdpdGggb3B0aW9uYWwgZmlsdGVyaW5nXG4gICAqIEBwYXJhbSB7UGF5bWVudFF1ZXJ5fSBwYXJhbXMgUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHBheW1lbnRzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLnN0YXR1c10gVGhlIHN0YXR1cyBvZiB0aGUgcGF5bWVudFxuICAgKiBAcGFyYW0ge2JpZ2ludH0gW3BhcmFtcy5saW1pdF0gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBheW1lbnRzIHRvIHJldHVyblxuICAgKiBAcGFyYW0ge0RhdGV9IFtwYXJhbXMuc3RhcnREYXRlXSBUaGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5lbmREYXRlXSBUaGUgZW5kIGRhdGUgZm9yIHRoZSBxdWVyeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5wcmV2SWRdIENvbnRpbnVlIGl0ZXJhdGluZyAocHJvdmlkZWQgYnkgbmV4dEJhdGNoUHJldklkIGluIHRoZSBwcmV2aW91cyBsaXN0KVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMaXN0UGF5bWVudHNSZXNwb25zZT59IExpc3Qgb2YgcGF5bWVudHMgYW5kIG5leHRCYXRjaFByZXZJZFxuICAgKi9cbiAgbGlzdFBheW1lbnRzKHBhcmFtczogUGF5bWVudFF1ZXJ5KTogUHJvbWlzZTxMaXN0UGF5bWVudHNSZXNwb25zZT47XG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gZGV0YWlscyBieSBJRFxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHhJZCAtIFRyYW5zYWN0aW9uIElEIHRvIGxvb2t1cFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUcmFuc2FjdGlvbj59IFRyYW5zYWN0aW9uIGRldGFpbHNcbiAgICogQHRocm93cyB7SW52YWxpZFR4SWR9IFdoZW4gdHJhbnNhY3Rpb24gSUQgaXMgbm90IHZhbGlkXG4gICAqL1xuICBnZXRUcmFuc2FjdGlvbih0eElkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uPjtcblxuICAvKipcbiAgICogTGlzdCB0cmFuc2FjdGlvbnMgZm9yIGEgd2FsbGV0IHdpdGggb3B0aW9uYWwgZmlsdGVyaW5nXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25RdWVyeX0gcGFyYW1zIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIHtiaWdpbnR9IFtwYXJhbXMubGltaXRdIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0cmFuc2FjdGlvbnMgdG8gcmV0dXJuXG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5zdGFydERhdGVdIFRoZSBzdGFydCBkYXRlIGZvciB0aGUgcXVlcnlcbiAgICogQHBhcmFtIHtEYXRlfSBbcGFyYW1zLmVuZERhdGVdIFRoZSBlbmQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFRyYW5zYWN0aW9uW10+fSBMaXN0IG9mIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgbGlzdFRyYW5zYWN0aW9ucyhwYXJhbXM6IFRyYW5zYWN0aW9uUXVlcnkpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+O1xufVxuXG5leHBvcnQgY2xhc3MgTGlnaHRuaW5nV2FsbGV0IGltcGxlbWVudHMgSUxpZ2h0bmluZ1dhbGxldCB7XG4gIHB1YmxpYyB3YWxsZXQ6IHNka2NvcmUuSVdhbGxldDtcblxuICBjb25zdHJ1Y3Rvcih3YWxsZXQ6IHNka2NvcmUuSVdhbGxldCkge1xuICAgIGNvbnN0IGNvaW4gPSB3YWxsZXQuYmFzZUNvaW47XG4gICAgaWYgKGNvaW4uZ2V0RmFtaWx5KCkgIT09ICdsbmJ0YycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb2luIGZvciBsaWdodG5pbmcgd2FsbGV0OiAke2NvaW4uZ2V0RmFtaWx5KCl9YCk7XG4gICAgfVxuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlSW52b2ljZShwYXJhbXM6IENyZWF0ZUludm9pY2VCb2R5KTogUHJvbWlzZTxJbnZvaWNlPiB7XG4gICAgY29uc3QgY3JlYXRlSW52b2ljZVJlc3BvbnNlID0gYXdhaXQgdGhpcy53YWxsZXQuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMud2FsbGV0LmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9pbnZvaWNlYCwgMikpXG4gICAgICAuc2VuZCh0LmV4YWN0KENyZWF0ZUludm9pY2VCb2R5KS5lbmNvZGUocGFyYW1zKSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgICByZXR1cm4gc2RrY29yZS5kZWNvZGVPckVsc2UoSW52b2ljZS5uYW1lLCBJbnZvaWNlLCBjcmVhdGVJbnZvaWNlUmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgLy8gRE9OJ1QgdGhyb3cgZXJyb3JzIGZyb20gZGVjb2RlT3JFbHNlLiBJdCBjb3VsZCBsZWFrIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjcmVhdGUgaW52b2ljZSByZXNwb25zZSAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0SW52b2ljZShwYXltZW50SGFzaDogc3RyaW5nKTogUHJvbWlzZTxJbnZvaWNlPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLmdldCh0aGlzLndhbGxldC5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvaW52b2ljZS8ke3BheW1lbnRIYXNofWAsIDIpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UoSW52b2ljZS5uYW1lLCBJbnZvaWNlLCByZXNwb25zZSwgKGVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ2V0IGludm9pY2UgcmVzcG9uc2UgJHtlcnJvcn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RJbnZvaWNlcyhwYXJhbXM6IEludm9pY2VRdWVyeSk6IFByb21pc2U8TGlzdEludm9pY2VzUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXR1cm5Db2RlYyA9IExpc3RJbnZvaWNlc1Jlc3BvbnNlO1xuICAgIGNvbnN0IGNyZWF0ZUludm9pY2VSZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9pbnZvaWNlYCwgMikpXG4gICAgICAucXVlcnkoSW52b2ljZVF1ZXJ5LmVuY29kZShwYXJhbXMpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBzZGtjb3JlLmRlY29kZU9yRWxzZShyZXR1cm5Db2RlYy5uYW1lLCByZXR1cm5Db2RlYywgY3JlYXRlSW52b2ljZVJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsaXN0IGludm9pY2VzIHJlc3BvbnNlICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBwYXlJbnZvaWNlKHBhcmFtczogU3VibWl0UGF5bWVudFBhcmFtcyk6IFByb21pc2U8UGF5SW52b2ljZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxSWQgPSBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMud2FsbGV0LmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxSWQpO1xuXG4gICAgY29uc3QgeyB1c2VyQXV0aEtleSB9ID0gYXdhaXQgZ2V0TGlnaHRuaW5nQXV0aEtleWNoYWlucyh0aGlzLndhbGxldCk7XG4gICAgY29uc3QgdXNlckF1dGhLZXlFbmNyeXB0ZWRQcnYgPSB1c2VyQXV0aEtleS5lbmNyeXB0ZWRQcnY7XG4gICAgaWYgKCF1c2VyQXV0aEtleUVuY3J5cHRlZFBydikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1c2VyIGF1dGgga2V5IGlzIG1pc3NpbmcgZW5jcnlwdGVkIHByaXZhdGUga2V5YCk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUoXG4gICAgICB0LmV4YWN0KExpZ2h0bmluZ1BheW1lbnRSZXF1ZXN0KS5lbmNvZGUocGFyYW1zKSxcbiAgICAgIHRoaXMud2FsbGV0LmJpdGdvLmRlY3J5cHQoeyBwYXNzd29yZDogcGFyYW1zLnBhc3NwaHJhc2UsIGlucHV0OiB1c2VyQXV0aEtleUVuY3J5cHRlZFBydiB9KVxuICAgICk7XG5cbiAgICBjb25zdCBwYXltZW50SW50ZW50OiB7IGludGVudDogTGlnaHRuaW5nUGF5bWVudEludGVudCB9ID0ge1xuICAgICAgaW50ZW50OiB7XG4gICAgICAgIGNvbW1lbnQ6IHBhcmFtcy5jb21tZW50LFxuICAgICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgICAgaW50ZW50VHlwZTogJ3BheW1lbnQnLFxuICAgICAgICBzaWduZWRSZXF1ZXN0OiB7XG4gICAgICAgICAgaW52b2ljZTogcGFyYW1zLmludm9pY2UsXG4gICAgICAgICAgYW1vdW50TXNhdDogcGFyYW1zLmFtb3VudE1zYXQsXG4gICAgICAgICAgZmVlTGltaXRNc2F0OiBwYXJhbXMuZmVlTGltaXRNc2F0LFxuICAgICAgICAgIGZlZUxpbWl0UmF0aW86IHBhcmFtcy5mZWVMaW1pdFJhdGlvLFxuICAgICAgICB9LFxuICAgICAgICBzaWduYXR1cmUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUgPSAoYXdhaXQgdGhpcy53YWxsZXQuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMud2FsbGV0LmJpdGdvLnVybCgnL3dhbGxldC8nICsgdGhpcy53YWxsZXQuaWQoKSArICcvdHhyZXF1ZXN0cycsIDIpKVxuICAgICAgLnNlbmQodC50eXBlKHsgaW50ZW50OiBMaWdodG5pbmdQYXltZW50SW50ZW50IH0pLmVuY29kZShwYXltZW50SW50ZW50KSlcbiAgICAgIC5yZXN1bHQoKSkgYXMgVHhSZXF1ZXN0O1xuXG4gICAgaWYgKHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS5zdGF0ZSA9PT0gJ3BlbmRpbmdBcHByb3ZhbCcpIHtcbiAgICAgIGNvbnN0IHBlbmRpbmdBcHByb3ZhbHMgPSBuZXcgUGVuZGluZ0FwcHJvdmFscyh0aGlzLndhbGxldC5iaXRnbywgdGhpcy53YWxsZXQuYmFzZUNvaW4pO1xuICAgICAgY29uc3QgcGVuZGluZ0FwcHJvdmFsID0gYXdhaXQgcGVuZGluZ0FwcHJvdmFscy5nZXQoeyBpZDogdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnBlbmRpbmdBcHByb3ZhbElkIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGVuZGluZ0FwcHJvdmFsOiBwZW5kaW5nQXBwcm92YWwudG9KU09OKCksXG4gICAgICAgIHR4UmVxdWVzdElkOiB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUudHhSZXF1ZXN0SWQsXG4gICAgICAgIHR4UmVxdWVzdFN0YXRlOiB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUuc3RhdGUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zZmVyOiB7IGlkOiBzdHJpbmcgfSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAucG9zdChcbiAgICAgICAgdGhpcy53YWxsZXQuYml0Z28udXJsKFxuICAgICAgICAgICcvd2FsbGV0LycgKyB0aGlzLndhbGxldC5pZCgpICsgJy90eHJlcXVlc3RzLycgKyB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUudHhSZXF1ZXN0SWQgKyAnL3RyYW5zZmVycycsXG4gICAgICAgICAgMlxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc2VuZCgpXG4gICAgICAucmVzdWx0KCk7XG5cbiAgICBjb25zdCB0cmFuc2FjdGlvblJlcXVlc3RTZW5kID0gYXdhaXQgY29tbW9uVHNzTWV0aG9kcy5zZW5kVHhSZXF1ZXN0KFxuICAgICAgdGhpcy53YWxsZXQuYml0Z28sXG4gICAgICB0aGlzLndhbGxldC5pZCgpLFxuICAgICAgdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnR4UmVxdWVzdElkLFxuICAgICAgUmVxdWVzdFR5cGUudHgsXG4gICAgICByZXFJZFxuICAgICk7XG5cbiAgICBjb25zdCBjb2luU3BlY2lmaWMgPSB0cmFuc2FjdGlvblJlcXVlc3RTZW5kLnRyYW5zYWN0aW9ucz8uWzBdPy51bnNpZ25lZFR4Py5jb2luU3BlY2lmaWM7XG4gICAgbGV0IHVwZGF0ZWRUcmFuc2ZlcjogYW55ID0gdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICB1cGRhdGVkVHJhbnNmZXIgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRUcmFuc2Zlcih7IGlkOiB0cmFuc2Zlci5pZCB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJZiB0cmFuc2ZlciBpcyBub3QgZm91bmQgd2hpY2ggaXMgcG9zc2libGUgaW4gY2FzZXMgd2hlcmUgdGhlIHBheW1lbnQgaGFzIGRlZmluaXRlbHkgZmFpbGVkXG4gICAgICAvLyBPciBldmVuIGlmIHNvbWUgdW5rbm93biBlcnJvciBvY2N1cnMsIHdlIHdpbGwgbm90IHRocm93IGFuIGVycm9yIGhlcmVcbiAgICAgIC8vIFdlIHN0aWxsIHdhbnQgdG8gcmV0dXJuIHRoZSB0eFJlcXVlc3RJZCwgdHhSZXF1ZXN0U3RhdGUgYW5kIHBheW1lbnRTdGF0dXMuXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR4UmVxdWVzdElkOiB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUudHhSZXF1ZXN0SWQsXG4gICAgICB0eFJlcXVlc3RTdGF0ZTogdHJhbnNhY3Rpb25SZXF1ZXN0U2VuZC5zdGF0ZSxcbiAgICAgIHBheW1lbnRTdGF0dXM6IGNvaW5TcGVjaWZpY1xuICAgICAgICA/IHQuZXhhY3QoTG5kQ3JlYXRlUGF5bWVudFJlc3BvbnNlKS5lbmNvZGUoY29pblNwZWNpZmljIGFzIExuZENyZWF0ZVBheW1lbnRSZXNwb25zZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB0cmFuc2ZlcjogdXBkYXRlZFRyYW5zZmVyLFxuICAgIH07XG4gIH1cblxuICBhc3luYyB3aXRoZHJhd09uY2hhaW4ocGFyYW1zOiBMaWdodG5pbmdPbmNoYWluV2l0aGRyYXdQYXJhbXMpOiBQcm9taXNlPExpZ2h0bmluZ09uY2hhaW5XaXRoZHJhd1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxSWQgPSBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMud2FsbGV0LmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxSWQpO1xuXG4gICAgY29uc3QgcGF5bWVudEludGVudDogeyBpbnRlbnQ6IExpZ2h0bmluZ1BheW1lbnRJbnRlbnQgfSA9IHtcbiAgICAgIGludGVudDoge1xuICAgICAgICBvbmNoYWluUmVxdWVzdDoge1xuICAgICAgICAgIHJlY2lwaWVudHM6IHBhcmFtcy5yZWNpcGllbnRzLFxuICAgICAgICAgIHNhdHNQZXJWYnl0ZTogcGFyYW1zLnNhdHNQZXJWYnl0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaW50ZW50VHlwZTogJ3BheW1lbnQnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlID0gKGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAucG9zdCh0aGlzLndhbGxldC5iaXRnby51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4cmVxdWVzdHMnLCAyKSlcbiAgICAgIC5zZW5kKHQudHlwZSh7IGludGVudDogTGlnaHRuaW5nUGF5bWVudEludGVudCB9KS5lbmNvZGUocGF5bWVudEludGVudCkpXG4gICAgICAucmVzdWx0KCkpIGFzIFR4UmVxdWVzdDtcblxuICAgIGlmICh0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUuc3RhdGUgPT09ICdwZW5kaW5nQXBwcm92YWwnKSB7XG4gICAgICBjb25zdCBwZW5kaW5nQXBwcm92YWxzID0gbmV3IFBlbmRpbmdBcHByb3ZhbHModGhpcy53YWxsZXQuYml0Z28sIHRoaXMud2FsbGV0LmJhc2VDb2luKTtcbiAgICAgIGNvbnN0IHBlbmRpbmdBcHByb3ZhbCA9IGF3YWl0IHBlbmRpbmdBcHByb3ZhbHMuZ2V0KHsgaWQ6IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS5wZW5kaW5nQXBwcm92YWxJZCB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBlbmRpbmdBcHByb3ZhbDogcGVuZGluZ0FwcHJvdmFsLnRvSlNPTigpLFxuICAgICAgICB0eFJlcXVlc3RJZDogdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnR4UmVxdWVzdElkLFxuICAgICAgICB0eFJlcXVlc3RTdGF0ZTogdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnN0YXRlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2ZlcjogeyBpZDogc3RyaW5nIH0gPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLnBvc3QoXG4gICAgICAgIHRoaXMud2FsbGV0LmJpdGdvLnVybChcbiAgICAgICAgICAnL3dhbGxldC8nICsgdGhpcy53YWxsZXQuaWQoKSArICcvdHhyZXF1ZXN0cy8nICsgdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnR4UmVxdWVzdElkICsgJy90cmFuc2ZlcnMnLFxuICAgICAgICAgIDJcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnNlbmQoKVxuICAgICAgLnJlc3VsdCgpO1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25SZXF1ZXN0U2VuZCA9IGF3YWl0IGNvbW1vblRzc01ldGhvZHMuc2VuZFR4UmVxdWVzdChcbiAgICAgIHRoaXMud2FsbGV0LmJpdGdvLFxuICAgICAgdGhpcy53YWxsZXQuaWQoKSxcbiAgICAgIHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS50eFJlcXVlc3RJZCxcbiAgICAgIFJlcXVlc3RUeXBlLnR4LFxuICAgICAgcmVxSWRcbiAgICApO1xuXG4gICAgbGV0IHVwZGF0ZWRUcmFuc2ZlcjogYW55ID0gdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICB1cGRhdGVkVHJhbnNmZXIgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRUcmFuc2Zlcih7IGlkOiB0cmFuc2Zlci5pZCB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJZiB0cmFuc2ZlciBpcyBub3QgZm91bmQgd2hpY2ggaXMgcG9zc2libGUgaW4gY2FzZXMgd2hlcmUgdGhlIHdpdGhkcmF3IGhhcyBkZWZpbml0ZWx5IGZhaWxlZFxuICAgICAgLy8gT3IgZXZlbiBpZiBzb21lIHVua25vd24gZXJyb3Igb2NjdXJzLCB3ZSB3aWxsIG5vdCB0aHJvdyBhbiBlcnJvciBoZXJlXG4gICAgICAvLyBXZSBzdGlsbCB3YW50IHRvIHJldHVybiB0aGUgdHhSZXF1ZXN0SWQgYW5kIHR4UmVxdWVzdFN0YXRlLlxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eFJlcXVlc3RJZDogdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnR4UmVxdWVzdElkLFxuICAgICAgdHhSZXF1ZXN0U3RhdGU6IHRyYW5zYWN0aW9uUmVxdWVzdFNlbmQuc3RhdGUsXG4gICAgICB0cmFuc2ZlcjogdXBkYXRlZFRyYW5zZmVyLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRQYXltZW50KHBheW1lbnRIYXNoOiBzdHJpbmcpOiBQcm9taXNlPFBheW1lbnRJbmZvPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLmdldCh0aGlzLndhbGxldC5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvcGF5bWVudC8ke3BheW1lbnRIYXNofWAsIDIpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UoUGF5bWVudEluZm8ubmFtZSwgUGF5bWVudEluZm8sIHJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXltZW50IHJlc3BvbnNlOiAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdFBheW1lbnRzKHBhcmFtczogUGF5bWVudFF1ZXJ5KTogUHJvbWlzZTxMaXN0UGF5bWVudHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53YWxsZXQuYml0Z29cbiAgICAgIC5nZXQodGhpcy53YWxsZXQuYml0Z28udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vbGlnaHRuaW5nL3BheW1lbnRgLCAyKSlcbiAgICAgIC5xdWVyeShQYXltZW50UXVlcnkuZW5jb2RlKHBhcmFtcykpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShMaXN0UGF5bWVudHNSZXNwb25zZS5uYW1lLCBMaXN0UGF5bWVudHNSZXNwb25zZSwgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBheW1lbnQgbGlzdCByZXNwb25zZTogJHtlcnJvcn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldFRyYW5zYWN0aW9uKHR4SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy90cmFuc2FjdGlvbi8ke3R4SWR9YCwgMikpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShUcmFuc2FjdGlvbi5uYW1lLCBUcmFuc2FjdGlvbiwgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uIHJlc3BvbnNlOiAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRyYW5zYWN0aW9ucyhwYXJhbXM6IFRyYW5zYWN0aW9uUXVlcnkpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy90cmFuc2FjdGlvbmAsIDIpKVxuICAgICAgLnF1ZXJ5KFRyYW5zYWN0aW9uUXVlcnkuZW5jb2RlKHBhcmFtcykpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZSh0LmFycmF5KFRyYW5zYWN0aW9uKS5uYW1lLCB0LmFycmF5KFRyYW5zYWN0aW9uKSwgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uIGxpc3QgcmVzcG9uc2U6ICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dhbGxldC9saWdodG5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0VBLG9EQWFDO0FBS0QsOERBOEJDO0FBeEhELDhEQUFnRDtBQUNoRCxtREFTOEI7QUFDOUIseUNBQTJCO0FBQzNCLDRDQUFtRjtBQUNuRixzQ0FnQm1CO0FBQ25CLHNEQUFzRjtBQXVDdEY7O0dBRUc7QUFDSSxLQUFLLFVBQVUsb0JBQW9CLENBQUMsTUFBdUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvRCxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsMEJBQWlCLENBQUMsSUFBSSxFQUFFLDBCQUFpQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3JGLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFD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Yml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQge1xuICBQZW5kaW5nQXBwcm92YWxEYXRhLFxuICBQZW5kaW5nQXBwcm92YWxzLFxuICBSZXF1ZXN0VHJhY2VyLFxuICBSZXF1ZXN0VHlwZSxcbiAgVHhSZXF1ZXN0LFxuICBjb21tb25Uc3NNZXRob2RzLFxuICBUeFJlcXVlc3RTdGF0ZSxcbiAgZGVjb2RlT3JFbHNlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUsIHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYyB9IGZyb20gJy4uL2xpZ2h0bmluZyc7XG5pbXBvcnQge1xuICBDcmVhdGVJbnZvaWNlQm9keSxcbiAgSW52b2ljZSxcbiAgSW52b2ljZVF1ZXJ5LFxuICBMaWdodG5pbmdBdXRoS2V5Y2hhaW4sXG4gIExpZ2h0bmluZ0tleWNoYWluLFxuICBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UsXG4gIFN1Ym1pdFBheW1lbnRQYXJhbXMsXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblF1ZXJ5LFxuICBQYXltZW50SW5mbyxcbiAgUGF5bWVudFF1ZXJ5LFxuICBMaWdodG5pbmdPbmNoYWluV2l0aGRyYXdQYXJhbXMsXG4gIExpZ2h0bmluZ09uY2hhaW5XaXRoZHJhd1Jlc3BvbnNlLFxuICBMaXN0SW52b2ljZXNSZXNwb25zZSxcbiAgTGlzdFBheW1lbnRzUmVzcG9uc2UsXG59IGZyb20gJy4uL2NvZGVjcyc7XG5pbXBvcnQgeyBMaWdodG5pbmdQYXltZW50SW50ZW50LCBMaWdodG5pbmdQYXltZW50UmVxdWVzdCB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBQYXlJbnZvaWNlUmVzcG9uc2UgPSB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBheW1lbnQgcmVxdWVzdCBzdWJtaXR0ZWQgdG8gQml0R28uXG4gICAqL1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdGhlIHBheW1lbnQgcmVxdWVzdCBzdWJtaXNzaW9uIHRvIEJpdEdvLlxuICAgKiAtIGAnZGVsaXZlcmVkJ2A6IFN1Y2Nlc3NmdWxseSByZWNlaXZlZCBieSBCaXRHbywgYnV0IG1heSBvciBtYXkgbm90IGhhdmUgYmVlbiBzZW50IHRvIHRoZSBMaWdodG5pbmcgTmV0d29yayB5ZXQuXG4gICAqIC0gRm9yIHRoZSBhY3R1YWwgcGF5bWVudCBzdGF0dXMsIHJlZmVyIHRvIGBwYXltZW50U3RhdHVzYCBhbmQgdHJhY2sgYHRyYW5zZmVyYC5cbiAgICovXG4gIHR4UmVxdWVzdFN0YXRlOiBUeFJlcXVlc3RTdGF0ZTtcblxuICAvKipcbiAgICogUGVuZGluZyBhcHByb3ZhbCBkZXRhaWxzLCBpZiBhcHBsaWNhYmxlLlxuICAgKiAtIElmIHByZXNlbnQsIHRoZSBwYXltZW50IGhhcyBub3QgYmVlbiBpbml0aWF0ZWQgeWV0LlxuICAgKi9cbiAgcGVuZGluZ0FwcHJvdmFsPzogUGVuZGluZ0FwcHJvdmFsRGF0YTtcblxuICAvKipcbiAgICogQ3VycmVudCBzbmFwc2hvdCBvZiBwYXltZW50IHN0YXR1cyAoaWYgYXZhaWxhYmxlKS5cbiAgICogLSAqKmAnaW5fZmxpZ2h0J2AqKjogUGF5bWVudCBpcyBpbiBwcm9ncmVzcy5cbiAgICogLSAqKmAnc2V0dGxlZCdgKio6IFBheW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuXG4gICAqIC0gKipgJ2ZhaWxlZCdgKio6IFBheW1lbnQgZmFpbGVkLlxuICAgKiBUaGlzIGZpZWxkIGlzIGFic2VudCBpZiBhcHByb3ZhbCBpcyByZXF1aXJlZCBiZWZvcmUgcHJvY2Vzc2luZy5cbiAgICovXG4gIHBheW1lbnRTdGF0dXM/OiBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2U7XG5cbiAgLyoqXG4gICAqIExhdGVzdCB0cmFuc2ZlciBkZXRhaWxzIGZvciB0aGlzIHBheW1lbnQgcmVxdWVzdCAoaWYgYXZhaWxhYmxlKS5cbiAgICogLSBQcm92aWRlcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdHJhbnNmZXIuXG4gICAqIC0gVG8gdHJhY2sgdGhlIGZpbmFsIHBheW1lbnQgc3RhdHVzLCBtb25pdG9yIGB0cmFuc2ZlcmAgYXN5bmNocm9ub3VzbHkuXG4gICAqIFRoaXMgZmllbGQgaXMgYWJzZW50IGlmIGFwcHJvdmFsIGlzIHJlcXVpcmVkIGJlZm9yZSBwcm9jZXNzaW5nLlxuICAgKi9cbiAgdHJhbnNmZXI/OiBhbnk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlnaHRuaW5nIGtleWNoYWluIGZvciB0aGUgZ2l2ZW4gd2FsbGV0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGlnaHRuaW5nS2V5Y2hhaW4od2FsbGV0OiBzZGtjb3JlLklXYWxsZXQpOiBQcm9taXNlPExpZ2h0bmluZ0tleWNoYWluPiB7XG4gIGNvbnN0IGNvaW4gPSB3YWxsZXQuYmFzZUNvaW47XG4gIGlmIChjb2luLmdldEZhbWlseSgpICE9PSAnbG5idGMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW4gdG8gZ2V0IGxpZ2h0bmluZyB3YWxsZXQga2V5OiAke2NvaW4uZ2V0RmFtaWx5KCl9YCk7XG4gIH1cbiAgY29uc3Qga2V5SWRzID0gd2FsbGV0LmtleUlkcygpO1xuICBpZiAoa2V5SWRzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBudW1iZXIgb2Yga2V5IGluIGxpZ2h0bmluZyB3YWxsZXQ6ICR7a2V5SWRzLmxlbmd0aH1gKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbiA9IGF3YWl0IGNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IGtleUlkc1swXSB9KTtcbiAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKExpZ2h0bmluZ0tleWNoYWluLm5hbWUsIExpZ2h0bmluZ0tleWNoYWluLCBrZXljaGFpbiwgKF8pID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdXNlciBrZXlgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBsaWdodG5pbmcgYXV0aCBrZXljaGFpbnMgZm9yIHRoZSBnaXZlbiB3YWxsZXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKHdhbGxldDogc2RrY29yZS5JV2FsbGV0KTogUHJvbWlzZTx7XG4gIHVzZXJBdXRoS2V5OiBMaWdodG5pbmdBdXRoS2V5Y2hhaW47XG4gIG5vZGVBdXRoS2V5OiBMaWdodG5pbmdBdXRoS2V5Y2hhaW47XG59PiB7XG4gIGNvbnN0IGNvaW4gPSB3YWxsZXQuYmFzZUNvaW47XG4gIGlmIChjb2luLmdldEZhbWlseSgpICE9PSAnbG5idGMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW4gdG8gZ2V0IGxpZ2h0bmluZyB3YWxsZXQgYXV0aCBrZXlzOiAke2NvaW4uZ2V0RmFtaWx5KCl9YCk7XG4gIH1cbiAgY29uc3QgYXV0aEtleUlkcyA9IHdhbGxldC5jb2luU3BlY2lmaWMoKT8ua2V5cztcbiAgaWYgKGF1dGhLZXlJZHM/Lmxlbmd0aCAhPT0gMikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBudW1iZXIgb2YgYXV0aCBrZXlzIGluIGxpZ2h0bmluZyB3YWxsZXQ6ICR7YXV0aEtleUlkcz8ubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWNoYWlucyA9IGF3YWl0IFByb21pc2UuYWxsKGF1dGhLZXlJZHMubWFwKChpZCkgPT4gY29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZCB9KSkpO1xuICBjb25zdCBhdXRoS2V5Y2hhaW5zID0ga2V5Y2hhaW5zLm1hcCgoa2V5Y2hhaW4pID0+IHtcbiAgICByZXR1cm4gc2RrY29yZS5kZWNvZGVPckVsc2UoTGlnaHRuaW5nQXV0aEtleWNoYWluLm5hbWUsIExpZ2h0bmluZ0F1dGhLZXljaGFpbiwga2V5Y2hhaW4sIChfKSA9PiB7XG4gICAgICAvLyBET04nVCB0aHJvdyBlcnJvcnMgZnJvbSBkZWNvZGVPckVsc2UuIEl0IGNvdWxkIGxlYWsgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxpZ2h0bmluZyBhdXRoIGtleTogJHtrZXljaGFpbj8uaWR9YCk7XG4gICAgfSk7XG4gIH0pO1xuICBjb25zdCBbdXNlckF1dGhLZXksIG5vZGVBdXRoS2V5XSA9IChbJ3VzZXJBdXRoJywgJ25vZGVBdXRoJ10gYXMgY29uc3QpLm1hcCgocHVycG9zZSkgPT4ge1xuICAgIGNvbnN0IGtleWNoYWluID0gYXV0aEtleWNoYWlucy5maW5kKFxuICAgICAgKGspID0+IHVud3JhcExpZ2h0bmluZ0NvaW5TcGVjaWZpYyhrLmNvaW5TcGVjaWZpYywgY29pbi5nZXRDaGFpbigpKS5wdXJwb3NlID09PSBwdXJwb3NlXG4gICAgKTtcbiAgICBpZiAoIWtleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgJHtwdXJwb3NlfSBrZXlgKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleWNoYWluO1xuICB9KTtcblxuICByZXR1cm4geyB1c2VyQXV0aEtleSwgbm9kZUF1dGhLZXkgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBsaWdodG5pbmcgaW52b2ljZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zIEludm9pY2UgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge2JpZ2ludH0gcGFyYW1zLnZhbHVlTXNhdCBUaGUgdmFsdWUgb2YgdGhlIGludm9pY2UgaW4gbWlsbGlzYXRvc2hpc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5tZW1vXSBBIG1lbW8gb3IgZGVzY3JpcHRpb24gZm9yIHRoZSBpbnZvaWNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbcGFyYW1zLmV4cGlyeV0gVGhlIGV4cGlyeSB0aW1lIG9mIHRoZSBpbnZvaWNlIGluIHNlY29uZHNcbiAgICogQHJldHVybnMge1Byb21pc2U8SW52b2ljZT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjcmVhdGVkIGludm9pY2VcbiAgICovXG4gIGNyZWF0ZUludm9pY2UocGFyYW1zOiBDcmVhdGVJbnZvaWNlQm9keSk6IFByb21pc2U8SW52b2ljZT47XG4gIC8qKlxuICAgKiBHZXQgaW52b2ljZSBkZXRhaWxzIGJ5IHBheW1lbnQgaGFzaFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF5bWVudEhhc2ggLSBQYXltZW50IGhhc2ggdG8gbG9va3VwXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEludm9pY2U+fSBJbnZvaWNlIGRldGFpbHNcbiAgICogQHRocm93cyB7SW52YWxpZFBheW1lbnRIYXNofSBXaGVuIHBheW1lbnQgaGFzaCBpcyBub3QgdmFsaWRcbiAgICovXG4gIGdldEludm9pY2UocGF5bWVudEhhc2g6IHN0cmluZyk6IFByb21pc2U8SW52b2ljZT47XG4gIC8qKlxuICAgKiBMaXN0cyBjdXJyZW50IGxpZ2h0bmluZyBpbnZvaWNlc1xuICAgKiBAcGFyYW0ge0ludm9pY2VRdWVyeX0gcGFyYW1zIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyBpbnZvaWNlc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5zdGF0dXNdIFRoZSBzdGF0dXMgb2YgdGhlIGludm9pY2UgKG9wZW4sIHNldHRsZWQsIGNhbmNlbGVkKVxuICAgKiBAcGFyYW0ge2JpZ2ludH0gW3BhcmFtcy5saW1pdF0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVyblxuICAgKiBAcGFyYW0ge0RhdGV9IFtwYXJhbXMuc3RhcnREYXRlXSBUaGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5lbmREYXRlXSBUaGUgZW5kIGRhdGUgZm9yIHRoZSBxdWVyeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5wcmV2SWRdIENvbnRpbnVlIGl0ZXJhdGluZyAocHJvdmlkZWQgYnkgbmV4dEJhdGNoUHJldklkIGluIHRoZSBwcmV2aW91cyBsaXN0KVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMaXN0SW52b2ljZXNSZXNwb25zZT59IExpc3Qgb2YgaW52b2ljZXMgYW5kIG5leHRCYXRjaFByZXZJZFxuICAgKi9cbiAgbGlzdEludm9pY2VzKHBhcmFtczogSW52b2ljZVF1ZXJ5KTogUHJvbWlzZTxMaXN0SW52b2ljZXNSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFBheSBhIGxpZ2h0bmluZyBpbnZvaWNlXG4gICAqIEBwYXJhbSB7U3VibWl0UGF5bWVudFBhcmFtc30gcGFyYW1zIC0gUGF5bWVudCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMuaW52b2ljZSAtIFRoZSBpbnZvaWNlIHRvIHBheVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmFtb3VudE1zYXQgLSBUaGUgYW1vdW50IHRvIHBheSBpbiBtaWxsaXNhdG9zaGlzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucGFzc3BocmFzZSAtIFRoZSB3YWxsZXQgcGFzc3BocmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5zZXF1ZW5jZUlkXSAtIE9wdGlvbmFsIHNlcXVlbmNlIElEIGZvciB0aGUgcmVzcGVjdGl2ZSBwYXltZW50IHRyYW5zZmVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLmNvbW1lbnRdIC0gT3B0aW9uYWwgY29tbWVudCBmb3IgdGhlIHJlc3BlY3RpdmUgcGF5bWVudCB0cmFuc2ZlclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxQYXlJbnZvaWNlUmVzcG9uc2U+fSBQYXltZW50IHJlc3VsdCBjb250YWluaW5nIHRyYW5zYWN0aW9uIHJlcXVlc3QgZGV0YWlscyBhbmQgcGF5bWVudCBzdGF0dXNcbiAgICovXG4gIHBheUludm9pY2UocGFyYW1zOiBTdWJtaXRQYXltZW50UGFyYW1zKTogUHJvbWlzZTxQYXlJbnZvaWNlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBPbiBjaGFpbiB3aXRoZHJhd2FsXG4gICAqIEBwYXJhbSB7TGlnaHRuaW5nT25jaGFpbldpdGhkcmF3UGFyYW1zfSBwYXJhbXMgLSBXaXRoZHJhdyBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7TGlnaHRuaW5nT25jaGFpblJlY2lwaWVudFtdfSBwYXJhbXMucmVjaXBpZW50cyAtIFRoZSByZWNpcGllbnRzIHRvIHBheVxuICAgKiBAcGFyYW0ge2JpZ2ludH0gcGFyYW1zLnNhdHNQZXJWYnl0ZSAtIFZhbHVlIGZvciBzYXRzIHBlciB2aXJ0dWFsIGJ5dGVcbiAgICogQHJldHVybnMge1Byb21pc2U8TGlnaHRuaW5nT25jaGFpbldpdGhkcmF3UmVzcG9uc2U+fSBXaXRoZHJhdyByZXN1bHQgY29udGFpbmluZyB0cmFuc2FjdGlvbiByZXF1ZXN0IGRldGFpbHMgYW5kIHN0YXR1c1xuICAgKi9cbiAgd2l0aGRyYXdPbmNoYWluKHBhcmFtczogTGlnaHRuaW5nT25jaGFpbldpdGhkcmF3UGFyYW1zKTogUHJvbWlzZTxMaWdodG5pbmdPbmNoYWluV2l0aGRyYXdSZXNwb25zZT47XG4gIC8qKlxuICAgKiBHZXQgcGF5bWVudCBkZXRhaWxzIGJ5IHBheW1lbnQgaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBheW1lbnRJZCAtIFBheW1lbnQgaWQgdG8gbG9va3VwXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFBheW1lbnRJbmZvPn0gUGF5bWVudCBkZXRhaWxzXG4gICAqIEB0aHJvd3Mge0ludmFsaWRQYXltZW50SWR9IFdoZW4gcGF5bWVudCBpZCBpcyBub3QgdmFsaWRcbiAgICovXG4gIGdldFBheW1lbnQocGF5bWVudElkOiBzdHJpbmcpOiBQcm9taXNlPFBheW1lbnRJbmZvPjtcbiAgLyoqXG4gICAqIExpc3QgcGF5bWVudHMgZm9yIGEgd2FsbGV0IHdpdGggb3B0aW9uYWwgZmlsdGVyaW5nXG4gICAqIEBwYXJhbSB7UGF5bWVudFF1ZXJ5fSBwYXJhbXMgUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHBheW1lbnRzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLnN0YXR1c10gVGhlIHN0YXR1cyBvZiB0aGUgcGF5bWVudFxuICAgKiBAcGFyYW0ge2JpZ2ludH0gW3BhcmFtcy5saW1pdF0gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBheW1lbnRzIHRvIHJldHVyblxuICAgKiBAcGFyYW0ge0RhdGV9IFtwYXJhbXMuc3RhcnREYXRlXSBUaGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5lbmREYXRlXSBUaGUgZW5kIGRhdGUgZm9yIHRoZSBxdWVyeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy5wYXltZW50SGFzaF0gVGhlIHBheW1lbnQgaGFzaCBvZiB0aGUgcGF5bWVudHNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwYXJhbXMucHJldklkXSBDb250aW51ZSBpdGVyYXRpbmcgKHByb3ZpZGVkIGJ5IG5leHRCYXRjaFByZXZJZCBpbiB0aGUgcHJldmlvdXMgbGlzdClcbiAgICogQHJldHVybnMge1Byb21pc2U8TGlzdFBheW1lbnRzUmVzcG9uc2U+fSBMaXN0IG9mIHBheW1lbnRzIGFuZCBuZXh0QmF0Y2hQcmV2SWRcbiAgICovXG4gIGxpc3RQYXltZW50cyhwYXJhbXM6IFBheW1lbnRRdWVyeSk6IFByb21pc2U8TGlzdFBheW1lbnRzUmVzcG9uc2U+O1xuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIGRldGFpbHMgYnkgSURcbiAgICogQHBhcmFtIHtzdHJpbmd9IHR4SWQgLSBUcmFuc2FjdGlvbiBJRCB0byBsb29rdXBcbiAgICogQHJldHVybnMge1Byb21pc2U8VHJhbnNhY3Rpb24+fSBUcmFuc2FjdGlvbiBkZXRhaWxzXG4gICAqIEB0aHJvd3Mge0ludmFsaWRUeElkfSBXaGVuIHRyYW5zYWN0aW9uIElEIGlzIG5vdCB2YWxpZFxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb24odHhJZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbj47XG5cbiAgLyoqXG4gICAqIExpc3QgdHJhbnNhY3Rpb25zIGZvciBhIHdhbGxldCB3aXRoIG9wdGlvbmFsIGZpbHRlcmluZ1xuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uUXVlcnl9IHBhcmFtcyBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB7YmlnaW50fSBbcGFyYW1zLmxpbWl0XSBUaGUgbWF4aW11bSBudW1iZXIgb2YgdHJhbnNhY3Rpb25zIHRvIHJldHVyblxuICAgKiBAcGFyYW0ge0RhdGV9IFtwYXJhbXMuc3RhcnREYXRlXSBUaGUgc3RhcnQgZGF0ZSBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSB7RGF0ZX0gW3BhcmFtcy5lbmREYXRlXSBUaGUgZW5kIGRhdGUgZm9yIHRoZSBxdWVyeVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUcmFuc2FjdGlvbltdPn0gTGlzdCBvZiB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGxpc3RUcmFuc2FjdGlvbnMocGFyYW1zOiBUcmFuc2FjdGlvblF1ZXJ5KTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPjtcbn1cblxuZXhwb3J0IGNsYXNzIExpZ2h0bmluZ1dhbGxldCBpbXBsZW1lbnRzIElMaWdodG5pbmdXYWxsZXQge1xuICBwdWJsaWMgd2FsbGV0OiBzZGtjb3JlLklXYWxsZXQ7XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBzZGtjb3JlLklXYWxsZXQpIHtcbiAgICBjb25zdCBjb2luID0gd2FsbGV0LmJhc2VDb2luO1xuICAgIGlmIChjb2luLmdldEZhbWlseSgpICE9PSAnbG5idGMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29pbiBmb3IgbGlnaHRuaW5nIHdhbGxldDogJHtjb2luLmdldEZhbWlseSgpfWApO1xuICAgIH1cbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUludm9pY2UocGFyYW1zOiBDcmVhdGVJbnZvaWNlQm9keSk6IFByb21pc2U8SW52b2ljZT4ge1xuICAgIGNvbnN0IGNyZWF0ZUludm9pY2VSZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAucG9zdCh0aGlzLndhbGxldC5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvaW52b2ljZWAsIDIpKVxuICAgICAgLnNlbmQodC5leGFjdChDcmVhdGVJbnZvaWNlQm9keSkuZW5jb2RlKHBhcmFtcykpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIHNka2NvcmUuZGVjb2RlT3JFbHNlKEludm9pY2UubmFtZSwgSW52b2ljZSwgY3JlYXRlSW52b2ljZVJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIC8vIERPTidUIHRocm93IGVycm9ycyBmcm9tIGRlY29kZU9yRWxzZS4gSXQgY291bGQgbGVhayBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY3JlYXRlIGludm9pY2UgcmVzcG9uc2UgJHtlcnJvcn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldEludm9pY2UocGF5bWVudEhhc2g6IHN0cmluZyk6IFByb21pc2U8SW52b2ljZT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53YWxsZXQuYml0Z29cbiAgICAgIC5nZXQodGhpcy53YWxsZXQuYml0Z28udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vbGlnaHRuaW5nL2ludm9pY2UvJHtwYXltZW50SGFzaH1gLCAyKSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgICByZXR1cm4gZGVjb2RlT3JFbHNlKEludm9pY2UubmFtZSwgSW52b2ljZSwgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGdldCBpbnZvaWNlIHJlc3BvbnNlICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsaXN0SW52b2ljZXMocGFyYW1zOiBJbnZvaWNlUXVlcnkpOiBQcm9taXNlPExpc3RJbnZvaWNlc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmV0dXJuQ29kZWMgPSBMaXN0SW52b2ljZXNSZXNwb25zZTtcbiAgICBjb25zdCBjcmVhdGVJbnZvaWNlUmVzcG9uc2UgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLmdldCh0aGlzLndhbGxldC5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9saWdodG5pbmcvaW52b2ljZWAsIDIpKVxuICAgICAgLnF1ZXJ5KEludm9pY2VRdWVyeS5lbmNvZGUocGFyYW1zKSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgICByZXR1cm4gc2RrY29yZS5kZWNvZGVPckVsc2UocmV0dXJuQ29kZWMubmFtZSwgcmV0dXJuQ29kZWMsIGNyZWF0ZUludm9pY2VSZXNwb25zZSwgKGVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGlzdCBpbnZvaWNlcyByZXNwb25zZSAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcGF5SW52b2ljZShwYXJhbXM6IFN1Ym1pdFBheW1lbnRQYXJhbXMpOiBQcm9taXNlPFBheUludm9pY2VSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcUlkID0gbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLndhbGxldC5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcUlkKTtcblxuICAgIGNvbnN0IHsgdXNlckF1dGhLZXkgfSA9IGF3YWl0IGdldExpZ2h0bmluZ0F1dGhLZXljaGFpbnModGhpcy53YWxsZXQpO1xuICAgIGNvbnN0IHVzZXJBdXRoS2V5RW5jcnlwdGVkUHJ2ID0gdXNlckF1dGhLZXkuZW5jcnlwdGVkUHJ2O1xuICAgIGlmICghdXNlckF1dGhLZXlFbmNyeXB0ZWRQcnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdXNlciBhdXRoIGtleSBpcyBtaXNzaW5nIGVuY3J5cHRlZCBwcml2YXRlIGtleWApO1xuICAgIH1cbiAgICBjb25zdCBzaWduYXR1cmUgPSBjcmVhdGVNZXNzYWdlU2lnbmF0dXJlKFxuICAgICAgdC5leGFjdChMaWdodG5pbmdQYXltZW50UmVxdWVzdCkuZW5jb2RlKHBhcmFtcyksXG4gICAgICB0aGlzLndhbGxldC5iaXRnby5kZWNyeXB0KHsgcGFzc3dvcmQ6IHBhcmFtcy5wYXNzcGhyYXNlLCBpbnB1dDogdXNlckF1dGhLZXlFbmNyeXB0ZWRQcnYgfSlcbiAgICApO1xuXG4gICAgY29uc3QgcGF5bWVudEludGVudDogeyBpbnRlbnQ6IExpZ2h0bmluZ1BheW1lbnRJbnRlbnQgfSA9IHtcbiAgICAgIGludGVudDoge1xuICAgICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICAgIGludGVudFR5cGU6ICdwYXltZW50JyxcbiAgICAgICAgc2lnbmVkUmVxdWVzdDoge1xuICAgICAgICAgIGludm9pY2U6IHBhcmFtcy5pbnZvaWNlLFxuICAgICAgICAgIGFtb3VudE1zYXQ6IHBhcmFtcy5hbW91bnRNc2F0LFxuICAgICAgICAgIGZlZUxpbWl0TXNhdDogcGFyYW1zLmZlZUxpbWl0TXNhdCxcbiAgICAgICAgICBmZWVMaW1pdFJhdGlvOiBwYXJhbXMuZmVlTGltaXRSYXRpbyxcbiAgICAgICAgfSxcbiAgICAgICAgc2lnbmF0dXJlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlID0gKGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAucG9zdCh0aGlzLndhbGxldC5iaXRnby51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4cmVxdWVzdHMnLCAyKSlcbiAgICAgIC5zZW5kKHQudHlwZSh7IGludGVudDogTGlnaHRuaW5nUGF5bWVudEludGVudCB9KS5lbmNvZGUocGF5bWVudEludGVudCkpXG4gICAgICAucmVzdWx0KCkpIGFzIFR4UmVxdWVzdDtcblxuICAgIGlmICh0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUuc3RhdGUgPT09ICdwZW5kaW5nQXBwcm92YWwnKSB7XG4gICAgICBjb25zdCBwZW5kaW5nQXBwcm92YWxzID0gbmV3IFBlbmRpbmdBcHByb3ZhbHModGhpcy53YWxsZXQuYml0Z28sIHRoaXMud2FsbGV0LmJhc2VDb2luKTtcbiAgICAgIGNvbnN0IHBlbmRpbmdBcHByb3ZhbCA9IGF3YWl0IHBlbmRpbmdBcHByb3ZhbHMuZ2V0KHsgaWQ6IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS5wZW5kaW5nQXBwcm92YWxJZCB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBlbmRpbmdBcHByb3ZhbDogcGVuZGluZ0FwcHJvdmFsLnRvSlNPTigpLFxuICAgICAgICB0eFJlcXVlc3RJZDogdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnR4UmVxdWVzdElkLFxuICAgICAgICB0eFJlcXVlc3RTdGF0ZTogdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnN0YXRlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2ZlcjogeyBpZDogc3RyaW5nIH0gPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLnBvc3QoXG4gICAgICAgIHRoaXMud2FsbGV0LmJpdGdvLnVybChcbiAgICAgICAgICAnL3dhbGxldC8nICsgdGhpcy53YWxsZXQuaWQoKSArICcvdHhyZXF1ZXN0cy8nICsgdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnR4UmVxdWVzdElkICsgJy90cmFuc2ZlcnMnLFxuICAgICAgICAgIDJcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnNlbmQoKVxuICAgICAgLnJlc3VsdCgpO1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25SZXF1ZXN0U2VuZCA9IGF3YWl0IGNvbW1vblRzc01ldGhvZHMuc2VuZFR4UmVxdWVzdChcbiAgICAgIHRoaXMud2FsbGV0LmJpdGdvLFxuICAgICAgdGhpcy53YWxsZXQuaWQoKSxcbiAgICAgIHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS50eFJlcXVlc3RJZCxcbiAgICAgIFJlcXVlc3RUeXBlLnR4LFxuICAgICAgcmVxSWRcbiAgICApO1xuXG4gICAgY29uc3QgY29pblNwZWNpZmljID0gdHJhbnNhY3Rpb25SZXF1ZXN0U2VuZC50cmFuc2FjdGlvbnM/LlswXT8udW5zaWduZWRUeD8uY29pblNwZWNpZmljO1xuICAgIGxldCB1cGRhdGVkVHJhbnNmZXI6IGFueSA9IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgdXBkYXRlZFRyYW5zZmVyID0gYXdhaXQgdGhpcy53YWxsZXQuZ2V0VHJhbnNmZXIoeyBpZDogdHJhbnNmZXIuaWQgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gSWYgdHJhbnNmZXIgaXMgbm90IGZvdW5kIHdoaWNoIGlzIHBvc3NpYmxlIGluIGNhc2VzIHdoZXJlIHRoZSBwYXltZW50IGhhcyBkZWZpbml0ZWx5IGZhaWxlZFxuICAgICAgLy8gT3IgZXZlbiBpZiBzb21lIHVua25vd24gZXJyb3Igb2NjdXJzLCB3ZSB3aWxsIG5vdCB0aHJvdyBhbiBlcnJvciBoZXJlXG4gICAgICAvLyBXZSBzdGlsbCB3YW50IHRvIHJldHVybiB0aGUgdHhSZXF1ZXN0SWQsIHR4UmVxdWVzdFN0YXRlIGFuZCBwYXltZW50U3RhdHVzLlxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eFJlcXVlc3RJZDogdHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnR4UmVxdWVzdElkLFxuICAgICAgdHhSZXF1ZXN0U3RhdGU6IHRyYW5zYWN0aW9uUmVxdWVzdFNlbmQuc3RhdGUsXG4gICAgICBwYXltZW50U3RhdHVzOiBjb2luU3BlY2lmaWNcbiAgICAgICAgPyB0LmV4YWN0KExuZENyZWF0ZVBheW1lbnRSZXNwb25zZSkuZW5jb2RlKGNvaW5TcGVjaWZpYyBhcyBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2UpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdHJhbnNmZXI6IHVwZGF0ZWRUcmFuc2ZlcixcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgd2l0aGRyYXdPbmNoYWluKHBhcmFtczogTGlnaHRuaW5nT25jaGFpbldpdGhkcmF3UGFyYW1zKTogUHJvbWlzZTxMaWdodG5pbmdPbmNoYWluV2l0aGRyYXdSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcUlkID0gbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLndhbGxldC5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcUlkKTtcblxuICAgIGNvbnN0IHBheW1lbnRJbnRlbnQ6IHsgaW50ZW50OiBMaWdodG5pbmdQYXltZW50SW50ZW50IH0gPSB7XG4gICAgICBpbnRlbnQ6IHtcbiAgICAgICAgb25jaGFpblJlcXVlc3Q6IHtcbiAgICAgICAgICByZWNpcGllbnRzOiBwYXJhbXMucmVjaXBpZW50cyxcbiAgICAgICAgICBzYXRzUGVyVmJ5dGU6IHBhcmFtcy5zYXRzUGVyVmJ5dGUsXG4gICAgICAgIH0sXG4gICAgICAgIGludGVudFR5cGU6ICdwYXltZW50JyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZSA9IChhd2FpdCB0aGlzLndhbGxldC5iaXRnb1xuICAgICAgLnBvc3QodGhpcy53YWxsZXQuYml0Z28udXJsKCcvd2FsbGV0LycgKyB0aGlzLndhbGxldC5pZCgpICsgJy90eHJlcXVlc3RzJywgMikpXG4gICAgICAuc2VuZCh0LnR5cGUoeyBpbnRlbnQ6IExpZ2h0bmluZ1BheW1lbnRJbnRlbnQgfSkuZW5jb2RlKHBheW1lbnRJbnRlbnQpKVxuICAgICAgLnJlc3VsdCgpKSBhcyBUeFJlcXVlc3Q7XG5cbiAgICBpZiAodHJhbnNhY3Rpb25SZXF1ZXN0Q3JlYXRlLnN0YXRlID09PSAncGVuZGluZ0FwcHJvdmFsJykge1xuICAgICAgY29uc3QgcGVuZGluZ0FwcHJvdmFscyA9IG5ldyBQZW5kaW5nQXBwcm92YWxzKHRoaXMud2FsbGV0LmJpdGdvLCB0aGlzLndhbGxldC5iYXNlQ29pbik7XG4gICAgICBjb25zdCBwZW5kaW5nQXBwcm92YWwgPSBhd2FpdCBwZW5kaW5nQXBwcm92YWxzLmdldCh7IGlkOiB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUucGVuZGluZ0FwcHJvdmFsSWQgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwZW5kaW5nQXBwcm92YWw6IHBlbmRpbmdBcHByb3ZhbC50b0pTT04oKSxcbiAgICAgICAgdHhSZXF1ZXN0SWQ6IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS50eFJlcXVlc3RJZCxcbiAgICAgICAgdHhSZXF1ZXN0U3RhdGU6IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS5zdGF0ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNmZXI6IHsgaWQ6IHN0cmluZyB9ID0gYXdhaXQgdGhpcy53YWxsZXQuYml0Z29cbiAgICAgIC5wb3N0KFxuICAgICAgICB0aGlzLndhbGxldC5iaXRnby51cmwoXG4gICAgICAgICAgJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4cmVxdWVzdHMvJyArIHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS50eFJlcXVlc3RJZCArICcvdHJhbnNmZXJzJyxcbiAgICAgICAgICAyXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zZW5kKClcbiAgICAgIC5yZXN1bHQoKTtcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uUmVxdWVzdFNlbmQgPSBhd2FpdCBjb21tb25Uc3NNZXRob2RzLnNlbmRUeFJlcXVlc3QoXG4gICAgICB0aGlzLndhbGxldC5iaXRnbyxcbiAgICAgIHRoaXMud2FsbGV0LmlkKCksXG4gICAgICB0cmFuc2FjdGlvblJlcXVlc3RDcmVhdGUudHhSZXF1ZXN0SWQsXG4gICAgICBSZXF1ZXN0VHlwZS50eCxcbiAgICAgIHJlcUlkXG4gICAgKTtcblxuICAgIGxldCB1cGRhdGVkVHJhbnNmZXI6IGFueSA9IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgdXBkYXRlZFRyYW5zZmVyID0gYXdhaXQgdGhpcy53YWxsZXQuZ2V0VHJhbnNmZXIoeyBpZDogdHJhbnNmZXIuaWQgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gSWYgdHJhbnNmZXIgaXMgbm90IGZvdW5kIHdoaWNoIGlzIHBvc3NpYmxlIGluIGNhc2VzIHdoZXJlIHRoZSB3aXRoZHJhdyBoYXMgZGVmaW5pdGVseSBmYWlsZWRcbiAgICAgIC8vIE9yIGV2ZW4gaWYgc29tZSB1bmtub3duIGVycm9yIG9jY3Vycywgd2Ugd2lsbCBub3QgdGhyb3cgYW4gZXJyb3IgaGVyZVxuICAgICAgLy8gV2Ugc3RpbGwgd2FudCB0byByZXR1cm4gdGhlIHR4UmVxdWVzdElkIGFuZCB0eFJlcXVlc3RTdGF0ZS5cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHhSZXF1ZXN0SWQ6IHRyYW5zYWN0aW9uUmVxdWVzdENyZWF0ZS50eFJlcXVlc3RJZCxcbiAgICAgIHR4UmVxdWVzdFN0YXRlOiB0cmFuc2FjdGlvblJlcXVlc3RTZW5kLnN0YXRlLFxuICAgICAgdHJhbnNmZXI6IHVwZGF0ZWRUcmFuc2ZlcixcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZ2V0UGF5bWVudChwYXltZW50SWQ6IHN0cmluZyk6IFByb21pc2U8UGF5bWVudEluZm8+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9wYXltZW50LyR7cGF5bWVudElkfWAsIDIpKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVPckVsc2UoUGF5bWVudEluZm8ubmFtZSwgUGF5bWVudEluZm8sIHJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXltZW50IHJlc3BvbnNlOiAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdFBheW1lbnRzKHBhcmFtczogUGF5bWVudFF1ZXJ5KTogUHJvbWlzZTxMaXN0UGF5bWVudHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53YWxsZXQuYml0Z29cbiAgICAgIC5nZXQodGhpcy53YWxsZXQuYml0Z28udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vbGlnaHRuaW5nL3BheW1lbnRgLCAyKSlcbiAgICAgIC5xdWVyeShQYXltZW50UXVlcnkuZW5jb2RlKHBhcmFtcykpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShMaXN0UGF5bWVudHNSZXNwb25zZS5uYW1lLCBMaXN0UGF5bWVudHNSZXNwb25zZSwgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBheW1lbnQgbGlzdCByZXNwb25zZTogJHtlcnJvcn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldFRyYW5zYWN0aW9uKHR4SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy90cmFuc2FjdGlvbi8ke3R4SWR9YCwgMikpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShUcmFuc2FjdGlvbi5uYW1lLCBUcmFuc2FjdGlvbiwgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uIHJlc3BvbnNlOiAke2Vycm9yfWApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRyYW5zYWN0aW9ucyhwYXJhbXM6IFRyYW5zYWN0aW9uUXVlcnkpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy90cmFuc2FjdGlvbmAsIDIpKVxuICAgICAgLnF1ZXJ5KFRyYW5zYWN0aW9uUXVlcnkuZW5jb2RlKHBhcmFtcykpXG4gICAgICAucmVzdWx0KCk7XG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZSh0LmFycmF5KFRyYW5zYWN0aW9uKS5uYW1lLCB0LmFycmF5KFRyYW5zYWN0aW9uKSwgcmVzcG9uc2UsIChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uIGxpc3QgcmVzcG9uc2U6ICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/abstract-lightning",
3
- "version": "1.0.0-alpha.189",
3
+ "version": "1.0.0-alpha.190",
4
4
  "description": "BitGo SDK coin library for base Lightning Network coin implementation",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -39,9 +39,9 @@
39
39
  ]
40
40
  },
41
41
  "dependencies": {
42
- "@bitgo-beta/sdk-core": "2.4.1-alpha.335",
43
- "@bitgo-beta/statics": "10.0.1-alpha.335",
44
- "@bitgo-beta/utxo-lib": "4.0.1-alpha.336",
42
+ "@bitgo-beta/sdk-core": "2.4.1-alpha.336",
43
+ "@bitgo-beta/statics": "10.0.1-alpha.336",
44
+ "@bitgo-beta/utxo-lib": "4.0.1-alpha.337",
45
45
  "@bitgo/public-types": "5.1.0",
46
46
  "bs58check": "^2.1.2",
47
47
  "fp-ts": "^2.12.2",
@@ -49,5 +49,5 @@
49
49
  "io-ts-types": "^0.5.16",
50
50
  "macaroon": "^3.0.4"
51
51
  },
52
- "gitHead": "80bd42b8a4bdd6659b84daf1949adbcdc0b01a75"
52
+ "gitHead": "78b34933b361e622b54166ad13fe54b53608dc2e"
53
53
  }