@cardano-sdk/hardware-ledger 0.3.2 → 0.3.3
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/cjs/LedgerKeyAgent.d.ts +11 -1
- package/dist/cjs/LedgerKeyAgent.d.ts.map +1 -1
- package/dist/cjs/LedgerKeyAgent.js +26 -7
- package/dist/cjs/LedgerKeyAgent.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/LedgerKeyAgent.d.ts +11 -1
- package/dist/esm/LedgerKeyAgent.d.ts.map +1 -1
- package/dist/esm/LedgerKeyAgent.js +22 -3
- package/dist/esm/LedgerKeyAgent.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
@@ -2,8 +2,10 @@ import * as Crypto from '@cardano-sdk/crypto';
|
|
2
2
|
import { Cardano } from '@cardano-sdk/core';
|
3
3
|
import { CommunicationType, KeyAgentBase, KeyAgentDependencies, SerializableLedgerKeyAgentData, SignBlobResult } from '@cardano-sdk/key-management';
|
4
4
|
import { LedgerTransportType } from './types';
|
5
|
-
import
|
5
|
+
import _LedgerConnection, { GetVersionResponse, Transaction, TransactionSigningMode } from '@cardano-foundation/ledgerjs-hw-app-cardano';
|
6
6
|
import type LedgerTransport from '@ledgerhq/hw-transport';
|
7
|
+
declare const LedgerConnection: typeof _LedgerConnection;
|
8
|
+
declare type LedgerConnection = _LedgerConnection;
|
7
9
|
export interface LedgerKeyAgentProps extends Omit<SerializableLedgerKeyAgentData, '__typename'> {
|
8
10
|
deviceConnection?: LedgerConnection;
|
9
11
|
}
|
@@ -23,10 +25,17 @@ export interface CreateLedgerTransportProps {
|
|
23
25
|
activeTransport?: LedgerTransportType;
|
24
26
|
devicePath?: string;
|
25
27
|
}
|
28
|
+
declare type LedgerConnectionWithCommunicationTypeAndDevicePath = {
|
29
|
+
deviceConnection: LedgerConnection;
|
30
|
+
communicationType: CommunicationType;
|
31
|
+
devicePath?: string;
|
32
|
+
};
|
26
33
|
export declare class LedgerKeyAgent extends KeyAgentBase {
|
27
34
|
#private;
|
28
35
|
readonly deviceConnection?: LedgerConnection;
|
36
|
+
static deviceConnections: LedgerConnectionWithCommunicationTypeAndDevicePath[];
|
29
37
|
constructor({ deviceConnection, ...serializableData }: LedgerKeyAgentProps, dependencies: KeyAgentDependencies);
|
38
|
+
static findKeyAgentByCommunicationTypeAndDevicePath(communicationType: CommunicationType, devicePath?: string): LedgerConnectionWithCommunicationTypeAndDevicePath | undefined;
|
30
39
|
static getHidDeviceList(communicationType: CommunicationType): Promise<string[]>;
|
31
40
|
static createTransport({ communicationType, activeTransport, devicePath }: CreateLedgerTransportProps): Promise<LedgerTransportType>;
|
32
41
|
static createDeviceConnection(activeTransport: LedgerTransport): Promise<LedgerConnection>;
|
@@ -40,4 +49,5 @@ export declare class LedgerKeyAgent extends KeyAgentBase {
|
|
40
49
|
signBlob(): Promise<SignBlobResult>;
|
41
50
|
exportRootPrivateKey(): Promise<Crypto.Bip32PrivateKeyHex>;
|
42
51
|
}
|
52
|
+
export {};
|
43
53
|
//# sourceMappingURL=LedgerKeyAgent.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LedgerKeyAgent.d.ts","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAuB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAGL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EAEpB,8BAA8B,EAC9B,cAAc,EAEf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"LedgerKeyAgent.d.ts","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"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"}
|
@@ -45,9 +45,15 @@ const key_management_1 = require("@cardano-sdk/key-management");
|
|
45
45
|
const util_1 = require("@cardano-sdk/util");
|
46
46
|
const address_1 = require("@cardano-foundation/ledgerjs-hw-app-cardano/dist/utils/address");
|
47
47
|
const transformers_1 = require("./transformers");
|
48
|
-
const ledgerjs_hw_app_cardano_1 = __importStar(require("@cardano-foundation/ledgerjs-hw-app-cardano"));
|
49
48
|
const hw_transport_node_hid_noevents_1 = __importDefault(require("@ledgerhq/hw-transport-node-hid-noevents"));
|
49
|
+
const ledgerjs_hw_app_cardano_1 = __importStar(require("@cardano-foundation/ledgerjs-hw-app-cardano"));
|
50
50
|
const hw_transport_webhid_1 = __importDefault(require("@ledgerhq/hw-transport-webhid"));
|
51
|
+
const TransportWebHID = hw_transport_webhid_1.default.default
|
52
|
+
? hw_transport_webhid_1.default.default
|
53
|
+
: hw_transport_webhid_1.default;
|
54
|
+
const LedgerConnection = ledgerjs_hw_app_cardano_1.default.default
|
55
|
+
? ledgerjs_hw_app_cardano_1.default.default
|
56
|
+
: ledgerjs_hw_app_cardano_1.default;
|
51
57
|
const transportTypedError = (error) => new key_management_1.errors.TransportError('Ledger transport failed', error);
|
52
58
|
const hasRegistrationOrRetirementCerts = (certificates) => {
|
53
59
|
if (!certificates)
|
@@ -92,9 +98,12 @@ class LedgerKeyAgent extends key_management_1.KeyAgentBase {
|
|
92
98
|
this.deviceConnection = deviceConnection;
|
93
99
|
__classPrivateFieldSet(this, _LedgerKeyAgent_communicationType, serializableData.communicationType, "f");
|
94
100
|
}
|
101
|
+
static findKeyAgentByCommunicationTypeAndDevicePath(communicationType, devicePath) {
|
102
|
+
return this.deviceConnections?.find((connection) => connection.communicationType === communicationType && connection.devicePath === devicePath);
|
103
|
+
}
|
95
104
|
static async getHidDeviceList(communicationType) {
|
96
105
|
try {
|
97
|
-
return communicationType === key_management_1.CommunicationType.Node ? hw_transport_node_hid_noevents_1.default.list() :
|
106
|
+
return communicationType === key_management_1.CommunicationType.Node ? hw_transport_node_hid_noevents_1.default.list() : TransportWebHID.list();
|
98
107
|
}
|
99
108
|
catch (error) {
|
100
109
|
throw new key_management_1.errors.TransportError('Cannot fetch device list', error);
|
@@ -105,9 +114,9 @@ class LedgerKeyAgent extends key_management_1.KeyAgentBase {
|
|
105
114
|
if (communicationType === key_management_1.CommunicationType.Node) {
|
106
115
|
return await hw_transport_node_hid_noevents_1.default.open(devicePath);
|
107
116
|
}
|
108
|
-
return await (activeTransport && activeTransport instanceof
|
109
|
-
?
|
110
|
-
:
|
117
|
+
return await (activeTransport && activeTransport instanceof TransportWebHID
|
118
|
+
? TransportWebHID.open(activeTransport.device)
|
119
|
+
: TransportWebHID.request());
|
111
120
|
}
|
112
121
|
catch (error) {
|
113
122
|
throw new key_management_1.errors.TransportError('Creating transport failed', error);
|
@@ -115,7 +124,7 @@ class LedgerKeyAgent extends key_management_1.KeyAgentBase {
|
|
115
124
|
}
|
116
125
|
static async createDeviceConnection(activeTransport) {
|
117
126
|
try {
|
118
|
-
const deviceConnection = new
|
127
|
+
const deviceConnection = new LedgerConnection(activeTransport);
|
119
128
|
await deviceConnection.getVersion();
|
120
129
|
return deviceConnection;
|
121
130
|
}
|
@@ -124,6 +133,9 @@ class LedgerKeyAgent extends key_management_1.KeyAgentBase {
|
|
124
133
|
}
|
125
134
|
}
|
126
135
|
static async establishDeviceConnection(communicationType, devicePath) {
|
136
|
+
const sameConnectionByTypeAndPath = this.findKeyAgentByCommunicationTypeAndDevicePath(communicationType, devicePath);
|
137
|
+
if (sameConnectionByTypeAndPath)
|
138
|
+
return sameConnectionByTypeAndPath.deviceConnection;
|
127
139
|
let transport;
|
128
140
|
try {
|
129
141
|
transport = await LedgerKeyAgent.createTransport({ communicationType, devicePath });
|
@@ -136,7 +148,13 @@ class LedgerKeyAgent extends key_management_1.KeyAgentBase {
|
|
136
148
|
if (!isSupportedLedgerModel) {
|
137
149
|
throw new key_management_1.errors.TransportError(`Ledger device model: "${transport.deviceModel.id}" is not supported`);
|
138
150
|
}
|
139
|
-
|
151
|
+
const newConnection = await LedgerKeyAgent.createDeviceConnection(transport);
|
152
|
+
this.deviceConnections.push({
|
153
|
+
communicationType,
|
154
|
+
deviceConnection: newConnection,
|
155
|
+
...(!!devicePath && { devicePath })
|
156
|
+
});
|
157
|
+
return newConnection;
|
140
158
|
}
|
141
159
|
catch (error) {
|
142
160
|
if (error.innerError.message.includes('cannot open device with path')) {
|
@@ -266,4 +284,5 @@ class LedgerKeyAgent extends key_management_1.KeyAgentBase {
|
|
266
284
|
}
|
267
285
|
exports.LedgerKeyAgent = LedgerKeyAgent;
|
268
286
|
_LedgerKeyAgent_communicationType = new WeakMap();
|
287
|
+
LedgerKeyAgent.deviceConnections = [];
|
269
288
|
//# sourceMappingURL=LedgerKeyAgent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LedgerKeyAgent.js","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4DAA8C;AAC9C,4CAAiE;AACjE,gEAUqC;AAErC,4CAAyD;AACzD,4FAA6F;AAC7F,iDAA4C;AAC5C,uGAWqD;AACrD,
|
1
|
+
{"version":3,"file":"LedgerKeyAgent.js","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4DAA8C;AAC9C,4CAAiE;AACjE,gEAUqC;AAErC,4CAAyD;AACzD,4FAA6F;AAC7F,iDAA4C;AAC5C,8GAAwE;AACxE,uGAWqD;AACrD,wFAA6D;AAG7D,MAAM,eAAe,GAAI,6BAAwB,CAAC,OAAO;IACvD,CAAC,CAAG,6BAAwB,CAAC,OAAmC;IAChE,CAAC,CAAC,6BAAgB,CAAC;AACrB,MAAM,gBAAgB,GAAI,iCAAyB,CAAC,OAAO;IACzD,CAAC,CAAG,iCAAyB,CAAC,OAAoC;IAClE,CAAC,CAAC,iCAAiB,CAAC;AA0BtB,MAAM,mBAAmB,GAAG,CAAC,KAAW,EAAE,EAAE,CAAC,IAAI,uBAAM,CAAC,cAAc,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAEzG,MAAM,gCAAgC,GAAG,CAAC,YAA8C,EAAW,EAAE;IACnG,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,OAAO,CACL,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,yCAAe,CAAC,qBAAqB,CAAC;QAChF,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,yCAAe,CAAC,uBAAuB,CAAC,CACnF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAiB,EAAE,EAAE,CAChD,IAAI,CAAC,IAAI,KAAK,yCAAe,CAAC,kBAAkB;IAChD,IAAI,CAAC,IAAI,KAAK,yCAAe,CAAC,oBAAoB;IAClD,IAAI,CAAC,IAAI,KAAK,yCAAe,CAAC,gBAAgB,CAAC;AAMjD,MAAM,2BAA2B,GAAG,CAAC,EAAe,EAAW,EAAE;IAC/D,MAAM,wBAAwB,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CACpD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,KAAK,mDAAyB,CAAC,WAAW,CAC1F,CAAC;IAEF,IAAI,EAAE,CAAC,YAAY,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAqD,CAAC;YAC9E,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,KAAK,mDAAyB,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;SAC7F;KACF;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAe,EAAW,EAAE;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC;IAErB,MAAM,mBAAmB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC5E,MAAM,oBAAoB,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,iDAAuB,CAAC,WAAW,CAAC,CAAC;IAErH,IACE,mBAAmB;QACnB,oBAAoB;QACpB,CAAC,EAAE,CAAC,gBAAgB;QACpB,CAAC,EAAE,CAAC,eAAe;QACnB,CAAC,gCAAgC,CAAC,EAAE,CAAC,YAAY,CAAC;QAClD,2BAA2B,CAAC,EAAE,CAAC,EAC/B;QACA,OAAO,IAAI,CAAC;KACb;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAQF,MAAa,cAAe,SAAQ,6BAAY;IAK9C,YAAY,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAuB,EAAE,YAAkC;QAC5G,KAAK,CAAC,EAAE,GAAG,gBAAgB,EAAE,UAAU,EAAE,6BAAY,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;QAJhF,oDAA+C;QAK7C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,uBAAA,IAAI,qCAAsB,gBAAgB,CAAC,iBAAiB,MAAA,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,4CAA4C,CAAC,iBAAoC,EAAE,UAAmB;QAC3G,OAAO,IAAI,CAAC,iBAAiB,EAAE,IAAI,CACjC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,KAAK,iBAAiB,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,CAC3G,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,iBAAoC;QAChE,IAAI;YACF,OAAO,iBAAiB,KAAK,kCAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SACxG;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;SACpE;IACH,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAC3B,iBAAiB,EACjB,eAAe,EACf,UAAU,GAAG,EAAE,EACY;QAC3B,IAAI;YACF,IAAI,iBAAiB,KAAK,kCAAiB,CAAC,IAAI,EAAE;gBAChD,OAAO,MAAM,wCAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChD;YACD,OAAO,MAAM,CAAC,eAAe,IAAI,eAAe,YAAY,eAAe;gBACzE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;SAChC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;SACrE;IACH,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,eAAgC;QAClE,IAAI;YACF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAE/D,MAAM,gBAAgB,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,gBAAgB,CAAC;SACzB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;SACtF;IACH,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,yBAAyB,CACpC,iBAAoC,EACpC,UAAmB;QAGnB,MAAM,2BAA2B,GAAG,IAAI,CAAC,4CAA4C,CACnF,iBAAiB,EACjB,UAAU,CACX,CAAC;QACF,IAAI,2BAA2B;YAAE,OAAO,2BAA2B,CAAC,gBAAgB,CAAC;QACrF,IAAI,SAAS,CAAC;QACd,IAAI;YACF,SAAS,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACxC,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;aACtD;YACD,MAAM,sBAAsB,GAC1B,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,OAAO;gBACpC,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,OAAO;gBACpC,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,QAAQ,CAAC;YACxC,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,yBAAyB,SAAS,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;aACxG;YACD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,iBAAiB;gBACjB,gBAAgB,EAAE,aAAa;gBAC/B,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;aACpC,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;SACtB;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE;gBACrE,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;aAC1E;YAED,IAAI,SAAS,EAAE;gBAEb,SAAS,CAAC,KAAK,EAAE,CAAC;aACnB;YACD,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;SACjF;IACH,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAChC,iBAAoC,EACpC,gBAAmC;QAEnC,IAAI;YACF,IAAI,CAAC,gBAAgB,EAAE;gBACrB,OAAO,MAAM,cAAc,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;aAC1E;YAED,OAAO,MAAM,cAAc,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;SAChF;QAAC,OAAO,KAAU,EAAE;YAEnB,IAAI,KAAK,CAAC,IAAI,KAAK,mCAAmC,EAAE;gBACtD,OAAO,MAAM,cAAc,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;aAC1E;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACO;QACnB,IAAI;YACF,MAAM,yBAAyB,GAAG,MAAM,cAAc,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;YAClH,MAAM,cAAc,GAAG,GAAG,gCAAe,CAAC,OAAO,KAAK,gCAAe,CAAC,SAAS,KAAK,YAAY,GAAG,CAAC;YACpG,MAAM,iBAAiB,GAAG,MAAM,yBAAyB,CAAC,oBAAoB,CAAC;gBAC7E,IAAI,EAAE,IAAA,qBAAW,EAAC,cAAc,CAAC;aAClC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,iBAAiB,CAAC,YAAY,GAAG,iBAAiB,CAAC,YAAY,EAAE,CAAC;YACrF,OAAO,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SAC1C;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAM,EAAE;gBACzB,MAAM,IAAI,uBAAM,CAAC,mBAAmB,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;aAC7F;YACD,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAClC;IACH,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,iBAAoC,EACpC,gBAAmC;QAEnC,MAAM,yBAAyB,GAAG,MAAM,cAAc,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAClH,OAAO,MAAM,yBAAyB,CAAC,UAAU,EAAE,CAAC;IACtD,CAAC;IAMD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,EAAE,OAAO,EAAE,YAAY,GAAG,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAA6B,EAC7F,YAAkC;QAElC,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAEjF,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB;YACpD,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YAC3E,CAAC,CAAC,cAAc,CAAC,yBAAyB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,wBAAwB,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;YAC5D,YAAY;YACZ,iBAAiB;YACjB,gBAAgB,EAAE,sBAAsB;SACzC,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CACvB;YACE,YAAY;YACZ,OAAO;YACP,iBAAiB;YACjB,gBAAgB,EAAE,sBAAsB;YACxC,wBAAwB;YACxB,cAAc,EAAE,EAAE;SACnB,EACD,YAAY,CACb,CAAC;IACJ,CAAC;IAOD,MAAM,CAAC,cAAc,CAAC,EAAe;QACnC,IAAI,EAAE,CAAC,YAAY,EAAE;YACnB,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE;gBAElC,IACE,IAAI,CAAC,IAAI,KAAK,yCAAe,CAAC,uBAAuB;oBACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,uCAAa,CAAC,YAAY,CAAC;oBAEjF,OAAO,gDAAsB,CAAC,0BAA0B,CAAC;gBAG3D,IACE,IAAI,CAAC,IAAI,KAAK,yCAAe,CAAC,uBAAuB;oBACrD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,qCAAW,CAAC,YAAY;oBAErD,OAAO,gDAAsB,CAAC,6BAA6B,CAAC;aAC/D;SACF;QAKD,IAAI,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,eAAe,EAAE;YAC7C,OAAO,gDAAsB,CAAC,kBAAkB,CAAC;SAClD;QAID,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;YAClB,OAAO,gDAAsB,CAAC,oBAAoB,CAAC;SACpD;QAGD,OAAO,gDAAsB,CAAC,oBAAoB,CAAC;IACrD,CAAC;IAGD,KAAK,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAA0B;QAC1D,MAAM,KAAK,GAAG,IAAI,2BAAoB,EAAE,CAAC;QACzC,IAAI;YACF,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAU,EAAC,IAAI,EAAE;gBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,qBAAqB,CACjE,uBAAA,IAAI,yCAAmB,EACvB,IAAI,CAAC,gBAAgB,CACtB,CAAC;YAEF,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAEhE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC;gBACpD,WAAW;gBACX,EAAE,EAAE,YAAY;aACjB,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC7B,MAAM,IAAI,uBAAM,CAAC,cAAc,CAAC,4CAA4C,CAAC,CAAC;aAC/E;YAED,OAAO,IAAI,GAAG,CACZ,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACrC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;oBAC3C,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,wCAAuB,CAAC,KAAK,CAAC;oBAClD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,wCAAuB,CAAC,IAAI,CAAC;iBACjD,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;gBAC1E,OAAO,CAAC,SAAS,EAAE,SAAS,CAAU,CAAC;YACzC,CAAC,CAAC,CACH,CACF,CAAC;SACH;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAM,EAAE;gBACzB,MAAM,IAAI,uBAAM,CAAC,mBAAmB,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;aAC5E;YACD,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAClC;gBAAS;YACR,KAAK,CAAC,OAAO,EAAE,CAAC;SACjB;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,0BAAmB,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,0BAAmB,CAAC,0BAA0B,CAAC,CAAC;IAC5D,CAAC;;AApSH,wCAqSC;;AAlSQ,gCAAiB,GAAyD,EAAE,CAAC"}
|