@bitgo-beta/utxo-ord 1.0.1-beta.0 → 1.0.1-beta.2
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/OutputLayout.d.ts +5 -23
- package/dist/src/OutputLayout.d.ts.map +1 -1
- package/dist/src/OutputLayout.js +94 -100
- package/dist/src/psbt.d.ts +2 -1
- package/dist/src/psbt.d.ts.map +1 -1
- package/dist/src/psbt.js +12 -10
- package/dist/tsconfig.tsbuildinfo +35 -16
- package/package.json +4 -4
|
@@ -2,20 +2,6 @@ import { OrdOutput } from './OrdOutput';
|
|
|
2
2
|
/**
|
|
3
3
|
* A range constraint
|
|
4
4
|
*/
|
|
5
|
-
export declare class Constraint {
|
|
6
|
-
minValue: bigint;
|
|
7
|
-
maxValue: bigint;
|
|
8
|
-
/**
|
|
9
|
-
* @param minValue - inclusive
|
|
10
|
-
* @param maxValue - inclusive
|
|
11
|
-
*/
|
|
12
|
-
constructor(minValue: bigint, maxValue: bigint);
|
|
13
|
-
/** @return true iff value satisfies constraint */
|
|
14
|
-
check(v: bigint): boolean;
|
|
15
|
-
static ZERO: Constraint;
|
|
16
|
-
/** infinity for all practical purposes */
|
|
17
|
-
static MAXSAT: bigint;
|
|
18
|
-
}
|
|
19
5
|
declare type Parameters<T> = {
|
|
20
6
|
/** Padding preceding the inscription output */
|
|
21
7
|
firstChangeOutput: T;
|
|
@@ -42,24 +28,20 @@ export declare function getOrdOutputsForLayout(inscriptionInput: OrdOutput, layo
|
|
|
42
28
|
/**
|
|
43
29
|
* High-level constraints for output layout
|
|
44
30
|
*/
|
|
45
|
-
export declare type
|
|
31
|
+
export declare type Constraints = {
|
|
46
32
|
minChangeOutput: bigint;
|
|
47
|
-
maxChangeOutput: bigint;
|
|
48
33
|
minInscriptionOutput: bigint;
|
|
49
34
|
maxInscriptionOutput: bigint;
|
|
50
35
|
feeFixed: bigint;
|
|
51
36
|
feePerOutput: bigint;
|
|
37
|
+
satPos: bigint;
|
|
38
|
+
total: bigint;
|
|
52
39
|
};
|
|
53
40
|
/**
|
|
54
41
|
* @param inscriptionInput
|
|
55
|
-
* @param
|
|
56
|
-
* @param maxChangeOutput
|
|
57
|
-
* @param minInscriptionOutput
|
|
58
|
-
* @param maxInscriptionOutput
|
|
59
|
-
* @param feeFixed
|
|
60
|
-
* @param feePerOutput
|
|
42
|
+
* @param search
|
|
61
43
|
* @return a solution that satisfies constraints. If no solution can be found, return `undefined`.
|
|
62
44
|
*/
|
|
63
|
-
export declare function findOutputLayout(inscriptionInput: OrdOutput,
|
|
45
|
+
export declare function findOutputLayout(inscriptionInput: OrdOutput, search: Omit<Constraints, 'satPos' | 'total'>): OutputLayout | undefined;
|
|
64
46
|
export {};
|
|
65
47
|
//# sourceMappingURL=OutputLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputLayout.d.ts","sourceRoot":"","sources":["../../src/OutputLayout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OutputLayout.d.ts","sourceRoot":"","sources":["../../src/OutputLayout.ts"],"names":[],"mappings":"AAkGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBxC;;GAEG;AACH,aAAK,UAAU,CAAC,CAAC,IAAI;IACnB,+CAA+C;IAC/C,iBAAiB,EAAE,CAAC,CAAC;IACrB,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,CAAC;IACrB,+CAA+C;IAC/C,kBAAkB,EAAE,CAAC,CAAC;IACtB,4DAA4D;IAC5D,SAAS,EAAE,CAAC,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEzD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,iBAAiB,EAAE,CAAC,EACpB,iBAAiB,EAAE,CAAC,EACpB,kBAAkB,EAAE,CAAC,EACrB,SAAS,EAAE,CAAC,GACX,UAAU,CAAC,CAAC,CAAC,CAOf;AAED,+BAA+B;AAC/B,oBAAY,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,SAAS,EAC3B,MAAM,EAAE,YAAY,GACnB,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAO9B;AA0BD;;GAEG;AACH,oBAAY,WAAW,GAAG;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA2DF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,SAAS,EAC3B,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,GAC5C,YAAY,GAAG,SAAS,CAkC1B"}
|
package/dist/src/OutputLayout.js
CHANGED
|
@@ -52,7 +52,6 @@ Broadly speaking, there are four scenarios:
|
|
|
52
52
|
|
|
53
53
|
(3) Large inscription input with inscription close to end of input.
|
|
54
54
|
Change output padding start followed by inscription output.
|
|
55
|
-
(TODO)
|
|
56
55
|
|
|
57
56
|
┌────────┬────────┐
|
|
58
57
|
│ │ u0 │
|
|
@@ -76,7 +75,6 @@ Broadly speaking, there are four scenarios:
|
|
|
76
75
|
|
|
77
76
|
(4) Large inscription input with inscription in the middle.
|
|
78
77
|
Inscription input (u1) with padding on both sides (u0 and u2)
|
|
79
|
-
(TODO)
|
|
80
78
|
|
|
81
79
|
┌────────┬────────┐
|
|
82
80
|
│ │ u0 │
|
|
@@ -99,32 +97,18 @@ Broadly speaking, there are four scenarios:
|
|
|
99
97
|
└────────┘
|
|
100
98
|
*/
|
|
101
99
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
102
|
-
exports.findOutputLayout = exports.getOrdOutputsForLayout = exports.toParameters = exports.toArray =
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
this.minValue = minValue;
|
|
114
|
-
this.maxValue = maxValue;
|
|
115
|
-
if (minValue < 0 || maxValue < minValue) {
|
|
116
|
-
throw new Error(`invalid constraint [${minValue}, ${maxValue}]`);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/** @return true iff value satisfies constraint */
|
|
120
|
-
check(v) {
|
|
121
|
-
return new SatRange_1.SatRange(this.minValue, this.maxValue).isSupersetOf(v);
|
|
122
|
-
}
|
|
100
|
+
exports.findOutputLayout = exports.getOrdOutputsForLayout = exports.toParameters = exports.toArray = void 0;
|
|
101
|
+
const ZERO = BigInt(0);
|
|
102
|
+
const ONE = BigInt(1);
|
|
103
|
+
function max(a, b) {
|
|
104
|
+
return a < b ? b : a;
|
|
105
|
+
}
|
|
106
|
+
function min(a, b) {
|
|
107
|
+
return a < b ? a : b;
|
|
108
|
+
}
|
|
109
|
+
function sum(arr) {
|
|
110
|
+
return arr.reduce((a, b) => a + b, ZERO);
|
|
123
111
|
}
|
|
124
|
-
exports.Constraint = Constraint;
|
|
125
|
-
Constraint.ZERO = new Constraint(BigInt(0), BigInt(0));
|
|
126
|
-
/** infinity for all practical purposes */
|
|
127
|
-
Constraint.MAXSAT = BigInt(21e14);
|
|
128
112
|
/** @return canonical sequence of parameters */
|
|
129
113
|
function toArray(p) {
|
|
130
114
|
return [p.firstChangeOutput, p.inscriptionOutput, p.secondChangeOutput, p.feeOutput];
|
|
@@ -155,100 +139,110 @@ function getOrdOutputsForLayout(inscriptionInput, layout) {
|
|
|
155
139
|
}
|
|
156
140
|
exports.getOrdOutputsForLayout = getOrdOutputsForLayout;
|
|
157
141
|
/**
|
|
158
|
-
* @param
|
|
159
|
-
* @return output sum (including fee output) for layout.
|
|
160
|
-
*/
|
|
161
|
-
function getLayoutSum(layout) {
|
|
162
|
-
return toArray(layout).reduce((a, b) => a + b, BigInt(0));
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
142
|
+
* @param constraints
|
|
165
143
|
* @param inscriptionInput
|
|
166
144
|
* @param layout
|
|
167
|
-
* @param constraints
|
|
168
145
|
* @return true iff layout satisfies constraints
|
|
169
146
|
*/
|
|
170
|
-
function check(inscriptionInput, layout
|
|
147
|
+
function check(constraints, inscriptionInput, layout) {
|
|
171
148
|
var _a;
|
|
172
|
-
if (
|
|
173
|
-
constraints.
|
|
174
|
-
constraints.
|
|
175
|
-
|
|
176
|
-
|
|
149
|
+
if ((layout.firstChangeOutput === ZERO || constraints.minChangeOutput <= layout.firstChangeOutput) &&
|
|
150
|
+
(layout.secondChangeOutput === ZERO || constraints.minChangeOutput <= layout.secondChangeOutput) &&
|
|
151
|
+
constraints.minInscriptionOutput <= layout.inscriptionOutput &&
|
|
152
|
+
layout.inscriptionOutput <= constraints.maxInscriptionOutput &&
|
|
153
|
+
getFeeForOutputs(constraints, [layout.firstChangeOutput, layout.inscriptionOutput, layout.secondChangeOutput]) <=
|
|
154
|
+
layout.feeOutput &&
|
|
155
|
+
sum(toArray(layout)) === inscriptionInput.value) {
|
|
177
156
|
/* make sure inscription actually lies on the inscriptionOutput */
|
|
178
157
|
const outputs = getOrdOutputsForLayout(inscriptionInput, layout);
|
|
179
158
|
return ((_a = outputs.inscriptionOutput) === null || _a === void 0 ? void 0 : _a.ordinals.length) === 1;
|
|
180
159
|
}
|
|
181
160
|
return false;
|
|
182
161
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
162
|
+
function getFeeForOutputs(p, outputs) {
|
|
163
|
+
return outputs.reduce((sum, oValue) => sum + (oValue === ZERO ? ZERO : p.feePerOutput), p.feeFixed);
|
|
164
|
+
}
|
|
165
|
+
function getStartChangeOutput(c) {
|
|
166
|
+
// we don't need a change padding output
|
|
167
|
+
if (c.satPos < c.maxInscriptionOutput) {
|
|
168
|
+
return ZERO;
|
|
169
|
+
}
|
|
170
|
+
if (c.minChangeOutput <= c.satPos) {
|
|
171
|
+
return c.satPos;
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
function getInscriptionOutput(c, startChangeOutput) {
|
|
176
|
+
const result = min(c.maxInscriptionOutput, max(c.minInscriptionOutput, c.satPos - startChangeOutput + ONE));
|
|
177
|
+
if (c.satPos < startChangeOutput || startChangeOutput + result < c.satPos) {
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
// if is not worth creating an end change output, let's maximize the inscription output
|
|
181
|
+
if (getEndChangeOutput(c, startChangeOutput, result) === ZERO) {
|
|
182
|
+
const remainder = c.total - startChangeOutput - getFeeForOutputs(c, [startChangeOutput, result]);
|
|
183
|
+
return min(remainder, c.maxInscriptionOutput);
|
|
184
|
+
}
|
|
185
|
+
return result;
|
|
186
|
+
}
|
|
187
|
+
function getEndChangeOutput(c, startChangeOutput, inscriptionOutput) {
|
|
188
|
+
const remainder = c.total - sum([startChangeOutput, inscriptionOutput]);
|
|
189
|
+
const minFeeWithoutSecondOutput = getFeeForOutputs(c, [startChangeOutput, inscriptionOutput]);
|
|
190
|
+
const minFeeWithSecondOutput = getFeeForOutputs(c, [startChangeOutput, inscriptionOutput, c.minChangeOutput]);
|
|
191
|
+
if (remainder < minFeeWithoutSecondOutput) {
|
|
192
|
+
// We cannot even pay the fee for the output(s) we have so far.
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
if (remainder - minFeeWithSecondOutput < c.minChangeOutput) {
|
|
196
|
+
// The remainder is too small to pay for the end change output. Let's skip it and pay a higher fee.
|
|
197
|
+
return ZERO;
|
|
198
|
+
}
|
|
199
|
+
// let's use as much as we can for fee while leaving enough for fee
|
|
200
|
+
return remainder - minFeeWithSecondOutput;
|
|
201
|
+
}
|
|
202
|
+
function getFeeOutput(c, startChangeOutput, inscriptionOutput, endChangeOutput) {
|
|
203
|
+
const minFee = getFeeForOutputs(c, [startChangeOutput, inscriptionOutput, endChangeOutput]);
|
|
204
|
+
const remainder = c.total - sum([startChangeOutput, inscriptionOutput, endChangeOutput]);
|
|
205
|
+
if (remainder < minFee) {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
return remainder;
|
|
210
209
|
}
|
|
211
210
|
/**
|
|
212
211
|
* @param inscriptionInput
|
|
213
|
-
* @param
|
|
214
|
-
* @param maxChangeOutput
|
|
215
|
-
* @param minInscriptionOutput
|
|
216
|
-
* @param maxInscriptionOutput
|
|
217
|
-
* @param feeFixed
|
|
218
|
-
* @param feePerOutput
|
|
212
|
+
* @param search
|
|
219
213
|
* @return a solution that satisfies constraints. If no solution can be found, return `undefined`.
|
|
220
214
|
*/
|
|
221
|
-
function findOutputLayout(inscriptionInput,
|
|
215
|
+
function findOutputLayout(inscriptionInput, search) {
|
|
222
216
|
if (inscriptionInput.ordinals.length !== 1) {
|
|
223
217
|
throw new Error(`unexpected ordinal count`);
|
|
224
218
|
}
|
|
225
|
-
if (inscriptionInput.ordinals[0].size() !==
|
|
219
|
+
if (inscriptionInput.ordinals[0].size() !== ONE) {
|
|
226
220
|
throw new Error(`only single-satoshi inscriptions are supported`);
|
|
227
221
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}
|
|
222
|
+
const satPos = inscriptionInput.ordinals[0].start;
|
|
223
|
+
const total = inscriptionInput.value;
|
|
224
|
+
const constraints = { ...search, satPos, total };
|
|
225
|
+
const startChangeOutput = getStartChangeOutput(constraints);
|
|
226
|
+
if (startChangeOutput === null) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const inscriptionOutput = getInscriptionOutput(constraints, startChangeOutput);
|
|
230
|
+
if (inscriptionOutput === null) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const endChangeOutput = getEndChangeOutput(constraints, startChangeOutput, inscriptionOutput);
|
|
234
|
+
if (endChangeOutput === null) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
const feeOutput = getFeeOutput(constraints, startChangeOutput, inscriptionOutput, endChangeOutput);
|
|
238
|
+
if (feeOutput === null) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const result = toParameters(startChangeOutput, inscriptionOutput, endChangeOutput, feeOutput);
|
|
242
|
+
if (!check(constraints, inscriptionInput, result)) {
|
|
243
|
+
throw new Error(`invalid result`);
|
|
251
244
|
}
|
|
245
|
+
return result;
|
|
252
246
|
}
|
|
253
247
|
exports.findOutputLayout = findOutputLayout;
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0TGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL091dHB1dExheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0dHOzs7QUFHSCx5Q0FBc0M7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLFVBQVU7SUFDckI7OztPQUdHO0lBQ0gsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQjtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUMxRCxJQUFJLFFBQVEsR0FBRyxDQUFDLElBQUksUUFBUSxHQUFHLFFBQVEsRUFBRTtZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixRQUFRLEtBQUssUUFBUSxHQUFHLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsS0FBSyxDQUFDLENBQVM7UUFDYixPQUFPLElBQUksbUJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7QUFkSCxnQ0FtQkM7QUFIUSxlQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25ELDBDQUEwQztBQUNuQyxpQkFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQWNoQywrQ0FBK0M7QUFDL0MsU0FBZ0IsT0FBTyxDQUFJLENBQWdCO0lBQ3pDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrQkFBa0Is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QUNqRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsU0FBUztTQUNWO1FBQ0QsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQzlDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7S0FDRjtBQUNILENBQUM7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuVGhpcyBmaWxlIGNvbnRhaW5zIGNvZGUgZm9yIGNyZWF0aW5nIGFuIG91dHB1dCBsYXlvdXRzIGZvciB0cmFuc2FjdGlvbnMgdGhhdCBwYXNzIG9uIGluc2NyaXB0aW9ucy5cblxuV2hlbiBwYXNzaW5nIG9uIGFuIGluc2NyaXB0aW9uLCB3ZSB3YW50IHRvIHNhdGlzZnkgYSBmZXcgY29uc3RyYWludHM6XG5cbiogQWxsIG91dHB1dHMgc2hvdWxkIGJlIGxhcmdlciB0aGFuIGEgbWluaW1hbCB2YWx1ZSAoZHVzdCBsaW1pdClcbiogVGhlIHN1bSBvZiBhbGwgb3V0cHV0IHZhbHVlcyBuZWVkcyB0byBiZSBsZXNzIHRoYW4gdGhlIGlucHV0IHRvIGNvdmVyIHRoZSB0cmFuc2FjdGlvbiBmZWUuXG4qIFRoZSBvdXRwdXQgY29udGFpbmluZyB0aGUgaW5zY3JpcHRpb24gc2hvdWxkIGJlIGFzIHNtYWxsIGFzIHBvc3NpYmxlLCBidXQgbGFyZ2UgZW5vdWdoIHRvXG4gIGNvbnRhaW4gdGhlIGluc2NyaXB0aW9uLlxuXG5UbyBrZWVwIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgc21hbGwsIHdlIGNhbiBwYWQgdGhlIHNhdG9zaGkgcmFuZ2UgcHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgdGhlIHJhbmdlXG53aXRoIGNoYW5nZSBvdXRwdXRzLCB3aGljaCBoYXZlIGEgbWluaW1hbCBzaXplIGFuZCBpbmN1ciBhIGZlZSBjb3N0LlxuXG5cbkJyb2FkbHkgc3BlYWtpbmcsIHRoZXJlIGFyZSBmb3VyIHNjZW5hcmlvczpcblxuKDEpIFNtYWxsIGluc2NyaXB0aW9uIGlucHV0IHRoYXQgaGFzIGp1c3QgZW5vdWdoIHZhbHVlIHRvIHBheSBmb3IgZmVlIGFuZCBhIHNpbmdsZSBpbnNjcmlwdGlvblxuICAgIG91dHB1dCAodTApLiBObyBwYWRkaW5nIG91dHB1dHMuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCIGZlZVxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuXG5cbigyKSBMYXJnZSBpbnNjcmlwdGlvbiBpbnB1dCB3aXRoIGluc2NyaXB0aW9uIGNsb3NlIHRvIHN0YXJ0IG9mIGlucHV0LlxuICAgIEluc2NyaXB0aW9uIG91dHB1dCBmb2xsb3dlZCBieSBjaGFuZ2Ugb3V0cHV0ICh1MSkgcGFkZGluZyB0aGUgcmVtYWluaW5nIHZhbHVlLlxuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpFxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oMykgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBjbG9zZSB0byBlbmQgb2YgaW5wdXQuXG4gICAgQ2hhbmdlIG91dHB1dCBwYWRkaW5nIHN0YXJ0IGZvbGxvd2VkIGJ5IGluc2NyaXB0aW9uIG91dHB1dC5cbiAgICAoVE9ETylcblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oNCkgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBpbiB0aGUgbWlkZGxlLlxuICAgIEluc2NyaXB0aW9uIGlucHV0ICh1MSkgd2l0aCBwYWRkaW5nIG9uIGJvdGggc2lkZXMgKHUwIGFuZCB1MilcbiAgICAoVE9ETylcblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAgICDilIIgICAgICAgIOKUgiB1MSAgICAg4pSCXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgICDilIIgdTIgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiBmZWVcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICovXG5cbmltcG9ydCB7IE9yZE91dHB1dCB9IGZyb20gJy4vT3JkT3V0cHV0JztcbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5cbi8qKlxuICogQSByYW5nZSBjb25zdHJhaW50XG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zdHJhaW50IHtcbiAgLyoqXG4gICAqIEBwYXJhbSBtaW5WYWx1ZSAtIGluY2x1c2l2ZVxuICAgKiBAcGFyYW0gbWF4VmFsdWUgLSBpbmNsdXNpdmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtaW5WYWx1ZTogYmlnaW50LCBwdWJsaWMgbWF4VmFsdWU6IGJpZ2ludCkge1xuICAgIGlmIChtaW5WYWx1ZSA8IDAgfHwgbWF4VmFsdWUgPCBtaW5WYWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGNvbnN0cmFpbnQgWyR7bWluVmFsdWV9LCAke21heFZhbHVlfV1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybiB0cnVlIGlmZiB2YWx1ZSBzYXRpc2ZpZXMgY29uc3RyYWludCAqL1xuICBjaGVjayh2OiBiaWdpbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmV3IFNhdFJhbmdlKHRoaXMubWluVmFsdWUsIHRoaXMubWF4VmFsdWUpLmlzU3VwZXJzZXRPZih2KTtcbiAgfVxuXG4gIHN0YXRpYyBaRVJPID0gbmV3IENvbnN0cmFpbnQoQmlnSW50KDApLCBCaWdJbnQoMCkpO1xuICAvKiogaW5maW5pdHkgZm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMgKi9cbiAgc3RhdGljIE1BWFNBVCA9IEJpZ0ludCgyMWUxNCk7XG59XG5cbnR5cGUgUGFyYW1ldGVyczxUPiA9IHtcbiAgLyoqIFBhZGRpbmcgcHJlY2VkaW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgZmlyc3RDaGFuZ2VPdXRwdXQ6IFQ7XG4gIC8qKiBUaGUgaW5zY3JpcHRpb24gb3V0cHV0IHRoYXQgd2lsbCBpbmhlcml0IHRoZSBpbnB1dCBpbnNjcmlwdGlvbiAqL1xuICBpbnNjcmlwdGlvbk91dHB1dDogVDtcbiAgLyoqIFBhZGRpbmcgZm9sbG93aW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBUO1xuICAvKiogTm90IGEgcmVhbCBvdXRwdXQsIHVzZWQgb25seSB0byBzaW1wbGlmeSBjYWxjdWxhdGlvbnMgKi9cbiAgZmVlT3V0cHV0OiBUO1xufTtcblxuLyoqIEByZXR1cm4gY2Fub25pY2FsIHNlcXVlbmNlIG9mIHBhcmFtZXRlcnMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FycmF5PFQ+KHA6IFBhcmFtZXRlcnM8VD4pOiBbVCwgVCwgVCwgVF0ge1xuICByZXR1cm4gW3AuZmlyc3RDaGFuZ2VPdXRwdXQsIHAuaW5zY3JpcHRpb25PdXRwdXQsIHAuc2Vjb25kQ2hhbmdlT3V0cHV0LCBwLmZlZU91dHB1dF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlcnM8VD4oXG4gIGZpcnN0Q2hhbmdlT3V0cHV0OiBULFxuICBpbnNjcmlwdGlvbk91dHB1dDogVCxcbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBULFxuICBmZWVPdXRwdXQ6IFRcbik6IFBhcmFtZXRlcnM8VD4ge1xuICByZXR1cm4ge1xuICAgIGZpcnN0Q2hhbmdlT3V0cHV0LFxuICAgIGluc2NyaXB0aW9uT3V0cHV0LFxuICAgIHNlY29uZENoYW5nZU91dHB1dCxcbiAgICBmZWVPdXRwdXQsXG4gIH07XG59XG5cbi8qKiBBIGZpbmlzaGVkIG91dHB1dCBsYXlvdXQgKi9cbmV4cG9ydCB0eXBlIE91dHB1dExheW91dCA9IFBhcmFtZXRlcnM8YmlnaW50PjtcblxuLyoqXG4gKiBUcmFuc2xhdGVzIGEgbGF5b3V0IGludG8gT3JkT3V0cHV0cy4gQWJzZW50IG91dHB1dHMgYXJlIHNldCB0byBgbnVsbGAuXG4gKlxuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBsYXlvdXRcbiAqIEByZXR1cm4gT3JkT3V0cHV0cyBmb3IgbGF5b3V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KFxuICBpbnNjcmlwdGlvbklucHV0OiBPcmRPdXRwdXQsXG4gIGxheW91dDogT3V0cHV0TGF5b3V0XG4pOiBQYXJhbWV0ZXJzPE9yZE91dHB1dCB8IG51bGw+IHtcbiAgY29uc3Qgb3V0cHV0cyA9IGluc2NyaXB0aW9uSW5wdXQuc3BsaXRBbGxXaXRoUGFyYW1zKHRvQXJyYXkobGF5b3V0KSwgeyBleGFjdDogdHJ1ZSwgYWxsb3daZXJvOiB0cnVlIH0pO1xuICBpZiAob3V0cHV0cy5sZW5ndGggIT09IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcmVzdWx0YCk7XG4gIH1cbiAgdHlwZSBUID0gT3JkT3V0cHV0IHwgbnVsbDtcbiAgcmV0dXJuIHRvUGFyYW1ldGVycyguLi4ob3V0cHV0cyBhcyBbVCwgVCwgVCwgVF0pKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gbGF5b3V0XG4gKiBAcmV0dXJuIG91dHB1dCBzdW0gKGluY2x1ZGluZyBmZWUgb3V0cHV0KSBmb3IgbGF5b3V0LlxuICovXG5mdW5jdGlvbiBnZXRMYXlvdXRTdW0obGF5b3V0OiBPdXRwdXRMYXlvdXQpOiBiaWdpbnQge1xuICByZXR1cm4gdG9BcnJheShsYXlvdXQpLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIEJpZ0ludCgwKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBsYXlvdXRcbiAqIEBwYXJhbSBjb25zdHJhaW50c1xuICogQHJldHVybiB0cnVlIGlmZiBsYXlvdXQgc2F0aXNmaWVzIGNvbnN0cmFpbnRzXG4gKi9cbmZ1bmN0aW9uIGNoZWNrKGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCwgbGF5b3V0OiBPdXRwdXRMYXlvdXQsIGNvbnN0cmFpbnRzOiBQYXJhbWV0ZXJzPENvbnN0cmFpbnQ+KTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBjb25zdHJhaW50cy5maXJzdENoYW5nZU91dHB1dC5jaGVjayhsYXlvdXQuZmlyc3RDaGFuZ2VPdXRwdXQpICYmXG4gICAgY29uc3RyYWludHMuaW5zY3JpcHRpb25PdXRwdXQuY2hlY2sobGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0KSAmJlxuICAgIGNvbnN0cmFpbnRzLnNlY29uZENoYW5nZU91dHB1dC5jaGVjayhsYXlvdXQuc2Vjb25kQ2hhbmdlT3V0cHV0KSAmJlxuICAgIGNvbnN0cmFpbnRzLmZlZU91dHB1dC5jaGVjayhsYXlvdXQuZmVlT3V0cHV0KSAmJlxuICAgIGdldExheW91dFN1bShsYXlvdXQpID09PSBpbnNjcmlwdGlvbklucHV0LnZhbHVlXG4gICkge1xuICAgIC8qIG1ha2Ugc3VyZSBpbnNjcmlwdGlvbiBhY3R1YWxseSBsaWVzIG9uIHRoZSBpbnNjcmlwdGlvbk91dHB1dCAqL1xuICAgIGNvbnN0IG91dHB1dHMgPSBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KGluc2NyaXB0aW9uSW5wdXQsIGxheW91dCk7XG4gICAgcmV0dXJuIG91dHB1dHMuaW5zY3JpcHRpb25PdXRwdXQ/Lm9yZGluYWxzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBTb2x2ZXMgdGhlIGNvbnN0cmFpbnRzIGRlZmluZWQgaW4gX3BfIHRvIHByb2R1Y2UgYSBsYXlvdXQgYnkgZXhwYW5kaW5nIGEgcGFyYW1ldGVyLlxuICogQ3VycmVudGx5IG9ubHkgd29ya3Mgd2l0aCBvbmUgZXhwYW5kYWJsZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gdG90YWwgLSB0aGUgdG90YWwgaW5wdXQgc3VtXG4gKiBAcGFyYW0gcCAtIHRoZSBjb25zdHJhaW50IHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJuIE91dHB1dExheW91dFxuICovXG5mdW5jdGlvbiB0b091dHB1dExheW91dCh0b3RhbDogYmlnaW50LCBwOiBQYXJhbWV0ZXJzPENvbnN0cmFpbnQ+KTogT3V0cHV0TGF5b3V0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZml4ZWQgPSBPYmplY3QudmFsdWVzKHApLmZpbHRlcigodikgPT4gdi5taW5WYWx1ZSA9PT0gdi5tYXhWYWx1ZSk7XG4gIGNvbnN0IGV4cGFuZGFibGUgPSBPYmplY3QudmFsdWVzKHApLmZpbHRlcigodikgPT4gdi5taW5WYWx1ZSAhPT0gdi5tYXhWYWx1ZSk7XG4gIGlmIChleHBhbmRhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocCkubWFwKChbaywgdl0pID0+IFtrLCB2Lm1pblZhbHVlXSkpIGFzIE91dHB1dExheW91dDtcbiAgfVxuXG4gIGlmIChleHBhbmRhYmxlLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IHN1bUZpeGVkID0gZml4ZWQucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUubWluVmFsdWUsIEJpZ0ludCgwKSk7XG4gICAgY29uc3QgcmVtYWluZGVyID0gdG90YWwgLSBzdW1GaXhlZDtcbiAgICBpZiAocmVtYWluZGVyIDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGsgaW4gcCkge1xuICAgICAgaWYgKHBbayBhcyBrZXlvZiBQYXJhbWV0ZXJzPHVua25vd24+XSA9PT0gZXhwYW5kYWJsZVswXSkge1xuICAgICAgICByZXR1cm4gdG9PdXRwdXRMYXlvdXQodG90YWwsIHsgLi4ucCwgW2tdOiBuZXcgQ29uc3RyYWludChyZW1haW5kZXIsIHJlbWFpbmRlcikgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgaWxsZWdhbCBzdGF0ZWApO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZXhwYW5kIG1vcmUgdGhhbiBvbmUgY29uc3RyYWludGApO1xufVxuXG4vKipcbiAqIEhpZ2gtbGV2ZWwgY29uc3RyYWludHMgZm9yIG91dHB1dCBsYXlvdXRcbiAqL1xuZXhwb3J0IHR5cGUgU2VhcmNoUGFyYW1zID0ge1xuICBtaW5DaGFuZ2VPdXRwdXQ6IGJpZ2ludDtcbiAgbWF4Q2hhbmdlT3V0cHV0OiBiaWdpbnQ7XG4gIG1pbkluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIGZlZUZpeGVkOiBiaWdpbnQ7XG4gIGZlZVBlck91dHB1dDogYmlnaW50O1xufTtcblxuLyoqXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25JbnB1dFxuICogQHBhcmFtIG1pbkNoYW5nZU91dHB1dFxuICogQHBhcmFtIG1heENoYW5nZU91dHB1dFxuICogQHBhcmFtIG1pbkluc2NyaXB0aW9uT3V0cHV0XG4gKiBAcGFyYW0gbWF4SW5zY3JpcHRpb25PdXRwdXRcbiAqIEBwYXJhbSBmZWVGaXhlZFxuICogQHBhcmFtIGZlZVBlck91dHB1dFxuICogQHJldHVybiBhIHNvbHV0aW9uIHRoYXQgc2F0aXNmaWVzIGNvbnN0cmFpbnRzLiBJZiBubyBzb2x1dGlvbiBjYW4gYmUgZm91bmQsIHJldHVybiBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXQoXG4gIGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCxcbiAgeyBtaW5DaGFuZ2VPdXRwdXQsIG1heENoYW5nZU91dHB1dCwgbWluSW5zY3JpcHRpb25PdXRwdXQsIG1heEluc2NyaXB0aW9uT3V0cHV0LCBmZWVGaXhlZCwgZmVlUGVyT3V0cHV0IH06IFNlYXJjaFBhcmFtc1xuKTogT3V0cHV0TGF5b3V0IHwgdW5kZWZpbmVkIHtcbiAgaWYgKGluc2NyaXB0aW9uSW5wdXQub3JkaW5hbHMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIG9yZGluYWwgY291bnRgKTtcbiAgfVxuICBpZiAoaW5zY3JpcHRpb25JbnB1dC5vcmRpbmFsc1swXS5zaXplKCkgIT09IEJpZ0ludCgxKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgb25seSBzaW5nbGUtc2F0b3NoaSBpbnNjcmlwdGlvbnMgYXJlIHN1cHBvcnRlZGApO1xuICB9XG4gIGZ1bmN0aW9uIGZlZUNvbnN0cmFpbnRGb3JPdXRwdXRDb3VudChuOiBudW1iZXIpIHtcbiAgICBjb25zdCBmZWUgPSBmZWVGaXhlZCArIGZlZVBlck91dHB1dCAqIEJpZ0ludChuKTtcbiAgICByZXR1cm4gbmV3IENvbnN0cmFpbnQoZmVlLCBmZWUpO1xuICB9XG5cbiAgY29uc3QgZml4ZWRaZXJvID0gQ29uc3RyYWludC5aRVJPO1xuICBjb25zdCBleHBhbmRhYmxlQ2hhbmdlUGFkZGluZyA9IG5ldyBDb25zdHJhaW50KG1pbkNoYW5nZU91dHB1dCwgbWF4Q2hhbmdlT3V0cHV0KTtcbiAgY29uc3QgZXhwYW5kYWJsZUluc2NyaXB0aW9uQ29uc3RyYWludCA9IG5ldyBDb25zdHJhaW50KG1pbkluc2NyaXB0aW9uT3V0cHV0LCBtYXhJbnNjcmlwdGlvbk91dHB1dCk7XG4gIGNvbnN0IGZpeGVkTWluSW5zY3JpcHRpb25Db25zdHJhaW50ID0gbmV3IENvbnN0cmFpbnQobWluSW5zY3JpcHRpb25PdXRwdXQsIG1pbkluc2NyaXB0aW9uT3V0cHV0KTtcbiAgY29uc3QgZml4ZWRNYXhJbnNjcmlwdGlvbkNvbnN0cmFpbnQgPSBuZXcgQ29uc3RyYWludChtYXhJbnNjcmlwdGlvbk91dHB1dCwgbWF4SW5zY3JpcHRpb25PdXRwdXQpO1xuXG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgdG9QYXJhbWV0ZXJzKGZpeGVkWmVybywgZXhwYW5kYWJsZUluc2NyaXB0aW9uQ29uc3RyYWludCwgZml4ZWRaZXJvLCBmZWVDb25zdHJhaW50Rm9yT3V0cHV0Q291bnQoMSkpLFxuICAgIHRvUGFyYW1ldGVycyhmaXhlZFplcm8sIGZpeGVkTWluSW5zY3JpcHRpb25Db25zdHJhaW50LCBleHBhbmRhYmxlQ2hhbmdlUGFkZGluZywgZmVlQ29uc3RyYWludEZvck91dHB1dENvdW50KDIpKSxcbiAgICB0b1BhcmFtZXRlcnMoZml4ZWRaZXJvLCBmaXhlZE1heEluc2NyaXB0aW9uQ29uc3RyYWludCwgZXhwYW5kYWJsZUNoYW5nZVBhZGRpbmcsIGZlZUNvbnN0cmFpbnRGb3JPdXRwdXRDb3VudCgyKSksXG4gICAgLyogVE9ETyhCRy02ODEzNSk6IHNlYXJjaCBzb2x1dGlvbiBzcGFjZSB3aXRoIGNoYW5nZSBwYWRkaW5nIGF0IHRoZSBzdGFydCAqL1xuICBdO1xuXG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0b091dHB1dExheW91dChpbnNjcmlwdGlvbklucHV0LnZhbHVlLCBjYW5kaWRhdGUpO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGNoZWNrKGluc2NyaXB0aW9uSW5wdXQsIHJlc3VsdCwgY2FuZGlkYXRlKSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0TGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL091dHB1dExheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdHRzs7O0FBSUgsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV0QixTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxHQUFhO0lBQ3hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQWdCRCwrQ0FBK0M7QUFDL0MsU0FBZ0IsT0FBTyxDQUFJLENBQWdCO0lBQ3pDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUZELDBCQUVDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixpQkFBb0IsRUFDcEIsaUJBQW9C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RCxJQUFJLGlCQUFpQixLQUFLLElBQUksRUFBRTtRQUM5QixPQUFPO0tBQ1I7SUFDRCxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9FLElBQUksaUJBQWlCLEtBQUssSUFBSSxFQUFFO1FBQzlCLE9BQU87S0FDUjtJQUNELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlGLElBQUksZUFBZSxLQUFLLElBQUksRUFBRTtRQUM1QixPQUFPO0tBQ1I7SUFDRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25HLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtRQUN0QixPQUFPO0tBQ1I7SUFDRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNuQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuVGhpcyBmaWxlIGNvbnRhaW5zIGNvZGUgZm9yIGNyZWF0aW5nIGFuIG91dHB1dCBsYXlvdXRzIGZvciB0cmFuc2FjdGlvbnMgdGhhdCBwYXNzIG9uIGluc2NyaXB0aW9ucy5cblxuV2hlbiBwYXNzaW5nIG9uIGFuIGluc2NyaXB0aW9uLCB3ZSB3YW50IHRvIHNhdGlzZnkgYSBmZXcgY29uc3RyYWludHM6XG5cbiogQWxsIG91dHB1dHMgc2hvdWxkIGJlIGxhcmdlciB0aGFuIGEgbWluaW1hbCB2YWx1ZSAoZHVzdCBsaW1pdClcbiogVGhlIHN1bSBvZiBhbGwgb3V0cHV0IHZhbHVlcyBuZWVkcyB0byBiZSBsZXNzIHRoYW4gdGhlIGlucHV0IHRvIGNvdmVyIHRoZSB0cmFuc2FjdGlvbiBmZWUuXG4qIFRoZSBvdXRwdXQgY29udGFpbmluZyB0aGUgaW5zY3JpcHRpb24gc2hvdWxkIGJlIGFzIHNtYWxsIGFzIHBvc3NpYmxlLCBidXQgbGFyZ2UgZW5vdWdoIHRvXG4gIGNvbnRhaW4gdGhlIGluc2NyaXB0aW9uLlxuXG5UbyBrZWVwIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgc21hbGwsIHdlIGNhbiBwYWQgdGhlIHNhdG9zaGkgcmFuZ2UgcHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgdGhlIHJhbmdlXG53aXRoIGNoYW5nZSBvdXRwdXRzLCB3aGljaCBoYXZlIGEgbWluaW1hbCBzaXplIGFuZCBpbmN1ciBhIGZlZSBjb3N0LlxuXG5cbkJyb2FkbHkgc3BlYWtpbmcsIHRoZXJlIGFyZSBmb3VyIHNjZW5hcmlvczpcblxuKDEpIFNtYWxsIGluc2NyaXB0aW9uIGlucHV0IHRoYXQgaGFzIGp1c3QgZW5vdWdoIHZhbHVlIHRvIHBheSBmb3IgZmVlIGFuZCBhIHNpbmdsZSBpbnNjcmlwdGlvblxuICAgIG91dHB1dCAodTApLiBObyBwYWRkaW5nIG91dHB1dHMuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCIGZlZVxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuXG5cbigyKSBMYXJnZSBpbnNjcmlwdGlvbiBpbnB1dCB3aXRoIGluc2NyaXB0aW9uIGNsb3NlIHRvIHN0YXJ0IG9mIGlucHV0LlxuICAgIEluc2NyaXB0aW9uIG91dHB1dCBmb2xsb3dlZCBieSBjaGFuZ2Ugb3V0cHV0ICh1MSkgcGFkZGluZyB0aGUgcmVtYWluaW5nIHZhbHVlLlxuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpFxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oMykgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBjbG9zZSB0byBlbmQgb2YgaW5wdXQuXG4gICAgQ2hhbmdlIG91dHB1dCBwYWRkaW5nIHN0YXJ0IGZvbGxvd2VkIGJ5IGluc2NyaXB0aW9uIG91dHB1dC5cblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oNCkgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBpbiB0aGUgbWlkZGxlLlxuICAgIEluc2NyaXB0aW9uIGlucHV0ICh1MSkgd2l0aCBwYWRkaW5nIG9uIGJvdGggc2lkZXMgKHUwIGFuZCB1MilcblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAgICDilIIgICAgICAgIOKUgiB1MSAgICAg4pSCXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgICDilIIgdTIgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiBmZWVcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICovXG5cbmltcG9ydCB7IE9yZE91dHB1dCB9IGZyb20gJy4vT3JkT3V0cHV0JztcblxuY29uc3QgWkVSTyA9IEJpZ0ludCgwKTtcbmNvbnN0IE9ORSA9IEJpZ0ludCgxKTtcblxuZnVuY3Rpb24gbWF4KGE6IGJpZ2ludCwgYjogYmlnaW50KTogYmlnaW50IHtcbiAgcmV0dXJuIGEgPCBiID8gYiA6IGE7XG59XG5cbmZ1bmN0aW9uIG1pbihhOiBiaWdpbnQsIGI6IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBhIDwgYiA/IGEgOiBiO1xufVxuXG5mdW5jdGlvbiBzdW0oYXJyOiBiaWdpbnRbXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgWkVSTyk7XG59XG5cbi8qKlxuICogQSByYW5nZSBjb25zdHJhaW50XG4gKi9cbnR5cGUgUGFyYW1ldGVyczxUPiA9IHtcbiAgLyoqIFBhZGRpbmcgcHJlY2VkaW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgZmlyc3RDaGFuZ2VPdXRwdXQ6IFQ7XG4gIC8qKiBUaGUgaW5zY3JpcHRpb24gb3V0cHV0IHRoYXQgd2lsbCBpbmhlcml0IHRoZSBpbnB1dCBpbnNjcmlwdGlvbiAqL1xuICBpbnNjcmlwdGlvbk91dHB1dDogVDtcbiAgLyoqIFBhZGRpbmcgZm9sbG93aW5nIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgKi9cbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBUO1xuICAvKiogTm90IGEgcmVhbCBvdXRwdXQsIHVzZWQgb25seSB0byBzaW1wbGlmeSBjYWxjdWxhdGlvbnMgKi9cbiAgZmVlT3V0cHV0OiBUO1xufTtcblxuLyoqIEByZXR1cm4gY2Fub25pY2FsIHNlcXVlbmNlIG9mIHBhcmFtZXRlcnMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FycmF5PFQ+KHA6IFBhcmFtZXRlcnM8VD4pOiBbVCwgVCwgVCwgVF0ge1xuICByZXR1cm4gW3AuZmlyc3RDaGFuZ2VPdXRwdXQsIHAuaW5zY3JpcHRpb25PdXRwdXQsIHAuc2Vjb25kQ2hhbmdlT3V0cHV0LCBwLmZlZU91dHB1dF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlcnM8VD4oXG4gIGZpcnN0Q2hhbmdlT3V0cHV0OiBULFxuICBpbnNjcmlwdGlvbk91dHB1dDogVCxcbiAgc2Vjb25kQ2hhbmdlT3V0cHV0OiBULFxuICBmZWVPdXRwdXQ6IFRcbik6IFBhcmFtZXRlcnM8VD4ge1xuICByZXR1cm4ge1xuICAgIGZpcnN0Q2hhbmdlT3V0cHV0LFxuICAgIGluc2NyaXB0aW9uT3V0cHV0LFxuICAgIHNlY29uZENoYW5nZU91dHB1dCxcbiAgICBmZWVPdXRwdXQsXG4gIH07XG59XG5cbi8qKiBBIGZpbmlzaGVkIG91dHB1dCBsYXlvdXQgKi9cbmV4cG9ydCB0eXBlIE91dHB1dExheW91dCA9IFBhcmFtZXRlcnM8YmlnaW50PjtcblxuLyoqXG4gKiBUcmFuc2xhdGVzIGEgbGF5b3V0IGludG8gT3JkT3V0cHV0cy4gQWJzZW50IG91dHB1dHMgYXJlIHNldCB0byBgbnVsbGAuXG4gKlxuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBsYXlvdXRcbiAqIEByZXR1cm4gT3JkT3V0cHV0cyBmb3IgbGF5b3V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KFxuICBpbnNjcmlwdGlvbklucHV0OiBPcmRPdXRwdXQsXG4gIGxheW91dDogT3V0cHV0TGF5b3V0XG4pOiBQYXJhbWV0ZXJzPE9yZE91dHB1dCB8IG51bGw+IHtcbiAgY29uc3Qgb3V0cHV0cyA9IGluc2NyaXB0aW9uSW5wdXQuc3BsaXRBbGxXaXRoUGFyYW1zKHRvQXJyYXkobGF5b3V0KSwgeyBleGFjdDogdHJ1ZSwgYWxsb3daZXJvOiB0cnVlIH0pO1xuICBpZiAob3V0cHV0cy5sZW5ndGggIT09IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcmVzdWx0YCk7XG4gIH1cbiAgdHlwZSBUID0gT3JkT3V0cHV0IHwgbnVsbDtcbiAgcmV0dXJuIHRvUGFyYW1ldGVycyguLi4ob3V0cHV0cyBhcyBbVCwgVCwgVCwgVF0pKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gY29uc3RyYWludHNcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbklucHV0XG4gKiBAcGFyYW0gbGF5b3V0XG4gKiBAcmV0dXJuIHRydWUgaWZmIGxheW91dCBzYXRpc2ZpZXMgY29uc3RyYWludHNcbiAqL1xuZnVuY3Rpb24gY2hlY2soY29uc3RyYWludHM6IENvbnN0cmFpbnRzLCBpbnNjcmlwdGlvbklucHV0OiBPcmRPdXRwdXQsIGxheW91dDogT3V0cHV0TGF5b3V0KTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICAobGF5b3V0LmZpcnN0Q2hhbmdlT3V0cHV0ID09PSBaRVJPIHx8IGNvbnN0cmFpbnRzLm1pbkNoYW5nZU91dHB1dCA8PSBsYXlvdXQuZmlyc3RDaGFuZ2VPdXRwdXQpICYmXG4gICAgKGxheW91dC5zZWNvbmRDaGFuZ2VPdXRwdXQgPT09IFpFUk8gfHwgY29uc3RyYWludHMubWluQ2hhbmdlT3V0cHV0IDw9IGxheW91dC5zZWNvbmRDaGFuZ2VPdXRwdXQpICYmXG4gICAgY29uc3RyYWludHMubWluSW5zY3JpcHRpb25PdXRwdXQgPD0gbGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0ICYmXG4gICAgbGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0IDw9IGNvbnN0cmFpbnRzLm1heEluc2NyaXB0aW9uT3V0cHV0ICYmXG4gICAgZ2V0RmVlRm9yT3V0cHV0cyhjb25zdHJhaW50cywgW2xheW91dC5maXJzdENoYW5nZU91dHB1dCwgbGF5b3V0Lmluc2NyaXB0aW9uT3V0cHV0LCBsYXlvdXQuc2Vjb25kQ2hhbmdlT3V0cHV0XSkgPD1cbiAgICAgIGxheW91dC5mZWVPdXRwdXQgJiZcbiAgICBzdW0odG9BcnJheShsYXlvdXQpKSA9PT0gaW5zY3JpcHRpb25JbnB1dC52YWx1ZVxuICApIHtcbiAgICAvKiBtYWtlIHN1cmUgaW5zY3JpcHRpb24gYWN0dWFsbHkgbGllcyBvbiB0aGUgaW5zY3JpcHRpb25PdXRwdXQgKi9cbiAgICBjb25zdCBvdXRwdXRzID0gZ2V0T3JkT3V0cHV0c0ZvckxheW91dChpbnNjcmlwdGlvbklucHV0LCBsYXlvdXQpO1xuICAgIHJldHVybiBvdXRwdXRzLmluc2NyaXB0aW9uT3V0cHV0Py5vcmRpbmFscy5sZW5ndGggPT09IDE7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogSGlnaC1sZXZlbCBjb25zdHJhaW50cyBmb3Igb3V0cHV0IGxheW91dFxuICovXG5leHBvcnQgdHlwZSBDb25zdHJhaW50cyA9IHtcbiAgbWluQ2hhbmdlT3V0cHV0OiBiaWdpbnQ7XG4gIG1pbkluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQ7XG4gIGZlZUZpeGVkOiBiaWdpbnQ7XG4gIGZlZVBlck91dHB1dDogYmlnaW50O1xuICBzYXRQb3M6IGJpZ2ludDtcbiAgdG90YWw6IGJpZ2ludDtcbn07XG5cbmZ1bmN0aW9uIGdldEZlZUZvck91dHB1dHMocDogeyBmZWVQZXJPdXRwdXQ6IGJpZ2ludDsgZmVlRml4ZWQ6IGJpZ2ludCB9LCBvdXRwdXRzOiBiaWdpbnRbXSk6IGJpZ2ludCB7XG4gIHJldHVybiBvdXRwdXRzLnJlZHVjZSgoc3VtLCBvVmFsdWUpOiBiaWdpbnQgPT4gc3VtICsgKG9WYWx1ZSA9PT0gWkVSTyA/IFpFUk8gOiBwLmZlZVBlck91dHB1dCksIHAuZmVlRml4ZWQpO1xufVxuZnVuY3Rpb24gZ2V0U3RhcnRDaGFuZ2VPdXRwdXQoYzogQ29uc3RyYWludHMpOiBiaWdpbnQgfCBudWxsIHtcbiAgLy8gd2UgZG9uJ3QgbmVlZCBhIGNoYW5nZSBwYWRkaW5nIG91dHB1dFxuICBpZiAoYy5zYXRQb3MgPCBjLm1heEluc2NyaXB0aW9uT3V0cHV0KSB7XG4gICAgcmV0dXJuIFpFUk87XG4gIH1cbiAgaWYgKGMubWluQ2hhbmdlT3V0cHV0IDw9IGMuc2F0UG9zKSB7XG4gICAgcmV0dXJuIGMuc2F0UG9zO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRJbnNjcmlwdGlvbk91dHB1dChjOiBDb25zdHJhaW50cywgc3RhcnRDaGFuZ2VPdXRwdXQ6IGJpZ2ludCk6IGJpZ2ludCB8IG51bGwge1xuICBjb25zdCByZXN1bHQgPSBtaW4oYy5tYXhJbnNjcmlwdGlvbk91dHB1dCwgbWF4KGMubWluSW5zY3JpcHRpb25PdXRwdXQsIGMuc2F0UG9zIC0gc3RhcnRDaGFuZ2VPdXRwdXQgKyBPTkUpKTtcbiAgaWYgKGMuc2F0UG9zIDwgc3RhcnRDaGFuZ2VPdXRwdXQgfHwgc3RhcnRDaGFuZ2VPdXRwdXQgKyByZXN1bHQgPCBjLnNhdFBvcykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIGlmIGlzIG5vdCB3b3J0aCBjcmVhdGluZyBhbiBlbmQgY2hhbmdlIG91dHB1dCwgbGV0J3MgbWF4aW1pemUgdGhlIGluc2NyaXB0aW9uIG91dHB1dFxuICBpZiAoZ2V0RW5kQ2hhbmdlT3V0cHV0KGMsIHN0YXJ0Q2hhbmdlT3V0cHV0LCByZXN1bHQpID09PSBaRVJPKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gYy50b3RhbCAtIHN0YXJ0Q2hhbmdlT3V0cHV0IC0gZ2V0RmVlRm9yT3V0cHV0cyhjLCBbc3RhcnRDaGFuZ2VPdXRwdXQsIHJlc3VsdF0pO1xuICAgIHJldHVybiBtaW4ocmVtYWluZGVyLCBjLm1heEluc2NyaXB0aW9uT3V0cHV0KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBnZXRFbmRDaGFuZ2VPdXRwdXQoYzogQ29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0OiBiaWdpbnQsIGluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQpOiBiaWdpbnQgfCBudWxsIHtcbiAgY29uc3QgcmVtYWluZGVyID0gYy50b3RhbCAtIHN1bShbc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0XSk7XG4gIGNvbnN0IG1pbkZlZVdpdGhvdXRTZWNvbmRPdXRwdXQgPSBnZXRGZWVGb3JPdXRwdXRzKGMsIFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXRdKTtcbiAgY29uc3QgbWluRmVlV2l0aFNlY29uZE91dHB1dCA9IGdldEZlZUZvck91dHB1dHMoYywgW3N0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCwgYy5taW5DaGFuZ2VPdXRwdXRdKTtcbiAgaWYgKHJlbWFpbmRlciA8IG1pbkZlZVdpdGhvdXRTZWNvbmRPdXRwdXQpIHtcbiAgICAvLyBXZSBjYW5ub3QgZXZlbiBwYXkgdGhlIGZlZSBmb3IgdGhlIG91dHB1dChzKSB3ZSBoYXZlIHNvIGZhci5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAocmVtYWluZGVyIC0gbWluRmVlV2l0aFNlY29uZE91dHB1dCA8IGMubWluQ2hhbmdlT3V0cHV0KSB7XG4gICAgLy8gVGhlIHJlbWFpbmRlciBpcyB0b28gc21hbGwgdG8gcGF5IGZvciB0aGUgZW5kIGNoYW5nZSBvdXRwdXQuIExldCdzIHNraXAgaXQgYW5kIHBheSBhIGhpZ2hlciBmZWUuXG4gICAgcmV0dXJuIFpFUk87XG4gIH1cbiAgLy8gbGV0J3MgdXNlIGFzIG11Y2ggYXMgd2UgY2FuIGZvciBmZWUgd2hpbGUgbGVhdmluZyBlbm91Z2ggZm9yIGZlZVxuICByZXR1cm4gcmVtYWluZGVyIC0gbWluRmVlV2l0aFNlY29uZE91dHB1dDtcbn1cblxuZnVuY3Rpb24gZ2V0RmVlT3V0cHV0KFxuICBjOiBDb25zdHJhaW50cyxcbiAgc3RhcnRDaGFuZ2VPdXRwdXQ6IGJpZ2ludCxcbiAgaW5zY3JpcHRpb25PdXRwdXQ6IGJpZ2ludCxcbiAgZW5kQ2hhbmdlT3V0cHV0OiBiaWdpbnRcbik6IGJpZ2ludCB8IG51bGwge1xuICBjb25zdCBtaW5GZWUgPSBnZXRGZWVGb3JPdXRwdXRzKGMsIFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQsIGVuZENoYW5nZU91dHB1dF0pO1xuICBjb25zdCByZW1haW5kZXIgPSBjLnRvdGFsIC0gc3VtKFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQsIGVuZENoYW5nZU91dHB1dF0pO1xuICBpZiAocmVtYWluZGVyIDwgbWluRmVlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIHJlbWFpbmRlcjtcbn1cblxuLyoqXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25JbnB1dFxuICogQHBhcmFtIHNlYXJjaFxuICogQHJldHVybiBhIHNvbHV0aW9uIHRoYXQgc2F0aXNmaWVzIGNvbnN0cmFpbnRzLiBJZiBubyBzb2x1dGlvbiBjYW4gYmUgZm91bmQsIHJldHVybiBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXQoXG4gIGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCxcbiAgc2VhcmNoOiBPbWl0PENvbnN0cmFpbnRzLCAnc2F0UG9zJyB8ICd0b3RhbCc+XG4pOiBPdXRwdXRMYXlvdXQgfCB1bmRlZmluZWQge1xuICBpZiAoaW5zY3JpcHRpb25JbnB1dC5vcmRpbmFscy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgb3JkaW5hbCBjb3VudGApO1xuICB9XG4gIGlmIChpbnNjcmlwdGlvbklucHV0Lm9yZGluYWxzWzBdLnNpemUoKSAhPT0gT05FKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBvbmx5IHNpbmdsZS1zYXRvc2hpIGluc2NyaXB0aW9ucyBhcmUgc3VwcG9ydGVkYCk7XG4gIH1cblxuICBjb25zdCBzYXRQb3MgPSBpbnNjcmlwdGlvbklucHV0Lm9yZGluYWxzWzBdLnN0YXJ0O1xuICBjb25zdCB0b3RhbCA9IGluc2NyaXB0aW9uSW5wdXQudmFsdWU7XG5cbiAgY29uc3QgY29uc3RyYWludHM6IENvbnN0cmFpbnRzID0geyAuLi5zZWFyY2gsIHNhdFBvcywgdG90YWwgfTtcblxuICBjb25zdCBzdGFydENoYW5nZU91dHB1dCA9IGdldFN0YXJ0Q2hhbmdlT3V0cHV0KGNvbnN0cmFpbnRzKTtcbiAgaWYgKHN0YXJ0Q2hhbmdlT3V0cHV0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGluc2NyaXB0aW9uT3V0cHV0ID0gZ2V0SW5zY3JpcHRpb25PdXRwdXQoY29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0KTtcbiAgaWYgKGluc2NyaXB0aW9uT3V0cHV0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGVuZENoYW5nZU91dHB1dCA9IGdldEVuZENoYW5nZU91dHB1dChjb25zdHJhaW50cywgc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0KTtcbiAgaWYgKGVuZENoYW5nZU91dHB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBmZWVPdXRwdXQgPSBnZXRGZWVPdXRwdXQoY29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCwgZW5kQ2hhbmdlT3V0cHV0KTtcbiAgaWYgKGZlZU91dHB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB0b1BhcmFtZXRlcnMoc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0LCBlbmRDaGFuZ2VPdXRwdXQsIGZlZU91dHB1dCk7XG4gIGlmICghY2hlY2soY29uc3RyYWludHMsIGluc2NyaXB0aW9uSW5wdXQsIHJlc3VsdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgcmVzdWx0YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
package/dist/src/psbt.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Network, bitgo } from '@bitgo-beta/utxo-lib';
|
|
3
|
-
import {
|
|
3
|
+
import { SatPoint } from './SatPoint';
|
|
4
|
+
import { OutputLayout } from './OutputLayout';
|
|
4
5
|
export declare type WalletOutputPath = {
|
|
5
6
|
chain: bitgo.ChainCode;
|
|
6
7
|
index: number;
|
package/dist/src/psbt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAA0B,YAAY,EAA6B,MAAM,gBAAgB,CAAC;AAEjG,oBAAY,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,YAAY,GACzB,KAAK,CAAC,QAAQ,CA+ChB;AAWD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,YAAY,GAAG,SAAS,CA+B1B;AAED,wBAAgB,gDAAgD,CAC9D,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iCAAiC,GAC7C,KAAK,CAAC,QAAQ,CAMhB"}
|
package/dist/src/psbt.js
CHANGED
|
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createPsbtForSingleInscriptionPassingTransaction = exports.findOutputLayoutForWalletUnspents = exports.createPsbtFromOutputLayout = void 0;
|
|
4
4
|
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
5
5
|
const unspents_1 = require("@bitgo-beta/unspents");
|
|
6
|
-
const
|
|
6
|
+
const OrdOutput_1 = require("./OrdOutput");
|
|
7
|
+
const SatPoint_1 = require("./SatPoint");
|
|
8
|
+
const SatRange_1 = require("./SatRange");
|
|
9
|
+
const OutputLayout_1 = require("./OutputLayout");
|
|
7
10
|
function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, outputLayout) {
|
|
8
11
|
const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network: network });
|
|
9
12
|
if (unspents.length !== 1) {
|
|
@@ -11,8 +14,8 @@ function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, ou
|
|
|
11
14
|
}
|
|
12
15
|
unspents.forEach((u) => utxo_lib_1.bitgo.addWalletUnspentToPsbt(psbt, u, inputBuilder.walletKeys, inputBuilder.signer, inputBuilder.cosigner, psbt.network));
|
|
13
16
|
const [input] = unspents;
|
|
14
|
-
const ordOutputs =
|
|
15
|
-
|
|
17
|
+
const ordOutputs = OutputLayout_1.getOrdOutputsForLayout(new OrdOutput_1.OrdOutput(input.value), outputLayout);
|
|
18
|
+
OutputLayout_1.toArray(ordOutputs).forEach((ordOutput) => {
|
|
16
19
|
if (ordOutput === null) {
|
|
17
20
|
return;
|
|
18
21
|
}
|
|
@@ -44,8 +47,8 @@ function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, ou
|
|
|
44
47
|
}
|
|
45
48
|
exports.createPsbtFromOutputLayout = createPsbtFromOutputLayout;
|
|
46
49
|
function toSatRange(p) {
|
|
47
|
-
const { offset } =
|
|
48
|
-
return new
|
|
50
|
+
const { offset } = SatPoint_1.parseSatPoint(p);
|
|
51
|
+
return new SatRange_1.SatRange(offset, offset);
|
|
49
52
|
}
|
|
50
53
|
function getFee(vsize, rateSatPerKB) {
|
|
51
54
|
return BigInt(Math.ceil((vsize * rateSatPerKB) / 1000));
|
|
@@ -58,12 +61,11 @@ function findOutputLayoutForWalletUnspents(inputs, satPoint, outputs, constraint
|
|
|
58
61
|
// otherwise our fee calc is too complicated
|
|
59
62
|
throw new Error(`wallet outputs must be on same chain`);
|
|
60
63
|
}
|
|
61
|
-
const { minChangeOutput = BigInt(10000),
|
|
64
|
+
const { minChangeOutput = BigInt(10000), minInscriptionOutput = BigInt(10000), maxInscriptionOutput = BigInt(20000), } = constraints;
|
|
62
65
|
const [input] = inputs;
|
|
63
|
-
const inscriptionOutput = new
|
|
64
|
-
return
|
|
66
|
+
const inscriptionOutput = new OrdOutput_1.OrdOutput(input.value, [toSatRange(satPoint)]);
|
|
67
|
+
return OutputLayout_1.findOutputLayout(inscriptionOutput, {
|
|
65
68
|
minChangeOutput,
|
|
66
|
-
maxChangeOutput,
|
|
67
69
|
minInscriptionOutput,
|
|
68
70
|
maxInscriptionOutput,
|
|
69
71
|
feeFixed: getFee(unspents_1.VirtualSizes.txSegOverheadVSize + unspents_1.Dimensions.fromUnspents(inputs).getInputsVSize(), constraints.feeRateSatKB),
|
|
@@ -79,4 +81,4 @@ function createPsbtForSingleInscriptionPassingTransaction(network, inputBuilder,
|
|
|
79
81
|
return createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, layout);
|
|
80
82
|
}
|
|
81
83
|
exports.createPsbtForSingleInscriptionPassingTransaction = createPsbtForSingleInscriptionPassingTransaction;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRDtBQUMvRCxtREFBZ0U7QUFFaEUsbUNBVWlCO0FBMEJqQixTQUFnQiwwQkFBMEIsQ0FDeEMsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsT0FBMkIsRUFDM0IsWUFBMEI7SUFFMUIsTUFBTSxJQUFJLEdBQUcsZ0JBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLGdCQUFLLENBQUMsc0JBQXNCLENBQzFCLElBQUksRUFDSixDQUFDLEVBQ0QsWUFBWSxDQUFDLFVBQVUsRUFDdkIsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLFFBQVEsRUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLDhCQUFzQixDQUFDLElBQUksaUJBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsZUFBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQ3hDLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtZQUN0QixPQUFPO1NBQ1I7UUFDRCxRQUFRLFNBQVMsRUFBRTtZQUNqQixnREFBZ0Q7WUFDaEQsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLFVBQVUsQ0FBQyxTQUFTO2dCQUN2QixPQUFPO1lBQ1Qsc0JBQXNCO1lBQ3RCLEtBQUssVUFBVSxDQUFDLGlCQUFpQixDQUFDO1lBQ2xDLEtBQUssVUFBVSxDQUFDLGtCQUFrQjtnQkFDaEMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FDcEIsU0FBUyxLQUFLLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkcsZ0JBQUssQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUYsTUFBTTtZQUNSLGdDQUFnQztZQUNoQyxLQUFLLFVBQVUsQ0FBQyxpQkFBaUI7Z0JBQy9CLElBQUksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztnQkFDdkMsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFFBQVEsRUFBRTtvQkFDNUMsb0JBQW9CLEdBQUcsa0JBQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzlFO2dCQUNELElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQ2IsTUFBTSxFQUFFLG9CQUFvQjtvQkFDNUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO2lCQUN2QixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtTQUNUO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFyREQsZ0VBcURDO0FBRUQsU0FBUyxVQUFVLENBQUMsQ0FBVztJQUM3QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcscUJBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxPQUFPLElBQUksZ0JBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLEtBQWEsRUFBRSxZQUFvQjtJQUNqRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQWdCLGlDQUFpQyxDQUMvQyxNQUFxQyxFQUNyQyxRQUFrQixFQUNsQixPQUEyQixFQUMzQixXQUE4QztJQUU5QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUMxRDtJQUVELElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7UUFDckUsNENBQTRDO1FBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sRUFDSixlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQU0sQ0FBQyxFQUNoQyxlQUFlLEdBQUcsa0JBQVUsQ0FBQyxNQUFNLEVBQ25DLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxLQUFNLENBQUMsRUFDckMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEtBQU0sQ0FBQyxHQUN0QyxHQUFHLFdBQVcsQ0FBQztJQUVoQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxpQkFBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLE9BQU8sd0JBQWdCLENBQUMsaUJBQWlCLEVBQUU7UUFDekMsZUFBZTtRQUNmLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQ2QsdUJBQVksQ0FBQyxrQkFBa0IsR0FBRyxxQkFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFDbEYsV0FBVyxDQUFDLFlBQVksQ0FDekI7UUFDRCxZQUFZLEVBQUUsTUFBTSxDQUNsQixxQkFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQzlFLFdBQVcsQ0FBQyxZQUFZLENBQ3pCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXRDRCw4RUFzQ0M7QUFFRCxTQUFnQixnREFBZ0QsQ0FDOUQsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsUUFBa0IsRUFDbEIsT0FBMkIsRUFDM0IsV0FBOEM7SUFFOUMsTUFBTSxNQUFNLEdBQUcsaUNBQWlDLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0YsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztLQUNoRjtJQUNELE9BQU8sMEJBQTBCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFiRCw0R0FhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5ldHdvcmssIGJpdGdvLCBhZGRyZXNzIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRGltZW5zaW9ucywgVmlydHVhbFNpemVzIH0gZnJvbSAnQGJpdGdvLWJldGEvdW5zcGVudHMnO1xuXG5pbXBvcnQge1xuICBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0LFxuICBPcmRPdXRwdXQsXG4gIE91dHB1dExheW91dCxcbiAgdG9BcnJheSxcbiAgU2F0UG9pbnQsXG4gIGZpbmRPdXRwdXRMYXlvdXQsXG4gIENvbnN0cmFpbnQsXG4gIHBhcnNlU2F0UG9pbnQsXG4gIFNhdFJhbmdlLFxufSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHR5cGUgV2FsbGV0T3V0cHV0UGF0aCA9IHtcbiAgY2hhaW46IGJpdGdvLkNoYWluQ29kZTtcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFdhbGxldElucHV0QnVpbGRlciA9IHtcbiAgd2FsbGV0S2V5czogYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHNpZ25lcjogYml0Z28uS2V5TmFtZTtcbiAgY29zaWduZXI6IGJpdGdvLktleU5hbWU7XG59O1xuXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvbk91dHB1dHMgPSB7XG4gIGluc2NyaXB0aW9uUmVjaXBpZW50OiBzdHJpbmcgfCBCdWZmZXI7XG4gIGNoYW5nZU91dHB1dHM6IFtXYWxsZXRPdXRwdXRQYXRoLCBXYWxsZXRPdXRwdXRQYXRoXTtcbn07XG5cbmV4cG9ydCB0eXBlIEluc2NyaXB0aW9uVHJhbnNhY3Rpb25Db25zdHJhaW50cyA9IHtcbiAgZmVlUmF0ZVNhdEtCOiBudW1iZXI7XG4gIG1pbkNoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgbWF4Q2hhbmdlT3V0cHV0PzogYmlnaW50O1xuICBtaW5JbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgbWF4SW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21PdXRwdXRMYXlvdXQoXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyxcbiAgb3V0cHV0TGF5b3V0OiBPdXRwdXRMYXlvdXRcbik6IGJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgcHNidCA9IGJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yazogbmV0d29yayB9KTtcbiAgaWYgKHVuc3BlbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbXVsdGlwbGUgdW5zcGVudHMgbm90IHN1cHBvcnRlZCB5ZXRgKTtcbiAgfVxuICB1bnNwZW50cy5mb3JFYWNoKCh1KSA9PlxuICAgIGJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQoXG4gICAgICBwc2J0LFxuICAgICAgdSxcbiAgICAgIGlucHV0QnVpbGRlci53YWxsZXRLZXlzLFxuICAgICAgaW5wdXRCdWlsZGVyLnNpZ25lcixcbiAgICAgIGlucHV0QnVpbGRlci5jb3NpZ25lcixcbiAgICAgIHBzYnQubmV0d29ya1xuICAgIClcbiAgKTtcbiAgY29uc3QgW2lucHV0XSA9IHVuc3BlbnRzO1xuICBjb25zdCBvcmRPdXRwdXRzID0gZ2V0T3JkT3V0cHV0c0ZvckxheW91dChuZXcgT3JkT3V0cHV0KGlucHV0LnZhbHVlKSwgb3V0cHV0TGF5b3V0KTtcbiAgdG9BcnJheShvcmRPdXRwdXRzKS5mb3JFYWNoKChvcmRPdXRwdXQpID0+IHtcbiAgICBpZiAob3JkT3V0cHV0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAob3JkT3V0cHV0KSB7XG4gICAgICAvLyBza2lwIHBhZGRpbmcgb3V0cHV0cyBhbmQgZmVlIG91dHB1dCAodmlydHVhbClcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5mZWVPdXRwdXQ6XG4gICAgICAgIHJldHVybjtcbiAgICAgIC8vIGFkZCBwYWRkaW5nIG91dHB1dHNcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5maXJzdENoYW5nZU91dHB1dDpcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5zZWNvbmRDaGFuZ2VPdXRwdXQ6XG4gICAgICAgIGNvbnN0IHsgY2hhaW4sIGluZGV4IH0gPVxuICAgICAgICAgIG9yZE91dHB1dCA9PT0gb3JkT3V0cHV0cy5maXJzdENoYW5nZU91dHB1dCA/IG91dHB1dHMuY2hhbmdlT3V0cHV0c1swXSA6IG91dHB1dHMuY2hhbmdlT3V0cHV0c1sxXTtcbiAgICAgICAgYml0Z28uYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KHBzYnQsIGlucHV0QnVpbGRlci53YWxsZXRLZXlzLCBjaGFpbiwgaW5kZXgsIG9yZE91dHB1dC52YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gYWRkIGFjdHVhbCBpbnNjcmlwdGlvbiBvdXRwdXRcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5pbnNjcmlwdGlvbk91dHB1dDpcbiAgICAgICAgbGV0IHsgaW5zY3JpcHRpb25SZWNpcGllbnQgfSA9IG91dHB1dHM7XG4gICAgICAgIGlmICh0eXBlb2YgaW5zY3JpcHRpb25SZWNpcGllbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaW5zY3JpcHRpb25SZWNpcGllbnQgPSBhZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGluc2NyaXB0aW9uUmVjaXBpZW50LCBuZXR3b3JrKTtcbiAgICAgICAgfVxuICAgICAgICBwc2J0LmFkZE91dHB1dCh7XG4gICAgICAgICAgc2NyaXB0OiBpbnNjcmlwdGlvblJlY2lwaWVudCxcbiAgICAgICAgICB2YWx1ZTogb3JkT3V0cHV0LnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHBzYnQ7XG59XG5cbmZ1bmN0aW9uIHRvU2F0UmFuZ2UocDogU2F0UG9pbnQpIHtcbiAgY29uc3QgeyBvZmZzZXQgfSA9IHBhcnNlU2F0UG9pbnQocCk7XG4gIHJldHVybiBuZXcgU2F0UmFuZ2Uob2Zmc2V0LCBvZmZzZXQpO1xufVxuXG5mdW5jdGlvbiBnZXRGZWUodnNpemU6IG51bWJlciwgcmF0ZVNhdFBlcktCOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gQmlnSW50KE1hdGguY2VpbCgodnNpemUgKiByYXRlU2F0UGVyS0IpIC8gMTAwMCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKFxuICBpbnB1dHM6IGJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBzYXRQb2ludDogU2F0UG9pbnQsXG4gIG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyxcbiAgY29uc3RyYWludHM6IEluc2NyaXB0aW9uVHJhbnNhY3Rpb25Db25zdHJhaW50c1xuKTogT3V0cHV0TGF5b3V0IHwgdW5kZWZpbmVkIHtcbiAgaWYgKGlucHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG9ubHkgc2luZ2xlIGlucHV0IHN1cHBvcnRlZCBjdXJyZW50bHlgKTtcbiAgfVxuXG4gIGlmIChvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4gIT09IG91dHB1dHMuY2hhbmdlT3V0cHV0c1sxXS5jaGFpbikge1xuICAgIC8vIG90aGVyd2lzZSBvdXIgZmVlIGNhbGMgaXMgdG9vIGNvbXBsaWNhdGVkXG4gICAgdGhyb3cgbmV3IEVycm9yKGB3YWxsZXQgb3V0cHV0cyBtdXN0IGJlIG9uIHNhbWUgY2hhaW5gKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBtaW5DaGFuZ2VPdXRwdXQgPSBCaWdJbnQoMTBfMDAwKSxcbiAgICBtYXhDaGFuZ2VPdXRwdXQgPSBDb25zdHJhaW50Lk1BWFNBVCxcbiAgICBtaW5JbnNjcmlwdGlvbk91dHB1dCA9IEJpZ0ludCgxMF8wMDApLFxuICAgIG1heEluc2NyaXB0aW9uT3V0cHV0ID0gQmlnSW50KDIwXzAwMCksXG4gIH0gPSBjb25zdHJhaW50cztcblxuICBjb25zdCBbaW5wdXRdID0gaW5wdXRzO1xuICBjb25zdCBpbnNjcmlwdGlvbk91dHB1dCA9IG5ldyBPcmRPdXRwdXQoaW5wdXQudmFsdWUsIFt0b1NhdFJhbmdlKHNhdFBvaW50KV0pO1xuICByZXR1cm4gZmluZE91dHB1dExheW91dChpbnNjcmlwdGlvbk91dHB1dCwge1xuICAgIG1pbkNoYW5nZU91dHB1dCxcbiAgICBtYXhDaGFuZ2VPdXRwdXQsXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQsXG4gICAgbWF4SW5zY3JpcHRpb25PdXRwdXQsXG4gICAgZmVlRml4ZWQ6IGdldEZlZShcbiAgICAgIFZpcnR1YWxTaXplcy50eFNlZ092ZXJoZWFkVlNpemUgKyBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhpbnB1dHMpLmdldElucHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICAgIGZlZVBlck91dHB1dDogZ2V0RmVlKFxuICAgICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0T25DaGFpbihvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4pLmdldE91dHB1dHNWU2l6ZSgpLFxuICAgICAgY29uc3RyYWludHMuZmVlUmF0ZVNhdEtCXG4gICAgKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzXG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IGxheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyh1bnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIGNvbnN0cmFpbnRzKTtcbiAgaWYgKCFsYXlvdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBvdXRwdXQgbGF5b3V0IGZvciBpbnNjcmlwdGlvbiBwYXNzaW5nIHRyYW5zYWN0aW9uYCk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KG5ldHdvcmssIGlucHV0QnVpbGRlciwgdW5zcGVudHMsIG91dHB1dHMsIGxheW91dCk7XG59XG4iXX0=
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRDtBQUMvRCxtREFBZ0U7QUFFaEUsMkNBQXdDO0FBQ3hDLHlDQUFxRDtBQUNyRCx5Q0FBc0M7QUFDdEMsaURBQWlHO0FBMEJqRyxTQUFnQiwwQkFBMEIsQ0FDeEMsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBdUMsRUFDdkMsT0FBMkIsRUFDM0IsWUFBMEI7SUFFMUIsTUFBTSxJQUFJLEdBQUcsZ0JBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLGdCQUFLLENBQUMsc0JBQXNCLENBQzFCLElBQUksRUFDSixDQUFDLEVBQ0QsWUFBWSxDQUFDLFVBQVUsRUFDdkIsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLFFBQVEsRUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLHFDQUFzQixDQUFDLElBQUkscUJBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsc0JBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN4QyxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsUUFBUSxTQUFTLEVBQUU7WUFDakIsZ0RBQWdEO1lBQ2hELEtBQUss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TUFBTSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQ2xGLFdBQVcsQ0FBQyxZQUFZLENBQ3pCO1FBQ0QsWUFBWSxFQUFFLE1BQU0sQ0FDbEIscUJBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUM5RSxXQUFXLENBQUMsWUFBWSxDQUN6QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFwQ0QsOEVBb0NDO0FBRUQsU0FBZ0IsZ0RBQWdELENBQzlELE9BQWdCLEVBQ2hCLFlBQWdDLEVBQ2hDLFFBQXVDLEVBQ3ZDLFFBQWtCLEVBQ2xCLE9BQTJCLEVBQzNCLFdBQThDO0lBRTlDLE1BQU0sTUFBTSxHQUFHLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNGLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7S0FDaEY7SUFDRCxPQUFPLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBYkQsNEdBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrLCBiaXRnbywgYWRkcmVzcyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMsIFZpcnR1YWxTaXplcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Vuc3BlbnRzJztcblxuaW1wb3J0IHsgT3JkT3V0cHV0IH0gZnJvbSAnLi9PcmRPdXRwdXQnO1xuaW1wb3J0IHsgcGFyc2VTYXRQb2ludCwgU2F0UG9pbnQgfSBmcm9tICcuL1NhdFBvaW50JztcbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5pbXBvcnQgeyBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0LCBPdXRwdXRMYXlvdXQsIHRvQXJyYXksIGZpbmRPdXRwdXRMYXlvdXQgfSBmcm9tICcuL091dHB1dExheW91dCc7XG5cbmV4cG9ydCB0eXBlIFdhbGxldE91dHB1dFBhdGggPSB7XG4gIGNoYWluOiBiaXRnby5DaGFpbkNvZGU7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBXYWxsZXRJbnB1dEJ1aWxkZXIgPSB7XG4gIHdhbGxldEtleXM6IGJpdGdvLlJvb3RXYWxsZXRLZXlzO1xuICBzaWduZXI6IGJpdGdvLktleU5hbWU7XG4gIGNvc2lnbmVyOiBiaXRnby5LZXlOYW1lO1xufTtcblxuZXhwb3J0IHR5cGUgSW5zY3JpcHRpb25PdXRwdXRzID0ge1xuICBpbnNjcmlwdGlvblJlY2lwaWVudDogc3RyaW5nIHwgQnVmZmVyO1xuICBjaGFuZ2VPdXRwdXRzOiBbV2FsbGV0T3V0cHV0UGF0aCwgV2FsbGV0T3V0cHV0UGF0aF07XG59O1xuXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHMgPSB7XG4gIGZlZVJhdGVTYXRLQjogbnVtYmVyO1xuICBtaW5DaGFuZ2VPdXRwdXQ/OiBiaWdpbnQ7XG4gIG1heENoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBpbnB1dEJ1aWxkZXI6IFdhbGxldElucHV0QnVpbGRlcixcbiAgdW5zcGVudHM6IGJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIG91dHB1dExheW91dDogT3V0cHV0TGF5b3V0XG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcms6IG5ldHdvcmsgfSk7XG4gIGlmICh1bnNwZW50cy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11bHRpcGxlIHVuc3BlbnRzIG5vdCBzdXBwb3J0ZWQgeWV0YCk7XG4gIH1cbiAgdW5zcGVudHMuZm9yRWFjaCgodSkgPT5cbiAgICBiaXRnby5hZGRXYWxsZXRVbnNwZW50VG9Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIHUsXG4gICAgICBpbnB1dEJ1aWxkZXIud2FsbGV0S2V5cyxcbiAgICAgIGlucHV0QnVpbGRlci5zaWduZXIsXG4gICAgICBpbnB1dEJ1aWxkZXIuY29zaWduZXIsXG4gICAgICBwc2J0Lm5ldHdvcmtcbiAgICApXG4gICk7XG4gIGNvbnN0IFtpbnB1dF0gPSB1bnNwZW50cztcbiAgY29uc3Qgb3JkT3V0cHV0cyA9IGdldE9yZE91dHB1dHNGb3JMYXlvdXQobmV3IE9yZE91dHB1dChpbnB1dC52YWx1ZSksIG91dHB1dExheW91dCk7XG4gIHRvQXJyYXkob3JkT3V0cHV0cykuZm9yRWFjaCgob3JkT3V0cHV0KSA9PiB7XG4gICAgaWYgKG9yZE91dHB1dCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKG9yZE91dHB1dCkge1xuICAgICAgLy8gc2tpcCBwYWRkaW5nIG91dHB1dHMgYW5kIGZlZSBvdXRwdXQgKHZpcnR1YWwpXG4gICAgICBjYXNlIG51bGw6XG4gICAgICBjYXNlIG9yZE91dHB1dHMuZmVlT3V0cHV0OlxuICAgICAgICByZXR1cm47XG4gICAgICAvLyBhZGQgcGFkZGluZyBvdXRwdXRzXG4gICAgICBjYXNlIG9yZE91dHB1dHMuZmlyc3RDaGFuZ2VPdXRwdXQ6XG4gICAgICBjYXNlIG9yZE91dHB1dHMuc2Vjb25kQ2hhbmdlT3V0cHV0OlxuICAgICAgICBjb25zdCB7IGNoYWluLCBpbmRleCB9ID1cbiAgICAgICAgICBvcmRPdXRwdXQgPT09IG9yZE91dHB1dHMuZmlyc3RDaGFuZ2VPdXRwdXQgPyBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0gOiBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMV07XG4gICAgICAgIGJpdGdvLmFkZFdhbGxldE91dHB1dFRvUHNidChwc2J0LCBpbnB1dEJ1aWxkZXIud2FsbGV0S2V5cywgY2hhaW4sIGluZGV4LCBvcmRPdXRwdXQudmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGFkZCBhY3R1YWwgaW5zY3JpcHRpb24gb3V0cHV0XG4gICAgICBjYXNlIG9yZE91dHB1dHMuaW5zY3JpcHRpb25PdXRwdXQ6XG4gICAgICAgIGxldCB7IGluc2NyaXB0aW9uUmVjaXBpZW50IH0gPSBvdXRwdXRzO1xuICAgICAgICBpZiAodHlwZW9mIGluc2NyaXB0aW9uUmVjaXBpZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGluc2NyaXB0aW9uUmVjaXBpZW50ID0gYWRkcmVzcy50b091dHB1dFNjcmlwdChpbnNjcmlwdGlvblJlY2lwaWVudCwgbmV0d29yayk7XG4gICAgICAgIH1cbiAgICAgICAgcHNidC5hZGRPdXRwdXQoe1xuICAgICAgICAgIHNjcmlwdDogaW5zY3JpcHRpb25SZWNpcGllbnQsXG4gICAgICAgICAgdmFsdWU6IG9yZE91dHB1dC52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBwc2J0O1xufVxuXG5mdW5jdGlvbiB0b1NhdFJhbmdlKHA6IFNhdFBvaW50KSB7XG4gIGNvbnN0IHsgb2Zmc2V0IH0gPSBwYXJzZVNhdFBvaW50KHApO1xuICByZXR1cm4gbmV3IFNhdFJhbmdlKG9mZnNldCwgb2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gZ2V0RmVlKHZzaXplOiBudW1iZXIsIHJhdGVTYXRQZXJLQjogbnVtYmVyKTogYmlnaW50IHtcbiAgcmV0dXJuIEJpZ0ludChNYXRoLmNlaWwoKHZzaXplICogcmF0ZVNhdFBlcktCKSAvIDEwMDApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhcbiAgaW5wdXRzOiBiaXRnby5XYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIGNvbnN0cmFpbnRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHNcbik6IE91dHB1dExheW91dCB8IHVuZGVmaW5lZCB7XG4gIGlmIChpbnB1dHMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBvbmx5IHNpbmdsZSBpbnB1dCBzdXBwb3J0ZWQgY3VycmVudGx5YCk7XG4gIH1cblxuICBpZiAob3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzBdLmNoYWluICE9PSBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMV0uY2hhaW4pIHtcbiAgICAvLyBvdGhlcndpc2Ugb3VyIGZlZSBjYWxjIGlzIHRvbyBjb21wbGljYXRlZFxuICAgIHRocm93IG5ldyBFcnJvcihgd2FsbGV0IG91dHB1dHMgbXVzdCBiZSBvbiBzYW1lIGNoYWluYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbWluQ2hhbmdlT3V0cHV0ID0gQmlnSW50KDEwXzAwMCksXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQgPSBCaWdJbnQoMTBfMDAwKSxcbiAgICBtYXhJbnNjcmlwdGlvbk91dHB1dCA9IEJpZ0ludCgyMF8wMDApLFxuICB9ID0gY29uc3RyYWludHM7XG5cbiAgY29uc3QgW2lucHV0XSA9IGlucHV0cztcbiAgY29uc3QgaW5zY3JpcHRpb25PdXRwdXQgPSBuZXcgT3JkT3V0cHV0KGlucHV0LnZhbHVlLCBbdG9TYXRSYW5nZShzYXRQb2ludCldKTtcbiAgcmV0dXJuIGZpbmRPdXRwdXRMYXlvdXQoaW5zY3JpcHRpb25PdXRwdXQsIHtcbiAgICBtaW5DaGFuZ2VPdXRwdXQsXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQsXG4gICAgbWF4SW5zY3JpcHRpb25PdXRwdXQsXG4gICAgZmVlRml4ZWQ6IGdldEZlZShcbiAgICAgIFZpcnR1YWxTaXplcy50eFNlZ092ZXJoZWFkVlNpemUgKyBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhpbnB1dHMpLmdldElucHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICAgIGZlZVBlck91dHB1dDogZ2V0RmVlKFxuICAgICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0T25DaGFpbihvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4pLmdldE91dHB1dHNWU2l6ZSgpLFxuICAgICAgY29uc3RyYWludHMuZmVlUmF0ZVNhdEtCXG4gICAgKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzXG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IGxheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyh1bnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIGNvbnN0cmFpbnRzKTtcbiAgaWYgKCFsYXlvdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBvdXRwdXQgbGF5b3V0IGZvciBpbnNjcmlwdGlvbiBwYXNzaW5nIHRyYW5zYWN0aW9uYCk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KG5ldHdvcmssIGlucHV0QnVpbGRlciwgdW5zcGVudHMsIG91dHB1dHMsIGxheW91dCk7XG59XG4iXX0=
|
|
@@ -177,8 +177,8 @@
|
|
|
177
177
|
"affectsGlobalScope": false
|
|
178
178
|
},
|
|
179
179
|
"../src/OutputLayout.ts": {
|
|
180
|
-
"version": "
|
|
181
|
-
"signature": "
|
|
180
|
+
"version": "d8ff61eaf081dace4a4615b64ea5dc8d3feb567e935209d61e880b7836023cfe",
|
|
181
|
+
"signature": "d624331002a568970dc020a299ff4bc351f4723474503f9ff585a9f0e05e5787",
|
|
182
182
|
"affectsGlobalScope": false
|
|
183
183
|
},
|
|
184
184
|
"../../../node_modules/@types/node/globals.d.ts": {
|
|
@@ -582,8 +582,8 @@
|
|
|
582
582
|
"affectsGlobalScope": false
|
|
583
583
|
},
|
|
584
584
|
"../../utxo-lib/dist/src/bitgo/outputScripts.d.ts": {
|
|
585
|
-
"version": "
|
|
586
|
-
"signature": "
|
|
585
|
+
"version": "0efff6f2d71ce3b922e4d30791ad749b6b017dd87f8e8266f1a47ce5921bc57f",
|
|
586
|
+
"signature": "0efff6f2d71ce3b922e4d30791ad749b6b017dd87f8e8266f1a47ce5921bc57f",
|
|
587
587
|
"affectsGlobalScope": false
|
|
588
588
|
},
|
|
589
589
|
"../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts": {
|
|
@@ -596,9 +596,14 @@
|
|
|
596
596
|
"signature": "7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10",
|
|
597
597
|
"affectsGlobalScope": false
|
|
598
598
|
},
|
|
599
|
+
"../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts": {
|
|
600
|
+
"version": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
|
|
601
|
+
"signature": "e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385",
|
|
602
|
+
"affectsGlobalScope": false
|
|
603
|
+
},
|
|
599
604
|
"../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts": {
|
|
600
|
-
"version": "
|
|
601
|
-
"signature": "
|
|
605
|
+
"version": "09f176fa832814f63b6faa70f12251c92078fe9e89afb5e370e2df54983af912",
|
|
606
|
+
"signature": "09f176fa832814f63b6faa70f12251c92078fe9e89afb5e370e2df54983af912",
|
|
602
607
|
"affectsGlobalScope": false
|
|
603
608
|
},
|
|
604
609
|
"../../utxo-lib/dist/src/bitgo/dash/DashPsbt.d.ts": {
|
|
@@ -732,8 +737,8 @@
|
|
|
732
737
|
"affectsGlobalScope": false
|
|
733
738
|
},
|
|
734
739
|
"../../utxo-lib/dist/src/taproot.d.ts": {
|
|
735
|
-
"version": "
|
|
736
|
-
"signature": "
|
|
740
|
+
"version": "2b23e7449684e04c3f9d6a9f8248ff02601326156d35dd069eca92ff3848e836",
|
|
741
|
+
"signature": "2b23e7449684e04c3f9d6a9f8248ff02601326156d35dd069eca92ff3848e836",
|
|
737
742
|
"affectsGlobalScope": false
|
|
738
743
|
},
|
|
739
744
|
"../../utxo-lib/dist/src/testutil/keys.d.ts": {
|
|
@@ -812,8 +817,8 @@
|
|
|
812
817
|
"affectsGlobalScope": false
|
|
813
818
|
},
|
|
814
819
|
"../src/psbt.ts": {
|
|
815
|
-
"version": "
|
|
816
|
-
"signature": "
|
|
820
|
+
"version": "3795f0dbb4fbc8584f8a0b15bcc711b0b9ad17f70c9e47ed09f94120cf78103b",
|
|
821
|
+
"signature": "776d7926a0b7aeed1f326d1e07837031e8b1421b36f3998b5d3b2738daf5a959",
|
|
817
822
|
"affectsGlobalScope": false
|
|
818
823
|
},
|
|
819
824
|
"../src/inscriptions.ts": {
|
|
@@ -1440,6 +1445,7 @@
|
|
|
1440
1445
|
"../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
|
|
1441
1446
|
],
|
|
1442
1447
|
"../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts": [
|
|
1448
|
+
"../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts",
|
|
1443
1449
|
"../../../node_modules/bip174/src/lib/psbt.d.ts",
|
|
1444
1450
|
"../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts",
|
|
1445
1451
|
"../../utxo-lib/dist/src/index.d.ts",
|
|
@@ -1659,7 +1665,8 @@
|
|
|
1659
1665
|
],
|
|
1660
1666
|
"../../utxo-lib/dist/src/taproot.d.ts": [
|
|
1661
1667
|
"../../../node_modules/bip174/src/lib/interfaces.d.ts",
|
|
1662
|
-
"../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
|
|
1668
|
+
"../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
|
|
1669
|
+
"../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
|
|
1663
1670
|
],
|
|
1664
1671
|
"../../utxo-lib/dist/src/testutil/index.d.ts": [
|
|
1665
1672
|
"../../utxo-lib/dist/src/testutil/keys.d.ts",
|
|
@@ -1781,8 +1788,7 @@
|
|
|
1781
1788
|
"../src/SatRange.ts"
|
|
1782
1789
|
],
|
|
1783
1790
|
"../src/OutputLayout.ts": [
|
|
1784
|
-
"../src/OrdOutput.ts"
|
|
1785
|
-
"../src/SatRange.ts"
|
|
1791
|
+
"../src/OrdOutput.ts"
|
|
1786
1792
|
],
|
|
1787
1793
|
"../src/SatPoint.ts": [
|
|
1788
1794
|
"../../utxo-lib/dist/src/index.d.ts"
|
|
@@ -1802,7 +1808,10 @@
|
|
|
1802
1808
|
"../src/psbt.ts": [
|
|
1803
1809
|
"../../unspents/dist/index.d.ts",
|
|
1804
1810
|
"../../utxo-lib/dist/src/index.d.ts",
|
|
1805
|
-
"../src/
|
|
1811
|
+
"../src/OrdOutput.ts",
|
|
1812
|
+
"../src/OutputLayout.ts",
|
|
1813
|
+
"../src/SatPoint.ts",
|
|
1814
|
+
"../src/SatRange.ts"
|
|
1806
1815
|
],
|
|
1807
1816
|
"../../../node_modules/@types/bn.js/index.d.ts": [
|
|
1808
1817
|
"../../../node_modules/@types/node/index.d.ts"
|
|
@@ -2464,6 +2473,9 @@
|
|
|
2464
2473
|
"../../../node_modules/bip174/src/lib/interfaces.d.ts": [
|
|
2465
2474
|
"../../../node_modules/@types/node/index.d.ts"
|
|
2466
2475
|
],
|
|
2476
|
+
"../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts": [
|
|
2477
|
+
"../../../node_modules/@types/node/index.d.ts"
|
|
2478
|
+
],
|
|
2467
2479
|
"../../../node_modules/bip174/src/lib/psbt.d.ts": [
|
|
2468
2480
|
"../../../node_modules/@types/node/index.d.ts",
|
|
2469
2481
|
"../../../node_modules/bip174/src/lib/interfaces.d.ts"
|
|
@@ -2513,6 +2525,7 @@
|
|
|
2513
2525
|
"../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
|
|
2514
2526
|
],
|
|
2515
2527
|
"../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts": [
|
|
2528
|
+
"../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts",
|
|
2516
2529
|
"../../../node_modules/bip174/src/lib/psbt.d.ts",
|
|
2517
2530
|
"../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts",
|
|
2518
2531
|
"../../utxo-lib/dist/src/index.d.ts",
|
|
@@ -2732,7 +2745,8 @@
|
|
|
2732
2745
|
],
|
|
2733
2746
|
"../../utxo-lib/dist/src/taproot.d.ts": [
|
|
2734
2747
|
"../../../node_modules/bip174/src/lib/interfaces.d.ts",
|
|
2735
|
-
"../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"
|
|
2748
|
+
"../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts",
|
|
2749
|
+
"../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts"
|
|
2736
2750
|
],
|
|
2737
2751
|
"../../utxo-lib/dist/src/testutil/index.d.ts": [
|
|
2738
2752
|
"../../utxo-lib/dist/src/testutil/keys.d.ts",
|
|
@@ -2866,7 +2880,8 @@
|
|
|
2866
2880
|
],
|
|
2867
2881
|
"../src/psbt.ts": [
|
|
2868
2882
|
"../../utxo-lib/dist/src/index.d.ts",
|
|
2869
|
-
"../src/
|
|
2883
|
+
"../src/OutputLayout.ts",
|
|
2884
|
+
"../src/SatPoint.ts"
|
|
2870
2885
|
],
|
|
2871
2886
|
"../../../node_modules/@types/bn.js/index.d.ts": [
|
|
2872
2887
|
"../../../node_modules/@types/node/index.d.ts"
|
|
@@ -3528,6 +3543,9 @@
|
|
|
3528
3543
|
"../../../node_modules/bip174/src/lib/interfaces.d.ts": [
|
|
3529
3544
|
"../../../node_modules/@types/node/index.d.ts"
|
|
3530
3545
|
],
|
|
3546
|
+
"../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts": [
|
|
3547
|
+
"../../../node_modules/@types/node/index.d.ts"
|
|
3548
|
+
],
|
|
3531
3549
|
"../../../node_modules/bip174/src/lib/psbt.d.ts": [
|
|
3532
3550
|
"../../../node_modules/@types/node/index.d.ts",
|
|
3533
3551
|
"../../../node_modules/bip174/src/lib/interfaces.d.ts"
|
|
@@ -3781,6 +3799,7 @@
|
|
|
3781
3799
|
"../../../node_modules/@types/yargs/index.d.ts",
|
|
3782
3800
|
"../../../node_modules/base-x/src/index.d.ts",
|
|
3783
3801
|
"../../../node_modules/bip174/src/lib/interfaces.d.ts",
|
|
3802
|
+
"../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts",
|
|
3784
3803
|
"../../../node_modules/bip174/src/lib/psbt.d.ts",
|
|
3785
3804
|
"../../../node_modules/bip32/types/bip32.d.ts",
|
|
3786
3805
|
"../../../node_modules/bip32/types/index.d.ts",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-ord",
|
|
3
3
|
"description": "Utilities for building ordinals with BitGo utxo-lib",
|
|
4
|
-
"version": "1.0.1-beta.
|
|
4
|
+
"version": "1.0.1-beta.2",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*"
|
|
7
7
|
],
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"directory": "modules/utxo-ord"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@bitgo-beta/unspents": "0.8.4-beta.
|
|
30
|
-
"@bitgo-beta/utxo-lib": "2.4.2-beta.
|
|
29
|
+
"@bitgo-beta/unspents": "0.8.4-beta.163",
|
|
30
|
+
"@bitgo-beta/utxo-lib": "2.4.2-beta.163"
|
|
31
31
|
},
|
|
32
32
|
"lint-staged": {
|
|
33
33
|
"*.{js,ts}": [
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"license": "MIT",
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "302bac4872efd799253b783a9e64569f82d9a7a1"
|
|
43
43
|
}
|