@cubist-labs/cubesigner-sdk 0.4.195-0 → 0.4.201
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/package.json +1 -1
- package/dist/src/key.d.ts +19 -3
- package/dist/src/key.d.ts.map +1 -1
- package/dist/src/key.js +25 -4
- package/dist/src/role.d.ts +16 -36
- package/dist/src/role.d.ts.map +1 -1
- package/dist/src/role.js +21 -2
- package/dist/src/schema_types.d.ts +4 -1
- package/dist/src/schema_types.d.ts.map +1 -1
- package/dist/src/schema_types.js +1 -1
- package/package.json +1 -1
- package/src/key.ts +27 -3
- package/src/role.ts +24 -37
- package/src/schema_types.ts +4 -1
package/dist/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "git+https://github.com/cubist-labs/CubeSigner-TypeScript-SDK.git",
|
|
6
6
|
"directory": "packages/sdk"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.4.
|
|
8
|
+
"version": "0.4.201",
|
|
9
9
|
"description": "CubeSigner TypeScript SDK",
|
|
10
10
|
"license": "MIT OR Apache-2.0",
|
|
11
11
|
"author": "Cubist, Inc.",
|
package/dist/src/key.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { KeyPolicy } from "./role";
|
|
2
2
|
import type { PageOpts } from "./paginator";
|
|
3
3
|
import type { KeyInfo, SchemaKeyType, KeyInRoleInfo, EvmSignRequest, EvmSignResponse, Eip191SignRequest, Eip712SignRequest, Eth2SignRequest, Eth2UnstakeRequest, AvaTx, BlobSignRequest, BtcSignRequest, SolanaSignRequest, SolanaSignResponse, BtcMessageSignResponse, BtcSignResponse, BlobSignResponse, AvaSignResponse, Eth2UnstakeResponse, Eth2SignResponse, Eip191Or712SignResponse, PsbtSignRequest, PsbtSignResponse, DiffieHellmanResponse } from "./schema_types";
|
|
4
|
-
import type { ApiClient, AvaChain, BabylonRegistrationRequest, BabylonRegistrationResponse, BabylonStakingRequest, BabylonStakingResponse, CubeSignerResponse, Empty, HistoricalTx, JsonValue, MfaReceipts, SuiSignRequest, SuiSignResponse } from ".";
|
|
4
|
+
import type { ApiClient, AvaChain, BabylonRegistrationRequest, BabylonRegistrationResponse, BabylonStakingRequest, BabylonStakingResponse, CubeSignerResponse, EditPolicy, Empty, HistoricalTx, JsonValue, MfaReceipts, SuiSignRequest, SuiSignResponse } from ".";
|
|
5
5
|
import { CubeSignerClient } from ".";
|
|
6
6
|
/** Secp256k1 key type */
|
|
7
7
|
export declare enum Secp256k1 {
|
|
@@ -136,6 +136,14 @@ export declare class Key {
|
|
|
136
136
|
* @throws if MFA is required and no receipts are provided
|
|
137
137
|
*/
|
|
138
138
|
setPolicy(policy: KeyPolicy, mfaReceipt?: MfaReceipts): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Set new edit policy (overwriting any edit policies previously set for this key)
|
|
141
|
+
*
|
|
142
|
+
* @param editPolicy The new edit policy to set
|
|
143
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
144
|
+
* @throws if MFA is required and no receipts are provided
|
|
145
|
+
*/
|
|
146
|
+
setEditPolicy(editPolicy: EditPolicy, mfaReceipt?: MfaReceipts): Promise<void>;
|
|
139
147
|
/**
|
|
140
148
|
* Set key metadata. The metadata must be at most 1024 characters
|
|
141
149
|
* and must match the following regex: ^[A-Za-z0-9_=+/ \-\.\,]{0,1024}$.
|
|
@@ -182,17 +190,25 @@ export declare class Key {
|
|
|
182
190
|
/**
|
|
183
191
|
* Append to existing key policy. This append is not atomic -- it uses {@link policy}
|
|
184
192
|
* to fetch the current policy and then {@link setPolicy} to set the policy -- and
|
|
185
|
-
* should not be used
|
|
193
|
+
* should not be used across concurrent sessions.
|
|
186
194
|
*
|
|
187
195
|
* @param policy The policy to append to the existing one.
|
|
196
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
197
|
+
* @throws If MFA is required and no MFA receipts are provided
|
|
188
198
|
*/
|
|
189
|
-
appendPolicy(policy: KeyPolicy): Promise<void>;
|
|
199
|
+
appendPolicy(policy: KeyPolicy, mfaReceipt?: MfaReceipts): Promise<void>;
|
|
190
200
|
/**
|
|
191
201
|
* Get the policy for the key.
|
|
192
202
|
*
|
|
193
203
|
* @returns The policy for the key.
|
|
194
204
|
*/
|
|
195
205
|
policy(): Promise<KeyPolicy>;
|
|
206
|
+
/**
|
|
207
|
+
* Get the edit policy for the key.
|
|
208
|
+
*
|
|
209
|
+
* @returns The edit policy for the key, undefined if there is no edit policy
|
|
210
|
+
*/
|
|
211
|
+
editPolicy(): Promise<EditPolicy | undefined>;
|
|
196
212
|
/**
|
|
197
213
|
* Fetch the metadata for the key.
|
|
198
214
|
*
|
package/dist/src/key.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/key.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/key.ts"],"names":[],"mappings":"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"}
|
package/dist/src/key.js
CHANGED
|
@@ -140,6 +140,16 @@ class Key {
|
|
|
140
140
|
async setPolicy(policy, mfaReceipt) {
|
|
141
141
|
await this.update({ policy }, mfaReceipt);
|
|
142
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Set new edit policy (overwriting any edit policies previously set for this key)
|
|
145
|
+
*
|
|
146
|
+
* @param editPolicy The new edit policy to set
|
|
147
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
148
|
+
* @throws if MFA is required and no receipts are provided
|
|
149
|
+
*/
|
|
150
|
+
async setEditPolicy(editPolicy, mfaReceipt) {
|
|
151
|
+
await this.update({ edit_policy: editPolicy }, mfaReceipt);
|
|
152
|
+
}
|
|
143
153
|
/**
|
|
144
154
|
* Set key metadata. The metadata must be at most 1024 characters
|
|
145
155
|
* and must match the following regex: ^[A-Za-z0-9_=+/ \-\.\,]{0,1024}$.
|
|
@@ -192,13 +202,15 @@ class Key {
|
|
|
192
202
|
/**
|
|
193
203
|
* Append to existing key policy. This append is not atomic -- it uses {@link policy}
|
|
194
204
|
* to fetch the current policy and then {@link setPolicy} to set the policy -- and
|
|
195
|
-
* should not be used
|
|
205
|
+
* should not be used across concurrent sessions.
|
|
196
206
|
*
|
|
197
207
|
* @param policy The policy to append to the existing one.
|
|
208
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
209
|
+
* @throws If MFA is required and no MFA receipts are provided
|
|
198
210
|
*/
|
|
199
|
-
async appendPolicy(policy) {
|
|
211
|
+
async appendPolicy(policy, mfaReceipt) {
|
|
200
212
|
const existing = await this.policy();
|
|
201
|
-
await this.setPolicy([...existing, ...policy]);
|
|
213
|
+
await this.setPolicy([...existing, ...policy], mfaReceipt);
|
|
202
214
|
}
|
|
203
215
|
/**
|
|
204
216
|
* Get the policy for the key.
|
|
@@ -209,6 +221,15 @@ class Key {
|
|
|
209
221
|
const data = await this.fetch();
|
|
210
222
|
return (data.policy ?? []);
|
|
211
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Get the edit policy for the key.
|
|
226
|
+
*
|
|
227
|
+
* @returns The edit policy for the key, undefined if there is no edit policy
|
|
228
|
+
*/
|
|
229
|
+
async editPolicy() {
|
|
230
|
+
const data = await this.fetch();
|
|
231
|
+
return data.edit_policy;
|
|
232
|
+
}
|
|
212
233
|
/**
|
|
213
234
|
* Fetch the metadata for the key.
|
|
214
235
|
*
|
|
@@ -623,4 +644,4 @@ function fromSchemaKeyType(ty) {
|
|
|
623
644
|
// NOTE: if you are adding a new key type, update the `create ${keyType} key` test in key.test.ts
|
|
624
645
|
}
|
|
625
646
|
}
|
|
626
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUE0c0JBLDhDQW9GQztBQWp2QkQsd0JBQTRDO0FBQzVDLCtDQUFpRDtBQUNqRCxpQ0FBcUQ7QUFFckQseUJBQXlCO0FBQ3pCLElBQVksU0F1Qlg7QUF2QkQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7SUFDZixvQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBZSxDQUFBO0lBQ2Ysb0NBQXVCLENBQUE7SUFDdkIsZ0NBQW1CLENBQUE7SUFDbkIsc0NBQXlCLENBQUE7SUFDekIsbUNBQXNCLENBQUE7SUFDdEIsMkNBQThCLENBQUE7SUFDOUIsd0NBQTJCLENBQUE7SUFDM0Isc0NBQXlCLENBQUE7SUFDekIsZ0NBQW1CLENBQUE7SUFDbkIsd0NBQTJCLENBQUE7SUFDM0Isa0NBQXFCLENBQUE7SUFDckIsd0NBQTJCLENBQUE7SUFDM0IsZ0RBQW1DLENBQUE7SUFDbkMsa0NBQXFCLENBQUE7SUFDckIsMENBQTZCLENBQUE7SUFDN0Isb0NBQXVCLENBQUE7SUFDdkIsNENBQStCLENBQUE7SUFDL0IsOENBQWlDLENBQUE7SUFDakMsc0RBQXlDLENBQUE7QUFDM0MsQ0FBQyxFQXZCVyxTQUFTLHlCQUFULFNBQVMsUUF1QnBCO0FBRUQsbUJBQW1CO0FBQ25CLElBQVksR0FJWDtBQUpELFdBQVksR0FBRztJQUNiLCtCQUF3QixDQUFBO0lBQ3hCLG1DQUE0QixDQUFBO0lBQzVCLDJCQUFvQixDQUFBO0FBQ3RCLENBQUMsRUFKVyxHQUFHLG1CQUFILEdBQUcsUUFJZDtBQUVELHVCQUF1QjtBQUN2QixJQUFZLE9BVVg7QUFWRCxXQUFZLE9BQU87SUFDakIsdUNBQTRCLENBQUE7SUFDNUIsaUNBQXNCLENBQUE7SUFDdEIscUNBQTBCLENBQUE7SUFDMUIsMkNBQWdDLENBQUE7SUFDaEMs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UUFDekIsS0FBSyxzQkFBc0I7WUFDekIsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQzNCLEtBQUssdUJBQXVCO1lBQzFCLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUM1QixLQUFLLGdCQUFnQjtZQUNuQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDckIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxhQUFLLENBQUM7UUFDZixLQUFLLFVBQVU7WUFDYixPQUFPLGdCQUFRLENBQUM7UUFDbEIsS0FBSyxnQkFBZ0I7WUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLEtBQUssa0JBQWtCO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixLQUFLLGNBQWM7WUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25CLEtBQUssU0FBUztZQUNaLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUN2QixLQUFLLGFBQWE7WUFDaEIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQzNCLEtBQUssYUFBYTtZQUNoQixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDdkIsS0FBSyxnQkFBZ0I7WUFDbkIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3JCLEtBQUssWUFBWTtZQUNmLE9BQU8sa0JBQVUsQ0FBQztRQUNwQixpR0FBaUc7SUFDbkcsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtleVBvbGljeSB9IGZyb20gXCIuL3JvbGVcIjtcbmltcG9ydCB0eXBlIHsgUGFnZU9wdHMgfSBmcm9tIFwiLi9wYWdpbmF0b3JcIjtcbmltcG9ydCB0eXBlIHtcbiAgS2V5SW5mbyxcbiAgVXBkYXRlS2V5UmVxdWVzdCxcbiAgU2NoZW1hS2V5VHlwZSxcbiAgS2V5SW5Sb2xlSW5mbyxcbiAgRXZtU2lnblJlcXVlc3QsXG4gIEV2bVNpZ25SZXNwb25zZSxcbiAgRWlwMTkxU2lnblJlcXVlc3QsXG4gIEVpcDcxMlNpZ25SZXF1ZXN0LFxuICBFdGgyU2lnblJlcXVlc3QsXG4gIEV0aDJVbnN0YWtlUmVxdWVzdCxcbiAgQXZhVHgsXG4gIEJsb2JTaWduUmVxdWVzdCxcbiAgQnRjU2lnblJlcXVlc3QsXG4gIFNvbGFuYVNpZ25SZXF1ZXN0LFxuICBTb2xhbmFTaWduUmVzcG9uc2UsXG4gIEJ0Y01lc3NhZ2VTaWduUmVzcG9uc2UsXG4gIEJ0Y1NpZ25SZXNwb25zZSxcbiAgQmxvYlNpZ25SZXNwb25zZSxcbiAgQXZhU2lnblJlc3BvbnNlLFxuICBFdGgyVW5zdGFrZVJlc3BvbnNlLFxuICBFdGgyU2lnblJlc3BvbnNlLFxuICBFaXAxOTFPcjcxMlNpZ25SZXNwb25zZSxcbiAgUHNidFNpZ25SZXF1ZXN0LFxuICBQc2J0U2lnblJlc3BvbnNlLFxuICBEaWZmaWVIZWxsbWFuUmVxdWVzdCxcbiAgRGlmZmllSGVsbG1hblJlc3BvbnNlLFxufSBmcm9tIFwiLi9zY2hlbWFfdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQXBpQ2xpZW50LFxuICBBdmFDaGFpbixcbiAgQmFieWxvblJlZ2lzdHJhdGlvblJlcXVlc3QsXG4gIEJhYnlsb25SZWdpc3RyYXRpb25SZXNwb25zZSxcbiAgQmFieWxvblN0YWtpbmdSZXF1ZXN0LFxuICBCYWJ5bG9uU3Rha2luZ1Jlc3BvbnNlLFxuICBCdGNNZXNzYWdlU2lnblJlcXVlc3QsXG4gIEN1YmVTaWduZXJSZXNwb25zZSxcbiAgRW1wdHksXG4gIEVyclJlc3BvbnNlLFxuICBIaXN0b3JpY2FsVHgsXG4gIEpzb25WYWx1ZSxcbiAgTWZhUmVjZWlwdHMsXG4gIFN1aVNpZ25SZXF1ZXN0LFxuICBTdWlTaWduUmVzcG9uc2UsXG59IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBDdWJlU2lnbmVyQ2xpZW50LCBkZWxheSB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBsb2FkU3VidGxlQ3J5cHRvIH0gZnJvbSBcIi4vdXNlcl9leHBvcnRcIjtcbmltcG9ydCB7IGVuY29kZVRvSGV4LCBlbmNvZGVUb0Jhc2U2NCB9IGZyb20gXCIuL3V0aWxcIjtcblxuLyoqIFNlY3AyNTZrMSBrZXkgdHlwZSAqL1xuZXhwb3J0IGVudW0gU2VjcDI1NmsxIHtcbiAgRXZtID0gXCJTZWNwRXRoQWRkclwiLFxuICBCdGMgPSBcIlNlY3BCdGNcIixcbiAgQnRjVGVzdCA9IFwiU2VjcEJ0Y1Rlc3RcIixcbiAgTHRjID0gXCJTZWNwTHRjXCIsXG4gIEx0Y1Rlc3QgPSBcIlNlY3BMdGNUZXN0XCIsXG4gIFhycCA9IFwiU2VjcFhycEFkZHJcIixcbiAgQ29zbW9zID0gXCJTZWNwQ29zbW9zQWRkclwiLFxuICBUYXByb290ID0gXCJUYXByb290QnRjXCIsXG4gIFRhcHJvb3RUZXN0ID0gXCJUYXByb290QnRjVGVzdFwiLFxuICBCYWJ5bG9uRW90cyA9IFwiQmFieWxvbkVvdHNcIixcbiAgQmFieWxvbkNvdiA9IFwiQmFieWxvbkNvdlwiLFxuICBBdmEgPSBcIlNlY3BBdmFBZGRyXCIsXG4gIEF2YVRlc3QgPSBcIlNlY3BBdmFUZXN0QWRkclwiLFxuICBUcm9uID0gXCJTZWNwVHJvbkFkZHJcIixcbiAgQnRjTGVnYWN5ID0gXCJTZWNwQnRjTGVnYWN5XCIsXG4gIEJ0Y0xlZ2FjeVRlc3QgPSBcIlNlY3BCdGNMZWdhY3lUZXN0XCIsXG4gIERvZ2UgPSBcIlNlY3BEb2dlQWRkclwiLFxuICBEb2dlVGVzdCA9IFwiU2VjcERvZ2VUZXN0QWRkclwiLFxuICBLYXNwYSA9IFwiU2VjcEthc3BhQWRkclwiLFxuICBLYXNwYVRlc3QgPSBcIlNlY3BLYXNwYVRlc3RBZGRyXCIsXG4gIEthc3BhU2Nobm9yciA9IFwiU2Nobm9yckthc3BhQWRkclwiLFxuICBLYXNwYVRlc3RTY2hub3JyID0gXCJTY2hub3JyS2FzcGFUZXN0QWRkclwiLFxufVxuXG4vKiogQkxTIGtleSB0eXBlICovXG5leHBvcnQgZW51bSBCbHMge1xuICBFdGgyRGVwb3NpdGVkID0gXCJCbHNQdWJcIixcbiAgRXRoMkluYWN0aXZlID0gXCJCbHNJbmFjdGl2ZVwiLFxuICBBdmFJY20gPSBcIkJsc0F2YUljbVwiLFxufVxuXG4vKiogRWQyNTUxOSBrZXkgdHlwZSAqL1xuZXhwb3J0IGVudW0gRWQyNTUxOSB7XG4gIFNvbGFuYSA9IFwiRWQyNTUxOVNvbGFuYUFkZHJcIixcbiAgU3VpID0gXCJFZDI1NTE5U3VpQWRkclwiLFxuICBBcHRvcyA9IFwiRWQyNTUxOUFwdG9zQWRkclwiLFxuICBDYXJkYW5vID0gXCJFZDI1NTE5Q2FyZGFub0FkZHJWa1wiLFxuICBTdGVsbGFyID0gXCJFZDI1NTE5U3RlbGxhckFkZHJcIixcbiAgU3Vic3RyYXRlID0gXCJFZDI1NTE5U3Vic3RyYXRlQWRkclwiLFxuICBUZW5kZXJtaW50ID0gXCJFZDI1NTE5VGVuZGVybWludEFkZHJcIixcbiAgVG9uID0gXCJFZDI1NTE5VG9uQWRkclwiLFxuICBYcnAgPSBcIkVkMjU1MTlYcnBBZGRyXCIsXG59XG5cbi8qKiBQMjU2IGtleSB0eXBlICovXG5leHBvcnQgZW51bSBQMjU2IHtcbiAgQ29zbW9zID0gXCJQMjU2Q29zbW9zQWRkclwiLFxuICBPbnRvbG9neSA9IFwiUDI1Nk9udG9sb2d5QWRkclwiLFxuICBOZW8zID0gXCJQMjU2TmVvM0FkZHJcIixcbn1cblxuLyoqIE1uZW1vbmljIGtleSB0eXBlICovXG5leHBvcnQgY29uc3QgTW5lbW9uaWMgPSBcIk1uZW1vbmljXCIgYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBNbmVtb25pYyA9IHR5cGVvZiBNbmVtb25pYztcblxuLyoqIFN0YXJrIGtleSB0eXBlICovXG5leHBvcnQgY29uc3QgU3RhcmsgPSBcIlN0YXJrXCIgYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdGFyayA9IHR5cGVvZiBTdGFyaztcblxuLyoqIEJhYnkgSnVianViIGtleSB0eXBlICovXG5leHBvcnQgY29uc3QgQmFieUp1Ymp1YiA9IFwiQmFieUp1Ymp1YlwiIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQmFieUp1Ymp1YiA9IHR5cGVvZiBCYWJ5SnVianViO1xuXG4vKiogS2V5IHR5cGUgKi9cbmV4cG9ydCB0eXBlIEtleVR5cGUgPSBTZWNwMjU2azEgfCBCbHMgfCBFZDI1NTE5IHwgTW5lbW9uaWMgfCBTdGFyayB8IFAyNTYgfCBCYWJ5SnVianViO1xuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYSBzaWduaW5nIGtleS5cbiAqL1xuZXhwb3J0IGNsYXNzIEtleSB7XG4gIC8qKiBUaGUgQ3ViZVNpZ25lciBpbnN0YW5jZSB0aGF0IHRoaXMga2V5IGlzIGFzc29jaWF0ZWQgd2l0aCAqL1xuICByZWFkb25seSAjYXBpQ2xpZW50OiBBcGlDbGllbnQ7XG5cbiAgLyoqIEByZXR1cm5zIFRoZSBvcmdhbml6YXRpb24gdGhhdCB0aGlzIGtleSBpcyBpbiAqL1xuICBnZXQgb3JnSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2FwaUNsaWVudC5zZXNzaW9uTWV0YS5vcmdfaWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBrZXk6IFwiS2V5I1wiIGZvbGxvd2VkIGJ5IGEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG9cbiAgICogdGhlIHR5cGUgb2Yga2V5IChzdWNoIGFzIGEgcHVibGljIGtleSBmb3IgQkxTIG9yIGFuIGV0aGVyZXVtIGFkZHJlc3MgZm9yIFNlY3ApXG4gICAqXG4gICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG8gdGhlIHR5cGUgb2Yga2V5LCBzdWNoIGFzIGEgcHVibGljIGtleSBvciBhbiBldGhlcmV1bSBhZGRyZXNzXG4gICAqXG4gICAqIEBleGFtcGxlIDB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgKi9cbiAgcmVhZG9ubHkgbWF0ZXJpYWxJZCE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkLCBzZXJpYWxpemVkIHB1YmxpYyBrZXkuIFRoZSBmb3JtYXQgdXNlZCBkZXBlbmRzIG9uIHRoZSBrZXkgdHlwZTpcbiAgICogLSBzZWNwMjU2azEga2V5cyB1c2UgNjUtYnl0ZSB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXRcbiAgICogLSBCTFMga2V5cyB1c2UgNDgtYnl0ZSBjb21wcmVzc2VkIEJMUzEyLTM4MSAoWkNhc2gpIGZvcm1hdFxuICAgKiBAZXhhbXBsZSAweDA0ZDI2ODhiNmJjMmNlN2Y5ODc5YjllNzQ1ZjNjNGRjMTc3OTA4YzVjZWYwYzFiNjRjZmYxOWFlN2ZmMjdkZWU2MjNjNjRmZTlkOWMzMjVjN2ZiYmM3NDhiYmQ1ZjYwN2NlMTRkZDgzZTI4ZWJiYmI3ZDNlN2YyZmZiNzBhNzk0MzFcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0tleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNhY2hlZCBwcm9wZXJ0aWVzIG9mIHRoaXMga2V5LiBUaGUgY2FjaGVkIHByb3BlcnRpZXMgcmVmbGVjdCB0aGVcbiAgICogc3RhdGUgb2YgdGhlIGxhc3QgZmV0Y2ggb3IgdXBkYXRlIChlLmcuLCBhZnRlciBhd2FpdGluZyBgS2V5LmVuYWJsZWQoKWBcbiAgICogb3IgYEtleS5kaXNhYmxlKClgKS5cbiAgICovXG4gIGNhY2hlZDogS2V5SW5mbztcblxuICAvKiogQHJldHVybnMgVGhlIHR5cGUgb2Yga2V5LiAqL1xuICBhc3luYyB0eXBlKCk6IFByb21pc2U8S2V5VHlwZT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIGZyb21TY2hlbWFLZXlUeXBlKGRhdGEua2V5X3R5cGUpO1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkICovXG4gIGFzeW5jIGVuYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2goKTtcbiAgICByZXR1cm4gZGF0YS5lbmFibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIGlmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqL1xuICBhc3luYyBlbmFibGUobWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGUoeyBlbmFibGVkOiB0cnVlIH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBpZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgZGlzYWJsZShtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZSh7IGVuYWJsZWQ6IGZhbHNlIH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgcm9sZXMgdGhpcyBrZXkgaXMgaW4uXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlIE9wdGlvbmFsIHBhZ2luYXRpb24gb3B0aW9uczsgYnkgZGVmYXVsdCwgcmV0cmlldmVzIGFsbCByb2xlcyB0aGlzIGtleSBpcyBpbi5cbiAgICogQHJldHVybnMgUm9sZXMgdGhpcyBrZXkgaXMgaW4uXG4gICAqL1xuICBhc3luYyByb2xlcyhwYWdlPzogUGFnZU9wdHMpOiBQcm9taXNlPEtleUluUm9sZUluZm9bXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQua2V5Um9sZXNMaXN0KHRoaXMuaWQsIHBhZ2UpLmZldGNoKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBoaXN0b3JpY2FsIHRyYW5zYWN0aW9ucyBmb3IgdGhpcyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlIE9wdGlvbmFsIHBhZ2luYXRpb24gb3B0aW9uczsgYnkgZGVmYXVsdCwgcmV0cmlldmVzIGFsbCBoaXN0b3JpY2FsIHRyYW5zYWN0aW9ucyBmb3IgdGhpcyBrZXkuXG4gICAqIEByZXR1cm5zIEhpc3RvcmljYWwga2V5IHRyYW5zYWN0aW9ucy5cbiAgICovXG4gIGFzeW5jIGhpc3RvcnkocGFnZT86IFBhZ2VPcHRzKTogUHJvbWlzZTxIaXN0b3JpY2FsVHhbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQua2V5SGlzdG9yeSh0aGlzLmlkLCBwYWdlKS5mZXRjaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgcG9saWN5IChvdmVyd3JpdGluZyBhbnkgcG9saWNpZXMgcHJldmlvdXNseSBzZXQgZm9yIHRoaXMga2V5KVxuICAgKlxuICAgKiBAcGFyYW0gcG9saWN5IFRoZSBuZXcgcG9saWN5IHRvIHNldFxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIGlmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqL1xuICBhc3luYyBzZXRQb2xpY3kocG9saWN5OiBLZXlQb2xpY3ksIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlKHsgcG9saWN5IH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBrZXkgbWV0YWRhdGEuIFRoZSBtZXRhZGF0YSBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFyYWN0ZXJzXG4gICAqIGFuZCBtdXN0IG1hdGNoIHRoZSBmb2xsb3dpbmcgcmVnZXg6IF5bQS1aYS16MC05Xz0rLyBcXC1cXC5cXCxdezAsMTAyNH0kLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0YWRhdGEgVGhlIG5ldyBtZXRhZGF0YSB0byBzZXQuXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQga2V5IGluZm9cbiAgICovXG4gIGFzeW5jIHNldE1ldGFkYXRhKG1ldGFkYXRhOiBKc29uVmFsdWUsIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyk6IFByb21pc2U8S2V5SW5mbz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnVwZGF0ZSh7IG1ldGFkYXRhIH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgZXhpc3RpbmcgbWV0YWRhdGEsIGFzc2VydHMgdGhhdCBpdCBpcyBhbiBvYmplY3QgKHRocm93cyBpZiBpdCBpcyBub3QpLFxuICAgKiB0aGVuIHNldHMgdGhlIHZhbHVlIG9mIHRoZSB7QGxpbmsgbmFtZX0gcHJvcGVydHkgaW4gdGhhdCBvYmplY3QgdG8ge0BsaW5rIHZhbHVlfSxcbiAgICogYW5kIGZpbmFsbHkgc3VibWl0cyB0aGUgcmVxdWVzdCB0byB1cGRhdGUgdGhlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBUaGlzIHdob2xlIHByb2Nlc3MgaXMgZG9uZSBhdG9taWNhbGx5LCBtZWFuaW5nLCB0aGF0IGlmIHRoZSBtZXRhZGF0YSBjaGFuZ2VzIGJldHdlZW4gdGhlXG4gICAqIHRpbWUgdGhpcyBtZXRob2QgZmlyc3QgcmV0cmlldmVzIGl0IGFuZCB0aGUgdGltZSBpdCBzdWJtaXRzIGEgcmVxdWVzdCB0byB1cGRhdGUgaXQsIHRoZVxuICAgKiByZXF1ZXN0IHdpbGwgYmUgcmVqZWN0ZWQuIFdoZW4gdGhhdCBoYXBwZW5zLCB0aGlzIG1ldGhvZCB3aWxsIHJldHJ5IGEgZmV3IHRpbWVzLCBhcyBwZXJcbiAgICoge0BsaW5rIEFwaUNsaWVudC5jb25maWd9LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gc2V0XG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIGlmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqIEByZXR1cm5zIFVwZGF0ZWQga2V5IGluZm9ybWF0aW9uXG4gICAqL1xuICBhc3luYyBzZXRNZXRhZGF0YVByb3BlcnR5KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogSnNvblZhbHVlLFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxLZXlJbmZvPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI3NldE1ldGFkYXRhUHJvcGVydHkoXG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLiNhcGlDbGllbnQuY29uZmlnLnVwZGF0ZVJldHJ5RGVsYXlzTXMsXG4gICAgICBtZmFSZWNlaXB0LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBleGlzdGluZyBtZXRhZGF0YSwgYXNzZXJ0cyB0aGF0IGl0IGlzIGluIG9iamVjdCAodGhyb3dzIGlmIGl0IGlzIG5vdCksXG4gICAqIHRoZW4gZGVsZXRlcyB0aGUge0BsaW5rIG5hbWV9IHByb3BlcnR5IGluIHRoYXQgb2JqZWN0LCBhbmQgZmluYWxseSBzdWJtaXRzIHRoZVxuICAgKiByZXF1ZXN0IHRvIHVwZGF0ZSB0aGUgbWV0YWRhdGEuXG4gICAqXG4gICAqIFRoaXMgd2hvbGUgcHJvY2VzcyBpcyBkb25lIGF0b21pY2FsbHksIG1lYW5pbmcsIHRoYXQgaWYgdGhlIG1ldGFkYXRhIGNoYW5nZXMgYmV0d2VlbiB0aGVcbiAgICogdGltZSB0aGlzIG1ldGhvZCBmaXJzdCByZXRyaWV2ZXMgaXQgYW5kIHRoZSB0aW1lIGl0IHN1Ym1pdHMgYSByZXF1ZXN0IHRvIHVwZGF0ZSBpdCwgdGhlXG4gICAqIHJlcXVlc3Qgd2lsbCBiZSByZWplY3RlZC4gV2hlbiB0aGF0IGhhcHBlbnMsIHRoaXMgbWV0aG9kIHdpbGwgcmV0cnkgYSBmZXcgdGltZXMsIGFzIHBlclxuICAgKiB7QGxpbmsgQXBpQ2xpZW50LmNvbmZpZ30uXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXRcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBpZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBVcGRhdGVkIGtleSBpbmZvcm1hdGlvblxuICAgKi9cbiAgYXN5bmMgZGVsZXRlTWV0YWRhdGFQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyk6IFByb21pc2U8S2V5SW5mbz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNzZXRNZXRhZGF0YVByb3BlcnR5KFxuICAgICAgbmFtZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMuI2FwaUNsaWVudC5jb25maWcudXBkYXRlUmV0cnlEZWxheXNNcyxcbiAgICAgIG1mYVJlY2VpcHQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gc2V0XG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0gZGVsYXlzTXMgRGVsYXlzIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHJldHJpZXNcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBpZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBVcGRhdGVkIGtleSBpbmZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFzeW5jICNzZXRNZXRhZGF0YVByb3BlcnR5KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogSnNvblZhbHVlIHwgdW5kZWZpbmVkLFxuICAgIGRlbGF5c01zOiBudW1iZXJbXSxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8S2V5SW5mbz4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgY29uc3QgY3VycmVudCA9IGRhdGEubWV0YWRhdGEgPz8ge307XG4gICAgaWYgKHR5cGVvZiBjdXJyZW50ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDdXJyZW50IG1ldGFkYXRhIGlzIG5vdCBhIEpTT04gb2JqZWN0XCIpO1xuICAgIH1cbiAgICBjb25zdCB1cGRhdGVkID0ge1xuICAgICAgLi4uY3VycmVudCxcbiAgICAgIFtuYW1lXTogdmFsdWUsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlKFxuICAgICAgICB7XG4gICAgICAgICAgbWV0YWRhdGE6IHVwZGF0ZWQsXG4gICAgICAgICAgdmVyc2lvbjogZGF0YS52ZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgICBtZmFSZWNlaXB0LFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoKGUgYXMgRXJyUmVzcG9uc2UpLmVycm9yQ29kZSA9PT0gXCJJbnZhbGlkVXBkYXRlXCIgJiYgZGVsYXlzTXMubGVuZ3RoID4gMCkge1xuICAgICAgICBhd2FpdCBkZWxheShkZWxheXNNc1swXSk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLiNzZXRNZXRhZGF0YVByb3BlcnR5KG5hbWUsIHZhbHVlLCBkZWxheXNNcy5zbGljZSgxKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgdG8gZXhpc3Rpbmcga2V5IHBvbGljeS4gVGhpcyBhcHBlbmQgaXMgbm90IGF0b21pYyAtLSBpdCB1c2VzIHtAbGluayBwb2xpY3l9XG4gICAqIHRvIGZldGNoIHRoZSBjdXJyZW50IHBvbGljeSBhbmQgdGhlbiB7QGxpbmsgc2V0UG9saWN5fSB0byBzZXQgdGhlIHBvbGljeSAtLSBhbmRcbiAgICogc2hvdWxkIG5vdCBiZSB1c2VkIGluIGFjcm9zcyBjb25jdXJyZW50IHNlc3Npb25zLlxuICAgKlxuICAgKiBAcGFyYW0gcG9saWN5IFRoZSBwb2xpY3kgdG8gYXBwZW5kIHRvIHRoZSBleGlzdGluZyBvbmUuXG4gICAqL1xuICBhc3luYyBhcHBlbmRQb2xpY3kocG9saWN5OiBLZXlQb2xpY3kpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMucG9saWN5KCk7XG4gICAgYXdhaXQgdGhpcy5zZXRQb2xpY3koWy4uLmV4aXN0aW5nLCAuLi5wb2xpY3ldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBvbGljeSBmb3IgdGhlIGtleS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHBvbGljeSBmb3IgdGhlIGtleS5cbiAgICovXG4gIGFzeW5jIHBvbGljeSgpOiBQcm9taXNlPEtleVBvbGljeT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIChkYXRhLnBvbGljeSA/PyBbXSkgYXMgdW5rbm93biBhcyBLZXlQb2xpY3k7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggdGhlIG1ldGFkYXRhIGZvciB0aGUga2V5LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcG9saWN5IGZvciB0aGUga2V5LlxuICAgKi9cbiAgYXN5bmMgbWV0YWRhdGEoKTogUHJvbWlzZTxKc29uVmFsdWU+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mZXRjaCgpO1xuICAgIHJldHVybiBkYXRhLm1ldGFkYXRhIGFzIEpzb25WYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBUaGUgdXNlciBpZCBmb3IgdGhlIG93bmVyIG9mIHRoZSBrZXlcbiAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICovXG4gIGFzeW5jIG93bmVyKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2goKTtcbiAgICByZXR1cm4gZGF0YS5vd25lcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG93bmVyIG9mIHRoZSBrZXkuIE9ubHkgdGhlIGtleSAob3Igb3JnKSBvd25lciBjYW4gY2hhbmdlIHRoZSBvd25lciBvZiB0aGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0gb3duZXIgVGhlIHVzZXItaWQgb2YgdGhlIG5ldyBvd25lciBvZiB0aGUga2V5LlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIGlmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqL1xuICBhc3luYyBzZXRPd25lcihvd25lcjogc3RyaW5nLCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZSh7IG93bmVyIH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGlzIGtleS5cbiAgICpcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgQSByZXNwb25zZSB3aGljaCBjYW4gYmUgdXNlZCB0byBhcHByb3ZlIE1GQSBpZiBuZWVkZWRcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxFbXB0eT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LmtleURlbGV0ZSh0aGlzLmlkLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tIElOVEVSTkFMIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBjbGllbnQgVGhlIEFQSSBjbGllbnQgdG8gdXNlLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgSlNPTiByZXNwb25zZSBmcm9tIHRoZSBBUEkgc2VydmVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogQXBpQ2xpZW50IHwgQ3ViZVNpZ25lckNsaWVudCwgZGF0YTogS2V5SW5mbykge1xuICAgIHRoaXMuI2FwaUNsaWVudCA9IGNsaWVudCBpbnN0YW5jZW9mIEN1YmVTaWduZXJDbGllbnQgPyBjbGllbnQuYXBpQ2xpZW50IDogY2xpZW50O1xuICAgIHRoaXMuaWQgPSBkYXRhLmtleV9pZDtcbiAgICB0aGlzLm1hdGVyaWFsSWQgPSBkYXRhLm1hdGVyaWFsX2lkO1xuICAgIHRoaXMucHVibGljS2V5ID0gZGF0YS5wdWJsaWNfa2V5O1xuICAgIHRoaXMuY2FjaGVkID0gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGFuIEVWTSB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBXaGF0IHRvIHNpZ24uXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpLlxuICAgKiBAcmV0dXJucyBTaWduYXR1cmUgKG9yIE1GQSBhcHByb3ZhbCByZXF1ZXN0KS5cbiAgICovXG4gIGFzeW5jIHNpZ25Fdm0oXG4gICAgcmVxOiBFdm1TaWduUmVxdWVzdCxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEV2bVNpZ25SZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25Fdm0odGhpcywgcmVxLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgQmFieWxvbiBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFRoZSBzdGFraW5nIHRyYW5zYWN0aW9uIHRvIHNpZ25cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocykuXG4gICAqIEByZXR1cm5zIFNpZ25hdHVyZSAob3IgTUZBIGFwcHJvdmFsIHJlcXVlc3QpLlxuICAgKi9cbiAgYXN5bmMgc2lnbkJhYnlsb25TdGFraW5nVHhuKFxuICAgIHJlcTogQmFieWxvblN0YWtpbmdSZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8QmFieWxvblN0YWtpbmdSZXNwb25zZT4+IHtcbiAgICByZXR1cm4gdGhpcy4jYXBpQ2xpZW50LnNpZ25CYWJ5bG9uU3Rha2luZ1R4bih0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBCYWJ5bG9uIHJlZ2lzdHJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBUaGUgcmVnaXN0cmF0aW9uIHJlcXVlc3QgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKS5cbiAgICogQHJldHVybnMgQmFieWxvbiBzdGFraW5nIHJlZ2lzdHJhdGlvbiBkYXRhIChvciBNRkEgYXBwcm92YWwgcmVxdWVzdCkuXG4gICAqL1xuICBhc3luYyBzaWduQmFieWxvblJlZ2lzdHJhdGlvbihcbiAgICByZXE6IEJhYnlsb25SZWdpc3RyYXRpb25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8QmFieWxvblJlZ2lzdHJhdGlvblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiB0aGlzLiNhcGlDbGllbnQuc2lnbkJhYnlsb25SZWdpc3RyYXRpb24odGhpcywgcmVxLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIEVJUC0xOTEgdHlwZWQgZGF0YS5cbiAgICpcbiAgICogVGhpcyByZXF1aXJlcyB0aGUga2V5IHRvIGhhdmUgYSAnXCJBbGxvd0VpcDE5MVNpZ25pbmdcIicge0BsaW5rIEtleVBvbGljeX0uXG4gICAqXG4gICAqIEBwYXJhbSByZXEgV2hhdCB0byBzaWduXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIFNpZ25hdHVyZSAob3IgTUZBIGFwcHJvdmFsIHJlcXVlc3QpLlxuICAgKi9cbiAgYXN5bmMgc2lnbkVpcDE5MShcbiAgICByZXE6IEVpcDE5MVNpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RWlwMTkxT3I3MTJTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduRWlwMTkxKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBFSVAtNzEyIHR5cGVkIGRhdGEuXG4gICAqXG4gICAqIFRoaXMgcmVxdWlyZXMgdGhlIGtleSB0byBoYXZlIGEgJ1wiQWxsb3dFaXA3MTJTaWduaW5nXCInIHtAbGluayBLZXlQb2xpY3l9LlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBTaWduYXR1cmUgKG9yIE1GQSBhcHByb3ZhbCByZXF1ZXN0KS5cbiAgICovXG4gIGFzeW5jIHNpZ25FaXA3MTIoXG4gICAgcmVxOiBFaXA3MTJTaWduUmVxdWVzdCxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEVpcDE5MU9yNzEyU2lnblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2lnbkVpcDcxMih0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYW4gRXRoMi9CZWFjb24tY2hhaW4gdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnbi5cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgU2lnbmF0dXJlXG4gICAqL1xuICBhc3luYyBzaWduRXRoMihcbiAgICByZXE6IEV0aDJTaWduUmVxdWVzdCxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEV0aDJTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduRXRoMih0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYW4gRXRoMi9CZWFjb24tY2hhaW4gdW5zdGFrZS9leGl0IHJlcXVlc3QuXG4gICAqXG4gICAqIEBwYXJhbSByZXEgVGhlIHJlcXVlc3QgdG8gc2lnbi5cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlLlxuICAgKi9cbiAgYXN5bmMgdW5zdGFrZShcbiAgICByZXE6IEV0aDJVbnN0YWtlUmVxdWVzdCxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEV0aDJVbnN0YWtlUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduVW5zdGFrZSh0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYW4gQXZhbGFuY2hlIFAtIG9yIFgtY2hhaW4gbWVzc2FnZS5cbiAgICpcbiAgICogQHBhcmFtIHR4IEF2YWxhbmNoZSBtZXNzYWdlICh0cmFuc2FjdGlvbikgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICBhc3luYyBzaWduQXZhKHR4OiBBdmFUeCwgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8QXZhU2lnblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2lnbkF2YSh0aGlzLCB0eCwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIHNlcmlhbGl6ZWQgQXZhbGFuY2hlIEMtL1gtL1AtY2hhaW4gbWVzc2FnZS5cbiAgICpcbiAgICogQHBhcmFtIGF2YUNoYWluIEF2YWxhbmNoZSBjaGFpblxuICAgKiBAcGFyYW0gdHggSGV4IGVuY29kZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlLlxuICAgKi9cbiAgYXN5bmMgc2lnblNlcmlhbGl6ZWRBdmEoXG4gICAgYXZhQ2hhaW46IEF2YUNoYWluLFxuICAgIHR4OiBzdHJpbmcsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxBdmFTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduU2VyaWFsaXplZEF2YSh0aGlzLCBhdmFDaGFpbiwgdHgsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSByYXcgYmxvYi5cbiAgICpcbiAgICogVGhpcyByZXF1aXJlcyB0aGUga2V5IHRvIGhhdmUgYSAnXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCInIHtAbGluayBLZXlQb2xpY3l9LiBUaGlzIGlzIGJlY2F1c2VcbiAgICogc2lnbmluZyBhcmJpdHJhcnkgbWVzc2FnZXMgaXMsIGluIGdlbmVyYWwsIGRhbmdlcm91cyAoYW5kIHlvdSBzaG91bGQgaW5zdGVhZFxuICAgKiBwcmVmZXIgdHlwZWQgZW5kLXBvaW50cyBhcyB1c2VkIGJ5LCBmb3IgZXhhbXBsZSwge0BsaW5rIHNpZ25Fdm19KS4gRm9yIFNlY3AyNTZrMSBrZXlzLFxuICAgKiBmb3IgZXhhbXBsZSwgeW91ICoqbXVzdCoqIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIGEgbWVzc2FnZSB0aGF0IGlzIDMyIGJ5dGVzIGxvbmcgYW5kXG4gICAqIHRoZSBvdXRwdXQgb2YgYSBzZWN1cmUgaGFzaCBmdW5jdGlvbi5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHNpZ25hdHVyZXMgc2VyaWFsaXplZCBhcztcbiAgICpcbiAgICogLSBFQ0RTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGFzIGJpZy1lbmRpYW4gciBhbmQgcyBwbHVzIHJlY292ZXJ5LWlkXG4gICAqICAgIGJ5dGUgdiwgd2hpY2ggY2FuIGluIGdlbmVyYWwgdGFrZSBhbnkgb2YgdGhlIHZhbHVlcyAwLCAxLCAyLCBvciAzLlxuICAgKlxuICAgKiAtIEVkRFNBIHNpZ25hdHVyZXMgYXJlIHNlcmlhbGl6ZWQgaW4gdGhlIHN0YW5kYXJkIGZvcm1hdC5cbiAgICpcbiAgICogLSBCTFMgc2lnbmF0dXJlcyBhcmUgbm90IHN1cHBvcnRlZCBvbiB0aGUgYmxvYi1zaWduIGVuZHBvaW50LlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICBhc3luYyBzaWduQmxvYihcbiAgICByZXE6IEJsb2JTaWduUmVxdWVzdCxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEJsb2JTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduQmxvYih0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYSBEaWZmaWUtSGVsbG1hbiBleGNoYW5nZSB3aXRoIG9uZSBvciBtb3JlIHB1YmxpYyBrZXlzLlxuICAgKlxuICAgKiBUaGlzIHJlcXVpcmVzIHRoZSBrZXkgdG8gaGF2ZSBhICdcIkFsbG93RGlmZmllSGVsbG1hbkV4Y2hhbmdlXCInIHtAbGluayBLZXlQb2xpY3l9LlxuICAgKiBUaGlzIGlzIGJlY2F1c2UgcGVyZm9ybWluZyBhcmJpdHJhcnkgRGlmZmllLUhlbGxtYW4gZXhjaGFuZ2VzIHVzaW5nIHNpZ25pbmcga2V5c1xuICAgKiBpcywgaW4gZ2VuZXJhbCwgZGFuZ2Vyb3VzLiBZb3Ugc2hvdWxkIG9ubHkgdXNlIHRoaXMgQVBJIGlmIHlvdSBhcmUgMTAwJSBzdXJlIHRoYXRcbiAgICogeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmchXG4gICAqXG4gICAqIEBwYXJhbSBwb2ludHMgVXAgdG8gMzIgZWxsaXB0aWMgY3VydmUgcG9pbnRzIHdpdGggd2hpY2ggdG8gcGVyZm9ybSBEaWZmaWUtSGVsbG1hbiBleGNoYW5nZXMuIFRoZXNlIHBvaW50cyBtdXN0IGJlIHNlcmlhbGl6ZWQgaW4gYSBrZXktdHlwZS0tc3BlY2lmaWMgZm9ybWF0OyBzZWUgdGhlIEN1YmVTaWduZXIgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvLlxuICAgKiBAcGFyYW0gcHVibGljS2V5IFRoZSBOSVNUIFAtMjU2IHB1YmxpYyBrZXkgd2l0aCB3aGljaCB0aGUgcmVzcG9uc2VzIHdpbGwgYmUgZW5jcnlwdGVkLiBUaGlzIHNob3VsZCBiZSB0aGUgYHB1YmxpY0tleWAgcHJvcGVydHkgb2YgYSB2YWx1ZSByZXR1cm5lZCBieSBgdXNlckV4cG9ydEtleWdlbmAuXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuIE9uIHN1Y2Nlc3MsIHRoZSByZXN1bHQgY2FuIGJlIGRlY3J5cHRlZCB3aXRoIGBkaWZmaWVIZWxsbWFuRGVjcnlwdGAuXG4gICAqL1xuICBhc3luYyBkaWZmaWVIZWxsbWFuRXhjaGFuZ2UoXG4gICAgcG9pbnRzOiBVaW50OEFycmF5W10sXG4gICAgcHVibGljS2V5OiBDcnlwdG9LZXksXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxEaWZmaWVIZWxsbWFuUmVzcG9uc2U+PiB7XG4gICAgaWYgKHBvaW50cy5sZW5ndGggPiAzMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibWF4aW11bSAzMiBESCBleGNoYW5nZXMgcGVyIHJlcXVlc3RcIik7XG4gICAgfVxuXG4gICAgLy8gY29uc3RydWN0IHRoZSByZXF1ZXN0XG4gICAgY29uc3Qgc3VidGxlID0gYXdhaXQgbG9hZFN1YnRsZUNyeXB0bygpO1xuICAgIGNvbnN0IHJlcTogRGlmZmllSGVsbG1hblJlcXVlc3QgPSB7XG4gICAgICBwb2ludHM6IHBvaW50cy5tYXAoKHB0KSA9PiBlbmNvZGVUb0Jhc2U2NChCdWZmZXIuZnJvbShwdCkpKSxcbiAgICAgIHB1YmxpY19rZXk6IGVuY29kZVRvQmFzZTY0KEJ1ZmZlci5mcm9tKGF3YWl0IHN1YnRsZS5leHBvcnRLZXkoXCJyYXdcIiwgcHVibGljS2V5KSkpLFxuICAgIH07XG5cbiAgICAvLyBzZW5kXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5kaWZmaWVIZWxsbWFuRXhjaGFuZ2UodGhpcywgcmVxLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgQml0Y29pbiB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBXaGF0IHRvIHNpZ25cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlLlxuICAgKi9cbiAgYXN5bmMgc2lnbkJ0YyhcbiAgICByZXE6IEJ0Y1NpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8QnRjU2lnblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2lnbkJ0Yyh0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBQU0JULlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2VcbiAgICovXG4gIGFzeW5jIHNpZ25Qc2J0KFxuICAgIHJlcTogUHNidFNpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8UHNidFNpZ25SZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25Qc2J0KHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIEJpdGNvaW4gbWVzc2FnZS5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBUaGUgbWVzc2FnZSB0byBzaWduXG4gICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIHRoaXMgcmVxdWVzdFxuICAgKiBAcGFyYW0gb3B0cy5wMnNoIElmIHRoaXMgaXMgYSBzZWd3aXQga2V5IGFuZCBwMnNoIGlzIHRydWUsIHNpZ24gYXMgcDJzaC1wMndwa2ggaW5zdGVhZCBvZiBwMndwa2guIERlZmF1bHRzIHRvIGZhbHNlIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAqIEBwYXJhbSBvcHRzLm1ldGFkYXRhIE9wdGlvbmFsIGFyYml0cmFyeSBKU09OIG1ldGFkYXRhXG4gICAqIEBwYXJhbSBvcHRzLm1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlXG4gICAqL1xuICBhc3luYyBzaWduQnRjTWVzc2FnZShcbiAgICByZXE6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsXG4gICAgb3B0czogeyBwMnNoPzogYm9vbGVhbjsgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzOyBtZXRhZGF0YT86IHVua25vd24gfSxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8QnRjTWVzc2FnZVNpZ25SZXNwb25zZT4+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBCdGNNZXNzYWdlU2lnblJlcXVlc3QgPSB7XG4gICAgICBkYXRhOiBlbmNvZGVUb0hleChyZXEpLFxuICAgICAgaXNfcDJzaDogb3B0cy5wMnNoID8/IGZhbHNlLFxuICAgICAgbWV0YWRhdGE6IG9wdHMubWV0YWRhdGEsXG4gICAgfTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25CdGNNZXNzYWdlKHRoaXMsIHJlcXVlc3QsIG9wdHMubWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIFNvbGFuYSBtZXNzYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICBhc3luYyBzaWduU29sYW5hKFxuICAgIHJlcTogU29sYW5hU2lnblJlcXVlc3QsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxTb2xhbmFTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduU29sYW5hKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIFNVSSB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBXaGF0IHRvIHNpZ25cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlLlxuICAgKi9cbiAgYXN5bmMgc2lnblN1aShcbiAgICByZXE6IFN1aVNpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8U3VpU2lnblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2lnblN1aSh0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSlNPTiByZXF1ZXN0IHRvIHNlbmQgdG8gdGhlIEFQSSBzZXJ2ZXIuXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIFRoZSBKU09OIHJlc3BvbnNlIGZyb20gdGhlIEFQSSBzZXJ2ZXIuXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyBNRkEgcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGUocmVxdWVzdDogVXBkYXRlS2V5UmVxdWVzdCwgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKTogUHJvbWlzZTxLZXlJbmZvPiB7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuI2FwaUNsaWVudC5rZXlVcGRhdGUodGhpcy5pZCwgcmVxdWVzdCwgbWZhUmVjZWlwdCk7XG4gICAgdGhpcy5jYWNoZWQgPSByZXNwLmRhdGEoKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZWQ7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggdGhlIGtleSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGtleSBpbmZvcm1hdGlvbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGZldGNoKCk6IFByb21pc2U8S2V5SW5mbz4ge1xuICAgIHRoaXMuY2FjaGVkID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LmtleUdldCh0aGlzLmlkKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc2NoZW1hIGtleSB0eXBlIHRvIGEga2V5IHR5cGUuXG4gKlxuICogQHBhcmFtIHR5IFRoZSBzY2hlbWEga2V5IHR5cGUuXG4gKiBAcmV0dXJucyBUaGUga2V5IHR5cGUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21TY2hlbWFLZXlUeXBlKHR5OiBTY2hlbWFLZXlUeXBlKTogS2V5VHlwZSB7XG4gIHN3aXRjaCAodHkpIHtcbiAgICBjYXNlIFwiU2VjcEV0aEFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuRXZtO1xuICAgIGNhc2UgXCJTZWNwQ29zbW9zQWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5Db3Ntb3M7XG4gICAgY2FzZSBcIlNlY3BCdGNcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuQnRjO1xuICAgIGNhc2UgXCJTZWNwQnRjVGVzdFwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5CdGNUZXN0O1xuICAgIGNhc2UgXCJTZWNwQnRjTGVnYWN5XCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkJ0Y0xlZ2FjeTtcbiAgICBjYXNlIFwiU2VjcEJ0Y0xlZ2FjeVRlc3RcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuQnRjTGVnYWN5VGVzdDtcbiAgICBjYXNlIFwiU2VjcEF2YUFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuQXZhO1xuICAgIGNhc2UgXCJTZWNwQXZhVGVzdEFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuQXZhVGVzdDtcbiAgICBjYXNlIFwiQmFieWxvbkVvdHNcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuQmFieWxvbkVvdHM7XG4gICAgY2FzZSBcIkJhYnlsb25Db3ZcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuQmFieWxvbkVvdHM7XG4gICAgY2FzZSBcIlRhcHJvb3RCdGNcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuVGFwcm9vdDtcbiAgICBjYXNlIFwiVGFwcm9vdEJ0Y1Rlc3RcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuVGFwcm9vdFRlc3Q7XG4gICAgY2FzZSBcIlNlY3BUcm9uQWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5Ucm9uO1xuICAgIGNhc2UgXCJTZWNwRG9nZUFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuRG9nZTtcbiAgICBjYXNlIFwiU2VjcERvZ2VUZXN0QWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5Eb2dlVGVzdDtcbiAgICBjYXNlIFwiU2VjcEthc3BhQWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5LYXNwYTtcbiAgICBjYXNlIFwiU2VjcEthc3BhVGVzdEFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuS2FzcGFUZXN0O1xuICAgIGNhc2UgXCJTY2hub3JyS2FzcGFBZGRyXCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkthc3BhU2Nobm9ycjtcbiAgICBjYXNlIFwiU2Nobm9yckthc3BhVGVzdEFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuS2FzcGFUZXN0U2Nobm9ycjtcbiAgICBjYXNlIFwiQmxzUHViXCI6XG4gICAgICByZXR1cm4gQmxzLkV0aDJEZXBvc2l0ZWQ7XG4gICAgY2FzZSBcIkJsc0luYWN0aXZlXCI6XG4gICAgICByZXR1cm4gQmxzLkV0aDJJbmFjdGl2ZTtcbiAgICBjYXNlIFwiQmxzQXZhSWNtXCI6XG4gICAgICByZXR1cm4gQmxzLkF2YUljbTtcbiAgICBjYXNlIFwiRWQyNTUxOVNvbGFuYUFkZHJcIjpcbiAgICAgIHJldHVybiBFZDI1NTE5LlNvbGFuYTtcbiAgICBjYXNlIFwiRWQyNTUxOVN1aUFkZHJcIjpcbiAgICAgIHJldHVybiBFZDI1NTE5LlN1aTtcbiAgICBjYXNlIFwiRWQyNTUxOUFwdG9zQWRkclwiOlxuICAgICAgcmV0dXJuIEVkMjU1MTkuQXB0b3M7XG4gICAgY2FzZSBcIkVkMjU1MTlDYXJkYW5vQWRkclZrXCI6XG4gICAgICByZXR1cm4gRWQyNTUxOS5DYXJkYW5vO1xuICAgIGNhc2UgXCJFZDI1NTE5U3RlbGxhckFkZHJcIjpcbiAgICAgIHJldHVybiBFZDI1NTE5LlN0ZWxsYXI7XG4gICAgY2FzZSBcIkVkMjU1MTlTdWJzdHJhdGVBZGRyXCI6XG4gICAgICByZXR1cm4gRWQyNTUxOS5TdWJzdHJhdGU7XG4gICAgY2FzZSBcIkVkMjU1MTlUZW5kZXJtaW50QWRkclwiOlxuICAgICAgcmV0dXJuIEVkMjU1MTkuVGVuZGVybWludDtcbiAgICBjYXNlIFwiRWQyNTUxOVRvbkFkZHJcIjpcbiAgICAgIHJldHVybiBFZDI1NTE5LlRvbjtcbiAgICBjYXNlIFwiU3RhcmtcIjpcbiAgICAgIHJldHVybiBTdGFyaztcbiAgICBjYXNlIFwiTW5lbW9uaWNcIjpcbiAgICAgIHJldHVybiBNbmVtb25pYztcbiAgICBjYXNlIFwiUDI1NkNvc21vc0FkZHJcIjpcbiAgICAgIHJldHVybiBQMjU2LkNvc21vcztcbiAgICBjYXNlIFwiUDI1Nk9udG9sb2d5QWRkclwiOlxuICAgICAgcmV0dXJuIFAyNTYuT250b2xvZ3k7XG4gICAgY2FzZSBcIlAyNTZOZW8zQWRkclwiOlxuICAgICAgcmV0dXJuIFAyNTYuTmVvMztcbiAgICBjYXNlIFwiU2VjcEx0Y1wiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5MdGM7XG4gICAgY2FzZSBcIlNlY3BMdGNUZXN0XCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkx0Y1Rlc3Q7XG4gICAgY2FzZSBcIlNlY3BYcnBBZGRyXCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLlhycDtcbiAgICBjYXNlIFwiRWQyNTUxOVhycEFkZHJcIjpcbiAgICAgIHJldHVybiBFZDI1NTE5LlhycDtcbiAgICBjYXNlIFwiQmFieUp1Ymp1YlwiOlxuICAgICAgcmV0dXJuIEJhYnlKdWJqdWI7XG4gICAgLy8gTk9URTogaWYgeW91IGFyZSBhZGRpbmcgYSBuZXcga2V5IHR5cGUsIHVwZGF0ZSB0aGUgYGNyZWF0ZSAke2tleVR5cGV9IGtleWAgdGVzdCBpbiBrZXkudGVzdC50c1xuICB9XG59XG4iXX0=
|
|
647
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFvdUJBLDhDQW9GQztBQXh3QkQsd0JBQTRDO0FBQzVDLCtDQUFpRDtBQUNqRCxpQ0FBcUQ7QUFFckQseUJBQXlCO0FBQ3pCLElBQVksU0F1Qlg7QUF2QkQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7SUFDZixvQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBZSxDQUFBO0lBQ2Ysb0NBQXVCLENBQUE7SUFDdkIsZ0NBQW1CLENBQUE7SUFDbkIsc0NBQXlCLENBQUE7SUFDekIsbUNBQXNCLENBQUE7SUFDdEIsMkNBQThCLENBQUE7SUFDOUIsd0NBQTJCLENBQUE7SUFDM0Isc0NBQXlCLENBQUE7SUFDekIsZ0NBQW1CLENBQUE7SUFDbkIsd0NBQTJCLENBQUE7SUFDM0Isa0NBQXFCLENBQUE7SUFDckIsd0NBQTJCLENBQUE7SUFDM0IsZ0RBQW1DLENBQUE7SUFDbkMsa0NBQXFCLENBQUE7SUFDckIsMENBQTZCLENBQUE7SUFDN0Isb0NBQXVCLENBQUE7SUFDdkIsNENBQStCLENBQUE7SUFDL0IsOENBQWlDLENBQUE7SUFDakMsc0RBQXlDLENBQUE7QUFDM0MsQ0FBQyxFQXZCVyxTQUFTLHlCQUFULFNBQVMsUUF1QnBCO0FBRUQsbUJBQW1CO0FBQ25CLElBQVksR0FJWDtBQUpELFdBQVksR0FBRztJQUNiLCtCQUF3QixDQUFBO0lBQ3hCLG1DQUE0QixDQUFBO0lBQzVCLDJCQUFvQixDQUFBO0FBQ3RCLENBQUMsRUFKVyxHQUFHLG1CQUFILEdBQUcsUUFJZDtBQUVELHVCQUF1QjtBQUN2QixJQUFZLE9BVVg7QUFWRCxXQUFZLE9BQU87SUFDakIsdUNBQTRCLENBQUE7SUFDNUIsaUNBQXNCLENBQUE7SUFDdEIscUNBQTBCLENBQUE7SUFDMUIsMkNBQWdDLENBQUE7SUFDaEMs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LENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBLZXlQb2xpY3kgfSBmcm9tIFwiLi9yb2xlXCI7XG5pbXBvcnQgdHlwZSB7IFBhZ2VPcHRzIH0gZnJvbSBcIi4vcGFnaW5hdG9yXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEtleUluZm8sXG4gIFVwZGF0ZUtleVJlcXVlc3QsXG4gIFNjaGVtYUtleVR5cGUsXG4gIEtleUluUm9sZUluZm8sXG4gIEV2bVNpZ25SZXF1ZXN0LFxuICBFdm1TaWduUmVzcG9uc2UsXG4gIEVpcDE5MVNpZ25SZXF1ZXN0LFxuICBFaXA3MTJTaWduUmVxdWVzdCxcbiAgRXRoMlNpZ25SZXF1ZXN0LFxuICBFdGgyVW5zdGFrZVJlcXVlc3QsXG4gIEF2YVR4LFxuICBCbG9iU2lnblJlcXVlc3QsXG4gIEJ0Y1NpZ25SZXF1ZXN0LFxuICBTb2xhbmFTaWduUmVxdWVzdCxcbiAgU29sYW5hU2lnblJlc3BvbnNlLFxuICBCdGNNZXNzYWdlU2lnblJlc3BvbnNlLFxuICBCdGNTaWduUmVzcG9uc2UsXG4gIEJsb2JTaWduUmVzcG9uc2UsXG4gIEF2YVNpZ25SZXNwb25zZSxcbiAgRXRoMlVuc3Rha2VSZXNwb25zZSxcbiAgRXRoMlNpZ25SZXNwb25zZSxcbiAgRWlwMTkxT3I3MTJTaWduUmVzcG9uc2UsXG4gIFBzYnRTaWduUmVxdWVzdCxcbiAgUHNidFNpZ25SZXNwb25zZSxcbiAgRGlmZmllSGVsbG1hblJlcXVlc3QsXG4gIERpZmZpZUhlbGxtYW5SZXNwb25zZSxcbn0gZnJvbSBcIi4vc2NoZW1hX3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFwaUNsaWVudCxcbiAgQXZhQ2hhaW4sXG4gIEJhYnlsb25SZWdpc3RyYXRpb25SZXF1ZXN0LFxuICBCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2UsXG4gIEJhYnlsb25TdGFraW5nUmVxdWVzdCxcbiAgQmFieWxvblN0YWtpbmdSZXNwb25zZSxcbiAgQnRjTWVzc2FnZVNpZ25SZXF1ZXN0LFxuICBDdWJlU2lnbmVyUmVzcG9uc2UsXG4gIEVkaXRQb2xpY3ksXG4gIEVtcHR5LFxuICBFcnJSZXNwb25zZSxcbiAgSGlzdG9yaWNhbFR4LFxuICBKc29uVmFsdWUsXG4gIE1mYVJlY2VpcHRzLFxuICBTdWlTaWduUmVxdWVzdCxcbiAgU3VpU2lnblJlc3BvbnNlLFxufSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgQ3ViZVNpZ25lckNsaWVudCwgZGVsYXkgfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgbG9hZFN1YnRsZUNyeXB0byB9IGZyb20gXCIuL3VzZXJfZXhwb3J0XCI7XG5pbXBvcnQgeyBlbmNvZGVUb0hleCwgZW5jb2RlVG9CYXNlNjQgfSBmcm9tIFwiLi91dGlsXCI7XG5cbi8qKiBTZWNwMjU2azEga2V5IHR5cGUgKi9cbmV4cG9ydCBlbnVtIFNlY3AyNTZrMSB7XG4gIEV2bSA9IFwiU2VjcEV0aEFkZHJcIixcbiAgQnRjID0gXCJTZWNwQnRjXCIsXG4gIEJ0Y1Rlc3QgPSBcIlNlY3BCdGNUZXN0XCIsXG4gIEx0YyA9IFwiU2VjcEx0Y1wiLFxuICBMdGNUZXN0ID0gXCJTZWNwTHRjVGVzdFwiLFxuICBYcnAgPSBcIlNlY3BYcnBBZGRyXCIsXG4gIENvc21vcyA9IFwiU2VjcENvc21vc0FkZHJcIixcbiAgVGFwcm9vdCA9IFwiVGFwcm9vdEJ0Y1wiLFxuICBUYXByb290VGVzdCA9IFwiVGFwcm9vdEJ0Y1Rlc3RcIixcbiAgQmFieWxvbkVvdHMgPSBcIkJhYnlsb25Fb3RzXCIsXG4gIEJhYnlsb25Db3YgPSBcIkJhYnlsb25Db3ZcIixcbiAgQXZhID0gXCJTZWNwQXZhQWRkclwiLFxuICBBdmFUZXN0ID0gXCJTZWNwQXZhVGVzdEFkZHJcIixcbiAgVHJvbiA9IFwiU2VjcFRyb25BZGRyXCIsXG4gIEJ0Y0xlZ2FjeSA9IFwiU2VjcEJ0Y0xlZ2FjeVwiLFxuICBCdGNMZWdhY3lUZXN0ID0gXCJTZWNwQnRjTGVnYWN5VGVzdFwiLFxuICBEb2dlID0gXCJTZWNwRG9nZUFkZHJcIixcbiAgRG9nZVRlc3QgPSBcIlNlY3BEb2dlVGVzdEFkZHJcIixcbiAgS2FzcGEgPSBcIlNlY3BLYXNwYUFkZHJcIixcbiAgS2FzcGFUZXN0ID0gXCJTZWNwS2FzcGFUZXN0QWRkclwiLFxuICBLYXNwYVNjaG5vcnIgPSBcIlNjaG5vcnJLYXNwYUFkZHJcIixcbiAgS2FzcGFUZXN0U2Nobm9yciA9IFwiU2Nobm9yckthc3BhVGVzdEFkZHJcIixcbn1cblxuLyoqIEJMUyBrZXkgdHlwZSAqL1xuZXhwb3J0IGVudW0gQmxzIHtcbiAgRXRoMkRlcG9zaXRlZCA9IFwiQmxzUHViXCIsXG4gIEV0aDJJbmFjdGl2ZSA9IFwiQmxzSW5hY3RpdmVcIixcbiAgQXZhSWNtID0gXCJCbHNBdmFJY21cIixcbn1cblxuLyoqIEVkMjU1MTkga2V5IHR5cGUgKi9cbmV4cG9ydCBlbnVtIEVkMjU1MTkge1xuICBTb2xhbmEgPSBcIkVkMjU1MTlTb2xhbmFBZGRyXCIsXG4gIFN1aSA9IFwiRWQyNTUxOVN1aUFkZHJcIixcbiAgQXB0b3MgPSBcIkVkMjU1MTlBcHRvc0FkZHJcIixcbiAgQ2FyZGFubyA9IFwiRWQyNTUxOUNhcmRhbm9BZGRyVmtcIixcbiAgU3RlbGxhciA9IFwiRWQyNTUxOVN0ZWxsYXJBZGRyXCIsXG4gIFN1YnN0cmF0ZSA9IFwiRWQyNTUxOVN1YnN0cmF0ZUFkZHJcIixcbiAgVGVuZGVybWludCA9IFwiRWQyNTUxOVRlbmRlcm1pbnRBZGRyXCIsXG4gIFRvbiA9IFwiRWQyNTUxOVRvbkFkZHJcIixcbiAgWHJwID0gXCJFZDI1NTE5WHJwQWRkclwiLFxufVxuXG4vKiogUDI1NiBrZXkgdHlwZSAqL1xuZXhwb3J0IGVudW0gUDI1NiB7XG4gIENvc21vcyA9IFwiUDI1NkNvc21vc0FkZHJcIixcbiAgT250b2xvZ3kgPSBcIlAyNTZPbnRvbG9neUFkZHJcIixcbiAgTmVvMyA9IFwiUDI1Nk5lbzNBZGRyXCIsXG59XG5cbi8qKiBNbmVtb25pYyBrZXkgdHlwZSAqL1xuZXhwb3J0IGNvbnN0IE1uZW1vbmljID0gXCJNbmVtb25pY1wiIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTW5lbW9uaWMgPSB0eXBlb2YgTW5lbW9uaWM7XG5cbi8qKiBTdGFyayBrZXkgdHlwZSAqL1xuZXhwb3J0IGNvbnN0IFN0YXJrID0gXCJTdGFya1wiIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgU3RhcmsgPSB0eXBlb2YgU3Rhcms7XG5cbi8qKiBCYWJ5IEp1Ymp1YiBrZXkgdHlwZSAqL1xuZXhwb3J0IGNvbnN0IEJhYnlKdWJqdWIgPSBcIkJhYnlKdWJqdWJcIiBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJhYnlKdWJqdWIgPSB0eXBlb2YgQmFieUp1Ymp1YjtcblxuLyoqIEtleSB0eXBlICovXG5leHBvcnQgdHlwZSBLZXlUeXBlID0gU2VjcDI1NmsxIHwgQmxzIHwgRWQyNTUxOSB8IE1uZW1vbmljIHwgU3RhcmsgfCBQMjU2IHwgQmFieUp1Ymp1YjtcblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgc2lnbmluZyBrZXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXkge1xuICAvKiogVGhlIEN1YmVTaWduZXIgaW5zdGFuY2UgdGhhdCB0aGlzIGtleSBpcyBhc3NvY2lhdGVkIHdpdGggKi9cbiAgcmVhZG9ubHkgI2FwaUNsaWVudDogQXBpQ2xpZW50O1xuXG4gIC8qKiBAcmV0dXJucyBUaGUgb3JnYW5pemF0aW9uIHRoYXQgdGhpcyBrZXkgaXMgaW4gKi9cbiAgZ2V0IG9yZ0lkKCkge1xuICAgIHJldHVybiB0aGlzLiNhcGlDbGllbnQuc2Vzc2lvbk1ldGEub3JnX2lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUga2V5OiBcIktleSNcIiBmb2xsb3dlZCBieSBhIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvXG4gICAqIHRoZSB0eXBlIG9mIGtleSAoc3VjaCBhcyBhIHB1YmxpYyBrZXkgZm9yIEJMUyBvciBhbiBldGhlcmV1bSBhZGRyZXNzIGZvciBTZWNwKVxuICAgKlxuICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvIHRoZSB0eXBlIG9mIGtleSwgc3VjaCBhcyBhIHB1YmxpYyBrZXkgb3IgYW4gZXRoZXJldW0gYWRkcmVzc1xuICAgKlxuICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICovXG4gIHJlYWRvbmx5IG1hdGVyaWFsSWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCwgc2VyaWFsaXplZCBwdWJsaWMga2V5LiBUaGUgZm9ybWF0IHVzZWQgZGVwZW5kcyBvbiB0aGUga2V5IHR5cGU6XG4gICAqIC0gc2VjcDI1NmsxIGtleXMgdXNlIDY1LWJ5dGUgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0XG4gICAqIC0gQkxTIGtleXMgdXNlIDQ4LWJ5dGUgY29tcHJlc3NlZCBCTFMxMi0zODEgKFpDYXNoKSBmb3JtYXRcbiAgICogQGV4YW1wbGUgMHgwNGQyNjg4YjZiYzJjZTdmOTg3OWI5ZTc0NWYzYzRkYzE3NzkwOGM1Y2VmMGMxYjY0Y2ZmMTlhZTdmZjI3ZGVlNjIzYzY0ZmU5ZDljMzI1YzdmYmJjNzQ4YmJkNWY2MDdjZTE0ZGQ4M2UyOGViYmJiN2QzZTdmMmZmYjcwYTc5NDMxXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IHRoZSBjYWNoZWQgcHJvcGVydGllcyBvZiB0aGlzIGtleS4gVGhlIGNhY2hlZCBwcm9wZXJ0aWVzIHJlZmxlY3QgdGhlXG4gICAqIHN0YXRlIG9mIHRoZSBsYXN0IGZldGNoIG9yIHVwZGF0ZSAoZS5nLiwgYWZ0ZXIgYXdhaXRpbmcgYEtleS5lbmFibGVkKClgXG4gICAqIG9yIGBLZXkuZGlzYWJsZSgpYCkuXG4gICAqL1xuICBjYWNoZWQ6IEtleUluZm87XG5cbiAgLyoqIEByZXR1cm5zIFRoZSB0eXBlIG9mIGtleS4gKi9cbiAgYXN5bmMgdHlwZSgpOiBQcm9taXNlPEtleVR5cGU+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mZXRjaCgpO1xuICAgIHJldHVybiBmcm9tU2NoZW1hS2V5VHlwZShkYXRhLmtleV90eXBlKTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZCAqL1xuICBhc3luYyBlbmFibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIGRhdGEuZW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBpZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgZW5hYmxlKG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlKHsgZW5hYmxlZDogdHJ1ZSB9LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIGFzeW5jIGRpc2FibGUobWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGUoeyBlbmFibGVkOiBmYWxzZSB9LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IHJvbGVzIHRoaXMga2V5IGlzIGluLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZSBPcHRpb25hbCBwYWdpbmF0aW9uIG9wdGlvbnM7IGJ5IGRlZmF1bHQsIHJldHJpZXZlcyBhbGwgcm9sZXMgdGhpcyBrZXkgaXMgaW4uXG4gICAqIEByZXR1cm5zIFJvbGVzIHRoaXMga2V5IGlzIGluLlxuICAgKi9cbiAgYXN5bmMgcm9sZXMocGFnZT86IFBhZ2VPcHRzKTogUHJvbWlzZTxLZXlJblJvbGVJbmZvW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LmtleVJvbGVzTGlzdCh0aGlzLmlkLCBwYWdlKS5mZXRjaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgaGlzdG9yaWNhbCB0cmFuc2FjdGlvbnMgZm9yIHRoaXMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZSBPcHRpb25hbCBwYWdpbmF0aW9uIG9wdGlvbnM7IGJ5IGRlZmF1bHQsIHJldHJpZXZlcyBhbGwgaGlzdG9yaWNhbCB0cmFuc2FjdGlvbnMgZm9yIHRoaXMga2V5LlxuICAgKiBAcmV0dXJucyBIaXN0b3JpY2FsIGtleSB0cmFuc2FjdGlvbnMuXG4gICAqL1xuICBhc3luYyBoaXN0b3J5KHBhZ2U/OiBQYWdlT3B0cyk6IFByb21pc2U8SGlzdG9yaWNhbFR4W10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LmtleUhpc3RvcnkodGhpcy5pZCwgcGFnZSkuZmV0Y2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbmV3IHBvbGljeSAob3ZlcndyaXRpbmcgYW55IHBvbGljaWVzIHByZXZpb3VzbHkgc2V0IGZvciB0aGlzIGtleSlcbiAgICpcbiAgICogQHBhcmFtIHBvbGljeSBUaGUgbmV3IHBvbGljeSB0byBzZXRcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBpZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgc2V0UG9saWN5KHBvbGljeTogS2V5UG9saWN5LCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZSh7IHBvbGljeSB9LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbmV3IGVkaXQgcG9saWN5IChvdmVyd3JpdGluZyBhbnkgZWRpdCBwb2xpY2llcyBwcmV2aW91c2x5IHNldCBmb3IgdGhpcyBrZXkpXG4gICAqXG4gICAqIEBwYXJhbSBlZGl0UG9saWN5IFRoZSBuZXcgZWRpdCBwb2xpY3kgdG8gc2V0XG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIGFzeW5jIHNldEVkaXRQb2xpY3koZWRpdFBvbGljeTogRWRpdFBvbGljeSwgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGUoeyBlZGl0X3BvbGljeTogZWRpdFBvbGljeSB9LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQga2V5IG1ldGFkYXRhLiBUaGUgbWV0YWRhdGEgbXVzdCBiZSBhdCBtb3N0IDEwMjQgY2hhcmFjdGVyc1xuICAgKiBhbmQgbXVzdCBtYXRjaCB0aGUgZm9sbG93aW5nIHJlZ2V4OiBeW0EtWmEtejAtOV89Ky8gXFwtXFwuXFwsXXswLDEwMjR9JC5cbiAgICpcbiAgICogQHBhcmFtIG1ldGFkYXRhIFRoZSBuZXcgbWV0YWRhdGEgdG8gc2V0LlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIGlmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIGtleSBpbmZvXG4gICAqL1xuICBhc3luYyBzZXRNZXRhZGF0YShtZXRhZGF0YTogSnNvblZhbHVlLCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpOiBQcm9taXNlPEtleUluZm8+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy51cGRhdGUoeyBtZXRhZGF0YSB9LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGV4aXN0aW5nIG1ldGFkYXRhLCBhc3NlcnRzIHRoYXQgaXQgaXMgYW4gb2JqZWN0ICh0aHJvd3MgaWYgaXQgaXMgbm90KSxcbiAgICogdGhlbiBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUge0BsaW5rIG5hbWV9IHByb3BlcnR5IGluIHRoYXQgb2JqZWN0IHRvIHtAbGluayB2YWx1ZX0sXG4gICAqIGFuZCBmaW5hbGx5IHN1Ym1pdHMgdGhlIHJlcXVlc3QgdG8gdXBkYXRlIHRoZSBtZXRhZGF0YS5cbiAgICpcbiAgICogVGhpcyB3aG9sZSBwcm9jZXNzIGlzIGRvbmUgYXRvbWljYWxseSwgbWVhbmluZywgdGhhdCBpZiB0aGUgbWV0YWRhdGEgY2hhbmdlcyBiZXR3ZWVuIHRoZVxuICAgKiB0aW1lIHRoaXMgbWV0aG9kIGZpcnN0IHJldHJpZXZlcyBpdCBhbmQgdGhlIHRpbWUgaXQgc3VibWl0cyBhIHJlcXVlc3QgdG8gdXBkYXRlIGl0LCB0aGVcbiAgICogcmVxdWVzdCB3aWxsIGJlIHJlamVjdGVkLiBXaGVuIHRoYXQgaGFwcGVucywgdGhpcyBtZXRob2Qgd2lsbCByZXRyeSBhIGZldyB0aW1lcywgYXMgcGVyXG4gICAqIHtAbGluayBBcGlDbGllbnQuY29uZmlnfS5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHNldFxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBpZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBVcGRhdGVkIGtleSBpbmZvcm1hdGlvblxuICAgKi9cbiAgYXN5bmMgc2V0TWV0YWRhdGFQcm9wZXJ0eShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IEpzb25WYWx1ZSxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8S2V5SW5mbz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNzZXRNZXRhZGF0YVByb3BlcnR5KFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdGhpcy4jYXBpQ2xpZW50LmNvbmZpZy51cGRhdGVSZXRyeURlbGF5c01zLFxuICAgICAgbWZhUmVjZWlwdCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgZXhpc3RpbmcgbWV0YWRhdGEsIGFzc2VydHMgdGhhdCBpdCBpcyBpbiBvYmplY3QgKHRocm93cyBpZiBpdCBpcyBub3QpLFxuICAgKiB0aGVuIGRlbGV0ZXMgdGhlIHtAbGluayBuYW1lfSBwcm9wZXJ0eSBpbiB0aGF0IG9iamVjdCwgYW5kIGZpbmFsbHkgc3VibWl0cyB0aGVcbiAgICogcmVxdWVzdCB0byB1cGRhdGUgdGhlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBUaGlzIHdob2xlIHByb2Nlc3MgaXMgZG9uZSBhdG9taWNhbGx5LCBtZWFuaW5nLCB0aGF0IGlmIHRoZSBtZXRhZGF0YSBjaGFuZ2VzIGJldHdlZW4gdGhlXG4gICAqIHRpbWUgdGhpcyBtZXRob2QgZmlyc3QgcmV0cmlldmVzIGl0IGFuZCB0aGUgdGltZSBpdCBzdWJtaXRzIGEgcmVxdWVzdCB0byB1cGRhdGUgaXQsIHRoZVxuICAgKiByZXF1ZXN0IHdpbGwgYmUgcmVqZWN0ZWQuIFdoZW4gdGhhdCBoYXBwZW5zLCB0aGlzIG1ldGhvZCB3aWxsIHJldHJ5IGEgZmV3IHRpbWVzLCBhcyBwZXJcbiAgICoge0BsaW5rIEFwaUNsaWVudC5jb25maWd9LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gc2V0XG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICogQHJldHVybnMgVXBkYXRlZCBrZXkgaW5mb3JtYXRpb25cbiAgICovXG4gIGFzeW5jIGRlbGV0ZU1ldGFkYXRhUHJvcGVydHkobmFtZTogc3RyaW5nLCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpOiBQcm9taXNlPEtleUluZm8+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jc2V0TWV0YWRhdGFQcm9wZXJ0eShcbiAgICAgIG5hbWUsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLiNhcGlDbGllbnQuY29uZmlnLnVwZGF0ZVJldHJ5RGVsYXlzTXMsXG4gICAgICBtZmFSZWNlaXB0LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHNldFxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcbiAgICogQHBhcmFtIGRlbGF5c01zIERlbGF5cyBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiByZXRyaWVzXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICogQHJldHVybnMgVXBkYXRlZCBrZXkgaW5mb3JtYXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyAjc2V0TWV0YWRhdGFQcm9wZXJ0eShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IEpzb25WYWx1ZSB8IHVuZGVmaW5lZCxcbiAgICBkZWxheXNNczogbnVtYmVyW10sXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEtleUluZm8+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mZXRjaCgpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkYXRhLm1ldGFkYXRhID8/IHt9O1xuICAgIGlmICh0eXBlb2YgY3VycmVudCAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ3VycmVudCBtZXRhZGF0YSBpcyBub3QgYSBKU09OIG9iamVjdFwiKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZCA9IHtcbiAgICAgIC4uLmN1cnJlbnQsXG4gICAgICBbbmFtZV06IHZhbHVlLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnVwZGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIG1ldGFkYXRhOiB1cGRhdGVkLFxuICAgICAgICAgIHZlcnNpb246IGRhdGEudmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgbWZhUmVjZWlwdCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKChlIGFzIEVyclJlc3BvbnNlKS5lcnJvckNvZGUgPT09IFwiSW52YWxpZFVwZGF0ZVwiICYmIGRlbGF5c01zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYXdhaXQgZGVsYXkoZGVsYXlzTXNbMF0pO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy4jc2V0TWV0YWRhdGFQcm9wZXJ0eShuYW1lLCB2YWx1ZSwgZGVsYXlzTXMuc2xpY2UoMSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kIHRvIGV4aXN0aW5nIGtleSBwb2xpY3kuIFRoaXMgYXBwZW5kIGlzIG5vdCBhdG9taWMgLS0gaXQgdXNlcyB7QGxpbmsgcG9saWN5fVxuICAgKiB0byBmZXRjaCB0aGUgY3VycmVudCBwb2xpY3kgYW5kIHRoZW4ge0BsaW5rIHNldFBvbGljeX0gdG8gc2V0IHRoZSBwb2xpY3kgLS0gYW5kXG4gICAqIHNob3VsZCBub3QgYmUgdXNlZCBhY3Jvc3MgY29uY3VycmVudCBzZXNzaW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHBvbGljeSBUaGUgcG9saWN5IHRvIGFwcGVuZCB0byB0aGUgZXhpc3Rpbmcgb25lLlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgYXBwZW5kUG9saWN5KHBvbGljeTogS2V5UG9saWN5LCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMucG9saWN5KCk7XG4gICAgYXdhaXQgdGhpcy5zZXRQb2xpY3koWy4uLmV4aXN0aW5nLCAuLi5wb2xpY3ldLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBvbGljeSBmb3IgdGhlIGtleS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHBvbGljeSBmb3IgdGhlIGtleS5cbiAgICovXG4gIGFzeW5jIHBvbGljeSgpOiBQcm9taXNlPEtleVBvbGljeT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIChkYXRhLnBvbGljeSA/PyBbXSkgYXMgdW5rbm93biBhcyBLZXlQb2xpY3k7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBlZGl0IHBvbGljeSBmb3IgdGhlIGtleS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGVkaXQgcG9saWN5IGZvciB0aGUga2V5LCB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gZWRpdCBwb2xpY3lcbiAgICovXG4gIGFzeW5jIGVkaXRQb2xpY3koKTogUHJvbWlzZTxFZGl0UG9saWN5IHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2goKTtcbiAgICByZXR1cm4gZGF0YS5lZGl0X3BvbGljeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUgbWV0YWRhdGEgZm9yIHRoZSBrZXkuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwb2xpY3kgZm9yIHRoZSBrZXkuXG4gICAqL1xuICBhc3luYyBtZXRhZGF0YSgpOiBQcm9taXNlPEpzb25WYWx1ZT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIGRhdGEubWV0YWRhdGEgYXMgSnNvblZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIFRoZSB1c2VyIGlkIGZvciB0aGUgb3duZXIgb2YgdGhlIGtleVxuICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgKi9cbiAgYXN5bmMgb3duZXIoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mZXRjaCgpO1xuICAgIHJldHVybiBkYXRhLm93bmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgb3duZXIgb2YgdGhlIGtleS4gT25seSB0aGUga2V5IChvciBvcmcpIG93bmVyIGNhbiBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBvd25lciBUaGUgdXNlci1pZCBvZiB0aGUgbmV3IG93bmVyIG9mIHRoZSBrZXkuXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIGFzeW5jIHNldE93bmVyKG93bmVyOiBzdHJpbmcsIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlKHsgb3duZXIgfSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHRoaXMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBBIHJlc3BvbnNlIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFwcHJvdmUgTUZBIGlmIG5lZWRlZFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEVtcHR5Pj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQua2V5RGVsZXRlKHRoaXMuaWQsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0gSU5URVJOQUwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGtleS5cbiAgICpcbiAgICogQHBhcmFtIGNsaWVudCBUaGUgQVBJIGNsaWVudCB0byB1c2UuXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBKU09OIHJlc3BvbnNlIGZyb20gdGhlIEFQSSBzZXJ2ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29uc3RydWN0b3IoY2xpZW50OiBBcGlDbGllbnQgfCBDdWJlU2lnbmVyQ2xpZW50LCBkYXRhOiBLZXlJbmZvKSB7XG4gICAgdGhpcy4jYXBpQ2xpZW50ID0gY2xpZW50IGluc3RhbmNlb2YgQ3ViZVNpZ25lckNsaWVudCA/IGNsaWVudC5hcGlDbGllbnQgOiBjbGllbnQ7XG4gICAgdGhpcy5pZCA9IGRhdGEua2V5X2lkO1xuICAgIHRoaXMubWF0ZXJpYWxJZCA9IGRhdGEubWF0ZXJpYWxfaWQ7XG4gICAgdGhpcy5wdWJsaWNLZXkgPSBkYXRhLnB1YmxpY19rZXk7XG4gICAgdGhpcy5jYWNoZWQgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYW4gRVZNIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnbi5cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocykuXG4gICAqIEByZXR1cm5zIFNpZ25hdHVyZSAob3IgTUZBIGFwcHJvdmFsIHJlcXVlc3QpLlxuICAgKi9cbiAgYXN5bmMgc2lnbkV2bShcbiAgICByZXE6IEV2bVNpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RXZtU2lnblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2lnbkV2bSh0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBCYWJ5bG9uIHN0YWtpbmcgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSByZXEgVGhlIHN0YWtpbmcgdHJhbnNhY3Rpb24gdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKS5cbiAgICogQHJldHVybnMgU2lnbmF0dXJlIChvciBNRkEgYXBwcm92YWwgcmVxdWVzdCkuXG4gICAqL1xuICBhc3luYyBzaWduQmFieWxvblN0YWtpbmdUeG4oXG4gICAgcmVxOiBCYWJ5bG9uU3Rha2luZ1JlcXVlc3QsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxCYWJ5bG9uU3Rha2luZ1Jlc3BvbnNlPj4ge1xuICAgIHJldHVybiB0aGlzLiNhcGlDbGllbnQuc2lnbkJhYnlsb25TdGFraW5nVHhuKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIEJhYnlsb24gcmVnaXN0cmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFRoZSByZWdpc3RyYXRpb24gcmVxdWVzdCB0byBzaWduXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpLlxuICAgKiBAcmV0dXJucyBCYWJ5bG9uIHN0YWtpbmcgcmVnaXN0cmF0aW9uIGRhdGEgKG9yIE1GQSBhcHByb3ZhbCByZXF1ZXN0KS5cbiAgICovXG4gIGFzeW5jIHNpZ25CYWJ5bG9uUmVnaXN0cmF0aW9uKFxuICAgIHJlcTogQmFieWxvblJlZ2lzdHJhdGlvblJlcXVlc3QsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuI2FwaUNsaWVudC5zaWduQmFieWxvblJlZ2lzdHJhdGlvbih0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gRUlQLTE5MSB0eXBlZCBkYXRhLlxuICAgKlxuICAgKiBUaGlzIHJlcXVpcmVzIHRoZSBrZXkgdG8gaGF2ZSBhICdcIkFsbG93RWlwMTkxU2lnbmluZ1wiJyB7QGxpbmsgS2V5UG9saWN5fS5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBXaGF0IHRvIHNpZ25cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgU2lnbmF0dXJlIChvciBNRkEgYXBwcm92YWwgcmVxdWVzdCkuXG4gICAqL1xuICBhc3luYyBzaWduRWlwMTkxKFxuICAgIHJlcTogRWlwMTkxU2lnblJlcXVlc3QsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxFaXAxOTFPcjcxMlNpZ25SZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25FaXAxOTEodGhpcywgcmVxLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIEVJUC03MTIgdHlwZWQgZGF0YS5cbiAgICpcbiAgICogVGhpcyByZXF1aXJlcyB0aGUga2V5IHRvIGhhdmUgYSAnXCJBbGxvd0VpcDcxMlNpZ25pbmdcIicge0BsaW5rIEtleVBvbGljeX0uXG4gICAqXG4gICAqIEBwYXJhbSByZXEgV2hhdCB0byBzaWduXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIFNpZ25hdHVyZSAob3IgTUZBIGFwcHJvdmFsIHJlcXVlc3QpLlxuICAgKi9cbiAgYXN5bmMgc2lnbkVpcDcxMihcbiAgICByZXE6IEVpcDcxMlNpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RWlwMTkxT3I3MTJTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduRWlwNzEyKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhbiBFdGgyL0JlYWNvbi1jaGFpbiB2YWxpZGF0aW9uIG1lc3NhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSByZXEgV2hhdCB0byBzaWduLlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBTaWduYXR1cmVcbiAgICovXG4gIGFzeW5jIHNpZ25FdGgyKFxuICAgIHJlcTogRXRoMlNpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RXRoMlNpZ25SZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25FdGgyKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhbiBFdGgyL0JlYWNvbi1jaGFpbiB1bnN0YWtlL2V4aXQgcmVxdWVzdC5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBUaGUgcmVxdWVzdCB0byBzaWduLlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICBhc3luYyB1bnN0YWtlKFxuICAgIHJlcTogRXRoMlVuc3Rha2VSZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RXRoMlVuc3Rha2VSZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25VbnN0YWtlKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhbiBBdmFsYW5jaGUgUC0gb3IgWC1jaGFpbiBtZXNzYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gdHggQXZhbGFuY2hlIG1lc3NhZ2UgKHRyYW5zYWN0aW9uKSB0byBzaWduXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZS5cbiAgICovXG4gIGFzeW5jIHNpZ25BdmEodHg6IEF2YVR4LCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxBdmFTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduQXZhKHRoaXMsIHR4LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgc2VyaWFsaXplZCBBdmFsYW5jaGUgQy0vWC0vUC1jaGFpbiBtZXNzYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gYXZhQ2hhaW4gQXZhbGFuY2hlIGNoYWluXG4gICAqIEBwYXJhbSB0eCBIZXggZW5jb2RlZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICBhc3luYyBzaWduU2VyaWFsaXplZEF2YShcbiAgICBhdmFDaGFpbjogQXZhQ2hhaW4sXG4gICAgdHg6IHN0cmluZyxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEF2YVNpZ25SZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25TZXJpYWxpemVkQXZhKHRoaXMsIGF2YUNoYWluLCB0eCwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIHJhdyBibG9iLlxuICAgKlxuICAgKiBUaGlzIHJlcXVpcmVzIHRoZSBrZXkgdG8gaGF2ZSBhICdcIkFsbG93UmF3QmxvYlNpZ25pbmdcIicge0BsaW5rIEtleVBvbGljeX0uIFRoaXMgaXMgYmVjYXVzZVxuICAgKiBzaWduaW5nIGFyYml0cmFyeSBtZXNzYWdlcyBpcywgaW4gZ2VuZXJhbCwgZGFuZ2Vyb3VzIChhbmQgeW91IHNob3VsZCBpbnN0ZWFkXG4gICAqIHByZWZlciB0eXBlZCBlbmQtcG9pbnRzIGFzIHVzZWQgYnksIGZvciBleGFtcGxlLCB7QGxpbmsgc2lnbkV2bX0pLiBGb3IgU2VjcDI1NmsxIGtleXMsXG4gICAqIGZvciBleGFtcGxlLCB5b3UgKiptdXN0KiogY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggYSBtZXNzYWdlIHRoYXQgaXMgMzIgYnl0ZXMgbG9uZyBhbmRcbiAgICogdGhlIG91dHB1dCBvZiBhIHNlY3VyZSBoYXNoIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgc2lnbmF0dXJlcyBzZXJpYWxpemVkIGFzO1xuICAgKlxuICAgKiAtIEVDRFNBIHNpZ25hdHVyZXMgYXJlIHNlcmlhbGl6ZWQgYXMgYmlnLWVuZGlhbiByIGFuZCBzIHBsdXMgcmVjb3ZlcnktaWRcbiAgICogICAgYnl0ZSB2LCB3aGljaCBjYW4gaW4gZ2VuZXJhbCB0YWtlIGFueSBvZiB0aGUgdmFsdWVzIDAsIDEsIDIsIG9yIDMuXG4gICAqXG4gICAqIC0gRWREU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0LlxuICAgKlxuICAgKiAtIEJMUyBzaWduYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHRoZSBibG9iLXNpZ24gZW5kcG9pbnQuXG4gICAqXG4gICAqIEBwYXJhbSByZXEgV2hhdCB0byBzaWduXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZS5cbiAgICovXG4gIGFzeW5jIHNpZ25CbG9iKFxuICAgIHJlcTogQmxvYlNpZ25SZXF1ZXN0LFxuICAgIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyxcbiAgKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8QmxvYlNpZ25SZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25CbG9iKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBhIERpZmZpZS1IZWxsbWFuIGV4Y2hhbmdlIHdpdGggb25lIG9yIG1vcmUgcHVibGljIGtleXMuXG4gICAqXG4gICAqIFRoaXMgcmVxdWlyZXMgdGhlIGtleSB0byBoYXZlIGEgJ1wiQWxsb3dEaWZmaWVIZWxsbWFuRXhjaGFuZ2VcIicge0BsaW5rIEtleVBvbGljeX0uXG4gICAqIFRoaXMgaXMgYmVjYXVzZSBwZXJmb3JtaW5nIGFyYml0cmFyeSBEaWZmaWUtSGVsbG1hbiBleGNoYW5nZXMgdXNpbmcgc2lnbmluZyBrZXlzXG4gICAqIGlzLCBpbiBnZW5lcmFsLCBkYW5nZXJvdXMuIFlvdSBzaG91bGQgb25seSB1c2UgdGhpcyBBUEkgaWYgeW91IGFyZSAxMDAlIHN1cmUgdGhhdFxuICAgKiB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZyFcbiAgICpcbiAgICogQHBhcmFtIHBvaW50cyBVcCB0byAzMiBlbGxpcHRpYyBjdXJ2ZSBwb2ludHMgd2l0aCB3aGljaCB0byBwZXJmb3JtIERpZmZpZS1IZWxsbWFuIGV4Y2hhbmdlcy4gVGhlc2UgcG9pbnRzIG11c3QgYmUgc2VyaWFsaXplZCBpbiBhIGtleS10eXBlLS1zcGVjaWZpYyBmb3JtYXQ7IHNlZSB0aGUgQ3ViZVNpZ25lciBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm8uXG4gICAqIEBwYXJhbSBwdWJsaWNLZXkgVGhlIE5JU1QgUC0yNTYgcHVibGljIGtleSB3aXRoIHdoaWNoIHRoZSByZXNwb25zZXMgd2lsbCBiZSBlbmNyeXB0ZWQuIFRoaXMgc2hvdWxkIGJlIHRoZSBgcHVibGljS2V5YCBwcm9wZXJ0eSBvZiBhIHZhbHVlIHJldHVybmVkIGJ5IGB1c2VyRXhwb3J0S2V5Z2VuYC5cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocykuXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZS4gT24gc3VjY2VzcywgdGhlIHJlc3VsdCBjYW4gYmUgZGVjcnlwdGVkIHdpdGggYGRpZmZpZUhlbGxtYW5EZWNyeXB0YC5cbiAgICovXG4gIGFzeW5jIGRpZmZpZUhlbGxtYW5FeGNoYW5nZShcbiAgICBwb2ludHM6IFVpbnQ4QXJyYXlbXSxcbiAgICBwdWJsaWNLZXk6IENyeXB0b0tleSxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPERpZmZpZUhlbGxtYW5SZXNwb25zZT4+IHtcbiAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDMyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJtYXhpbXVtIDMyIERIIGV4Y2hhbmdlcyBwZXIgcmVxdWVzdFwiKTtcbiAgICB9XG5cbiAgICAvLyBjb25zdHJ1Y3QgdGhlIHJlcXVlc3RcbiAgICBjb25zdCBzdWJ0bGUgPSBhd2FpdCBsb2FkU3VidGxlQ3J5cHRvKCk7XG4gICAgY29uc3QgcmVxOiBEaWZmaWVIZWxsbWFuUmVxdWVzdCA9IHtcbiAgICAgIHBvaW50czogcG9pbnRzLm1hcCgocHQpID0+IGVuY29kZVRvQmFzZTY0KEJ1ZmZlci5mcm9tKHB0KSkpLFxuICAgICAgcHVibGljX2tleTogZW5jb2RlVG9CYXNlNjQoQnVmZmVyLmZyb20oYXdhaXQgc3VidGxlLmV4cG9ydEtleShcInJhd1wiLCBwdWJsaWNLZXkpKSksXG4gICAgfTtcblxuICAgIC8vIHNlbmRcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LmRpZmZpZUhlbGxtYW5FeGNoYW5nZSh0aGlzLCByZXEsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBCaXRjb2luIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICBhc3luYyBzaWduQnRjKFxuICAgIHJlcTogQnRjU2lnblJlcXVlc3QsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxCdGNTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduQnRjKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIFBTQlQuXG4gICAqXG4gICAqIEBwYXJhbSByZXEgV2hhdCB0byBzaWduXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZVxuICAgKi9cbiAgYXN5bmMgc2lnblBzYnQoXG4gICAgcmVxOiBQc2J0U2lnblJlcXVlc3QsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxQc2J0U2lnblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2lnblBzYnQodGhpcywgcmVxLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgQml0Y29pbiBtZXNzYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFRoZSBtZXNzYWdlIHRvIHNpZ25cbiAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgdGhpcyByZXF1ZXN0XG4gICAqIEBwYXJhbSBvcHRzLnAyc2ggSWYgdGhpcyBpcyBhIHNlZ3dpdCBrZXkgYW5kIHAyc2ggaXMgdHJ1ZSwgc2lnbiBhcyBwMnNoLXAyd3BraCBpbnN0ZWFkIG9mIHAyd3BraC4gRGVmYXVsdHMgdG8gZmFsc2UgaWYgbm90IHNwZWNpZmllZC5cbiAgICogQHBhcmFtIG9wdHMubWV0YWRhdGEgT3B0aW9uYWwgYXJiaXRyYXJ5IEpTT04gbWV0YWRhdGFcbiAgICogQHBhcmFtIG9wdHMubWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2VcbiAgICovXG4gIGFzeW5jIHNpZ25CdGNNZXNzYWdlKFxuICAgIHJlcTogVWludDhBcnJheSB8IHN0cmluZyxcbiAgICBvcHRzOiB7IHAyc2g/OiBib29sZWFuOyBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHM7IG1ldGFkYXRhPzogdW5rbm93biB9LFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxCdGNNZXNzYWdlU2lnblJlc3BvbnNlPj4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IEJ0Y01lc3NhZ2VTaWduUmVxdWVzdCA9IHtcbiAgICAgIGRhdGE6IGVuY29kZVRvSGV4KHJlcSksXG4gICAgICBpc19wMnNoOiBvcHRzLnAyc2ggPz8gZmFsc2UsXG4gICAgICBtZXRhZGF0YTogb3B0cy5tZXRhZGF0YSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2lnbkJ0Y01lc3NhZ2UodGhpcywgcmVxdWVzdCwgb3B0cy5tZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgU29sYW5hIG1lc3NhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSByZXEgV2hhdCB0byBzaWduXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZS5cbiAgICovXG4gIGFzeW5jIHNpZ25Tb2xhbmEoXG4gICAgcmVxOiBTb2xhbmFTaWduUmVxdWVzdCxcbiAgICBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMsXG4gICk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPFNvbGFuYVNpZ25SZXNwb25zZT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNpZ25Tb2xhbmEodGhpcywgcmVxLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgU1VJIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxIFdoYXQgdG8gc2lnblxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICBhc3luYyBzaWduU3VpKFxuICAgIHJlcTogU3VpU2lnblJlcXVlc3QsXG4gICAgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzLFxuICApOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxTdWlTaWduUmVzcG9uc2U+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zaWduU3VpKHRoaXMsIHJlcSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBKU09OIHJlcXVlc3QgdG8gc2VuZCB0byB0aGUgQVBJIHNlcnZlci5cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgVGhlIEpTT04gcmVzcG9uc2UgZnJvbSB0aGUgQVBJIHNlcnZlci5cbiAgICogQHRocm93cyBpZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIE1GQSByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHVwZGF0ZShyZXF1ZXN0OiBVcGRhdGVLZXlSZXF1ZXN0LCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpOiBQcm9taXNlPEtleUluZm8+IHtcbiAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LmtleVVwZGF0ZSh0aGlzLmlkLCByZXF1ZXN0LCBtZmFSZWNlaXB0KTtcbiAgICB0aGlzLmNhY2hlZCA9IHJlc3AuZGF0YSgpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUga2V5IGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUga2V5IGluZm9ybWF0aW9uLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2goKTogUHJvbWlzZTxLZXlJbmZvPiB7XG4gICAgdGhpcy5jYWNoZWQgPSBhd2FpdCB0aGlzLiNhcGlDbGllbnQua2V5R2V0KHRoaXMuaWQpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlZDtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzY2hlbWEga2V5IHR5cGUgdG8gYSBrZXkgdHlwZS5cbiAqXG4gKiBAcGFyYW0gdHkgVGhlIHNjaGVtYSBrZXkgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBrZXkgdHlwZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVNjaGVtYUtleVR5cGUodHk6IFNjaGVtYUtleVR5cGUpOiBLZXlUeXBlIHtcbiAgc3dpdGNoICh0eSkge1xuICAgIGNhc2UgXCJTZWNwRXRoQWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5Fdm07XG4gICAgY2FzZSBcIlNlY3BDb3Ntb3NBZGRyXCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkNvc21vcztcbiAgICBjYXNlIFwiU2VjcEJ0Y1wiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5CdGM7XG4gICAgY2FzZSBcIlNlY3BCdGNUZXN0XCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkJ0Y1Rlc3Q7XG4gICAgY2FzZSBcIlNlY3BCdGNMZWdhY3lcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuQnRjTGVnYWN5O1xuICAgIGNhc2UgXCJTZWNwQnRjTGVnYWN5VGVzdFwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5CdGNMZWdhY3lUZXN0O1xuICAgIGNhc2UgXCJTZWNwQXZhQWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5BdmE7XG4gICAgY2FzZSBcIlNlY3BBdmFUZXN0QWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5BdmFUZXN0O1xuICAgIGNhc2UgXCJCYWJ5bG9uRW90c1wiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5CYWJ5bG9uRW90cztcbiAgICBjYXNlIFwiQmFieWxvbkNvdlwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5CYWJ5bG9uRW90cztcbiAgICBjYXNlIFwiVGFwcm9vdEJ0Y1wiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5UYXByb290O1xuICAgIGNhc2UgXCJUYXByb290QnRjVGVzdFwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5UYXByb290VGVzdDtcbiAgICBjYXNlIFwiU2VjcFRyb25BZGRyXCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLlRyb247XG4gICAgY2FzZSBcIlNlY3BEb2dlQWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5Eb2dlO1xuICAgIGNhc2UgXCJTZWNwRG9nZVRlc3RBZGRyXCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkRvZ2VUZXN0O1xuICAgIGNhc2UgXCJTZWNwS2FzcGFBZGRyXCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkthc3BhO1xuICAgIGNhc2UgXCJTZWNwS2FzcGFUZXN0QWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5LYXNwYVRlc3Q7XG4gICAgY2FzZSBcIlNjaG5vcnJLYXNwYUFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuS2FzcGFTY2hub3JyO1xuICAgIGNhc2UgXCJTY2hub3JyS2FzcGFUZXN0QWRkclwiOlxuICAgICAgcmV0dXJuIFNlY3AyNTZrMS5LYXNwYVRlc3RTY2hub3JyO1xuICAgIGNhc2UgXCJCbHNQdWJcIjpcbiAgICAgIHJldHVybiBCbHMuRXRoMkRlcG9zaXRlZDtcbiAgICBjYXNlIFwiQmxzSW5hY3RpdmVcIjpcbiAgICAgIHJldHVybiBCbHMuRXRoMkluYWN0aXZlO1xuICAgIGNhc2UgXCJCbHNBdmFJY21cIjpcbiAgICAgIHJldHVybiBCbHMuQXZhSWNtO1xuICAgIGNhc2UgXCJFZDI1NTE5U29sYW5hQWRkclwiOlxuICAgICAgcmV0dXJuIEVkMjU1MTkuU29sYW5hO1xuICAgIGNhc2UgXCJFZDI1NTE5U3VpQWRkclwiOlxuICAgICAgcmV0dXJuIEVkMjU1MTkuU3VpO1xuICAgIGNhc2UgXCJFZDI1NTE5QXB0b3NBZGRyXCI6XG4gICAgICByZXR1cm4gRWQyNTUxOS5BcHRvcztcbiAgICBjYXNlIFwiRWQyNTUxOUNhcmRhbm9BZGRyVmtcIjpcbiAgICAgIHJldHVybiBFZDI1NTE5LkNhcmRhbm87XG4gICAgY2FzZSBcIkVkMjU1MTlTdGVsbGFyQWRkclwiOlxuICAgICAgcmV0dXJuIEVkMjU1MTkuU3RlbGxhcjtcbiAgICBjYXNlIFwiRWQyNTUxOVN1YnN0cmF0ZUFkZHJcIjpcbiAgICAgIHJldHVybiBFZDI1NTE5LlN1YnN0cmF0ZTtcbiAgICBjYXNlIFwiRWQyNTUxOVRlbmRlcm1pbnRBZGRyXCI6XG4gICAgICByZXR1cm4gRWQyNTUxOS5UZW5kZXJtaW50O1xuICAgIGNhc2UgXCJFZDI1NTE5VG9uQWRkclwiOlxuICAgICAgcmV0dXJuIEVkMjU1MTkuVG9uO1xuICAgIGNhc2UgXCJTdGFya1wiOlxuICAgICAgcmV0dXJuIFN0YXJrO1xuICAgIGNhc2UgXCJNbmVtb25pY1wiOlxuICAgICAgcmV0dXJuIE1uZW1vbmljO1xuICAgIGNhc2UgXCJQMjU2Q29zbW9zQWRkclwiOlxuICAgICAgcmV0dXJuIFAyNTYuQ29zbW9zO1xuICAgIGNhc2UgXCJQMjU2T250b2xvZ3lBZGRyXCI6XG4gICAgICByZXR1cm4gUDI1Ni5PbnRvbG9neTtcbiAgICBjYXNlIFwiUDI1Nk5lbzNBZGRyXCI6XG4gICAgICByZXR1cm4gUDI1Ni5OZW8zO1xuICAgIGNhc2UgXCJTZWNwTHRjXCI6XG4gICAgICByZXR1cm4gU2VjcDI1NmsxLkx0YztcbiAgICBjYXNlIFwiU2VjcEx0Y1Rlc3RcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuTHRjVGVzdDtcbiAgICBjYXNlIFwiU2VjcFhycEFkZHJcIjpcbiAgICAgIHJldHVybiBTZWNwMjU2azEuWHJwO1xuICAgIGNhc2UgXCJFZDI1NTE5WHJwQWRkclwiOlxuICAgICAgcmV0dXJuIEVkMjU1MTkuWHJwO1xuICAgIGNhc2UgXCJCYWJ5SnVianViXCI6XG4gICAgICByZXR1cm4gQmFieUp1Ymp1YjtcbiAgICAvLyBOT1RFOiBpZiB5b3UgYXJlIGFkZGluZyBhIG5ldyBrZXkgdHlwZSwgdXBkYXRlIHRoZSBgY3JlYXRlICR7a2V5VHlwZX0ga2V5YCB0ZXN0IGluIGtleS50ZXN0LnRzXG4gIH1cbn1cbiJdfQ==
|
package/dist/src/role.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApiClient, ContractAddress, EvmTxCmp, SolanaTxCmp, KeyWithPoliciesInfo,
|
|
1
|
+
import type { ApiClient, ContractAddress, EvmTxCmp, SolanaTxCmp, KeyWithPoliciesInfo, PageOpts, RoleInfo, Scope, SessionData, SessionLifetime, BabylonStakingRequest, OperationKind, MfaReceipts, CubeSignerResponse, Empty, RestrictedActionsMap, GetRoleKeyOptions, EditPolicy, MfaPolicy } from ".";
|
|
2
2
|
import { Key, SignerSessionInfo } from ".";
|
|
3
3
|
type NameOrAddressOrNull = string | null;
|
|
4
4
|
/**
|
|
@@ -277,40 +277,6 @@ export type BtcSegwitValueLimitWindow = {
|
|
|
277
277
|
export type SourceIpAllowlist = {
|
|
278
278
|
SourceIpAllowlist: string[];
|
|
279
279
|
};
|
|
280
|
-
/**
|
|
281
|
-
* MFA policy
|
|
282
|
-
*
|
|
283
|
-
* @example {
|
|
284
|
-
* {
|
|
285
|
-
* count: 1,
|
|
286
|
-
* num_auth_factors: 1,
|
|
287
|
-
* allowed_mfa_types: [ "Totp" ],
|
|
288
|
-
* allowed_approvers: [ "User#123" ],
|
|
289
|
-
* }
|
|
290
|
-
*/
|
|
291
|
-
export type MfaPolicy = {
|
|
292
|
-
count?: number;
|
|
293
|
-
num_auth_factors?: number;
|
|
294
|
-
allowed_approvers?: string[];
|
|
295
|
-
allowed_mfa_types?: MfaType[];
|
|
296
|
-
restricted_operations?: OperationKind[];
|
|
297
|
-
/** Lifetime in seconds, defaults to 900 (15 minutes) */
|
|
298
|
-
lifetime?: number;
|
|
299
|
-
/**
|
|
300
|
-
* How to compare HTTP requests when verifying the MFA receipt.
|
|
301
|
-
* This specifies how we check equality between (1) the HTTP request when the 202 (MFA required)
|
|
302
|
-
* response is returned and (2) the HTTP request when the correspond MFA receipt is used.
|
|
303
|
-
*/
|
|
304
|
-
request_comparer?: HttpRequestComparer;
|
|
305
|
-
/**
|
|
306
|
-
* The amount of time in seconds before an MFA receipt can be redeemed.
|
|
307
|
-
* Defaults to 0, i.e., no delay. Approvers can vote to approve or veto
|
|
308
|
-
* before the delay expires. After approving, it is still possible for
|
|
309
|
-
* anyone to veto the request until the delay expires and the receipt
|
|
310
|
-
* is redeemed.
|
|
311
|
-
*/
|
|
312
|
-
time_delay?: number;
|
|
313
|
-
};
|
|
314
280
|
export type HttpRequestComparer = "Eq" | {
|
|
315
281
|
EvmTx: EvmTxCmp;
|
|
316
282
|
} | {
|
|
@@ -543,7 +509,7 @@ export declare class Role {
|
|
|
543
509
|
/**
|
|
544
510
|
* Append to existing role policy. This append is not atomic---it uses
|
|
545
511
|
* {@link policy} to fetch the current policy and then {@link setPolicy}
|
|
546
|
-
* to set the policy---and should not be used
|
|
512
|
+
* to set the policy---and should not be used across concurrent sessions.
|
|
547
513
|
*
|
|
548
514
|
* @param policy The policy to append to the existing one.
|
|
549
515
|
* @param mfaReceipt Optional MFA receipt(s)
|
|
@@ -556,6 +522,20 @@ export declare class Role {
|
|
|
556
522
|
* @returns The policy for the role.
|
|
557
523
|
*/
|
|
558
524
|
policy(): Promise<RolePolicy>;
|
|
525
|
+
/**
|
|
526
|
+
* Set new edit policy (overwriting any edit policies previously set for this role)
|
|
527
|
+
*
|
|
528
|
+
* @param editPolicy The new edit policy to set
|
|
529
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
530
|
+
* @throws if MFA is required and no receipts are provided
|
|
531
|
+
*/
|
|
532
|
+
setEditPolicy(editPolicy: EditPolicy, mfaReceipt?: MfaReceipts): Promise<void>;
|
|
533
|
+
/**
|
|
534
|
+
* Get the edit policy for the role.
|
|
535
|
+
*
|
|
536
|
+
* @returns The edit policy for the role, undefined if there is no edit policy
|
|
537
|
+
*/
|
|
538
|
+
editPolicy(): Promise<EditPolicy | undefined>;
|
|
559
539
|
/**
|
|
560
540
|
* Sets the restricted actions on the role.
|
|
561
541
|
*
|
package/dist/src/role.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/role.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/role.ts"],"names":[],"mappings":"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"}
|
package/dist/src/role.js
CHANGED
|
@@ -136,7 +136,7 @@ class Role {
|
|
|
136
136
|
/**
|
|
137
137
|
* Append to existing role policy. This append is not atomic---it uses
|
|
138
138
|
* {@link policy} to fetch the current policy and then {@link setPolicy}
|
|
139
|
-
* to set the policy---and should not be used
|
|
139
|
+
* to set the policy---and should not be used across concurrent sessions.
|
|
140
140
|
*
|
|
141
141
|
* @param policy The policy to append to the existing one.
|
|
142
142
|
* @param mfaReceipt Optional MFA receipt(s)
|
|
@@ -155,6 +155,25 @@ class Role {
|
|
|
155
155
|
const data = await this.fetch();
|
|
156
156
|
return (data.policy ?? []);
|
|
157
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Set new edit policy (overwriting any edit policies previously set for this role)
|
|
160
|
+
*
|
|
161
|
+
* @param editPolicy The new edit policy to set
|
|
162
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
163
|
+
* @throws if MFA is required and no receipts are provided
|
|
164
|
+
*/
|
|
165
|
+
async setEditPolicy(editPolicy, mfaReceipt) {
|
|
166
|
+
await this.update({ edit_policy: editPolicy }, mfaReceipt);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get the edit policy for the role.
|
|
170
|
+
*
|
|
171
|
+
* @returns The edit policy for the role, undefined if there is no edit policy
|
|
172
|
+
*/
|
|
173
|
+
async editPolicy() {
|
|
174
|
+
const data = await this.fetch();
|
|
175
|
+
return data.edit_policy;
|
|
176
|
+
}
|
|
158
177
|
/**
|
|
159
178
|
* Sets the restricted actions on the role.
|
|
160
179
|
*
|
|
@@ -324,4 +343,4 @@ class Role {
|
|
|
324
343
|
}
|
|
325
344
|
exports.Role = Role;
|
|
326
345
|
_Role_apiClient = new WeakMap(), _Role_data = new WeakMap();
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSx3QkFBMkM7QUEyQjNDLHFDQUFxQztBQUNyQyxJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFDekIsaUNBQWlDO0lBQ2pDLCtEQUFTLENBQUE7SUFDVCwrQkFBK0I7SUFDL0IsMkRBQU8sQ0FBQTtBQUNULENBQUMsRUFMVyxlQUFlLCtCQUFmLGVBQWUsUUFLMUI7QUE2WkQsNkJBQTZCO0FBQ2hCLFFBQUEsbUJBQW1CLEdBQUcscUJBQThCLENBQUM7QUFHbEUsb0NBQW9DO0FBQ3ZCLFFBQUEsMEJBQTBCLEdBQUcsNEJBQXFDLENBQUM7QUFHaEYsNEJBQTRCO0FBQ2YsUUFBQSxrQkFBa0IsR0FBRyxvQkFBNkIsQ0FBQztBQUdoRSw0QkFBNEI7QUFDZixRQUFBLGtCQUFrQixHQUFHLG9CQUE2QixDQUFDO0FBR2hFLGdDQUFnQztBQUNuQixRQUFBLHNCQUFzQixHQUFHLHdCQUFpQyxDQUFDO0FBb0V4RSxpQ0FBaUM7QUFDakMsTUFBYSxlQUFlO0lBTzFCLHNDQUFzQztJQUN0QyxJQUFJLE1BQU07UUFDUixPQUFPLHVCQUFBLElBQUksK0JBQVEsQ0FBQztJQUN0QixDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUErQixDQUFDO0lBQ3JELENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLHVCQUFBLElBQUksK0JBQVEsQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLHVCQUFBLElBQUksK0JBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDMUUsdUJBQUEsSUFBSSwyQkFBVyxNQUFNLHVCQUFBLElBQUksa0NBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQUEsQ0FBQztRQUM5RixDQUFDO1FBQ0QsT0FBTyxJQUFJLE1BQUcsQ0FBQyx1QkFBQSxJQUFJLGtDQUFXLEVBQUUsdUJBQUEsSUFBSSwrQkFBUSxDQUFDLFFBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLFNBQW9CLEVBQUUsZUFBb0M7UUEvQjdELDZDQUFzQjtRQUcvQixpREFBaUQ7UUFDakQsMENBQTZCO1FBNEIzQix1QkFBQSxJQUFJLDhCQUFjLFNBQVMsTUFBQSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFDcEMsdUJBQUEsSUFBSSwyQkFBVyxlQUFlLE1BQUEsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUF0Q0QsMENBc0NDOztBQUVELGFBQWE7QUFDYixNQUFhLElBQUk7SUFLZixnREFBZ0Q7SUFDaEQsSUFBSSxJQUFJO1FBQ04sT0FBTyx1QkFBQSxJQUFJLGtCQUFNLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksRUFBRTtRQUNKLE9BQU8sdUJBQUEsSUFBSSxrQkFBTSxDQUFDLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sdUJBQUEsSUFBSSxrQkFBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQXdCO1FBQ25DLE9BQU8sTUFBTSx1QkFBQSxJQUFJLHVCQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQXdCO1FBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQXdCO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFrQixFQUFFLFVBQXdCO1FBQzFELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBa0IsRUFBRSxVQUF3QjtRQUM3RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQTBCLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBdUMsRUFBRSxVQUF3QjtRQUMxRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDakYsQ0FBQztRQUVGLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBZTtRQUN6QixNQUFNLEtBQUssR0FBRyxNQUFNLHVCQUFBLElBQUksdUJBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6RSxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQWMsRUFBRSxVQUF3QjtRQUNwRCxPQUFPLE1BQU0sdUJBQUEsSUFBSSx1QkFBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFjLEVBQUUsVUFBd0I7UUFDdkQsT0FBTyxNQUFNLHVCQUFBLElBQUksdUJBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFlO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLE1BQU0sdUJBQUEsSUFBSSx1QkFBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdFLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsdUJBQUEsSUFBSSx1QkFBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBYSxFQUFFLElBQXdCO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sdUJBQUEsSUFBSSx1QkFBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRSxPQUFPLElBQUksZUFBZSxDQUFDLHVCQUFBLElBQUksdUJBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBVyxFQUFFLE1BQWtCO1FBQzNDLE9BQU8sTUFBTSx1QkFBQSxJQUFJLHVCQUFXLENBQUMsV0FBVyxDQUN0QyxJQUFJLENBQUMsRUFBRSxFQUNQLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDckIsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBUSxFQUFFLE1BQWtCO1FBQ3ZDLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBUTtRQUN0QixPQUFPLE1BQU0sdUJBQUEsSUFBSSx1QkFBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQ2pCLE9BQWUsRUFDZixTQUEyQixFQUMzQixNQUFnQjtRQUVoQixPQUFPLE1BQU0sdUJBQUEsSUFBSSx1QkFBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFlO1FBQzVCLE1BQU0sUUFBUSxHQUFHLE1BQU0sdUJBQUEsSUFBSSx1QkFBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckYsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLG9CQUFpQixDQUFDLHVCQUFBLElBQUksdUJBQVcsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLDZFQUE2RTtJQUU3RTs7Ozs7O09BTUc7SUFDSCxZQUFZLFNBQW9CLEVBQUUsSUFBYztRQWxRdkMsa0NBQXNCO1FBQy9CLDJCQUEyQjtRQUMzQiw2QkFBZ0I7UUFpUWQsdUJBQUEsSUFBSSxtQkFBYyxTQUFTLE1BQUEsQ0FBQztRQUM1Qix1QkFBQSxJQUFJLGNBQVMsSUFBSSxNQUFBLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQTBCLEVBQUUsVUFBd0I7UUFDdkUsTUFBTSxJQUFJLEdBQUcsTUFBTSx1QkFBQSxJQUFJLHVCQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVFLHVCQUFBLElBQUksY0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQUEsQ0FBQztRQUN6QixPQUFPLHVCQUFBLElBQUksa0JBQU0sQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxLQUFLLENBQUMsS0FBSztRQUNqQix1QkFBQSxJQUFJLGNBQVMsTUFBTSx1QkFBQSxJQUFJLHVCQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBQSxDQUFDO1FBQ3BELE9BQU8sdUJBQUEsSUFBSSxrQkFBTSxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQWhTRCxvQkFnU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFwaUNsaWVudCxcbiAgQ29udHJhY3RBZGRyZXNzLFxuICBFdm1UeENtcCxcbiAgU29sYW5hVHhDbXAsXG4gIEtleVdpdGhQb2xpY2llc0luZm8sXG4gIE1mYVR5cGUsXG4gIFBhZ2VPcHRzLFxuICBSb2xlSW5mbyxcbiAgU2NvcGUsXG4gIFNlc3Npb25EYXRhLFxuICBTZXNzaW9uTGlmZXRpbWUsXG4gIFVwZGF0ZVJvbGVSZXF1ZXN0LFxuICBCYWJ5bG9uU3Rha2luZ1JlcXVlc3QsXG4gIE9wZXJhdGlvbktpbmQsXG4gIE1mYVJlY2VpcHRzLFxuICBDdWJlU2lnbmVyUmVzcG9uc2UsXG4gIEVtcHR5LFxuICBSZXN0cmljdGVkQWN0aW9uc01hcCxcbiAgR2V0Um9sZUtleU9wdGlvbnMsXG59IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBLZXksIFNpZ25lclNlc3Npb25JbmZvIH0gZnJvbSBcIi5cIjtcblxudHlwZSBOYW1lT3JBZGRyZXNzT3JOdWxsID0gc3RyaW5nIHwgbnVsbDtcblxuLyoqXG4gKiBSZXN0cmljdCB0aGUgcmVjZWl2ZXIgZm9yIEVWTSB0cmFuc2FjdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgeyBUeFJlY2VpdmVyOiBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiIH1cbiAqIEBleGFtcGxlIHsgVHhSZWNlaXZlcjogbnVsbCB9XG4gKiBAZXhhbXBsZSB7IFR4UmVjZWl2ZXI6IFtudWxsLCBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiXSB9XG4gKi9cbmV4cG9ydCB0eXBlIFR4UmVjZWl2ZXIgPSB7IFR4UmVjZWl2ZXI6IE5hbWVPckFkZHJlc3NPck51bGwgfCBOYW1lT3JBZGRyZXNzT3JOdWxsW10gfTtcblxuLyoqXG4gKiBSZXN0cmljdCB0aGUgcmVjZWl2ZXIgZm9yIFNVSSB0cmFuc2FjdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgeyBTdWlUeFJlY2VpdmVyOiBbIFwiMHhjOTgzN2EwYWQyZDExNDY4YmJmODQ3ZTNhZjRlM2VkZTgzN2JjYzAyYTFiZTZmYWVlNjIxZGYxYThhNDAzY2JmXCIgXSB9XG4gKi9cbmV4cG9ydCB0eXBlIFN1aVR4UmVjZWl2ZXJzID0geyBTdWlUeFJlY2VpdmVyczogc3RyaW5nW10gfTtcblxuLyoqXG4gKiBSZXN0cmljdCB0aGUgcmVjZWl2ZXIgZm9yIEJUQyB0cmFuc2FjdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgeyBCdGNUeFJlY2VpdmVyczogWyBcImJjMXEzcWRhdmwzN2RuajZoanVhemR6ZHhrMGFhbndqc2c0NG1ndXE2NlwiLCBcImJjMXFmcmp0eG04ZzIwZzk3cXpnYWRnN3Y5czNmdGprcTAycWZzc2s4N1wiIF0gfVxuICovXG5leHBvcnQgdHlwZSBCdGNUeFJlY2VpdmVycyA9IHsgQnRjVHhSZWNlaXZlcnM6IHN0cmluZ1tdIH07XG5cbi8qKiBUaGUga2luZCBvZiBkZXBvc2l0IGNvbnRyYWN0cy4gKi9cbmV4cG9ydCBlbnVtIERlcG9zaXRDb250cmFjdCB7XG4gIC8qKiBDYW5vbmljYWwgZGVwb3NpdCBjb250cmFjdCAqL1xuICBDYW5vbmljYWwsXG4gIC8qKiBXcmFwcGVyIGRlcG9zaXQgY29udHJhY3QgKi9cbiAgV3JhcHBlcixcbn1cblxuLyoqIFJlc3RyaWN0IHRyYW5zYWN0aW9ucyB0byBjYWxscyB0byBkZXBvc2l0IGNvbnRyYWN0LiAqL1xuZXhwb3J0IHR5cGUgVHhEZXBvc2l0ID0gVHhEZXBvc2l0QmFzZSB8IFR4RGVwb3NpdFB1YmtleSB8IFR4RGVwb3NpdFJvbGU7XG5cbi8qKiBSZXN0cmljdCB0cmFuc2FjdGlvbnMgdG8gY2FsbHMgdG8gZGVwb3NpdCBjb250cmFjdCovXG5leHBvcnQgdHlwZSBUeERlcG9zaXRCYXNlID0geyBUeERlcG9zaXQ6IHsga2luZDogRGVwb3NpdENvbnRyYWN0IH0gfTtcblxuLyoqXG4gKiBSZXN0cmljdCB0cmFuc2FjdGlvbnMgdG8gY2FsbHMgdG8gZGVwb3NpdCBjb250cmFjdCB3aXRoIGZpeGVkIHZhbGlkYXRvciAocHVia2V5KTpcbiAqXG4gKiBAZXhhbXBsZSB7IFR4RGVwb3NpdDogeyBraW5kOiBEZXNwb3NpdENvbnRyYWN0LkNhbm9uaWNhbCwgdmFsaWRhdG9yOiB7IHB1YmtleTogXCI4ODc5Li4uOFwifSB9fVxuICovXG5leHBvcnQgdHlwZSBUeERlcG9zaXRQdWJrZXkgPSB7IFR4RGVwb3NpdDogeyBraW5kOiBEZXBvc2l0Q29udHJhY3Q7IHB1YmtleTogc3RyaW5nIH0gfTtcblxuLyoqXG4gKiBSZXN0cmljdCB0cmFuc2FjdGlvbnMgdG8gY2FsbHMgdG8gZGVwb3NpdCBjb250cmFjdCB3aXRoIGFueSB2YWxpZGF0b3Iga2V5IGluIGEgcm9sZTpcbiAqXG4gKiBAZXhhbXBsZSB7IFR4RGVwb3NpdDogeyBraW5kOiBEZXNwb3NpdENvbnRyYWN0LkNhbm9uaWNhbCwgdmFsaWRhdG9yOiB7IHJvbGVfaWQ6IFwiUm9sZSNjNjMuLi5hZlwifSB9fVxuICovXG5leHBvcnQgdHlwZSBUeERlcG9zaXRSb2xlID0geyBUeERlcG9zaXQ6IHsga2luZDogRGVwb3NpdENvbnRyYWN0OyByb2xlX2lkOiBzdHJpbmcgfSB9O1xuXG4vKipcbiAqIFJlc3RyaWN0IHRyYW5zYWN0aW9uIHZhbHVlcyB0byBhbW91bnRzIGF0IG9yIGJlbG93IHRoZSBnaXZlbiBsaW1pdCBpbiB3ZWkuXG4gKiBDdXJyZW50bHksIHRoaXMgb25seSBhcHBsaWVzIHRvIEVWTSB0cmFuc2FjdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFR4VmFsdWVMaW1pdCA9IFR4VmFsdWVMaW1pdFBlclR4IHwgVHhWYWx1ZUxpbWl0V2luZG93O1xuXG4vKipcbiAqIFJlc3RyaWN0IGluZGl2aWR1YWwgdHJhbnNhY3Rpb24gdmFsdWVzIHRvIGFtb3VudHMgYXQgb3IgYmVsb3cgdGhlIGdpdmVuIGxpbWl0IGluIHdlaS5cbiAqIEN1cnJlbnRseSwgdGhpcyBvbmx5IGFwcGxpZXMgdG8gRVZNIHRyYW5zYWN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSB7IFR4VmFsdWVMaW1pdDogXCIweDEyQTA1RjIwMFwiIH1cbiAqL1xuZXhwb3J0IHR5cGUgVHhWYWx1ZUxpbWl0UGVyVHggPSB7IFR4VmFsdWVMaW1pdDogc3RyaW5nIH07XG5cbi8qKlxuICogUmVzdHJpY3QgdHJhbnNhY3Rpb24gdmFsdWVzLCBpbiB3ZWksIG92ZXIgYSB0aW1lIHdpbmRvdy5cbiAqIEN1cnJlbnRseSwgdGhpcyBvbmx5IGFwcGxpZXMgdG8gRVZNIHRyYW5zYWN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSB7IFR4VmFsdWVMaW1pdDogeyBsaW1pdDogXCIweDEyQTA1RjIwMFwiLCB3aW5kb3c6IDg2NDAwIH19XG4gKiBAZXhhbXBsZSB7IFR4VmFsdWVMaW1pdDogeyBsaW1pdDogXCIweDEyQTA1RjIwMFwiLCB3aW5kb3c6IDYwNDgwMCwgY2hhaW5faWRzOiBbIFwiMVwiLCBcIjVcIiBdIH19XG4gKiBAZXhhbXBsZSB7IFR4VmFsdWVMaW1pdDogeyBsaW1pdDogXCIweDEyQTA1RjIwMFwiLCB3aW5kb3c6IDYwNDgwMCwgZXhjZXB0X2NoYWluX2lkczogWyBcIjFcIiBdIH19XG4gKi9cbmV4cG9ydCB0eXBlIFR4VmFsdWVMaW1pdFdpbmRvdyA9IHtcbiAgVHhWYWx1ZUxpbWl0OiB7XG4gICAgLyoqXG4gICAgICogTWF4IGFsbG93ZWQgdmFsdWUgaW4gd2VpXG4gICAgICovXG4gICAgbGltaXQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBzbGlkaW5nIHRpbWUgd2luZG93IChpbiBzZWNvbmRzKS5cbiAgICAgKlxuICAgICAqIElmIHNwZWNpZmllZCwgdGhlIGBsaW1pdGAgYXBwbGllcyB0byB0aGUgYWdncmVnYXRlIHZhbHVlIG9mIGFsbCB0cmFuc2FjdGlvbnMgd2l0aGluIHRoYXRcbiAgICAgKiB0aW1lIHdpbmRvdzsgb3RoZXJ3aXNlLCB0aGUgd2luZG93IGlzIDAsIGkuZS4sIHRoZSBsaW1pdCBhcHBsaWVzIHRvIGluZGl2aWR1YWwgdHJhbnNhY3Rpb25zLlxuICAgICAqL1xuICAgIHdpbmRvdz86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBjaGFpbiBpZHMuXG4gICAgICpcbiAgICAgKiBJZiBzcGVjaWZpZWQsIHRoZSBwb2xpY3kgYXBwbGllcyBvbmx5IGlmIGEgdHJhbnNhY3Rpb24gaXMgb24gb25lIG9mIHRoZVxuICAgICAqIGdpdmVuIGNoYWlucyAob3RoZXJ3aXNlIGl0IGFwcGxpZXMgdG8gYWxsIHRyYW5zYWN0aW9ucykuIElmIGEgJ3dpbmRvdycgaXNcbiAgICAgKiBhbHNvIGRlZmluZWQsIHRoZSBwb2xpY3kgbGltaXQgYXBwbGllcyBjdW11bGF0aXZlbHkgYWNyb3NzIGFsbCBzcGVjaWZpZWQgY2hhaW5zLlxuICAgICAqXG4gICAgICogTXVzdCBub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggYGV4Y2VwdF9jaGFpbl9pZHNgLlxuICAgICAqL1xuICAgIGNoYWluX2lkcz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIGNoYWluIGlkcyB0byBleGNsdWRlLlxuICAgICAqXG4gICAgICogSWYgc3BlY2lmaWVkLCB0aGUgcG9saWN5IGFwcGxpZXMgb25seSBpZiBhIHRyYW5zYWN0aW9uIGlzIG9uIGEgY2hhaW4gaWQgbm90XG4gICAgICogaW5jbHVkZWQgaW4gdGhpcyBsaXN0LiBJZiBhICd3aW5kb3cnIGlzIGFsc28gZGVmaW5lZCwgdGhlIHBvbGljeSBsaW1pdCBhcHBsaWVzXG4gICAgICogY3VtdWxhdGl2ZWx5IGFjcm9zcyBhbGwgY2hhaW5zIG90aGVyIHRoYW4gdGhlIGxpc3RlZCBvbmVzLlxuICAgICAqXG4gICAgICogTXVzdCBub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggYGNoYWluX2lkc2AuXG4gICAgICovXG4gICAgZXhjZXB0X2NoYWluX2lkcz86IHN0cmluZ1tdO1xuICB9O1xufTtcblxuLyoqXG4gKiBSZXN0cmljdCB0cmFuc2FjdGlvbiBtYXggZ2FzIGNvc3RzIHRvIGFtb3VudHMgYXQgb3IgYmVsb3cgdGhlIGdpdmVuIGxpbWl0IGluIHdlaS5cbiAqXG4gKiBAZXhhbXBsZSB7IFR4R2FzQ29zdExpbWl0OiBcIjB4MjdDQTU3MzU3QzAwMFwiIH1cbiAqL1xuZXhwb3J0IHR5cGUgVHhHYXNDb3N0TGltaXQgPSB7IFR4R2FzQ29zdExpbWl0OiBzdHJpbmcgfTtcblxuLyoqXG4gKiBSZXN0cmljdCBFUkMtMjAgbWV0aG9kIGNhbGxzIGFjY29yZGluZyB0byB0aGUge0BsaW5rIEVyYzIwUG9saWN5fS5cbiAqIE9ubHkgYXBwbGllcyB0byBFVk0gdHJhbnNhY3Rpb25zIHRoYXQgY2FsbCBhIHZhbGlkIEVSQy0yMCBtZXRob2QuXG4gKiBOb24tRVJDLTIwIHRyYW5zYWN0aW9ucyBhcmUgaWdub3JlZCBieSB0aGlzIHBvbGljeS5cbiAqXG4gKiBAZXhhbXBsZSB7IElmRXJjMjBUeDogeyB0cmFuc2Zlcl9saW1pdHM6IFt7IGxpbWl0OiBcIjB4RThENEE1MTAwMFwiIH1dIH0gfVxuICogQGV4YW1wbGUgeyBJZkVyYzIwVHg6IHsgYWxsb3dlZF9jb250cmFjdHM6IFsgeyBhZGRyZXNzOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNGEyMGI4MDkwMDhhZmViMFwiLCBcImNoYWluX2lkXCI6IFwiMVwiIH0gXSB9IH1cbiAqL1xuZXhwb3J0IHR5cGUgSWZFcmMyMFR4ID0geyBJZkVyYzIwVHg6IEVyYzIwUG9saWN5IH07XG5cbi8qKlxuICogUmVzdHJpY3QgdHJhbnNhY3Rpb25zIHRvIG9ubHkgYWxsb3cgdmFsaWQgRVJDLTIwIG1ldGhvZCBjYWxscy5cbiAqL1xuZXhwb3J0IHR5cGUgQXNzZXJ0RXJjMjBUeCA9IFwiQXNzZXJ0RXJjMjBUeFwiO1xuXG4vKipcbiAqIFJlc3RyaWN0IHRyYW5zYWN0aW9ucyB0byBvbmx5IGFsbG93IG5hdGl2ZSB0b2tlbiB0cmFuc2ZlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIEFzc2VydFRyYW5zZmVyT25seVR4ID0gXCJBc3NlcnRUcmFuc2Zlck9ubHlUeFwiO1xuXG4vKipcbiAqIFJlc3RyaWN0IEVSQy0yMCBgdHJhbnNmZXJgIGFuZCBgdHJhbnNmZXJGcm9tYCB0cmFuc2FjdGlvbiB2YWx1ZXMgYW5kIHJlY2VpdmVycy5cbiAqIE9ubHkgYXBwbGllcyB0byBjb250cmFjdHMgZGVmaW5lZCBpbiBgYXBwbGllc190b19jb250cmFjdHNgLFxuICogb3IgdG8gYWxsIGNvbnRyYWN0cyBpZiBub3QgZGVmaW5lZC5cbiAqIFRoZSBsaW1pdCBpcyBpbiB0aGUgdG9rZW4ncyB1bml0LlxuICovXG5leHBvcnQgdHlwZSBFcmMyMFRyYW5zZmVyTGltaXQgPSB7XG4gIGxpbWl0Pzogc3RyaW5nO1xuICByZWNlaXZlcnM/OiBzdHJpbmdbXTtcbiAgYXBwbGllc190b19jb250cmFjdHM/OiBDb250cmFjdEFkZHJlc3NbXTtcbn07XG5cbi8qKlxuICogUmVzdHJpY3QgRVJDLTIwIGBhcHByb3ZlYCB0cmFuc2FjdGlvbiB2YWx1ZXMgYW5kIHNwZW5kZXJzLlxuICogT25seSBhcHBsaWVzIHRvIGNvbnRyYWN0cyBkZWZpbmVkIGluIGBhcHBsaWVzX3RvX2NvbnRyYWN0c2AsXG4gKiBvciB0byBhbGwgY29udHJhY3RzIGlmIG5vdCBkZWZpbmVkLlxuICogVGhlIGxpbWl0IGlzIGluIHRoZSB0b2tlbidzIHVuaXQuXG4gKi9cbmV4cG9ydCB0eXBlIEVyYzIwQXBwcm92ZUxpbWl0ID0ge1xuICBsaW1pdD86IHN0cmluZztcbiAgc3BlbmRlcnM/OiBzdHJpbmdbXTtcbiAgYXBwbGllc190b19jb250cmFjdHM/OiBDb250cmFjdEFkZHJlc3NbXTtcbn07XG5cbi8qKlxuICogUmVzdHJpY3RzIEVSQy0yMCBwb2xpY2llcyB0byBhIHNldCBvZiBrbm93biBjb250cmFjdHMsXG4gKiBhbmQgY2FuIGRlZmluZSBsaW1pdHMgb24gYHRyYW5zZmVyYCwgYHRyYW5zZmVyRnJvbWAgYW5kIGBhcHByb3ZlYCBtZXRob2QgY2FsbHMuXG4gKi9cbmV4cG9ydCB0eXBlIEVyYzIwUG9saWN5ID0ge1xuICBhbGxvd2VkX2NvbnRyYWN0cz86IENvbnRyYWN0QWRkcmVzc1tdO1xuICB0cmFuc2Zlcl9saW1pdHM/OiBFcmMyMFRyYW5zZmVyTGltaXRbXTtcbiAgYXBwcm92ZV9saW1pdHM/OiBFcmMyMEFwcHJvdmVMaW1pdFtdO1xufTtcblxuLyoqXG4gKiBSZXN0cmljdCB0cmFuc2FjdGlvbnMgdG8gb25seSBhbGxvdyBjYWxsaW5nIHRoZSBnaXZlbiBtZXRob2RzIGluIHRoZSBnaXZlbiBjb250cmFjdHMuXG4gKlxuICogQGV4YW1wbGUgeyBBc3NlcnRDb250cmFjdFR4OiB7XG4gKiAgIGFsbG93bGlzdDogW3tcbiAqICAgICBhZGRyZXNzOiB7IGFkZHJlc3M6IFwiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0YTIwYjgwOTAwOGFmZWIwXCIsIFwiY2hhaW5faWRcIjogXCIxXCIgfSxcbiAqICAgICBtZXRob2RzOiBbXG4gKiAgICAgICBcImZ1bmN0aW9uIG5hbWUoKSBwdWJsaWMgdmlldyByZXR1cm5zIChzdHJpbmcpXCIsXG4gKiAgICAgICBcImZ1bmN0aW9uIHRyYW5zZmVyKGFkZHJlc3MgdG8sIHVpbnQyNTYgdmFsdWUpIHB1YmxpYyByZXR1cm5zIChib29sIHN1Y2Nlc3MpXCJcbiAqICAgICBdXG4gKiAgIH1dXG4gKiB9XG4gKi9cbmV4cG9ydCB0eXBlIEFzc2VydENvbnRyYWN0VHggPSB7XG4gIEFzc2VydENvbnRyYWN0VHg6IHtcbiAgICBhbGxvd2xpc3Q6IHtcbiAgICAgIGFkZHJlc3M6IENvbnRyYWN0QWRkcmVzcztcbiAgICAgIG1ldGhvZHM6IHN0cmluZ1tdO1xuICAgIH1bXTtcbiAgfTtcbn07XG5cbi8qKlxuICogU29sYW5hIGFkZHJlc3MgbWF0Y2hlci5cbiAqIENhbiBiZSBlaXRoZXIgdGhlIHB1YmtleSBvZiB0aGUgYWNjb3VudCB1c2luZyBiYXNlNTggZW5jb2RpbmcsXG4gKiBvciB0aGUgaW5kZXggb2YgdGhlIHB1YmtleSBvZiBhbiBhZGRyZXNzIGxvb2t1cCB0YWJsZSBhbmQgdGhlXG4gKiBpbmRleCBvZiB0aGUgYWNjb3VudCBpbiB0aGF0IHRhYmxlLlxuICovXG5leHBvcnQgdHlwZSBTb2xhbmFBZGRyZXNzTWF0Y2hlciA9XG4gIHwgc3RyaW5nXG4gIHwge1xuICAgICAgYWx0X2FkZHJlc3M6IHN0cmluZztcbiAgICAgIGluZGV4OiBudW1iZXI7XG4gICAgfTtcblxuLyoqXG4gKiBTb2xhbmEgaW5zdHJ1Y3Rpb24gbWF0Y2hlci5cbiAqL1xuZXhwb3J0IHR5cGUgU29sYW5hSW5zdHJ1Y3Rpb25NYXRjaGVyID0ge1xuICBwcm9ncmFtX2lkOiBzdHJpbmc7XG4gIGluZGV4PzogbnVtYmVyO1xuICBhY2NvdW50cz86IChcbiAgICB8IHtcbiAgICAgICAgYWRkcmVzczogU29sYW5hQWRkcmVzc01hdGNoZXIgfCBTb2xhbmFBZGRyZXNzTWF0Y2hlcltdO1xuICAgICAgfVxuICAgIHwgKHtcbiAgICAgICAgLyoqIEBkZXByZWNhdGVkIHVzZSBgYWRkcmVzc2AgaW5zdGVhZC4gKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9ICYge1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgfSlcbiAgKVtdO1xuICBkYXRhPzpcbiAgICB8IHN0cmluZ1xuICAgIHwge1xuICAgICAgICBkYXRhOiBzdHJpbmc7XG4gICAgICAgIHN0YXJ0X2luZGV4OiBudW1iZXI7XG4gICAgICB9W107XG59O1xuXG4vKipcbiAqIFJlc3RyaWN0cyBTb2xhbmEgdHJhbnNhY3Rpb24gaW5zdHJ1Y3Rpb25zLiBDYW4gbGltaXQgdGhlIG51bWJlciBvZiBpbnN0cnVjdGlvbnMsXG4gKiB0aGUgbGlzdCBvZiBhbGxvd2VkIGluc3RydWN0aW9ucywgYW5kIGEgc2V0IG9mIHJlcXVpcmVkIGluc3RydWN0aW9ucyBpbiBhbGwgdHJhbnNhY3Rpb25zLlxuICovXG5leHBvcnQgdHlwZSBTb2xhbmFJbnN0cnVjdGlvblBvbGljeSA9IHtcbiAgU29sYW5hSW5zdHJ1Y3Rpb25Qb2xpY3k6IHtcbiAgICBjb3VudD86IHtcbiAgICAgIG1pbj86IG51bWJlcjtcbiAgICAgIG1heD86IG51bWJlcjtcbiAgICB9O1xuICAgIGFsbG93bGlzdD86IFNvbGFuYUluc3RydWN0aW9uTWF0Y2hlcltdO1xuICAgIHJlcXVpcmVkPzogU29sYW5hSW5zdHJ1Y3Rpb25NYXRjaGVyW107XG4gIH07XG59O1xuXG4vKipcbiAqIFJlc3RyaWN0IHRoZSB0b3RhbCB2YWx1ZSB0cmFuc2ZlcnJlZCBvdXQgb2YgdGhlIGlucHV0cyBpbiBhIEJpdGNvaW4gU2Vnd2l0IHRyYW5zYWN0aW9uXG4gKiB0byBhbW91bnRzIGF0IG9yIGJlbG93IHRoZSBnaXZlbiBsaW1pdC5cbiAqL1xuZXhwb3J0IHR5cGUgQnRjU2Vnd2l0VmFsdWVMaW1pdCA9IEJ0Y1NlZ3dpdFZhbHVlTGltaXRQZXJUeCB8IEJ0Y1NlZ3dpdFZhbHVlTGltaXRXaW5kb3c7XG5cbi8qKlxuICogUmVzdHJpY3QgaW5kaXZpZHVhbCBCaXRjb2luIFNlZ3dpdCB0cmFuc2FjdGlvbiB2YWx1ZXMgdG8gYW1vdW50cyBhdCBvciBiZWxvd1xuICogdGhlIGdpdmVuIGxpbWl0LlxuICpcbiAqIEBleGFtcGxlIHsgQnRjU2Vnd2l0VmFsdWVMaW1pdDogXCIxMDAwMDAwXCIgfVxuICovXG5leHBvcnQgdHlwZSBCdGNTZWd3aXRWYWx1ZUxpbWl0UGVyVHggPSB7XG4gIEJ0Y1NlZ3dpdFZhbHVlTGltaXQ6IG51bWJlcjtcbn07XG5cbi8qKlxuICogUmVzdHJpY3QgdGhlIHRvdGFsIHZhbHVlIHRyYW5zZmVycmVkIG91dCBvZiB0aGUgaW5wdXRzIGluIEJpdGNvaW4gU2Vnd2l0IHRyYW5zYWN0aW9uc1xuICogb3ZlciBhIHRpbWUgd2luZG93LlxuICpcbiAqIEBleGFtcGxlIHsgQnRjU2Vnd2l0VmFsdWVMaW1pdDogeyBsaW1pdDogXCIxMDAwMDAwXCIsIHdpbmRvdzogODY0MDAgfX1cbiAqL1xuZXhwb3J0IHR5cGUgQnRjU2Vnd2l0VmFsdWVMaW1pdFdpbmRvdyA9IHtcbiAgQnRjU2Vnd2l0VmFsdWVMaW1pdDoge1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgd2luZG93PzogbnVtYmVyO1xuICB9O1xufTtcblxuLyoqXG4gKiBPbmx5IGFsbG93IGNvbm5lY3Rpb25zIGZyb20gY2xpZW50cyB3aG9zZSBJUCBhZGRyZXNzZXMgbWF0Y2ggYW55IG9mIHRoZXNlIElQdjQgQ0lEUiBibG9ja3MuXG4gKlxuICogQGV4YW1wbGUgeyBTb3VyY2VJcEFsbG93bGlzdDogWyBcIjEyMy40NTYuNzguOS8xNlwiIF0gfVxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VJcEFsbG93bGlzdCA9IHsgU291cmNlSXBBbGxvd2xpc3Q6IHN0cmluZ1tdIH07XG5cbi8qKlxuICogTUZBIHBvbGljeVxuICpcbiAqIEBleGFtcGxlIHtcbiAqIHtcbiAqICAgY291bnQ6IDEsXG4gKiAgIG51bV9hdXRoX2ZhY3RvcnM6IDEsXG4gKiAgIGFsbG93ZWRfbWZhX3R5cGVzOiBbIFwiVG90cFwiIF0sXG4gKiAgIGFsbG93ZWRfYXBwcm92ZXJzOiBbIFwiVXNlciMxMjNcIiBdLFxuICogfVxuICovXG5leHBvcnQgdHlwZSBNZmFQb2xpY3kgPSB7XG4gIGNvdW50PzogbnVtYmVyO1xuICBudW1fYXV0aF9mYWN0b3JzPzogbnVtYmVyO1xuICBhbGxvd2VkX2FwcHJvdmVycz86IHN0cmluZ1tdO1xuICBhbGxvd2VkX21mYV90eXBlcz86IE1mYVR5cGVbXTtcbiAgcmVzdHJpY3RlZF9vcGVyYXRpb25zPzogT3BlcmF0aW9uS2luZFtdO1xuICAvKiogTGlmZXRpbWUgaW4gc2Vjb25kcywgZGVmYXVsdHMgdG8gOTAwICgxNSBtaW51dGVzKSAqL1xuICBsaWZldGltZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyB0byBjb21wYXJlIEhUVFAgcmVxdWVzdHMgd2hlbiB2ZXJpZnlpbmcgdGhlIE1GQSByZWNlaXB0LlxuICAgKiBUaGlzIHNwZWNpZmllcyBob3cgd2UgY2hlY2sgZXF1YWxpdHkgYmV0d2VlbiAoMSkgdGhlIEhUVFAgcmVxdWVzdCB3aGVuIHRoZSAyMDIgKE1GQSByZXF1aXJlZClcbiAgICogcmVzcG9uc2UgaXMgcmV0dXJuZWQgYW5kICgyKSB0aGUgSFRUUCByZXF1ZXN0IHdoZW4gdGhlIGNvcnJlc3BvbmQgTUZBIHJlY2VpcHQgaXMgdXNlZC5cbiAgICovXG4gIHJlcXVlc3RfY29tcGFyZXI/OiBIdHRwUmVxdWVzdENvbXBhcmVyO1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgYmVmb3JlIGFuIE1GQSByZWNlaXB0IGNhbiBiZSByZWRlZW1lZC5cbiAgICogRGVmYXVsdHMgdG8gMCwgaS5lLiwgbm8gZGVsYXkuIEFwcHJvdmVycyBjYW4gdm90ZSB0byBhcHByb3ZlIG9yIHZldG9cbiAgICogYmVmb3JlIHRoZSBkZWxheSBleHBpcmVzLiBBZnRlciBhcHByb3ZpbmcsIGl0IGlzIHN0aWxsIHBvc3NpYmxlIGZvclxuICAgKiBhbnlvbmUgdG8gdmV0byB0aGUgcmVxdWVzdCB1bnRpbCB0aGUgZGVsYXkgZXhwaXJlcyBhbmQgdGhlIHJlY2VpcHRcbiAgICogaXMgcmVkZWVtZWQuXG4gICAqL1xuICB0aW1lX2RlbGF5PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgSHR0cFJlcXVlc3RDb21wYXJlciA9IFwiRXFcIiB8IHsgRXZtVHg6IEV2bVR4Q21wIH0gfCB7IFNvbGFuYVR4OiBTb2xhbmFUeENtcCB9O1xuXG4vKipcbiAqIFJlcXVpcmUgTUZBIGZvciB0cmFuc2FjdGlvbnMuXG4gKlxuICogQGV4YW1wbGUge1xuICogICAgIFJlcXVpcmVNZmE6IHtcbiAqICAgICAgIGNvdW50OiAxLFxuICogICAgICAgYWxsb3dlZF9tZmFfdHlwZXM6IFsgXCJUb3RwXCIgXSxcbiAqICAgICAgIGFsbG93ZWRfYXBwcm92ZXJzOiBbIFwiVXNlciMxMjNcIiBdLFxuICogICAgICAgcmVzdHJpY3RlZF9vcGVyYXRpb25zOiBbXG4gKiAgICAgICAgIFwiRXRoMVNpZ25cIixcbiAqICAgICAgICAgXCJCbG9iU2lnblwiXG4gKiAgICAgICBdXG4gKiAgICAgfVxuICogICB9XG4gKi9cbmV4cG9ydCB0eXBlIFJlcXVpcmVNZmEgPSB7XG4gIFJlcXVpcmVNZmE6IE1mYVBvbGljeTtcbn07XG5cbi8qKlxuICogUmVxdWlyZSB0aGF0IHRoZSBrZXkgaXMgYWNjZXNzZWQgdmlhIGEgcm9sZSBzZXNzaW9uLlxuICpcbiAqIEBleGFtcGxlIHsgXCJSZXF1aXJlUm9sZVNlc3Npb25cIjogXCIqXCIgfVxuICogQGV4YW1wbGUgeyBcIlJlcXVpcmVSb2xlU2Vzc2lvblwiOiBbXG4gKiAgIFwiUm9sZSMzNGRmYjY1NC1mMzZkLTQ4ZWEtYmRmNi04MzNjMGQ5NGI3NTlcIixcbiAqICAgXCJSb2xlIzk4ZDg3NjMzLWQxYTctNDYxMi1iNmI0LWIyZmEyYjQzY2QzZFwiXG4gKiBdfVxuICovXG5leHBvcnQgdHlwZSBSZXF1aXJlUm9sZVNlc3Npb24gPSB7XG4gIC8qKiBSZXF1aXJlIGVpdGhlciBhbnkgcm9sZSBzZXNzaW9uIG9yIGFueSBvbmUgb2YgdGhlIGFwcHJvdmVkIHJvbGVzICovXG4gIFJlcXVpcmVSb2xlU2Vzc2lvbjogXCIqXCIgfCBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogRm9yd2FyZHMgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyB0byB0aGlzIHdlYmhvb2sgd2hpY2ggZGV0ZXJtaW5lc1xuICogd2hldGhlciB0aGUgcmVxdWVzdCBpcyBhbGxvd2VkIHRvIGJlIGV4ZWN1dGVkLlxuICovXG5leHBvcnQgdHlwZSBXZWJob29rUG9saWN5ID0ge1xuICBXZWJob29rOiB7XG4gICAgLyoqIFRoZSB1cmwgb2YgdGhlIHdlYmhvb2sgKi9cbiAgICB1cmw6IHN0cmluZztcblxuICAgIC8qKiBPcHRpb25hbCBIVFRQIG1ldGhvZCB0byB1c2UuIERlZmF1bHRzIHRvIFBPU1QuICovXG4gICAgbWV0aG9kPzogc3RyaW5nO1xuXG4gICAgLyoqIE9wdGlvbmFsIEhUVFAgaGVhZGVycyB0byBzZXQgKi9cbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFJlcXVlc3QgZXhlY3V0aW9uIHRpbWVvdXQgaW4gc2Vjb25kczsgbXVzdCBiZSBhdCBsZWFzdCAxIG5vdCBleGNlZWQgNSBzZWNvbmRzLlxuICAgICAqIERlZmF1bHRzIHRvIDUuXG4gICAgICovXG4gICAgdGltZW91dD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEN1YmVTaWduZXIgb3BlcmF0aW9ucyB0byB3aGljaCB0aGlzIHBvbGljeSBzaG91bGQgYXBwbHkuXG4gICAgICogV2hlbiBvbWl0dGVkLCBhcHBsaWVzIHRvIGFsbCBvcGVyYXRpb25zLlxuICAgICAqL1xuICAgIHJlc3RyaWN0ZWRfb3BlcmF0aW9ucz86IE9wZXJhdGlvbktpbmRbXTtcbiAgfTtcbn07XG5cbi8qKiBCYWJ5bG9uIHN0YWtpbmcgcG9saWN5ICovXG5leHBvcnQgdHlwZSBCYWJ5bG9uU3Rha2luZyA9IHtcbiAgQmFieWxvblN0YWtpbmc6IHtcbiAgICAvKipcbiAgICAgKiBQdWJsaWMga2V5cyB0aGF0IGNhbiBiZSB1c2VkIGZvciBzdGFraW5nLiBNdXN0IGJlIGRlZmluZWQgaWYgdGhlIHBvbGljeSBpcyBiZWluZyBhcHBsaWVkXG4gICAgICogdG8gYSBTZWdXaXQga2V5OyBvdGhlcndpc2UsIGlmIGB1bmRlZmluZWRgLCBvbmx5IHRoZSBrZXkgdG8gd2hpY2ggdGhlIHBvbGljeSBpcyBiZWluZ1xuICAgICAqIGFwcGxpZWQgY2FuIGJlIHVzZWQgYXMgdGhlIHN0YWtpbmcgcHVibGljIGtleSB3aGVuIGNyZWF0aW5nIEJhYnlsb24tcmVsYXRlZCB0cmFuc2FjdGlvbnMuXG4gICAgICpcbiAgICAgKiBIZXgtZW5jb2RlZCBwdWJsaWMga2V5cywgV0lUSE9VVCB0aGUgbGVhZGluZyAnMHgnLlxuICAgICAqL1xuICAgIGFsbG93ZWRfc3Rha2VyX3Brcz86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogRmluYWxpdHkgcHJvdmlkZXJzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHN0YWtpbmcuIElmIGB1bmRlZmluZWRgLCBhbnkgZmluYWxpdHlcbiAgICAgKiBwcm92aWRlciBjYW4gYmUgdXNlZC5cbiAgICAgKlxuICAgICAqIEhleC1lbmNvZGVkIHB1YmxpYyBrZXlzLCBXSVRIT1VUIHRoZSBsZWFkaW5nICcweCcuXG4gICAgICovXG4gICAgYWxsb3dlZF9maW5hbGl0eV9wcm92aWRlcl9wa3M/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBhZGRyZXNzZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBzdGFraW5nIHRyYW5zYWN0aW9ucy4gSWYgYHVuZGVmaW5lZGAsIG9ubHlcbiAgICAgKiB0aGUga2V5IHRvIHdoaWNoIHRoZSBwb2xpY3kgaXMgYmVpbmcgYXBwbGllZCBjYW4gYmUgdXNlZCBhcyB0aGUgY2hhbmdlIGFkZHJlc3MuXG4gICAgICovXG4gICAgYWxsb3dlZF9jaGFuZ2VfYWRkcnM/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFdpdGhkcmF3YWwgYWRkcmVzc2VzIHRoYXQgY2FuIGJlIHVzZWQgaW4gd2l0aGRyYXdhbCB0eG5zLiBJZiBgdW5kZWZpbmVkYCwgb25seVxuICAgICAqIHRoZSBrZXkgdG8gd2hpY2ggdGhlIHBvbGljeSBpcyBiZWluZyBhcHBsaWVkIGNhbiBiZSB1c2VkIGFzIHRoZSB3aXRoZHJhd2FsIGFkZHJlc3MuXG4gICAgICovXG4gICAgYWxsb3dlZF93aXRoZHJhd2FsX2FkZHJzPzogc3RyaW5nW107XG5cbiAgICAvKiogQmFieWxvbiBuZXR3b3JrcyB0aGF0IHRoaXMga2V5IGNhbiBiZSB1c2VkIHdpdGguIElmIGB1bmRlZmluZWRgLCBhbnkgbmV0d29yay4gKi9cbiAgICBhbGxvd2VkX25ldHdvcmtfaWRzPzogQmFieWxvblN0YWtpbmdSZXF1ZXN0W1wibmV0d29ya1wiXVtdO1xuXG4gICAgLyoqXG4gICAgICogTWF4IGZlZSBhbGxvd2VkIGluIGEgc3Rha2luZyBvciB3aXRoZHJhd2FsIHR4bi4gSWYgYHVuZGVmaW5lZGAsIHRoZXJlIGlzIG5vIGZlZSBsaW1pdC5cbiAgICAgKiBOb3RlIHRoYXQgdGhlIGZlZSBmb3Igdm9sdW50YXJ5IHVuYm9uZGluZyBhbmQgc2xhc2hpbmcgYXJlIGZpeGVkIGJ5IHRoZSBCYWJ5bG9uXG4gICAgICogcGFyYW1zLCBhbmQgdGhpcyBsaW1pdCBpcyBub3QgZW5mb3JjZWQgaW4gdGhvc2UgY2FzZXMuXG4gICAgICovXG4gICAgbWF4X2ZlZT86IG51bWJlcjtcblxuICAgIC8qKiBNaW4gc3Rha2luZyB0aW1lIGluIHNlY29uZHMuIElmIGB1bmRlZmluZWRgLCB1c2VzIHRoZSBsaW1pdCBkZWZpbmVkIGJ5IHRoZSBCYWJ5bG9uIHN0YWtpbmcgcGFyYW1zLiAqL1xuICAgIG1pbl9sb2NrX3RpbWU/OiBudW1iZXI7XG5cbiAgICAvKiogTWF4IHN0YWtpbmcgdGltZSBpbiBzZWNvbmRzLiBJZiBgdW5kZWZpbmVkYCwgdXNlcyB0aGUgbGltaXQgZGVmaW5lZCBieSB0aGUgQmFieWxvbiBzdGFraW5nIHBhcmFtcy4gKi9cbiAgICBtYXhfbG9ja190aW1lPzogbnVtYmVyO1xuXG4gICAgLyoqIE1pbiBzdGFraW5nIGFtb3VudCBpbiBTQVQuIElmIGB1bmRlZmluZWRgLCB1c2VzIHRoZSBsaW1pdCBkZWZpbmVkIGJ5IHRoZSBCYWJ5bG9uIHN0YWtpbmcgcGFyYW1zLiAqL1xuICAgIG1pbl9zdGFraW5nX3ZhbHVlPzogbnVtYmVyO1xuXG4gICAgLyoqIE1heCBzdGFraW5nIGFtb3VudCBpbiBTQVQuIElmIGB1bmRlZmluZWRgLCB1c2VzIHRoZSBsaW1pdCBkZWZpbmVkIGJ5IHRoZSBCYWJ5bG9uIHN0YWtpbmcgcGFyYW1zLiAqL1xuICAgIG1heF9zdGFraW5nX3ZhbHVlPzogbnVtYmVyO1xuXG4gICAgLyoqIE1pbmltdW0gbmV0d29yayBwYXJhbWV0ZXJzIHZlcnNpb24gYWxsb3dlZC4gKi9cbiAgICBtaW5fcGFyYW1zX3ZlcnNpb24/OiBudW1iZXI7XG5cbiAgICAvKiogTWF4aW11bSBuZXR3b3JrIHBhcmFtZXRlcnMgdmVyc2lvbiBhbGxvd2VkLiAqL1xuICAgIG1heF9wYXJhbXNfdmVyc2lvbj86IG51bWJlcjtcbiAgfTtcbn07XG5cbi8qKiBBbGxvdyByYXcgYmxvYiBzaWduaW5nICovXG5leHBvcnQgY29uc3QgQWxsb3dSYXdCbG9iU2lnbmluZyA9IFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWxsb3dSYXdCbG9iU2lnbmluZyA9IHR5cGVvZiBBbGxvd1Jhd0Jsb2JTaWduaW5nO1xuXG4vKiogQWxsb3cgRGlmZmllLUhlbGxtYW4gZXhjaGFuZ2UgKi9cbmV4cG9ydCBjb25zdCBBbGxvd0RpZmZpZUhlbGxtYW5FeGNoYW5nZSA9IFwiQWxsb3dEaWZmaWVIZWxsbWFuRXhjaGFuZ2VcIiBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEFsbG93RGlmZmllSGVsbG1hbkV4Y2hhbmdlID0gdHlwZW9mIEFsbG93RGlmZmllSGVsbG1hbkV4Y2hhbmdlO1xuXG4vKiogQWxsb3cgRUlQLTE5MSBzaWduaW5nICovXG5leHBvcnQgY29uc3QgQWxsb3dFaXAxOTFTaWduaW5nID0gXCJBbGxvd0VpcDE5MVNpZ25pbmdcIiBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEFsbG93RWlwMTkxU2lnbmluZyA9IHR5cGVvZiBBbGxvd0VpcDE5MVNpZ25pbmc7XG5cbi8qKiBBbGxvdyBFSVAtNzEyIHNpZ25pbmcgKi9cbmV4cG9ydCBjb25zdCBBbGxvd0VpcDcxMlNpZ25pbmcgPSBcIkFsbG93RWlwNzEyU2lnbmluZ1wiIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWxsb3dFaXA3MTJTaWduaW5nID0gdHlwZW9mIEFsbG93RWlwNzEyU2lnbmluZztcblxuLyoqIEFsbG93IEJUQyBtZXNzYWdlIHNpZ25pbmcgKi9cbmV4cG9ydCBjb25zdCBBbGxvd0J0Y01lc3NhZ2VTaWduaW5nID0gXCJBbGxvd0J0Y01lc3NhZ2VTaWduaW5nXCIgYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBBbGxvd0J0Y01lc3NhZ2VTaWduaW5nID0gdHlwZW9mIEFsbG93QnRjTWVzc2FnZVNpZ25pbmc7XG5cbi8qKiBBIHJlZmVyZW5jZSB0byBhbiBvcmctbGV2ZWwgbmFtZWQgcG9saWN5IGFuZCBpdHMgdmVyc2lvbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5UmVmZXJlbmNlID0gYCR7c3RyaW5nfS92JHtudW1iZXJ9YCB8IGAke3N0cmluZ30vbGF0ZXN0YDtcblxuLyoqIEtleSBwb2xpY2llcyB0aGF0IHJlc3RyaWN0IHRoZSByZXF1ZXN0cyB0aGF0IHRoZSBzaWduaW5nIGVuZHBvaW50cyBhY2NlcHQgKi9cbmV4cG9ydCB0eXBlIEtleURlbnlQb2xpY3kgPVxuICB8IFR4UmVjZWl2ZXJcbiAgfCBUeERlcG9zaXRcbiAgfCBUeFZhbHVlTGltaXRcbiAgfCBUeEdhc0Nvc3RMaW1pdFxuICB8IElmRXJjMjBUeFxuICB8IEFzc2VydEVyYzIwVHhcbiAgfCBBc3NlcnRUcmFuc2Zlck9ubHlUeFxuICB8IEFzc2VydENvbnRyYWN0VHhcbiAgfCBTdWlUeFJlY2VpdmVyc1xuICB8IEJ0Y1R4UmVjZWl2ZXJzXG4gIHwgU291cmNlSXBBbGxvd2xpc3RcbiAgfCBTb2xhbmFJbnN0cnVjdGlvblBvbGljeVxuICB8IEJ0Y1NlZ3dpdFZhbHVlTGltaXRcbiAgfCBSZXF1aXJlTWZhXG4gIHwgUmVxdWlyZVJvbGVTZXNzaW9uXG4gIHwgQmFieWxvblN0YWtpbmdcbiAgfCBXZWJob29rUG9saWN5O1xuXG4vKipcbiAqIEtleSBwb2xpY3lcbiAqXG4gKiBAZXhhbXBsZSBbXG4gKiAgIHtcbiAqICAgICBcIlR4UmVjZWl2ZXJcIjogXCIweDhjNTk0NjkxYzBlNTkyZmZhMjFmMTUzYTE2YWU0MWRiNWJlZmNhYWFcIlxuICogICB9LFxuICogICB7XG4gKiAgICAgXCJUeERlcG9zaXRcIjoge1xuICogICAgICAgXCJraW5kXCI6IFwiQ2Fub25pY2FsXCJcbiAqICAgICB9XG4gKiAgIH0sXG4gKiAgIHtcbiAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICogICAgICAgXCJjb3VudFwiOiAxLFxuICogICAgICAgXCJhbGxvd2VkX21mYV90eXBlc1wiOiBbXCJDdWJlU2lnbmVyXCJdLFxuICogICAgICAgXCJyZXN0cmljdGVkX29wZXJhdGlvbnNcIjogW1xuICogICAgICAgICBcIkV0aDFTaWduXCIsXG4gKiAgICAgICAgIFwiQmxvYlNpZ25cIlxuICogICAgICAgXVxuICogICAgIH1cbiAqICAgfVxuICogXVxuICpcbiAqIEBleGFtcGxlIFtcIkFzc2VydEVyYzIwVHhcIiwgeyBcIklmRXJjMjBUeFwiOiBcInRyYW5zZmVyX2xpbWl0c1wiOiBbIHsgXCJsaW1pdFwiOiBcIjB4M0I5QUNBMDBcIiB9IF0gfV1cbiAqL1xuZXhwb3J0IHR5cGUgS2V5UG9saWN5ID0gS2V5UG9saWN5UnVsZVtdO1xuXG5leHBvcnQgdHlwZSBLZXlQb2xpY3lSdWxlID1cbiAgfCBLZXlEZW55UG9saWN5XG4gIHwgQWxsb3dSYXdCbG9iU2lnbmluZ1xuICB8IEFsbG93RGlmZmllSGVsbG1hbkV4Y2hhbmdlXG4gIHwgQWxsb3dFaXAxOTFTaWduaW5nXG4gIHwgQWxsb3dFaXA3MTJTaWduaW5nXG4gIHwgQWxsb3dCdGNNZXNzYWdlU2lnbmluZ1xuICB8IFBvbGljeVJlZmVyZW5jZTtcblxuLyoqIFJvbGUgcG9saWN5ICovXG5leHBvcnQgdHlwZSBSb2xlUG9saWN5ID0gUm9sZVBvbGljeVJ1bGVbXTtcblxuZXhwb3J0IHR5cGUgUm9sZVBvbGljeVJ1bGUgPSBLZXlEZW55UG9saWN5IHwgUG9saWN5UmVmZXJlbmNlO1xuXG4vKiogQSBrZXkgZ3VhcmRlZCBieSBhIHBvbGljeS4gKi9cbmV4cG9ydCBjbGFzcyBLZXlXaXRoUG9saWNpZXMge1xuICByZWFkb25seSAjYXBpQ2xpZW50OiBBcGlDbGllbnQ7XG4gIHJlYWRvbmx5IHJvbGVJZDogc3RyaW5nO1xuICByZWFkb25seSBrZXlJZDogc3RyaW5nO1xuICAvKiogVGhlIGNhY2hlZCBwcm9wZXJ0aWVzIG9mIHRoaXMga2V5L3BvbGljaWVzICovXG4gICNjYWNoZWQ6IEtleVdpdGhQb2xpY2llc0luZm87XG5cbiAgLyoqIEByZXR1cm5zIFRoZSBjYWNoZWQgaW5mb3JtYXRpb24gKi9cbiAgZ2V0IGNhY2hlZCgpOiBLZXlXaXRoUG9saWNpZXNJbmZvIHtcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVkO1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIFRoZSBjYWNoZWQgcG9saWN5ICovXG4gIGdldCBwb2xpY3koKTogS2V5UG9saWN5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZWQucG9saWN5IGFzIEtleVBvbGljeSB8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyBUaGUga2V5ICovXG4gIGFzeW5jIGdldEtleSgpOiBQcm9taXNlPEtleT4ge1xuICAgIGlmICh0aGlzLiNjYWNoZWQua2V5X2luZm8gPT09IHVuZGVmaW5lZCB8fCB0aGlzLiNjYWNoZWQua2V5X2luZm8gPT09IG51bGwpIHtcbiAgICAgIHRoaXMuI2NhY2hlZCA9IGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlS2V5R2V0KHRoaXMucm9sZUlkLCB0aGlzLmtleUlkLCB7IGRldGFpbHM6IHRydWUgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgS2V5KHRoaXMuI2FwaUNsaWVudCwgdGhpcy4jY2FjaGVkLmtleV9pbmZvISk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBhcGlDbGllbnQgVGhlIEFQSSBjbGllbnQgdG8gdXNlLlxuICAgKiBAcGFyYW0ga2V5V2l0aFBvbGljaWVzIFRoZSBrZXkgYW5kIGl0cyBwb2xpY2llc1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGNvbnN0cnVjdG9yKGFwaUNsaWVudDogQXBpQ2xpZW50LCBrZXlXaXRoUG9saWNpZXM6IEtleVdpdGhQb2xpY2llc0luZm8pIHtcbiAgICB0aGlzLiNhcGlDbGllbnQgPSBhcGlDbGllbnQ7XG4gICAgdGhpcy5yb2xlSWQgPSBrZXlXaXRoUG9saWNpZXMucm9sZV9pZDtcbiAgICB0aGlzLmtleUlkID0ga2V5V2l0aFBvbGljaWVzLmtleV9pZDtcbiAgICB0aGlzLiNjYWNoZWQgPSBrZXlXaXRoUG9saWNpZXM7XG4gIH1cbn1cblxuLyoqIFJvbGVzLiAqL1xuZXhwb3J0IGNsYXNzIFJvbGUge1xuICByZWFkb25seSAjYXBpQ2xpZW50OiBBcGlDbGllbnQ7XG4gIC8qKiBUaGUgcm9sZSBpbmZvcm1hdGlvbiAqL1xuICAjZGF0YTogUm9sZUluZm87XG5cbiAgLyoqIEByZXR1cm5zIEh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlICovXG4gIGdldCBuYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI2RhdGEubmFtZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgVGhlIElEIG9mIHRoZSByb2xlLlxuICAgKlxuICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgKi9cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2RhdGEucm9sZV9pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0aGUgY2FjaGVkIHByb3BlcnRpZXMgb2YgdGhpcyByb2xlLiBUaGUgY2FjaGVkIHByb3BlcnRpZXNcbiAgICogcmVmbGVjdCB0aGUgc3RhdGUgb2YgdGhlIGxhc3QgZmV0Y2ggb3IgdXBkYXRlIChlLmcuLCBhZnRlciBhd2FpdGluZ1xuICAgKiBgUm9sZS5lbmFibGVkKClgIG9yIGBSb2xlLmRpc2FibGUoKWApLlxuICAgKi9cbiAgZ2V0IGNhY2hlZCgpOiBSb2xlSW5mbyB7XG4gICAgcmV0dXJuIHRoaXMuI2RhdGE7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHRoZSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBBIHJlc3BvbnNlIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFwcHJvdmUgTUZBIGlmIG5lZWRlZFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEVtcHR5Pj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQucm9sZURlbGV0ZSh0aGlzLmlkLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByb2xlIGlzIGVuYWJsZWQgKi9cbiAgYXN5bmMgZW5hYmxlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mZXRjaCgpO1xuICAgIHJldHVybiBkYXRhLmVuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlIHRoZSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgZW5hYmxlKG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlKHsgZW5hYmxlZDogdHJ1ZSB9LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgZGlzYWJsZShtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZSh7IGVuYWJsZWQ6IGZhbHNlIH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgcG9saWN5IChvdmVyd3JpdGluZyBhbnkgcG9saWNpZXMgcHJldmlvdXNseSBzZXQgZm9yIHRoaXMgcm9sZSlcbiAgICpcbiAgICogQHBhcmFtIHBvbGljeSBUaGUgbmV3IHBvbGljeSB0byBzZXRcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBJZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIE1GQSByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIGFzeW5jIHNldFBvbGljeShwb2xpY3k6IFJvbGVQb2xpY3ksIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlKHsgcG9saWN5IH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZCB0byBleGlzdGluZyByb2xlIHBvbGljeS4gVGhpcyBhcHBlbmQgaXMgbm90IGF0b21pYy0tLWl0IHVzZXNcbiAgICoge0BsaW5rIHBvbGljeX0gdG8gZmV0Y2ggdGhlIGN1cnJlbnQgcG9saWN5IGFuZCB0aGVuIHtAbGluayBzZXRQb2xpY3l9XG4gICAqIHRvIHNldCB0aGUgcG9saWN5LS0tYW5kIHNob3VsZCBub3QgYmUgdXNlZCBpbiBhY3Jvc3MgY29uY3VycmVudCBzZXNzaW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHBvbGljeSBUaGUgcG9saWN5IHRvIGFwcGVuZCB0byB0aGUgZXhpc3Rpbmcgb25lLlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgYXBwZW5kUG9saWN5KHBvbGljeTogUm9sZVBvbGljeSwgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLnBvbGljeSgpO1xuICAgIGF3YWl0IHRoaXMuc2V0UG9saWN5KFsuLi5leGlzdGluZywgLi4ucG9saWN5XSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwb2xpY3kgZm9yIHRoZSByb2xlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcG9saWN5IGZvciB0aGUgcm9sZS5cbiAgICovXG4gIGFzeW5jIHBvbGljeSgpOiBQcm9taXNlPFJvbGVQb2xpY3k+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mZXRjaCgpO1xuICAgIHJldHVybiAoZGF0YS5wb2xpY3kgPz8gW10pIGFzIHVua25vd24gYXMgUm9sZVBvbGljeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByZXN0cmljdGVkIGFjdGlvbnMgb24gdGhlIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByZXN0cmljdGVkQWN0aW9ucyBUaGUgbWFwIG9mIHJlc3RyaWN0ZWQgYWN0aW9uc1xuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgc2V0UmVzdHJpY3RlZEFjdGlvbnMocmVzdHJpY3RlZEFjdGlvbnM6IFJlc3RyaWN0ZWRBY3Rpb25zTWFwLCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICBjb25zdCByZXN0cmljdGVkX2FjdGlvbnMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhyZXN0cmljdGVkQWN0aW9ucykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXkudG9TdHJpbmcoKSwgdmFsdWVdKSxcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy51cGRhdGUoeyByZXN0cmljdGVkX2FjdGlvbnMgfSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgVGhlIGxpc3Qgb2YgYWxsIHVzZXJzIHdpdGggYWNjZXNzIHRvIHRoZSByb2xlLlxuICAgKlxuICAgKiBAZXhhbXBsZSBbXG4gICAqICAgXCJVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlwiLFxuICAgKiAgIFwiVXNlciM1NTkzYzI1Yi01MmUyLTRmYjUtYjM5Yi05NmQ0MWQ2ODFkODJcIlxuICAgKiBdXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlIE9wdGlvbmFsIHBhZ2luYXRpb24gb3B0aW9uczsgYnkgZGVmYXVsdCwgcmV0cmlldmVzIGFsbCB1c2Vycy5cbiAgICovXG4gIGFzeW5jIHVzZXJzKHBhZ2U/OiBQYWdlT3B0cyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCB1c2VycyA9IGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlVXNlcnNMaXN0KHRoaXMuaWQsIHBhZ2UpLmZldGNoKCk7XG4gICAgcmV0dXJuICh1c2VycyB8fCBbXSkubWFwKCh1KSA9PiB1LnVzZXJfaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBleGlzdGluZyB1c2VyIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXItaWQgb2YgdGhlIHVzZXIgdG8gYWRkIHRvIHRoZSByb2xlLlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBhbiBlbXB0eSByZXNwb25zZSwgb3IgYSByZXNwb25zZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcHJvdmUgTUZBIGlmIG5lZWRlZC5cbiAgICovXG4gIGFzeW5jIGFkZFVzZXIodXNlcklkOiBzdHJpbmcsIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQucm9sZVVzZXJBZGQodGhpcy5pZCwgdXNlcklkLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW4gZXhpc3RpbmcgdXNlciBmcm9tIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXItaWQgb2YgdGhlIHVzZXIgdG8gcmVtb3ZlIGZyb20gdGhlIHJvbGUuXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEByZXR1cm5zIGFuIGVtcHR5IHJlc3BvbnNlLCBvciBhIHJlc3BvbnNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwcm92ZSBNRkEgaWYgbmVlZGVkLlxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlVXNlcih1c2VySWQ6IHN0cmluZywgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlVXNlclJlbW92ZSh0aGlzLmlkLCB1c2VySWQsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGtleXMgaW4gdGhlIHJvbGUuXG4gICAqXG4gICAqIEBleGFtcGxlIFtcbiAgICogICAge1xuICAgKiAgICAgaWQ6IFwiS2V5I2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlwiLFxuICAgKiAgICAgcG9saWN5OiB7IFR4UmVjZWl2ZXI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCIgfVxuICAgKiAgICB9LFxuICAgKiAgXVxuICAgKlxuICAgKiBAcGFyYW0gcGFnZSBPcHRpb25hbCBwYWdpbmF0aW9uIG9wdGlvbnM7IGJ5IGRlZmF1bHQsIHJldHJpZXZlcyBhbGwga2V5cyBpbiB0aGlzIHJvbGUuXG4gICAqL1xuICBhc3luYyBrZXlzKHBhZ2U/OiBQYWdlT3B0cyk6IFByb21pc2U8S2V5V2l0aFBvbGljaWVzW10+IHtcbiAgICBjb25zdCBrZXlzSW5Sb2xlID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVLZXlzTGlzdCh0aGlzLmlkLCBwYWdlKS5mZXRjaCgpO1xuICAgIHJldHVybiBrZXlzSW5Sb2xlLm1hcCgoaykgPT4gbmV3IEtleVdpdGhQb2xpY2llcyh0aGlzLiNhcGlDbGllbnQsIGspKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBrZXkgaW4gdGhlIHJvbGUgYnkgaXRzIElELlxuICAgKlxuICAgKiBAcGFyYW0ga2V5SWQgVGhlIElEIG9mIHRoZSBrZXkgdG8gZ2V0LlxuICAgKiBAcGFyYW0gb3B0cyBPcHRpb25hbCBvcHRpb25zIGZvciBnZXR0aW5nIHRoZSBrZXkuXG4gICAqIEByZXR1cm5zIFRoZSBrZXkgd2l0aCBpdHMgcG9saWNpZXMuXG4gICAqL1xuICBhc3luYyBnZXRLZXkoa2V5SWQ6IHN0cmluZywgb3B0cz86IEdldFJvbGVLZXlPcHRpb25zKTogUHJvbWlzZTxLZXlXaXRoUG9saWNpZXM+IHtcbiAgICBjb25zdCBrd3AgPSBhd2FpdCB0aGlzLiNhcGlDbGllbnQucm9sZUtleUdldCh0aGlzLmlkLCBrZXlJZCwgb3B0cyk7XG4gICAgcmV0dXJuIG5ldyBLZXlXaXRoUG9saWNpZXModGhpcy4jYXBpQ2xpZW50LCBrd3ApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGxpc3Qgb2YgZXhpc3Rpbmcga2V5cyB0byBhbiBleGlzdGluZyByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5cyBUaGUgbGlzdCBvZiBrZXlzIHRvIGFkZCB0byB0aGUgcm9sZS5cbiAgICogQHBhcmFtIHBvbGljeSBUaGUgb3B0aW9uYWwgcG9saWN5IHRvIGFwcGx5IHRvIGVhY2gga2V5LlxuICAgKlxuICAgKiBAcmV0dXJucyBBIEN1YmVTaWduZXIgcmVzcG9uc2UgaW5kaWNhdGluZyBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gICAqL1xuICBhc3luYyBhZGRLZXlzKGtleXM6IEtleVtdLCBwb2xpY3k/OiBLZXlQb2xpY3kpOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxFbXB0eT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVLZXlzQWRkKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIGtleXMubWFwKChrKSA9PiBrLmlkKSxcbiAgICAgIHBvbGljeSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBleGlzdGluZyBrZXkgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIGFkZCB0byB0aGUgcm9sZS5cbiAgICogQHBhcmFtIHBvbGljeSBUaGUgb3B0aW9uYWwgcG9saWN5IHRvIGFwcGx5IHRvIHRoZSBrZXkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgQ3ViZVNpZ25lciByZXNwb25zZSBpbmRpY2F0aW5nIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAgICovXG4gIGFzeW5jIGFkZEtleShrZXk6IEtleSwgcG9saWN5PzogS2V5UG9saWN5KTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RW1wdHk+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYWRkS2V5cyhba2V5XSwgcG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW4gZXhpc3Rpbmcga2V5IGZyb20gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHJlbW92ZSBmcm9tIHRoZSByb2xlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIEN1YmVTaWduZXIgcmVzcG9uc2UgaW5kaWNhdGluZyBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gICAqL1xuICBhc3luYyByZW1vdmVLZXkoa2V5OiBLZXkpOiBQcm9taXNlPEN1YmVTaWduZXJSZXNwb25zZTxFbXB0eT4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVLZXlzUmVtb3ZlKHRoaXMuaWQsIGtleS5pZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHNlc3Npb24gZm9yIHRoaXMgcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIHB1cnBvc2UgRGVzY3JpcHRpdmUgcHVycG9zZS5cbiAgICogQHBhcmFtIGxpZmV0aW1lcyBPcHRpb25hbCBzZXNzaW9uIGxpZmV0aW1lcy5cbiAgICogQHBhcmFtIHNjb3BlcyBTZXNzaW9uIHNjb3Blcy4gT25seSBgc2lnbjoqYCBzY29wZXMgYXJlIGFsbG93ZWQuXG4gICAqIEByZXR1cm5zIE5ldyBzZXNzaW9uLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlU2Vzc2lvbihcbiAgICBwdXJwb3NlOiBzdHJpbmcsXG4gICAgbGlmZXRpbWVzPzogU2Vzc2lvbkxpZmV0aW1lLFxuICAgIHNjb3Blcz86IFNjb3BlW10sXG4gICk6IFByb21pc2U8U2Vzc2lvbkRhdGE+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNlc3Npb25DcmVhdGVGb3JSb2xlKHRoaXMuaWQsIHB1cnBvc2UsIHNjb3BlcywgbGlmZXRpbWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBzaWduZXIgc2Vzc2lvbnMgZm9yIHRoaXMgcm9sZS4gUmV0dXJuZWQgb2JqZWN0cyBjYW4gYmUgdXNlZCB0b1xuICAgKiByZXZva2UgaW5kaXZpZHVhbCBzZXNzaW9ucywgYnV0IHRoZXkgY2Fubm90IGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZSBPcHRpb25hbCBwYWdpbmF0aW9uIG9wdGlvbnM7IGJ5IGRlZmF1bHQsIHJldHJpZXZlcyBhbGwgc2Vzc2lvbnMuXG4gICAqIEByZXR1cm5zIFNpZ25lciBzZXNzaW9ucyBmb3IgdGhpcyByb2xlLlxuICAgKi9cbiAgYXN5bmMgc2Vzc2lvbnMocGFnZT86IFBhZ2VPcHRzKTogUHJvbWlzZTxTaWduZXJTZXNzaW9uSW5mb1tdPiB7XG4gICAgY29uc3Qgc2Vzc2lvbnMgPSBhd2FpdCB0aGlzLiNhcGlDbGllbnQuc2Vzc2lvbnNMaXN0KHsgcm9sZTogdGhpcy5pZCB9LCBwYWdlKS5mZXRjaCgpO1xuICAgIHJldHVybiBzZXNzaW9ucy5tYXAoKHQpID0+IG5ldyBTaWduZXJTZXNzaW9uSW5mbyh0aGlzLiNhcGlDbGllbnQsIHQuc2Vzc2lvbl9pZCwgdC5wdXJwb3NlKSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLSBJTlRFUk5BTCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIGFwaUNsaWVudCBUaGUgQVBJIGNsaWVudCB0byB1c2UuXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBKU09OIHJlc3BvbnNlIGZyb20gdGhlIEFQSSBzZXJ2ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBpQ2xpZW50OiBBcGlDbGllbnQsIGRhdGE6IFJvbGVJbmZvKSB7XG4gICAgdGhpcy4jYXBpQ2xpZW50ID0gYXBpQ2xpZW50O1xuICAgIHRoaXMuI2RhdGEgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEpTT04gcmVxdWVzdCB0byBzZW5kIHRvIHRoZSBBUEkgc2VydmVyLlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCByb2xlIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGUocmVxdWVzdDogVXBkYXRlUm9sZVJlcXVlc3QsIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cyk6IFByb21pc2U8Um9sZUluZm8+IHtcbiAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVVcGRhdGUodGhpcy5pZCwgcmVxdWVzdCwgbWZhUmVjZWlwdCk7XG4gICAgdGhpcy4jZGF0YSA9IHJlc3AuZGF0YSgpO1xuICAgIHJldHVybiB0aGlzLiNkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIHJvbGUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByb2xlIGluZm9ybWF0aW9uLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2goKTogUHJvbWlzZTxSb2xlSW5mbz4ge1xuICAgIHRoaXMuI2RhdGEgPSBhd2FpdCB0aGlzLiNhcGlDbGllbnQucm9sZUdldCh0aGlzLmlkKTtcbiAgICByZXR1cm4gdGhpcy4jZGF0YTtcbiAgfVxufVxuIl19
|
|
346
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQXNCQSx3QkFBMkM7QUEyQjNDLHFDQUFxQztBQUNyQyxJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFDekIsaUNBQWlDO0lBQ2pDLCtEQUFTLENBQUE7SUFDVCwrQkFBK0I7SUFDL0IsMkRBQU8sQ0FBQTtBQUNULENBQUMsRUFMVyxlQUFlLCtCQUFmLGVBQWUsUUFLMUI7QUEwWEQsNkJBQTZCO0FBQ2hCLFFBQUEsbUJBQW1CLEdBQUcscUJBQThCLENBQUM7QUFHbEUsb0NBQW9DO0FBQ3ZCLFFBQUEsMEJBQTBCLEdBQUcsNEJBQXFDLENBQUM7QUFHaEYsNEJBQTRCO0FBQ2YsUUFBQSxrQkFBa0IsR0FBRyxvQkFBNkIsQ0FBQztBQUdoRSw0QkFBNEI7QUFDZixRQUFBLGtCQUFrQixHQUFHLG9CQUE2QixDQUFDO0FBR2hFLGdDQUFnQztBQUNuQixRQUFBLHNCQUFzQixHQUFHLHdCQUFpQyxDQUFDO0FBb0V4RSxpQ0FBaUM7QUFDakMsTUFBYSxlQUFlO0lBTzFCLHNDQUFzQztJQUN0QyxJQUFJLE1BQU07UUFDUixPQUFPLHVCQUFBLElBQUksK0JBQVEsQ0FBQztJQUN0QixDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUErQixDQUFDO0lBQ3JELENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLHVCQUFBLElBQUksK0JBQVEsQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLHVCQUFBLElBQUksK0JBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDMUUsdUJBQUEsSUFBSSwyQkFBVyxNQUFNLHVCQUFBLElBQUksa0NBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFB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RTdFOzs7Ozs7T0FNRztJQUNILFlBQVksU0FBb0IsRUFBRSxJQUFjO1FBdlJ2QyxrQ0FBc0I7UUFDL0IsMkJBQTJCO1FBQzNCLDZCQUFnQjtRQXNSZCx1QkFBQSxJQUFJLG1CQUFjLFNBQVMsTUFBQSxDQUFDO1FBQzVCLHVCQUFBLElBQUksY0FBUyxJQUFJLE1BQUEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBMEIsRUFBRSxVQUF3QjtRQUN2RSxNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksdUJBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUUsdUJBQUEsSUFBSSxjQUFTLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBQSxDQUFDO1FBQ3pCLE9BQU8sdUJBQUEsSUFBSSxrQkFBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLEtBQUssQ0FBQyxLQUFLO1FBQ2pCLHVCQUFBLElBQUksY0FBUyxNQUFNLHVCQUFBLElBQUksdUJBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFBLENBQUM7UUFDcEQsT0FBTyx1QkFBQSxJQUFJLGtCQUFNLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBclRELG9CQXFUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQXBpQ2xpZW50LFxuICBDb250cmFjdEFkZHJlc3MsXG4gIEV2bVR4Q21wLFxuICBTb2xhbmFUeENtcCxcbiAgS2V5V2l0aFBvbGljaWVzSW5mbyxcbiAgUGFnZU9wdHMsXG4gIFJvbGVJbmZvLFxuICBTY29wZSxcbiAgU2Vzc2lvbkRhdGEsXG4gIFNlc3Npb25MaWZldGltZSxcbiAgVXBkYXRlUm9sZVJlcXVlc3QsXG4gIEJhYnlsb25TdGFraW5nUmVxdWVzdCxcbiAgT3BlcmF0aW9uS2luZCxcbiAgTWZhUmVjZWlwdHMsXG4gIEN1YmVTaWduZXJSZXNwb25zZSxcbiAgRW1wdHksXG4gIFJlc3RyaWN0ZWRBY3Rpb25zTWFwLFxuICBHZXRSb2xlS2V5T3B0aW9ucyxcbiAgRWRpdFBvbGljeSxcbiAgTWZhUG9saWN5LFxufSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgS2V5LCBTaWduZXJTZXNzaW9uSW5mbyB9IGZyb20gXCIuXCI7XG5cbnR5cGUgTmFtZU9yQWRkcmVzc09yTnVsbCA9IHN0cmluZyB8IG51bGw7XG5cbi8qKlxuICogUmVzdHJpY3QgdGhlIHJlY2VpdmVyIGZvciBFVk0gdHJhbnNhY3Rpb25zLlxuICpcbiAqIEBleGFtcGxlIHsgVHhSZWNlaXZlcjogXCIweDhjNTk0NjkxYzBlNTkyZmZhMjFmMTUzYTE2YWU0MWRiNWJlZmNhYWFcIiB9XG4gKiBAZXhhbXBsZSB7IFR4UmVjZWl2ZXI6IG51bGwgfVxuICogQGV4YW1wbGUgeyBUeFJlY2VpdmVyOiBbbnVsbCwgXCIweDhjNTk0NjkxYzBlNTkyZmZhMjFmMTUzYTE2YWU0MWRiNWJlZmNhYWFcIl0gfVxuICovXG5leHBvcnQgdHlwZSBUeFJlY2VpdmVyID0geyBUeFJlY2VpdmVyOiBOYW1lT3JBZGRyZXNzT3JOdWxsIHwgTmFtZU9yQWRkcmVzc09yTnVsbFtdIH07XG5cbi8qKlxuICogUmVzdHJpY3QgdGhlIHJlY2VpdmVyIGZvciBTVUkgdHJhbnNhY3Rpb25zLlxuICpcbiAqIEBleGFtcGxlIHsgU3VpVHhSZWNlaXZlcjogWyBcIjB4Yzk4MzdhMGFkMmQxMTQ2OGJiZjg0N2UzYWY0ZTNlZGU4MzdiY2MwMmExYmU2ZmFlZTYyMWRmMWE4YTQwM2NiZlwiIF0gfVxuICovXG5leHBvcnQgdHlwZSBTdWlUeFJlY2VpdmVycyA9IHsgU3VpVHhSZWNlaXZlcnM6IHN0cmluZ1tdIH07XG5cbi8qKlxuICogUmVzdHJpY3QgdGhlIHJlY2VpdmVyIGZvciBCVEMgdHJhbnNhY3Rpb25zLlxuICpcbiAqIEBleGFtcGxlIHsgQnRjVHhSZWNlaXZlcnM6IFsgXCJiYzFxM3FkYXZsMzdkbmo2aGp1YXpkemR4azBhYW53anNnNDRtZ3VxNjZcIiwgXCJiYzFxZnJqdHhtOGcyMGc5N3F6Z2FkZzd2OXMzZnRqa3EwMnFmc3NrODdcIiBdIH1cbiAqL1xuZXhwb3J0IHR5cGUgQnRjVHhSZWNlaXZlcnMgPSB7IEJ0Y1R4UmVjZWl2ZXJzOiBzdHJpbmdbXSB9O1xuXG4vKiogVGhlIGtpbmQgb2YgZGVwb3NpdCBjb250cmFjdHMuICovXG5leHBvcnQgZW51bSBEZXBvc2l0Q29udHJhY3Qge1xuICAvKiogQ2Fub25pY2FsIGRlcG9zaXQgY29udHJhY3QgKi9cbiAgQ2Fub25pY2FsLFxuICAvKiogV3JhcHBlciBkZXBvc2l0IGNvbnRyYWN0ICovXG4gIFdyYXBwZXIsXG59XG5cbi8qKiBSZXN0cmljdCB0cmFuc2FjdGlvbnMgdG8gY2FsbHMgdG8gZGVwb3NpdCBjb250cmFjdC4gKi9cbmV4cG9ydCB0eXBlIFR4RGVwb3NpdCA9IFR4RGVwb3NpdEJhc2UgfCBUeERlcG9zaXRQdWJrZXkgfCBUeERlcG9zaXRSb2xlO1xuXG4vKiogUmVzdHJpY3QgdHJhbnNhY3Rpb25zIHRvIGNhbGxzIHRvIGRlcG9zaXQgY29udHJhY3QqL1xuZXhwb3J0IHR5cGUgVHhEZXBvc2l0QmFzZSA9IHsgVHhEZXBvc2l0OiB7IGtpbmQ6IERlcG9zaXRDb250cmFjdCB9IH07XG5cbi8qKlxuICogUmVzdHJpY3QgdHJhbnNhY3Rpb25zIHRvIGNhbGxzIHRvIGRlcG9zaXQgY29udHJhY3Qgd2l0aCBmaXhlZCB2YWxpZGF0b3IgKHB1YmtleSk6XG4gKlxuICogQGV4YW1wbGUgeyBUeERlcG9zaXQ6IHsga2luZDogRGVzcG9zaXRDb250cmFjdC5DYW5vbmljYWwsIHZhbGlkYXRvcjogeyBwdWJrZXk6IFwiODg3OS4uLjhcIn0gfX1cbiAqL1xuZXhwb3J0IHR5cGUgVHhEZXBvc2l0UHVia2V5ID0geyBUeERlcG9zaXQ6IHsga2luZDogRGVwb3NpdENvbnRyYWN0OyBwdWJrZXk6IHN0cmluZyB9IH07XG5cbi8qKlxuICogUmVzdHJpY3QgdHJhbnNhY3Rpb25zIHRvIGNhbGxzIHRvIGRlcG9zaXQgY29udHJhY3Qgd2l0aCBhbnkgdmFsaWRhdG9yIGtleSBpbiBhIHJvbGU6XG4gKlxuICogQGV4YW1wbGUgeyBUeERlcG9zaXQ6IHsga2luZDogRGVzcG9zaXRDb250cmFjdC5DYW5vbmljYWwsIHZhbGlkYXRvcjogeyByb2xlX2lkOiBcIlJvbGUjYzYzLi4uYWZcIn0gfX1cbiAqL1xuZXhwb3J0IHR5cGUgVHhEZXBvc2l0Um9sZSA9IHsgVHhEZXBvc2l0OiB7IGtpbmQ6IERlcG9zaXRDb250cmFjdDsgcm9sZV9pZDogc3RyaW5nIH0gfTtcblxuLyoqXG4gKiBSZXN0cmljdCB0cmFuc2FjdGlvbiB2YWx1ZXMgdG8gYW1vdW50cyBhdCBvciBiZWxvdyB0aGUgZ2l2ZW4gbGltaXQgaW4gd2VpLlxuICogQ3VycmVudGx5LCB0aGlzIG9ubHkgYXBwbGllcyB0byBFVk0gdHJhbnNhY3Rpb25zLlxuICovXG5leHBvcnQgdHlwZSBUeFZhbHVlTGltaXQgPSBUeFZhbHVlTGltaXRQZXJUeCB8IFR4VmFsdWVMaW1pdFdpbmRvdztcblxuLyoqXG4gKiBSZXN0cmljdCBpbmRpdmlkdWFsIHRyYW5zYWN0aW9uIHZhbHVlcyB0byBhbW91bnRzIGF0IG9yIGJlbG93IHRoZSBnaXZlbiBsaW1pdCBpbiB3ZWkuXG4gKiBDdXJyZW50bHksIHRoaXMgb25seSBhcHBsaWVzIHRvIEVWTSB0cmFuc2FjdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgeyBUeFZhbHVlTGltaXQ6IFwiMHgxMkEwNUYyMDBcIiB9XG4gKi9cbmV4cG9ydCB0eXBlIFR4VmFsdWVMaW1pdFBlclR4ID0geyBUeFZhbHVlTGltaXQ6IHN0cmluZyB9O1xuXG4vKipcbiAqIFJlc3RyaWN0IHRyYW5zYWN0aW9uIHZhbHVlcywgaW4gd2VpLCBvdmVyIGEgdGltZSB3aW5kb3cuXG4gKiBDdXJyZW50bHksIHRoaXMgb25seSBhcHBsaWVzIHRvIEVWTSB0cmFuc2FjdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgeyBUeFZhbHVlTGltaXQ6IHsgbGltaXQ6IFwiMHgxMkEwNUYyMDBcIiwgd2luZG93OiA4NjQwMCB9fVxuICogQGV4YW1wbGUgeyBUeFZhbHVlTGltaXQ6IHsgbGltaXQ6IFwiMHgxMkEwNUYyMDBcIiwgd2luZG93OiA2MDQ4MDAsIGNoYWluX2lkczogWyBcIjFcIiwgXCI1XCIgXSB9fVxuICogQGV4YW1wbGUgeyBUeFZhbHVlTGltaXQ6IHsgbGltaXQ6IFwiMHgxMkEwNUYyMDBcIiwgd2luZG93OiA2MDQ4MDAsIGV4Y2VwdF9jaGFpbl9pZHM6IFsgXCIxXCIgXSB9fVxuICovXG5leHBvcnQgdHlwZSBUeFZhbHVlTGltaXRXaW5kb3cgPSB7XG4gIFR4VmFsdWVMaW1pdDoge1xuICAgIC8qKlxuICAgICAqIE1heCBhbGxvd2VkIHZhbHVlIGluIHdlaVxuICAgICAqL1xuICAgIGxpbWl0OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgc2xpZGluZyB0aW1lIHdpbmRvdyAoaW4gc2Vjb25kcykuXG4gICAgICpcbiAgICAgKiBJZiBzcGVjaWZpZWQsIHRoZSBgbGltaXRgIGFwcGxpZXMgdG8gdGhlIGFnZ3JlZ2F0ZSB2YWx1ZSBvZiBhbGwgdHJhbnNhY3Rpb25zIHdpdGhpbiB0aGF0XG4gICAgICogdGltZSB3aW5kb3c7IG90aGVyd2lzZSwgdGhlIHdpbmRvdyBpcyAwLCBpLmUuLCB0aGUgbGltaXQgYXBwbGllcyB0byBpbmRpdmlkdWFsIHRyYW5zYWN0aW9ucy5cbiAgICAgKi9cbiAgICB3aW5kb3c/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgY2hhaW4gaWRzLlxuICAgICAqXG4gICAgICogSWYgc3BlY2lmaWVkLCB0aGUgcG9saWN5IGFwcGxpZXMgb25seSBpZiBhIHRyYW5zYWN0aW9uIGlzIG9uIG9uZSBvZiB0aGVcbiAgICAgKiBnaXZlbiBjaGFpbnMgKG90aGVyd2lzZSBpdCBhcHBsaWVzIHRvIGFsbCB0cmFuc2FjdGlvbnMpLiBJZiBhICd3aW5kb3cnIGlzXG4gICAgICogYWxzbyBkZWZpbmVkLCB0aGUgcG9saWN5IGxpbWl0IGFwcGxpZXMgY3VtdWxhdGl2ZWx5IGFjcm9zcyBhbGwgc3BlY2lmaWVkIGNoYWlucy5cbiAgICAgKlxuICAgICAqIE11c3Qgbm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGBleGNlcHRfY2hhaW5faWRzYC5cbiAgICAgKi9cbiAgICBjaGFpbl9pZHM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBjaGFpbiBpZHMgdG8gZXhjbHVkZS5cbiAgICAgKlxuICAgICAqIElmIHNwZWNpZmllZCwgdGhlIHBvbGljeSBhcHBsaWVzIG9ubHkgaWYgYSB0cmFuc2FjdGlvbiBpcyBvbiBhIGNoYWluIGlkIG5vdFxuICAgICAqIGluY2x1ZGVkIGluIHRoaXMgbGlzdC4gSWYgYSAnd2luZG93JyBpcyBhbHNvIGRlZmluZWQsIHRoZSBwb2xpY3kgbGltaXQgYXBwbGllc1xuICAgICAqIGN1bXVsYXRpdmVseSBhY3Jvc3MgYWxsIGNoYWlucyBvdGhlciB0aGFuIHRoZSBsaXN0ZWQgb25lcy5cbiAgICAgKlxuICAgICAqIE11c3Qgbm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGBjaGFpbl9pZHNgLlxuICAgICAqL1xuICAgIGV4Y2VwdF9jaGFpbl9pZHM/OiBzdHJpbmdbXTtcbiAgfTtcbn07XG5cbi8qKlxuICogUmVzdHJpY3QgdHJhbnNhY3Rpb24gbWF4IGdhcyBjb3N0cyB0byBhbW91bnRzIGF0IG9yIGJlbG93IHRoZSBnaXZlbiBsaW1pdCBpbiB3ZWkuXG4gKlxuICogQGV4YW1wbGUgeyBUeEdhc0Nvc3RMaW1pdDogXCIweDI3Q0E1NzM1N0MwMDBcIiB9XG4gKi9cbmV4cG9ydCB0eXBlIFR4R2FzQ29zdExpbWl0ID0geyBUeEdhc0Nvc3RMaW1pdDogc3RyaW5nIH07XG5cbi8qKlxuICogUmVzdHJpY3QgRVJDLTIwIG1ldGhvZCBjYWxscyBhY2NvcmRpbmcgdG8gdGhlIHtAbGluayBFcmMyMFBvbGljeX0uXG4gKiBPbmx5IGFwcGxpZXMgdG8gRVZNIHRyYW5zYWN0aW9ucyB0aGF0IGNhbGwgYSB2YWxpZCBFUkMtMjAgbWV0aG9kLlxuICogTm9uLUVSQy0yMCB0cmFuc2FjdGlvbnMgYXJlIGlnbm9yZWQgYnkgdGhpcyBwb2xpY3kuXG4gKlxuICogQGV4YW1wbGUgeyBJZkVyYzIwVHg6IHsgdHJhbnNmZXJfbGltaXRzOiBbeyBsaW1pdDogXCIweEU4RDRBNTEwMDBcIiB9XSB9IH1cbiAqIEBleGFtcGxlIHsgSWZFcmMyMFR4OiB7IGFsbG93ZWRfY29udHJhY3RzOiBbIHsgYWRkcmVzczogXCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzRhMjBiODA5MDA4YWZlYjBcIiwgXCJjaGFpbl9pZFwiOiBcIjFcIiB9IF0gfSB9XG4gKi9cbmV4cG9ydCB0eXBlIElmRXJjMjBUeCA9IHsgSWZFcmMyMFR4OiBFcmMyMFBvbGljeSB9O1xuXG4vKipcbiAqIFJlc3RyaWN0IHRyYW5zYWN0aW9ucyB0byBvbmx5IGFsbG93IHZhbGlkIEVSQy0yMCBtZXRob2QgY2FsbHMuXG4gKi9cbmV4cG9ydCB0eXBlIEFzc2VydEVyYzIwVHggPSBcIkFzc2VydEVyYzIwVHhcIjtcblxuLyoqXG4gKiBSZXN0cmljdCB0cmFuc2FjdGlvbnMgdG8gb25seSBhbGxvdyBuYXRpdmUgdG9rZW4gdHJhbnNmZXJzLlxuICovXG5leHBvcnQgdHlwZSBBc3NlcnRUcmFuc2Zlck9ubHlUeCA9IFwiQXNzZXJ0VHJhbnNmZXJPbmx5VHhcIjtcblxuLyoqXG4gKiBSZXN0cmljdCBFUkMtMjAgYHRyYW5zZmVyYCBhbmQgYHRyYW5zZmVyRnJvbWAgdHJhbnNhY3Rpb24gdmFsdWVzIGFuZCByZWNlaXZlcnMuXG4gKiBPbmx5IGFwcGxpZXMgdG8gY29udHJhY3RzIGRlZmluZWQgaW4gYGFwcGxpZXNfdG9fY29udHJhY3RzYCxcbiAqIG9yIHRvIGFsbCBjb250cmFjdHMgaWYgbm90IGRlZmluZWQuXG4gKiBUaGUgbGltaXQgaXMgaW4gdGhlIHRva2VuJ3MgdW5pdC5cbiAqL1xuZXhwb3J0IHR5cGUgRXJjMjBUcmFuc2ZlckxpbWl0ID0ge1xuICBsaW1pdD86IHN0cmluZztcbiAgcmVjZWl2ZXJzPzogc3RyaW5nW107XG4gIGFwcGxpZXNfdG9fY29udHJhY3RzPzogQ29udHJhY3RBZGRyZXNzW107XG59O1xuXG4vKipcbiAqIFJlc3RyaWN0IEVSQy0yMCBgYXBwcm92ZWAgdHJhbnNhY3Rpb24gdmFsdWVzIGFuZCBzcGVuZGVycy5cbiAqIE9ubHkgYXBwbGllcyB0byBjb250cmFjdHMgZGVmaW5lZCBpbiBgYXBwbGllc190b19jb250cmFjdHNgLFxuICogb3IgdG8gYWxsIGNvbnRyYWN0cyBpZiBub3QgZGVmaW5lZC5cbiAqIFRoZSBsaW1pdCBpcyBpbiB0aGUgdG9rZW4ncyB1bml0LlxuICovXG5leHBvcnQgdHlwZSBFcmMyMEFwcHJvdmVMaW1pdCA9IHtcbiAgbGltaXQ/OiBzdHJpbmc7XG4gIHNwZW5kZXJzPzogc3RyaW5nW107XG4gIGFwcGxpZXNfdG9fY29udHJhY3RzPzogQ29udHJhY3RBZGRyZXNzW107XG59O1xuXG4vKipcbiAqIFJlc3RyaWN0cyBFUkMtMjAgcG9saWNpZXMgdG8gYSBzZXQgb2Yga25vd24gY29udHJhY3RzLFxuICogYW5kIGNhbiBkZWZpbmUgbGltaXRzIG9uIGB0cmFuc2ZlcmAsIGB0cmFuc2ZlckZyb21gIGFuZCBgYXBwcm92ZWAgbWV0aG9kIGNhbGxzLlxuICovXG5leHBvcnQgdHlwZSBFcmMyMFBvbGljeSA9IHtcbiAgYWxsb3dlZF9jb250cmFjdHM/OiBDb250cmFjdEFkZHJlc3NbXTtcbiAgdHJhbnNmZXJfbGltaXRzPzogRXJjMjBUcmFuc2ZlckxpbWl0W107XG4gIGFwcHJvdmVfbGltaXRzPzogRXJjMjBBcHByb3ZlTGltaXRbXTtcbn07XG5cbi8qKlxuICogUmVzdHJpY3QgdHJhbnNhY3Rpb25zIHRvIG9ubHkgYWxsb3cgY2FsbGluZyB0aGUgZ2l2ZW4gbWV0aG9kcyBpbiB0aGUgZ2l2ZW4gY29udHJhY3RzLlxuICpcbiAqIEBleGFtcGxlIHsgQXNzZXJ0Q29udHJhY3RUeDoge1xuICogICBhbGxvd2xpc3Q6IFt7XG4gKiAgICAgYWRkcmVzczogeyBhZGRyZXNzOiBcIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNGEyMGI4MDkwMDhhZmViMFwiLCBcImNoYWluX2lkXCI6IFwiMVwiIH0sXG4gKiAgICAgbWV0aG9kczogW1xuICogICAgICAgXCJmdW5jdGlvbiBuYW1lKCkgcHVibGljIHZpZXcgcmV0dXJucyAoc3RyaW5nKVwiLFxuICogICAgICAgXCJmdW5jdGlvbiB0cmFuc2ZlcihhZGRyZXNzIHRvLCB1aW50MjU2IHZhbHVlKSBwdWJsaWMgcmV0dXJucyAoYm9vbCBzdWNjZXNzKVwiXG4gKiAgICAgXVxuICogICB9XVxuICogfVxuICovXG5leHBvcnQgdHlwZSBBc3NlcnRDb250cmFjdFR4ID0ge1xuICBBc3NlcnRDb250cmFjdFR4OiB7XG4gICAgYWxsb3dsaXN0OiB7XG4gICAgICBhZGRyZXNzOiBDb250cmFjdEFkZHJlc3M7XG4gICAgICBtZXRob2RzOiBzdHJpbmdbXTtcbiAgICB9W107XG4gIH07XG59O1xuXG4vKipcbiAqIFNvbGFuYSBhZGRyZXNzIG1hdGNoZXIuXG4gKiBDYW4gYmUgZWl0aGVyIHRoZSBwdWJrZXkgb2YgdGhlIGFjY291bnQgdXNpbmcgYmFzZTU4IGVuY29kaW5nLFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBwdWJrZXkgb2YgYW4gYWRkcmVzcyBsb29rdXAgdGFibGUgYW5kIHRoZVxuICogaW5kZXggb2YgdGhlIGFjY291bnQgaW4gdGhhdCB0YWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgU29sYW5hQWRkcmVzc01hdGNoZXIgPVxuICB8IHN0cmluZ1xuICB8IHtcbiAgICAgIGFsdF9hZGRyZXNzOiBzdHJpbmc7XG4gICAgICBpbmRleDogbnVtYmVyO1xuICAgIH07XG5cbi8qKlxuICogU29sYW5hIGluc3RydWN0aW9uIG1hdGNoZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFNvbGFuYUluc3RydWN0aW9uTWF0Y2hlciA9IHtcbiAgcHJvZ3JhbV9pZDogc3RyaW5nO1xuICBpbmRleD86IG51bWJlcjtcbiAgYWNjb3VudHM/OiAoXG4gICAgfCB7XG4gICAgICAgIGFkZHJlc3M6IFNvbGFuYUFkZHJlc3NNYXRjaGVyIHwgU29sYW5hQWRkcmVzc01hdGNoZXJbXTtcbiAgICAgIH1cbiAgICB8ICh7XG4gICAgICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYGFkZHJlc3NgIGluc3RlYWQuICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfSAmIHtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICAgIH0pXG4gIClbXTtcbiAgZGF0YT86XG4gICAgfCBzdHJpbmdcbiAgICB8IHtcbiAgICAgICAgZGF0YTogc3RyaW5nO1xuICAgICAgICBzdGFydF9pbmRleDogbnVtYmVyO1xuICAgICAgfVtdO1xufTtcblxuLyoqXG4gKiBSZXN0cmljdHMgU29sYW5hIHRyYW5zYWN0aW9uIGluc3RydWN0aW9ucy4gQ2FuIGxpbWl0IHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zLFxuICogdGhlIGxpc3Qgb2YgYWxsb3dlZCBpbnN0cnVjdGlvbnMsIGFuZCBhIHNldCBvZiByZXF1aXJlZCBpbnN0cnVjdGlvbnMgaW4gYWxsIHRyYW5zYWN0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgU29sYW5hSW5zdHJ1Y3Rpb25Qb2xpY3kgPSB7XG4gIFNvbGFuYUluc3RydWN0aW9uUG9saWN5OiB7XG4gICAgY291bnQ/OiB7XG4gICAgICBtaW4/OiBudW1iZXI7XG4gICAgICBtYXg/OiBudW1iZXI7XG4gICAgfTtcbiAgICBhbGxvd2xpc3Q/OiBTb2xhbmFJbnN0cnVjdGlvbk1hdGNoZXJbXTtcbiAgICByZXF1aXJlZD86IFNvbGFuYUluc3RydWN0aW9uTWF0Y2hlcltdO1xuICB9O1xufTtcblxuLyoqXG4gKiBSZXN0cmljdCB0aGUgdG90YWwgdmFsdWUgdHJhbnNmZXJyZWQgb3V0IG9mIHRoZSBpbnB1dHMgaW4gYSBCaXRjb2luIFNlZ3dpdCB0cmFuc2FjdGlvblxuICogdG8gYW1vdW50cyBhdCBvciBiZWxvdyB0aGUgZ2l2ZW4gbGltaXQuXG4gKi9cbmV4cG9ydCB0eXBlIEJ0Y1NlZ3dpdFZhbHVlTGltaXQgPSBCdGNTZWd3aXRWYWx1ZUxpbWl0UGVyVHggfCBCdGNTZWd3aXRWYWx1ZUxpbWl0V2luZG93O1xuXG4vKipcbiAqIFJlc3RyaWN0IGluZGl2aWR1YWwgQml0Y29pbiBTZWd3aXQgdHJhbnNhY3Rpb24gdmFsdWVzIHRvIGFtb3VudHMgYXQgb3IgYmVsb3dcbiAqIHRoZSBnaXZlbiBsaW1pdC5cbiAqXG4gKiBAZXhhbXBsZSB7IEJ0Y1NlZ3dpdFZhbHVlTGltaXQ6IFwiMTAwMDAwMFwiIH1cbiAqL1xuZXhwb3J0IHR5cGUgQnRjU2Vnd2l0VmFsdWVMaW1pdFBlclR4ID0ge1xuICBCdGNTZWd3aXRWYWx1ZUxpbWl0OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIFJlc3RyaWN0IHRoZSB0b3RhbCB2YWx1ZSB0cmFuc2ZlcnJlZCBvdXQgb2YgdGhlIGlucHV0cyBpbiBCaXRjb2luIFNlZ3dpdCB0cmFuc2FjdGlvbnNcbiAqIG92ZXIgYSB0aW1lIHdpbmRvdy5cbiAqXG4gKiBAZXhhbXBsZSB7IEJ0Y1NlZ3dpdFZhbHVlTGltaXQ6IHsgbGltaXQ6IFwiMTAwMDAwMFwiLCB3aW5kb3c6IDg2NDAwIH19XG4gKi9cbmV4cG9ydCB0eXBlIEJ0Y1NlZ3dpdFZhbHVlTGltaXRXaW5kb3cgPSB7XG4gIEJ0Y1NlZ3dpdFZhbHVlTGltaXQ6IHtcbiAgICBsaW1pdDogbnVtYmVyO1xuICAgIHdpbmRvdz86IG51bWJlcjtcbiAgfTtcbn07XG5cbi8qKlxuICogT25seSBhbGxvdyBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgd2hvc2UgSVAgYWRkcmVzc2VzIG1hdGNoIGFueSBvZiB0aGVzZSBJUHY0IENJRFIgYmxvY2tzLlxuICpcbiAqIEBleGFtcGxlIHsgU291cmNlSXBBbGxvd2xpc3Q6IFsgXCIxMjMuNDU2Ljc4LjkvMTZcIiBdIH1cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlSXBBbGxvd2xpc3QgPSB7IFNvdXJjZUlwQWxsb3dsaXN0OiBzdHJpbmdbXSB9O1xuXG5leHBvcnQgdHlwZSBIdHRwUmVxdWVzdENvbXBhcmVyID0gXCJFcVwiIHwgeyBFdm1UeDogRXZtVHhDbXAgfSB8IHsgU29sYW5hVHg6IFNvbGFuYVR4Q21wIH07XG5cbi8qKlxuICogUmVxdWlyZSBNRkEgZm9yIHRyYW5zYWN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSB7XG4gKiAgICAgUmVxdWlyZU1mYToge1xuICogICAgICAgY291bnQ6IDEsXG4gKiAgICAgICBhbGxvd2VkX21mYV90eXBlczogWyBcIlRvdHBcIiBdLFxuICogICAgICAgYWxsb3dlZF9hcHByb3ZlcnM6IFsgXCJVc2VyIzEyM1wiIF0sXG4gKiAgICAgICByZXN0cmljdGVkX29wZXJhdGlvbnM6IFtcbiAqICAgICAgICAgXCJFdGgxU2lnblwiLFxuICogICAgICAgICBcIkJsb2JTaWduXCJcbiAqICAgICAgIF1cbiAqICAgICB9XG4gKiAgIH1cbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWlyZU1mYSA9IHtcbiAgUmVxdWlyZU1mYTogTWZhUG9saWN5O1xufTtcblxuLyoqXG4gKiBSZXF1aXJlIHRoYXQgdGhlIGtleSBpcyBhY2Nlc3NlZCB2aWEgYSByb2xlIHNlc3Npb24uXG4gKlxuICogQGV4YW1wbGUgeyBcIlJlcXVpcmVSb2xlU2Vzc2lvblwiOiBcIipcIiB9XG4gKiBAZXhhbXBsZSB7IFwiUmVxdWlyZVJvbGVTZXNzaW9uXCI6IFtcbiAqICAgXCJSb2xlIzM0ZGZiNjU0LWYzNmQtNDhlYS1iZGY2LTgzM2MwZDk0Yjc1OVwiLFxuICogICBcIlJvbGUjOThkODc2MzMtZDFhNy00NjEyLWI2YjQtYjJmYTJiNDNjZDNkXCJcbiAqIF19XG4gKi9cbmV4cG9ydCB0eXBlIFJlcXVpcmVSb2xlU2Vzc2lvbiA9IHtcbiAgLyoqIFJlcXVpcmUgZWl0aGVyIGFueSByb2xlIHNlc3Npb24gb3IgYW55IG9uZSBvZiB0aGUgYXBwcm92ZWQgcm9sZXMgKi9cbiAgUmVxdWlyZVJvbGVTZXNzaW9uOiBcIipcIiB8IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBGb3J3YXJkcyB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIHRoaXMgd2ViaG9vayB3aGljaCBkZXRlcm1pbmVzXG4gKiB3aGV0aGVyIHRoZSByZXF1ZXN0IGlzIGFsbG93ZWQgdG8gYmUgZXhlY3V0ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFdlYmhvb2tQb2xpY3kgPSB7XG4gIFdlYmhvb2s6IHtcbiAgICAvKiogVGhlIHVybCBvZiB0aGUgd2ViaG9vayAqL1xuICAgIHVybDogc3RyaW5nO1xuXG4gICAgLyoqIE9wdGlvbmFsIEhUVFAgbWV0aG9kIHRvIHVzZS4gRGVmYXVsdHMgdG8gUE9TVC4gKi9cbiAgICBtZXRob2Q/OiBzdHJpbmc7XG5cbiAgICAvKiogT3B0aW9uYWwgSFRUUCBoZWFkZXJzIHRvIHNldCAqL1xuICAgIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogUmVxdWVzdCBleGVjdXRpb24gdGltZW91dCBpbiBzZWNvbmRzOyBtdXN0IGJlIGF0IGxlYXN0IDEgbm90IGV4Y2VlZCA1IHNlY29uZHMuXG4gICAgICogRGVmYXVsdHMgdG8gNS5cbiAgICAgKi9cbiAgICB0aW1lb3V0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQ3ViZVNpZ25lciBvcGVyYXRpb25zIHRvIHdoaWNoIHRoaXMgcG9saWN5IHNob3VsZCBhcHBseS5cbiAgICAgKiBXaGVuIG9taXR0ZWQsIGFwcGxpZXMgdG8gYWxsIG9wZXJhdGlvbnMuXG4gICAgICovXG4gICAgcmVzdHJpY3RlZF9vcGVyYXRpb25zPzogT3BlcmF0aW9uS2luZFtdO1xuICB9O1xufTtcblxuLyoqIEJhYnlsb24gc3Rha2luZyBwb2xpY3kgKi9cbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nID0ge1xuICBCYWJ5bG9uU3Rha2luZzoge1xuICAgIC8qKlxuICAgICAqIFB1YmxpYyBrZXlzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHN0YWtpbmcuIE11c3QgYmUgZGVmaW5lZCBpZiB0aGUgcG9saWN5IGlzIGJlaW5nIGFwcGxpZWRcbiAgICAgKiB0byBhIFNlZ1dpdCBrZXk7IG90aGVyd2lzZSwgaWYgYHVuZGVmaW5lZGAsIG9ubHkgdGhlIGtleSB0byB3aGljaCB0aGUgcG9saWN5IGlzIGJlaW5nXG4gICAgICogYXBwbGllZCBjYW4gYmUgdXNlZCBhcyB0aGUgc3Rha2luZyBwdWJsaWMga2V5IHdoZW4gY3JlYXRpbmcgQmFieWxvbi1yZWxhdGVkIHRyYW5zYWN0aW9ucy5cbiAgICAgKlxuICAgICAqIEhleC1lbmNvZGVkIHB1YmxpYyBrZXlzLCBXSVRIT1VUIHRoZSBsZWFkaW5nICcweCcuXG4gICAgICovXG4gICAgYWxsb3dlZF9zdGFrZXJfcGtzPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBGaW5hbGl0eSBwcm92aWRlcnMgdGhhdCBjYW4gYmUgdXNlZCBmb3Igc3Rha2luZy4gSWYgYHVuZGVmaW5lZGAsIGFueSBmaW5hbGl0eVxuICAgICAqIHByb3ZpZGVyIGNhbiBiZSB1c2VkLlxuICAgICAqXG4gICAgICogSGV4LWVuY29kZWQgcHVibGljIGtleXMsIFdJVEhPVVQgdGhlIGxlYWRpbmcgJzB4Jy5cbiAgICAgKi9cbiAgICBhbGxvd2VkX2ZpbmFsaXR5X3Byb3ZpZGVyX3Brcz86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIGFkZHJlc3NlcyB0aGF0IGNhbiBiZSB1c2VkIGluIHN0YWtpbmcgdHJhbnNhY3Rpb25zLiBJZiBgdW5kZWZpbmVkYCwgb25seVxuICAgICAqIHRoZSBrZXkgdG8gd2hpY2ggdGhlIHBvbGljeSBpcyBiZWluZyBhcHBsaWVkIGNhbiBiZSB1c2VkIGFzIHRoZSBjaGFuZ2UgYWRkcmVzcy5cbiAgICAgKi9cbiAgICBhbGxvd2VkX2NoYW5nZV9hZGRycz86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogV2l0aGRyYXdhbCBhZGRyZXNzZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiB3aXRoZHJhd2FsIHR4bnMuIElmIGB1bmRlZmluZWRgLCBvbmx5XG4gICAgICogdGhlIGtleSB0byB3aGljaCB0aGUgcG9saWN5IGlzIGJlaW5nIGFwcGxpZWQgY2FuIGJlIHVzZWQgYXMgdGhlIHdpdGhkcmF3YWwgYWRkcmVzcy5cbiAgICAgKi9cbiAgICBhbGxvd2VkX3dpdGhkcmF3YWxfYWRkcnM/OiBzdHJpbmdbXTtcblxuICAgIC8qKiBCYWJ5bG9uIG5ldHdvcmtzIHRoYXQgdGhpcyBrZXkgY2FuIGJlIHVzZWQgd2l0aC4gSWYgYHVuZGVmaW5lZGAsIGFueSBuZXR3b3JrLiAqL1xuICAgIGFsbG93ZWRfbmV0d29ya19pZHM/OiBCYWJ5bG9uU3Rha2luZ1JlcXVlc3RbXCJuZXR3b3JrXCJdW107XG5cbiAgICAvKipcbiAgICAgKiBNYXggZmVlIGFsbG93ZWQgaW4gYSBzdGFraW5nIG9yIHdpdGhkcmF3YWwgdHhuLiBJZiBgdW5kZWZpbmVkYCwgdGhlcmUgaXMgbm8gZmVlIGxpbWl0LlxuICAgICAqIE5vdGUgdGhhdCB0aGUgZmVlIGZvciB2b2x1bnRhcnkgdW5ib25kaW5nIGFuZCBzbGFzaGluZyBhcmUgZml4ZWQgYnkgdGhlIEJhYnlsb25cbiAgICAgKiBwYXJhbXMsIGFuZCB0aGlzIGxpbWl0IGlzIG5vdCBlbmZvcmNlZCBpbiB0aG9zZSBjYXNlcy5cbiAgICAgKi9cbiAgICBtYXhfZmVlPzogbnVtYmVyO1xuXG4gICAgLyoqIE1pbiBzdGFraW5nIHRpbWUgaW4gc2Vjb25kcy4gSWYgYHVuZGVmaW5lZGAsIHVzZXMgdGhlIGxpbWl0IGRlZmluZWQgYnkgdGhlIEJhYnlsb24gc3Rha2luZyBwYXJhbXMuICovXG4gICAgbWluX2xvY2tfdGltZT86IG51bWJlcjtcblxuICAgIC8qKiBNYXggc3Rha2luZyB0aW1lIGluIHNlY29uZHMuIElmIGB1bmRlZmluZWRgLCB1c2VzIHRoZSBsaW1pdCBkZWZpbmVkIGJ5IHRoZSBCYWJ5bG9uIHN0YWtpbmcgcGFyYW1zLiAqL1xuICAgIG1heF9sb2NrX3RpbWU/OiBudW1iZXI7XG5cbiAgICAvKiogTWluIHN0YWtpbmcgYW1vdW50IGluIFNBVC4gSWYgYHVuZGVmaW5lZGAsIHVzZXMgdGhlIGxpbWl0IGRlZmluZWQgYnkgdGhlIEJhYnlsb24gc3Rha2luZyBwYXJhbXMuICovXG4gICAgbWluX3N0YWtpbmdfdmFsdWU/OiBudW1iZXI7XG5cbiAgICAvKiogTWF4IHN0YWtpbmcgYW1vdW50IGluIFNBVC4gSWYgYHVuZGVmaW5lZGAsIHVzZXMgdGhlIGxpbWl0IGRlZmluZWQgYnkgdGhlIEJhYnlsb24gc3Rha2luZyBwYXJhbXMuICovXG4gICAgbWF4X3N0YWtpbmdfdmFsdWU/OiBudW1iZXI7XG5cbiAgICAvKiogTWluaW11bSBuZXR3b3JrIHBhcmFtZXRlcnMgdmVyc2lvbiBhbGxvd2VkLiAqL1xuICAgIG1pbl9wYXJhbXNfdmVyc2lvbj86IG51bWJlcjtcblxuICAgIC8qKiBNYXhpbXVtIG5ldHdvcmsgcGFyYW1ldGVycyB2ZXJzaW9uIGFsbG93ZWQuICovXG4gICAgbWF4X3BhcmFtc192ZXJzaW9uPzogbnVtYmVyO1xuICB9O1xufTtcblxuLyoqIEFsbG93IHJhdyBibG9iIHNpZ25pbmcgKi9cbmV4cG9ydCBjb25zdCBBbGxvd1Jhd0Jsb2JTaWduaW5nID0gXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIgYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBBbGxvd1Jhd0Jsb2JTaWduaW5nID0gdHlwZW9mIEFsbG93UmF3QmxvYlNpZ25pbmc7XG5cbi8qKiBBbGxvdyBEaWZmaWUtSGVsbG1hbiBleGNoYW5nZSAqL1xuZXhwb3J0IGNvbnN0IEFsbG93RGlmZmllSGVsbG1hbkV4Y2hhbmdlID0gXCJBbGxvd0RpZmZpZUhlbGxtYW5FeGNoYW5nZVwiIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWxsb3dEaWZmaWVIZWxsbWFuRXhjaGFuZ2UgPSB0eXBlb2YgQWxsb3dEaWZmaWVIZWxsbWFuRXhjaGFuZ2U7XG5cbi8qKiBBbGxvdyBFSVAtMTkxIHNpZ25pbmcgKi9cbmV4cG9ydCBjb25zdCBBbGxvd0VpcDE5MVNpZ25pbmcgPSBcIkFsbG93RWlwMTkxU2lnbmluZ1wiIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWxsb3dFaXAxOTFTaWduaW5nID0gdHlwZW9mIEFsbG93RWlwMTkxU2lnbmluZztcblxuLyoqIEFsbG93IEVJUC03MTIgc2lnbmluZyAqL1xuZXhwb3J0IGNvbnN0IEFsbG93RWlwNzEyU2lnbmluZyA9IFwiQWxsb3dFaXA3MTJTaWduaW5nXCIgYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBBbGxvd0VpcDcxMlNpZ25pbmcgPSB0eXBlb2YgQWxsb3dFaXA3MTJTaWduaW5nO1xuXG4vKiogQWxsb3cgQlRDIG1lc3NhZ2Ugc2lnbmluZyAqL1xuZXhwb3J0IGNvbnN0IEFsbG93QnRjTWVzc2FnZVNpZ25pbmcgPSBcIkFsbG93QnRjTWVzc2FnZVNpZ25pbmdcIiBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEFsbG93QnRjTWVzc2FnZVNpZ25pbmcgPSB0eXBlb2YgQWxsb3dCdGNNZXNzYWdlU2lnbmluZztcblxuLyoqIEEgcmVmZXJlbmNlIHRvIGFuIG9yZy1sZXZlbCBuYW1lZCBwb2xpY3kgYW5kIGl0cyB2ZXJzaW9uICovXG5leHBvcnQgdHlwZSBQb2xpY3lSZWZlcmVuY2UgPSBgJHtzdHJpbmd9L3Yke251bWJlcn1gIHwgYCR7c3RyaW5nfS9sYXRlc3RgO1xuXG4vKiogS2V5IHBvbGljaWVzIHRoYXQgcmVzdHJpY3QgdGhlIHJlcXVlc3RzIHRoYXQgdGhlIHNpZ25pbmcgZW5kcG9pbnRzIGFjY2VwdCAqL1xuZXhwb3J0IHR5cGUgS2V5RGVueVBvbGljeSA9XG4gIHwgVHhSZWNlaXZlclxuICB8IFR4RGVwb3NpdFxuICB8IFR4VmFsdWVMaW1pdFxuICB8IFR4R2FzQ29zdExpbWl0XG4gIHwgSWZFcmMyMFR4XG4gIHwgQXNzZXJ0RXJjMjBUeFxuICB8IEFzc2VydFRyYW5zZmVyT25seVR4XG4gIHwgQXNzZXJ0Q29udHJhY3RUeFxuICB8IFN1aVR4UmVjZWl2ZXJzXG4gIHwgQnRjVHhSZWNlaXZlcnNcbiAgfCBTb3VyY2VJcEFsbG93bGlzdFxuICB8IFNvbGFuYUluc3RydWN0aW9uUG9saWN5XG4gIHwgQnRjU2Vnd2l0VmFsdWVMaW1pdFxuICB8IFJlcXVpcmVNZmFcbiAgfCBSZXF1aXJlUm9sZVNlc3Npb25cbiAgfCBCYWJ5bG9uU3Rha2luZ1xuICB8IFdlYmhvb2tQb2xpY3k7XG5cbi8qKlxuICogS2V5IHBvbGljeVxuICpcbiAqIEBleGFtcGxlIFtcbiAqICAge1xuICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiXG4gKiAgIH0sXG4gKiAgIHtcbiAqICAgICBcIlR4RGVwb3NpdFwiOiB7XG4gKiAgICAgICBcImtpbmRcIjogXCJDYW5vbmljYWxcIlxuICogICAgIH1cbiAqICAgfSxcbiAqICAge1xuICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gKiAgICAgICBcImNvdW50XCI6IDEsXG4gKiAgICAgICBcImFsbG93ZWRfbWZhX3R5cGVzXCI6IFtcIkN1YmVTaWduZXJcIl0sXG4gKiAgICAgICBcInJlc3RyaWN0ZWRfb3BlcmF0aW9uc1wiOiBbXG4gKiAgICAgICAgIFwiRXRoMVNpZ25cIixcbiAqICAgICAgICAgXCJCbG9iU2lnblwiXG4gKiAgICAgICBdXG4gKiAgICAgfVxuICogICB9XG4gKiBdXG4gKlxuICogQGV4YW1wbGUgW1wiQXNzZXJ0RXJjMjBUeFwiLCB7IFwiSWZFcmMyMFR4XCI6IFwidHJhbnNmZXJfbGltaXRzXCI6IFsgeyBcImxpbWl0XCI6IFwiMHgzQjlBQ0EwMFwiIH0gXSB9XVxuICovXG5leHBvcnQgdHlwZSBLZXlQb2xpY3kgPSBLZXlQb2xpY3lSdWxlW107XG5cbmV4cG9ydCB0eXBlIEtleVBvbGljeVJ1bGUgPVxuICB8IEtleURlbnlQb2xpY3lcbiAgfCBBbGxvd1Jhd0Jsb2JTaWduaW5nXG4gIHwgQWxsb3dEaWZmaWVIZWxsbWFuRXhjaGFuZ2VcbiAgfCBBbGxvd0VpcDE5MVNpZ25pbmdcbiAgfCBBbGxvd0VpcDcxMlNpZ25pbmdcbiAgfCBBbGxvd0J0Y01lc3NhZ2VTaWduaW5nXG4gIHwgUG9saWN5UmVmZXJlbmNlO1xuXG4vKiogUm9sZSBwb2xpY3kgKi9cbmV4cG9ydCB0eXBlIFJvbGVQb2xpY3kgPSBSb2xlUG9saWN5UnVsZVtdO1xuXG5leHBvcnQgdHlwZSBSb2xlUG9saWN5UnVsZSA9IEtleURlbnlQb2xpY3kgfCBQb2xpY3lSZWZlcmVuY2U7XG5cbi8qKiBBIGtleSBndWFyZGVkIGJ5IGEgcG9saWN5LiAqL1xuZXhwb3J0IGNsYXNzIEtleVdpdGhQb2xpY2llcyB7XG4gIHJlYWRvbmx5ICNhcGlDbGllbnQ6IEFwaUNsaWVudDtcbiAgcmVhZG9ubHkgcm9sZUlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG4gIC8qKiBUaGUgY2FjaGVkIHByb3BlcnRpZXMgb2YgdGhpcyBrZXkvcG9saWNpZXMgKi9cbiAgI2NhY2hlZDogS2V5V2l0aFBvbGljaWVzSW5mbztcblxuICAvKiogQHJldHVybnMgVGhlIGNhY2hlZCBpbmZvcm1hdGlvbiAqL1xuICBnZXQgY2FjaGVkKCk6IEtleVdpdGhQb2xpY2llc0luZm8ge1xuICAgIHJldHVybiB0aGlzLiNjYWNoZWQ7XG4gIH1cblxuICAvKiogQHJldHVybnMgVGhlIGNhY2hlZCBwb2xpY3kgKi9cbiAgZ2V0IHBvbGljeSgpOiBLZXlQb2xpY3kgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNhY2hlZC5wb2xpY3kgYXMgS2V5UG9saWN5IHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIFRoZSBrZXkgKi9cbiAgYXN5bmMgZ2V0S2V5KCk6IFByb21pc2U8S2V5PiB7XG4gICAgaWYgKHRoaXMuI2NhY2hlZC5rZXlfaW5mbyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuI2NhY2hlZC5rZXlfaW5mbyA9PT0gbnVsbCkge1xuICAgICAgdGhpcy4jY2FjaGVkID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVLZXlHZXQodGhpcy5yb2xlSWQsIHRoaXMua2V5SWQsIHsgZGV0YWlsczogdHJ1ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBLZXkodGhpcy4jYXBpQ2xpZW50LCB0aGlzLiNjYWNoZWQua2V5X2luZm8hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIGFwaUNsaWVudCBUaGUgQVBJIGNsaWVudCB0byB1c2UuXG4gICAqIEBwYXJhbSBrZXlXaXRoUG9saWNpZXMgVGhlIGtleSBhbmQgaXRzIHBvbGljaWVzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBpQ2xpZW50OiBBcGlDbGllbnQsIGtleVdpdGhQb2xpY2llczogS2V5V2l0aFBvbGljaWVzSW5mbykge1xuICAgIHRoaXMuI2FwaUNsaWVudCA9IGFwaUNsaWVudDtcbiAgICB0aGlzLnJvbGVJZCA9IGtleVdpdGhQb2xpY2llcy5yb2xlX2lkO1xuICAgIHRoaXMua2V5SWQgPSBrZXlXaXRoUG9saWNpZXMua2V5X2lkO1xuICAgIHRoaXMuI2NhY2hlZCA9IGtleVdpdGhQb2xpY2llcztcbiAgfVxufVxuXG4vKiogUm9sZXMuICovXG5leHBvcnQgY2xhc3MgUm9sZSB7XG4gIHJlYWRvbmx5ICNhcGlDbGllbnQ6IEFwaUNsaWVudDtcbiAgLyoqIFRoZSByb2xlIGluZm9ybWF0aW9uICovXG4gICNkYXRhOiBSb2xlSW5mbztcblxuICAvKiogQHJldHVybnMgSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUgKi9cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jZGF0YS5uYW1lID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBUaGUgSUQgb2YgdGhlIHJvbGUuXG4gICAqXG4gICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZGF0YS5yb2xlX2lkO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRoZSBjYWNoZWQgcHJvcGVydGllcyBvZiB0aGlzIHJvbGUuIFRoZSBjYWNoZWQgcHJvcGVydGllc1xuICAgKiByZWZsZWN0IHRoZSBzdGF0ZSBvZiB0aGUgbGFzdCBmZXRjaCBvciB1cGRhdGUgKGUuZy4sIGFmdGVyIGF3YWl0aW5nXG4gICAqIGBSb2xlLmVuYWJsZWQoKWAgb3IgYFJvbGUuZGlzYWJsZSgpYCkuXG4gICAqL1xuICBnZXQgY2FjaGVkKCk6IFJvbGVJbmZvIHtcbiAgICByZXR1cm4gdGhpcy4jZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgSWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyBNRkEgcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqIEByZXR1cm5zIEEgcmVzcG9uc2Ugd2hpY2ggY2FuIGJlIHVzZWQgdG8gYXBwcm92ZSBNRkEgaWYgbmVlZGVkXG4gICAqL1xuICBhc3luYyBkZWxldGUobWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RW1wdHk+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlRGVsZXRlKHRoaXMuaWQsIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJvbGUgaXMgZW5hYmxlZCAqL1xuICBhc3luYyBlbmFibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIGRhdGEuZW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgSWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyBNRkEgcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqL1xuICBhc3luYyBlbmFibGUobWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGUoeyBlbmFibGVkOiB0cnVlIH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgSWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyBNRkEgcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqL1xuICBhc3luYyBkaXNhYmxlKG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlKHsgZW5hYmxlZDogZmFsc2UgfSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG5ldyBwb2xpY3kgKG92ZXJ3cml0aW5nIGFueSBwb2xpY2llcyBwcmV2aW91c2x5IHNldCBmb3IgdGhpcyByb2xlKVxuICAgKlxuICAgKiBAcGFyYW0gcG9saWN5IFRoZSBuZXcgcG9saWN5IHRvIHNldFxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAdGhyb3dzIElmIE1GQSBpcyByZXF1aXJlZCBhbmQgbm8gTUZBIHJlY2VpcHRzIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgYXN5bmMgc2V0UG9saWN5KHBvbGljeTogUm9sZVBvbGljeSwgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGUoeyBwb2xpY3kgfSwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kIHRvIGV4aXN0aW5nIHJvbGUgcG9saWN5LiBUaGlzIGFwcGVuZCBpcyBub3QgYXRvbWljLS0taXQgdXNlc1xuICAgKiB7QGxpbmsgcG9saWN5fSB0byBmZXRjaCB0aGUgY3VycmVudCBwb2xpY3kgYW5kIHRoZW4ge0BsaW5rIHNldFBvbGljeX1cbiAgICogdG8gc2V0IHRoZSBwb2xpY3ktLS1hbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFjcm9zcyBjb25jdXJyZW50IHNlc3Npb25zLlxuICAgKlxuICAgKiBAcGFyYW0gcG9saWN5IFRoZSBwb2xpY3kgdG8gYXBwZW5kIHRvIHRoZSBleGlzdGluZyBvbmUuXG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgSWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyBNRkEgcmVjZWlwdHMgYXJlIHByb3ZpZGVkXG4gICAqL1xuICBhc3luYyBhcHBlbmRQb2xpY3kocG9saWN5OiBSb2xlUG9saWN5LCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMucG9saWN5KCk7XG4gICAgYXdhaXQgdGhpcy5zZXRQb2xpY3koWy4uLmV4aXN0aW5nLCAuLi5wb2xpY3ldLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBvbGljeSBmb3IgdGhlIHJvbGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwb2xpY3kgZm9yIHRoZSByb2xlLlxuICAgKi9cbiAgYXN5bmMgcG9saWN5KCk6IFByb21pc2U8Um9sZVBvbGljeT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIChkYXRhLnBvbGljeSA/PyBbXSkgYXMgdW5rbm93biBhcyBSb2xlUG9saWN5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgZWRpdCBwb2xpY3kgKG92ZXJ3cml0aW5nIGFueSBlZGl0IHBvbGljaWVzIHByZXZpb3VzbHkgc2V0IGZvciB0aGlzIHJvbGUpXG4gICAqXG4gICAqIEBwYXJhbSBlZGl0UG9saWN5IFRoZSBuZXcgZWRpdCBwb2xpY3kgdG8gc2V0XG4gICAqIEBwYXJhbSBtZmFSZWNlaXB0IE9wdGlvbmFsIE1GQSByZWNlaXB0KHMpXG4gICAqIEB0aHJvd3MgaWYgTUZBIGlzIHJlcXVpcmVkIGFuZCBubyByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIGFzeW5jIHNldEVkaXRQb2xpY3koZWRpdFBvbGljeTogRWRpdFBvbGljeSwgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGUoeyBlZGl0X3BvbGljeTogZWRpdFBvbGljeSB9LCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGVkaXQgcG9saWN5IGZvciB0aGUgcm9sZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGVkaXQgcG9saWN5IGZvciB0aGUgcm9sZSwgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIGVkaXQgcG9saWN5XG4gICAqL1xuICBhc3luYyBlZGl0UG9saWN5KCk6IFByb21pc2U8RWRpdFBvbGljeSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZldGNoKCk7XG4gICAgcmV0dXJuIGRhdGEuZWRpdF9wb2xpY3k7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVzdHJpY3RlZCBhY3Rpb25zIG9uIHRoZSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzdHJpY3RlZEFjdGlvbnMgVGhlIG1hcCBvZiByZXN0cmljdGVkIGFjdGlvbnNcbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBJZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIE1GQSByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIGFzeW5jIHNldFJlc3RyaWN0ZWRBY3Rpb25zKHJlc3RyaWN0ZWRBY3Rpb25zOiBSZXN0cmljdGVkQWN0aW9uc01hcCwgbWZhUmVjZWlwdD86IE1mYVJlY2VpcHRzKSB7XG4gICAgY29uc3QgcmVzdHJpY3RlZF9hY3Rpb25zID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzdHJpY3RlZEFjdGlvbnMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBba2V5LnRvU3RyaW5nKCksIHZhbHVlXSksXG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMudXBkYXRlKHsgcmVzdHJpY3RlZF9hY3Rpb25zIH0sIG1mYVJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGFsbCB1c2VycyB3aXRoIGFjY2VzcyB0byB0aGUgcm9sZS5cbiAgICpcbiAgICogQGV4YW1wbGUgW1xuICAgKiAgIFwiVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcIixcbiAgICogICBcIlVzZXIjNTU5M2MyNWItNTJlMi00ZmI1LWIzOWItOTZkNDFkNjgxZDgyXCJcbiAgICogXVxuICAgKlxuICAgKiBAcGFyYW0gcGFnZSBPcHRpb25hbCBwYWdpbmF0aW9uIG9wdGlvbnM7IGJ5IGRlZmF1bHQsIHJldHJpZXZlcyBhbGwgdXNlcnMuXG4gICAqL1xuICBhc3luYyB1c2VycyhwYWdlPzogUGFnZU9wdHMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgdXNlcnMgPSBhd2FpdCB0aGlzLiNhcGlDbGllbnQucm9sZVVzZXJzTGlzdCh0aGlzLmlkLCBwYWdlKS5mZXRjaCgpO1xuICAgIHJldHVybiAodXNlcnMgfHwgW10pLm1hcCgodSkgPT4gdS51c2VyX2lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXhpc3RpbmcgdXNlciB0byBhbiBleGlzdGluZyByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VyLWlkIG9mIHRoZSB1c2VyIHRvIGFkZCB0byB0aGUgcm9sZS5cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHJldHVybnMgYW4gZW1wdHkgcmVzcG9uc2UsIG9yIGEgcmVzcG9uc2UgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHByb3ZlIE1GQSBpZiBuZWVkZWQuXG4gICAqL1xuICBhc3luYyBhZGRVc2VyKHVzZXJJZDogc3RyaW5nLCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVVc2VyQWRkKHRoaXMuaWQsIHVzZXJJZCwgbWZhUmVjZWlwdCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGV4aXN0aW5nIHVzZXIgZnJvbSBhbiBleGlzdGluZyByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VyLWlkIG9mIHRoZSB1c2VyIHRvIHJlbW92ZSBmcm9tIHRoZSByb2xlLlxuICAgKiBAcGFyYW0gbWZhUmVjZWlwdCBPcHRpb25hbCBNRkEgcmVjZWlwdChzKVxuICAgKiBAcmV0dXJucyBhbiBlbXB0eSByZXNwb25zZSwgb3IgYSByZXNwb25zZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcHJvdmUgTUZBIGlmIG5lZWRlZC5cbiAgICovXG4gIGFzeW5jIHJlbW92ZVVzZXIodXNlcklkOiBzdHJpbmcsIG1mYVJlY2VpcHQ/OiBNZmFSZWNlaXB0cykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNhcGlDbGllbnQucm9sZVVzZXJSZW1vdmUodGhpcy5pZCwgdXNlcklkLCBtZmFSZWNlaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBrZXlzIGluIHRoZSByb2xlLlxuICAgKlxuICAgKiBAZXhhbXBsZSBbXG4gICAqICAgIHtcbiAgICogICAgIGlkOiBcIktleSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcIixcbiAgICogICAgIHBvbGljeTogeyBUeFJlY2VpdmVyOiBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiIH1cbiAgICogICAgfSxcbiAgICogIF1cbiAgICpcbiAgICogQHBhcmFtIHBhZ2UgT3B0aW9uYWwgcGFnaW5hdGlvbiBvcHRpb25zOyBieSBkZWZhdWx0LCByZXRyaWV2ZXMgYWxsIGtleXMgaW4gdGhpcyByb2xlLlxuICAgKi9cbiAgYXN5bmMga2V5cyhwYWdlPzogUGFnZU9wdHMpOiBQcm9taXNlPEtleVdpdGhQb2xpY2llc1tdPiB7XG4gICAgY29uc3Qga2V5c0luUm9sZSA9IGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlS2V5c0xpc3QodGhpcy5pZCwgcGFnZSkuZmV0Y2goKTtcbiAgICByZXR1cm4ga2V5c0luUm9sZS5tYXAoKGspID0+IG5ldyBLZXlXaXRoUG9saWNpZXModGhpcy4jYXBpQ2xpZW50LCBrKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEga2V5IGluIHRoZSByb2xlIGJ5IGl0cyBJRC5cbiAgICpcbiAgICogQHBhcmFtIGtleUlkIFRoZSBJRCBvZiB0aGUga2V5IHRvIGdldC5cbiAgICogQHBhcmFtIG9wdHMgT3B0aW9uYWwgb3B0aW9ucyBmb3IgZ2V0dGluZyB0aGUga2V5LlxuICAgKiBAcmV0dXJucyBUaGUga2V5IHdpdGggaXRzIHBvbGljaWVzLlxuICAgKi9cbiAgYXN5bmMgZ2V0S2V5KGtleUlkOiBzdHJpbmcsIG9wdHM/OiBHZXRSb2xlS2V5T3B0aW9ucyk6IFByb21pc2U8S2V5V2l0aFBvbGljaWVzPiB7XG4gICAgY29uc3Qga3dwID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVLZXlHZXQodGhpcy5pZCwga2V5SWQsIG9wdHMpO1xuICAgIHJldHVybiBuZXcgS2V5V2l0aFBvbGljaWVzKHRoaXMuI2FwaUNsaWVudCwga3dwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBsaXN0IG9mIGV4aXN0aW5nIGtleXMgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIGtleXMgVGhlIGxpc3Qgb2Yga2V5cyB0byBhZGQgdG8gdGhlIHJvbGUuXG4gICAqIEBwYXJhbSBwb2xpY3kgVGhlIG9wdGlvbmFsIHBvbGljeSB0byBhcHBseSB0byBlYWNoIGtleS5cbiAgICpcbiAgICogQHJldHVybnMgQSBDdWJlU2lnbmVyIHJlc3BvbnNlIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLlxuICAgKi9cbiAgYXN5bmMgYWRkS2V5cyhrZXlzOiBLZXlbXSwgcG9saWN5PzogS2V5UG9saWN5KTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RW1wdHk+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlS2V5c0FkZChcbiAgICAgIHRoaXMuaWQsXG4gICAgICBrZXlzLm1hcCgoaykgPT4gay5pZCksXG4gICAgICBwb2xpY3ksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXhpc3Rpbmcga2V5IHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBhZGQgdG8gdGhlIHJvbGUuXG4gICAqIEBwYXJhbSBwb2xpY3kgVGhlIG9wdGlvbmFsIHBvbGljeSB0byBhcHBseSB0byB0aGUga2V5LlxuICAgKlxuICAgKiBAcmV0dXJucyBBIEN1YmVTaWduZXIgcmVzcG9uc2UgaW5kaWNhdGluZyBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gICAqL1xuICBhc3luYyBhZGRLZXkoa2V5OiBLZXksIHBvbGljeT86IEtleVBvbGljeSk6IFByb21pc2U8Q3ViZVNpZ25lclJlc3BvbnNlPEVtcHR5Pj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmFkZEtleXMoW2tleV0sIHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGV4aXN0aW5nIGtleSBmcm9tIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byByZW1vdmUgZnJvbSB0aGUgcm9sZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBDdWJlU2lnbmVyIHJlc3BvbnNlIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLlxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlS2V5KGtleTogS2V5KTogUHJvbWlzZTxDdWJlU2lnbmVyUmVzcG9uc2U8RW1wdHk+PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlS2V5c1JlbW92ZSh0aGlzLmlkLCBrZXkuaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBzZXNzaW9uIGZvciB0aGlzIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSBwdXJwb3NlIERlc2NyaXB0aXZlIHB1cnBvc2UuXG4gICAqIEBwYXJhbSBsaWZldGltZXMgT3B0aW9uYWwgc2Vzc2lvbiBsaWZldGltZXMuXG4gICAqIEBwYXJhbSBzY29wZXMgU2Vzc2lvbiBzY29wZXMuIE9ubHkgYHNpZ246KmAgc2NvcGVzIGFyZSBhbGxvd2VkLlxuICAgKiBAcmV0dXJucyBOZXcgc2Vzc2lvbi5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24oXG4gICAgcHVycG9zZTogc3RyaW5nLFxuICAgIGxpZmV0aW1lcz86IFNlc3Npb25MaWZldGltZSxcbiAgICBzY29wZXM/OiBTY29wZVtdLFxuICApOiBQcm9taXNlPFNlc3Npb25EYXRhPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2FwaUNsaWVudC5zZXNzaW9uQ3JlYXRlRm9yUm9sZSh0aGlzLmlkLCBwdXJwb3NlLCBzY29wZXMsIGxpZmV0aW1lcyk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBhbGwgc2lnbmVyIHNlc3Npb25zIGZvciB0aGlzIHJvbGUuIFJldHVybmVkIG9iamVjdHMgY2FuIGJlIHVzZWQgdG9cbiAgICogcmV2b2tlIGluZGl2aWR1YWwgc2Vzc2lvbnMsIGJ1dCB0aGV5IGNhbm5vdCBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBhZ2UgT3B0aW9uYWwgcGFnaW5hdGlvbiBvcHRpb25zOyBieSBkZWZhdWx0LCByZXRyaWV2ZXMgYWxsIHNlc3Npb25zLlxuICAgKiBAcmV0dXJucyBTaWduZXIgc2Vzc2lvbnMgZm9yIHRoaXMgcm9sZS5cbiAgICovXG4gIGFzeW5jIHNlc3Npb25zKHBhZ2U/OiBQYWdlT3B0cyk6IFByb21pc2U8U2lnbmVyU2Vzc2lvbkluZm9bXT4ge1xuICAgIGNvbnN0IHNlc3Npb25zID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnNlc3Npb25zTGlzdCh7IHJvbGU6IHRoaXMuaWQgfSwgcGFnZSkuZmV0Y2goKTtcbiAgICByZXR1cm4gc2Vzc2lvbnMubWFwKCh0KSA9PiBuZXcgU2lnbmVyU2Vzc2lvbkluZm8odGhpcy4jYXBpQ2xpZW50LCB0LnNlc3Npb25faWQsIHQucHVycG9zZSkpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0gSU5URVJOQUwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBhcGlDbGllbnQgVGhlIEFQSSBjbGllbnQgdG8gdXNlLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgSlNPTiByZXNwb25zZSBmcm9tIHRoZSBBUEkgc2VydmVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGNvbnN0cnVjdG9yKGFwaUNsaWVudDogQXBpQ2xpZW50LCBkYXRhOiBSb2xlSW5mbykge1xuICAgIHRoaXMuI2FwaUNsaWVudCA9IGFwaUNsaWVudDtcbiAgICB0aGlzLiNkYXRhID0gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBKU09OIHJlcXVlc3QgdG8gc2VuZCB0byB0aGUgQVBJIHNlcnZlci5cbiAgICogQHBhcmFtIG1mYVJlY2VpcHQgT3B0aW9uYWwgTUZBIHJlY2VpcHQocylcbiAgICogQHRocm93cyBJZiBNRkEgaXMgcmVxdWlyZWQgYW5kIG5vIE1GQSByZWNlaXB0cyBhcmUgcHJvdmlkZWRcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgcm9sZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlKHJlcXVlc3Q6IFVwZGF0ZVJvbGVSZXF1ZXN0LCBtZmFSZWNlaXB0PzogTWZhUmVjZWlwdHMpOiBQcm9taXNlPFJvbGVJbmZvPiB7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuI2FwaUNsaWVudC5yb2xlVXBkYXRlKHRoaXMuaWQsIHJlcXVlc3QsIG1mYVJlY2VpcHQpO1xuICAgIHRoaXMuI2RhdGEgPSByZXNwLmRhdGEoKTtcbiAgICByZXR1cm4gdGhpcy4jZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSByb2xlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcm9sZSBpbmZvcm1hdGlvbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGZldGNoKCk6IFByb21pc2U8Um9sZUluZm8+IHtcbiAgICB0aGlzLiNkYXRhID0gYXdhaXQgdGhpcy4jYXBpQ2xpZW50LnJvbGVHZXQodGhpcy5pZCk7XG4gICAgcmV0dXJuIHRoaXMuI2RhdGE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { MfaPolicy } from "./role";
|
|
2
1
|
import type { components, operations } from "./schema";
|
|
3
2
|
import type { JsonMap, JsonValue } from "./util";
|
|
4
3
|
export type schemas = components["schemas"];
|
|
@@ -124,6 +123,10 @@ export type ErrorResponse = schemas["ErrorResponse"];
|
|
|
124
123
|
export type BtcSignatureKind = schemas["BtcSignatureKind"];
|
|
125
124
|
export type CsErrCode = schemas["SignerErrorCode"];
|
|
126
125
|
export type MfaType = "CubeSigner" | "Fido" | `FidoKey#${string}` | "Totp" | "EmailOtp" | `EmailOtp#${number}`;
|
|
126
|
+
export type MfaPolicy = Omit<schemas["MfaPolicy"], "allowed_mfa_types"> & {
|
|
127
|
+
/** Allowed approval types. When omitted, defaults to any. */
|
|
128
|
+
allowed_mfa_types?: MfaType[] | null;
|
|
129
|
+
};
|
|
127
130
|
export type MfaVote = schemas["MfaVote"];
|
|
128
131
|
export type MfaRequestInfo = schemas["MfaRequestInfo"];
|
|
129
132
|
export type MfaProtectedAction = schemas["MfaProtectedAction"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema_types.d.ts","sourceRoot":"","sources":["../../src/schema_types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema_types.d.ts","sourceRoot":"","sources":["../../src/schema_types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/schema_types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZmFQb2xpY3kgfSBmcm9tIFwiLi9yb2xlXCI7XG5pbXBvcnQgdHlwZSB7IGNvbXBvbmVudHMsIG9wZXJhdGlvbnMgfSBmcm9tIFwiLi9zY2hlbWFcIjtcbmltcG9ydCB0eXBlIHsgSnNvbk1hcCwgSnNvblZhbHVlIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgdHlwZSBzY2hlbWFzID0gY29tcG9uZW50c1tcInNjaGVtYXNcIl07XG5cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0gc2NoZW1hc1tcIlVzZXJJbmZvXCJdO1xuZXhwb3J0IHR5cGUgVXNlckluT3JnTWVtYmVyc2hpcCA9IHNjaGVtYXNbXCJVc2VySW5PcmdNZW1iZXJzaGlwXCJdO1xuZXhwb3J0IHR5cGUgQ29uZmlndXJlZE1mYSA9IHNjaGVtYXNbXCJDb25maWd1cmVkTWZhXCJdO1xuZXhwb3J0IHR5cGUgUmF0Y2hldENvbmZpZyA9IHNjaGVtYXNbXCJSYXRjaGV0Q29uZmlnXCJdO1xuZXhwb3J0IHR5cGUgSWRlbnRpdHlQcm9vZiA9IHNjaGVtYXNbXCJJZGVudGl0eVByb29mXCJdO1xuZXhwb3J0IHR5cGUgQWRkSWRlbnRpdHlSZXF1ZXN0ID0gc2NoZW1hc1tcIkFkZElkZW50aXR5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIExpc3RJZGVudGl0eVJlc3BvbnNlID0gc2NoZW1hc1tcIkxpc3RJZGVudGl0aWVzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBUb3RwSW5mbyA9IHNjaGVtYXNbXCJUb3RwSW5mb1wiXTtcblxuZXhwb3J0IHR5cGUgT2lkY0F1dGhSZXNwb25zZSA9IHNjaGVtYXNbXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBcGlBZGRGaWRvQ2hhbGxlbmdlID0gc2NoZW1hc1tcIkZpZG9DcmVhdGVDaGFsbGVuZ2VSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEFwaU1mYUZpZG9DaGFsbGVuZ2UgPSBzY2hlbWFzW1wiRmlkb0Fzc2VydENoYWxsZW5nZVwiXTtcblxuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zXCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzXCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgPSBzY2hlbWFzW1wiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcIl07XG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgPSBzY2hlbWFzW1wiQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgPSBzY2hlbWFzW1wiUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHlcIl07XG5leHBvcnQgdHlwZSBQdWJsaWNLZXlDcmVkZW50aWFsID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxcIl07XG5cbmV4cG9ydCB0eXBlIE9yZ0luZm8gPSBzY2hlbWFzW1wiT3JnSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY09yZ0luZm8gPSBzY2hlbWFzW1wiUHVibGljT3JnSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVzZXJJbk9yZ0luZm8gPSBzY2hlbWFzW1wiVXNlckluT3JnSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU9yZ1JlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlT3JnUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU9yZ1Jlc3BvbnNlID0gc2NoZW1hc1tcIlVwZGF0ZU9yZ1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXBkYXRlVXNlck1lbWJlcnNoaXBSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZVVzZXJNZW1iZXJzaGlwUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbkVuZHBvaW50Q29uZmlndXJhdGlvbiA9IHNjaGVtYXNbXCJOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb25cIl07XG5leHBvcnQgdHlwZSBPcmdFdmVudHMgPSBzY2hlbWFzW1wiT3JnRXZlbnREaXNjcmltaW5hbnRzXCJdO1xuZXhwb3J0IHR5cGUgQmlsbGluZ0V2ZW50ID0gc2NoZW1hc1tcIkJpbGxpbmdFdmVudFwiXTtcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbktpbmQgPSBzY2hlbWFzW1wiT3BlcmF0aW9uS2luZFwiXTtcblxuZXhwb3J0IHR5cGUgT3JnRGF0YSA9IHNjaGVtYXNbXCJPcmdEYXRhXCJdO1xuZXhwb3J0IHR5cGUgVXNlck9yZ3NSZXNwb25zZSA9IHNjaGVtYXNbXCJVc2VyT3Jnc1Jlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBPaWRjSWRlbnRpdHkgPSBzY2hlbWFzW1wiT2lkY0lkZW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgTWVtYmVyUm9sZSA9IHNjaGVtYXNbXCJNZW1iZXJSb2xlXCJdO1xuXG5leHBvcnQgdHlwZSBTY2hlbWFLZXlUeXBlID0gc2NoZW1hc1tcIktleVR5cGVcIl07XG5cbmV4cG9ydCB0eXBlIExpc3RLZXlzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdEtleXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUtleVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlS2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleVByb3BlcnRpZXMgPSBzY2hlbWFzW1wiQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllc1wiXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUtleVJlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlS2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleUluZm8gPSBzY2hlbWFzW1wiS2V5SW5mb1wiXTtcbmV4cG9ydCB0eXBlIEtleUluUm9sZUluZm8gPSBzY2hlbWFzW1wiS2V5SW5Sb2xlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIEdldFVzZXJzSW5PcmdSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRHZXRVc2Vyc0luT3JnUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBHZXRVc2VyQnlFbWFpbFJlc3BvbnNlID0gc2NoZW1hc1tcIkdldFVzZXJCeUVtYWlsUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBHZXRVc2VyQnlPaWRjUmVzcG9uc2UgPSBzY2hlbWFzW1wiR2V0VXNlckJ5T2lkY1Jlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBVc2VySW5Sb2xlSW5mbyA9IHNjaGVtYXNbXCJVc2VySW5Sb2xlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIEtleVR5cGVBcGkgPSBzY2hlbWFzW1wiS2V5VHlwZVwiXTtcblxuZXhwb3J0IHR5cGUgTGlzdEtleVJvbGVzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdEtleVJvbGVzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBMaXN0Um9sZXNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0Um9sZXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIExpc3RSb2xlS2V5c1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RSb2xlS2V5c1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RSb2xlVXNlcnNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZVJvbGVSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZVJvbGVSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgS2V5V2l0aFBvbGljaWVzSW5mbyA9IHNjaGVtYXNbXCJLZXlJblJvbGVJbmZvXCJdO1xuZXhwb3J0IHR5cGUgUm9sZUluZm8gPSBzY2hlbWFzW1wiUm9sZUluZm9cIl07XG5leHBvcnQgdHlwZSBSb2xlQWN0aW9uID0gc2NoZW1hc1tcIlJvbGVBY3Rpb25cIl07XG5leHBvcnQgdHlwZSBSZXN0cmljdGVkQWN0aW9uc01hcCA9IFBhcnRpYWw8UmVjb3JkPFJvbGVBY3Rpb24sIE1lbWJlclJvbGVbXT4+O1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uSW5mbyA9IHNjaGVtYXNbXCJTZXNzaW9uSW5mb1wiXTtcbmV4cG9ydCB0eXBlIENsaWVudFNlc3Npb25JbmZvID0gc2NoZW1hc1tcIkNsaWVudFNlc3Npb25JbmZvXCJdO1xuZXhwb3J0IHR5cGUgTmV3U2Vzc2lvblJlc3BvbnNlID0gc2NoZW1hc1tcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFNlc3Npb25zUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkU2Vzc2lvbnNSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgRWRpdFBvbGljeSA9IHNjaGVtYXNbXCJFZGl0UG9saWN5XCJdO1xuXG5leHBvcnQgdHlwZSBDb250YWN0SW5mbyA9IHNjaGVtYXNbXCJDb250YWN0SW5mb1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQWRkcmVzc01hcCA9IHNjaGVtYXNbXCJBZGRyZXNzTWFwXCJdO1xuZXhwb3J0IHR5cGUgQnRjQ2hhaW4gPSBzY2hlbWFzW1wiQnRjQ2hhaW5cIl07XG5leHBvcnQgdHlwZSBTdWlDaGFpbiA9IHNjaGVtYXNbXCJTdWlDaGFpblwiXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUNvbnRhY3RSZXF1ZXN0ID0gc2NoZW1hc1tcIkNyZWF0ZUNvbnRhY3RSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ29udGFjdFJlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlQ29udGFjdFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBMaXN0Q29udGFjdHNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0Q29udGFjdHNSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlU2lnbmVyU2Vzc2lvblJlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlVG9rZW5SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgUmVmcmVzaFNpZ25lclNlc3Npb25SZXF1ZXN0ID0gc2NoZW1hc1tcIkF1dGhEYXRhXCJdO1xuXG5leHBvcnQgdHlwZSBFdm1TaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFdGgxU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFdm1TaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiRXRoMVNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVpcDE5MVNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkVpcDE5MVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRWlwNzEyU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiRWlwNzEyU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFaXAxOTFPcjcxMlNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFdGgyU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiRXRoMlNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXRoMlNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJFdGgyU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlN0YWtlUmVxdWVzdCA9IHNjaGVtYXNbXCJTdGFrZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFdGgyU3Rha2VSZXNwb25zZSA9IHNjaGVtYXNbXCJTdGFrZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlVuc3Rha2VSZXF1ZXN0ID0gc2NoZW1hc1tcIlVuc3Rha2VSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXRoMlVuc3Rha2VSZXNwb25zZSA9IHNjaGVtYXNbXCJVbnN0YWtlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCbG9iU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQmxvYlNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQmxvYlNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCdGNTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJCdGNTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJ0Y1NpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCdGNNZXNzYWdlU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQnRjTWVzc2FnZVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQnRjTWVzc2FnZVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJCdGNNZXNzYWdlU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgUHNidFNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIlBzYnRTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFBzYnRTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiUHNidFNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFRhcHJvb3RTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJUYXByb290U2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBUYXByb290U2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVvdHNTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFb3RzU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFb3RzU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVvdHNDcmVhdGVOb25jZVJlcXVlc3QgPSBzY2hlbWFzW1wiRW90c0NyZWF0ZU5vbmNlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVvdHNDcmVhdGVOb25jZVJlc3BvbnNlID0gc2NoZW1hc1tcIkVvdHNDcmVhdGVOb25jZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQmFieWxvblN0YWtpbmdSZXF1ZXN0ID0gc2NoZW1hc1tcIkJhYnlsb25TdGFraW5nUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nUmVzcG9uc2UgPSBzY2hlbWFzW1wiQmFieWxvblN0YWtpbmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nRWFybHlVbmJvbmQgPSBzY2hlbWFzW1wiQmFieWxvblN0YWtpbmdFYXJseVVuYm9uZFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nV2l0aGRyYXdhbCA9IHNjaGVtYXNbXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxcIl07XG5leHBvcnQgdHlwZSBCYWJ5bG9uUmVnaXN0cmF0aW9uUmVxdWVzdCA9IHNjaGVtYXNbXCJCYWJ5bG9uUmVnaXN0cmF0aW9uUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25SZWdpc3RyYXRpb25SZXNwb25zZSA9IHNjaGVtYXNbXCJCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBTb2xhbmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJTb2xhbmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFNvbGFuYVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBdmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJBdmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF2YVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBdmFTZXJpYWxpemVkVHhTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJBdmFTZXJpYWxpemVkVHhTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFN1aVNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIlN1aVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgU3VpU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBQZW5kaW5nTWVzc2FnZUluZm8gPSBzY2hlbWFzW1wiUGVuZGluZ01lc3NhZ2VJbmZvXCJdO1xuZXhwb3J0IHR5cGUgRXZtVHJhbnNhY3Rpb24gPSBzY2hlbWFzW1wiVHJhbnNhY3Rpb25cIl07XG5leHBvcnQgdHlwZSBUeXBlZFRyYW5zYWN0aW9uID0gc2NoZW1hc1tcIlR5cGVkVHJhbnNhY3Rpb25cIl07XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkFuZFN0YXR1cyA9IHNjaGVtYXNbXCJUcmFuc2FjdGlvbkFuZFN0YXR1c1wiXTtcbmV4cG9ydCB0eXBlIFNpZ25lZE1lc3NhZ2UgPSBzY2hlbWFzW1wiU2lnbmVkTWVzc2FnZVwiXTtcbmV4cG9ydCB0eXBlIE1taU1ldGFkYXRhID0gc2NoZW1hc1tcIk1taU1ldGFkYXRhXCJdO1xuZXhwb3J0IHR5cGUgTW1pU3RhdHVzID0gc2NoZW1hc1tcIk1taVN0YXR1c1wiXTtcbmV4cG9ydCB0eXBlIEVpcDE5MU1lc3NhZ2UgPSBOb25OdWxsYWJsZTxQZW5kaW5nTWVzc2FnZUluZm9bXCJtZXNzYWdlX2VpcDE5MVwiXT47XG5leHBvcnQgdHlwZSBFaXA3MTJNZXNzYWdlID0gTm9uTnVsbGFibGU8UGVuZGluZ01lc3NhZ2VJbmZvW1wibWVzc2FnZV9laXA3MTJcIl0+O1xuXG5leHBvcnQgdHlwZSBKcnBjUmVzcG9uc2UgPSBzY2hlbWFzW1wiSnJwY1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgTW1pSnJwY01ldGhvZCA9XG4gIHwgXCJjdXN0b2RpYW5fbGlzdEFjY291bnRzXCJcbiAgfCBcImN1c3RvZGlhbl9saXN0QWNjb3VudHNTaWduZWRcIlxuICB8IFwiY3VzdG9kaWFuX2xpc3RBY2NvdW50Q2hhaW5JZHNcIlxuICB8IFwiY3VzdG9kaWFuX2NyZWF0ZVRyYW5zYWN0aW9uXCJcbiAgfCBcImN1c3RvZGlhbl9zaWduXCJcbiAgfCBcImN1c3RvZGlhbl9zaWduVHlwZWREYXRhXCJcbiAgfCBcImN1c3RvZGlhbl9nZXRTaWduZWRNZXNzYWdlQnlJZFwiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0VHJhbnNhY3Rpb25CeUlkXCJcbiAgfCBcImN1c3RvZGlhbl9nZXRDdXN0b21lclByb29mXCJcbiAgfCBcImN1c3RvZGlhbl9yZXBsYWNlVHJhbnNhY3Rpb25cIlxuICB8IFwiY3VzdG9kaWFuX2dldFRyYW5zYWN0aW9uTGlua1wiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0U2lnbmVkTWVzc2FnZUxpbmtcIjtcblxuZXhwb3J0IHR5cGUgQWNjZXB0ZWRSZXNwb25zZSA9IHNjaGVtYXNbXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXJyb3JSZXNwb25zZSA9IHNjaGVtYXNbXCJFcnJvclJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQnRjU2lnbmF0dXJlS2luZCA9IHNjaGVtYXNbXCJCdGNTaWduYXR1cmVLaW5kXCJdO1xuZXhwb3J0IHR5cGUgQ3NFcnJDb2RlID0gc2NoZW1hc1tcIlNpZ25lckVycm9yQ29kZVwiXTtcblxuZXhwb3J0IHR5cGUgTWZhVHlwZSA9XG4gIHwgXCJDdWJlU2lnbmVyXCJcbiAgfCBcIkZpZG9cIlxuICB8IGBGaWRvS2V5IyR7c3RyaW5nfWBcbiAgfCBcIlRvdHBcIlxuICB8IFwiRW1haWxPdHBcIlxuICB8IGBFbWFpbE90cCMke251bWJlcn1gO1xuZXhwb3J0IHR5cGUgTWZhVm90ZSA9IHNjaGVtYXNbXCJNZmFWb3RlXCJdO1xuZXhwb3J0IHR5cGUgTWZhUmVxdWVzdEluZm8gPSBzY2hlbWFzW1wiTWZhUmVxdWVzdEluZm9cIl07XG5leHBvcnQgdHlwZSBNZmFQcm90ZWN0ZWRBY3Rpb24gPSBzY2hlbWFzW1wiTWZhUHJvdGVjdGVkQWN0aW9uXCJdO1xuZXhwb3J0IHR5cGUgTWZhUmVxdWlyZWQgPSBzY2hlbWFzW1wiQWNjZXB0ZWRWYWx1ZVwiXVtcIk1mYVJlcXVpcmVkXCJdO1xuZXhwb3J0IHR5cGUgRXZtVHhDbXAgPSBzY2hlbWFzW1wiRXZtVHhDbXBcIl07XG5leHBvcnQgdHlwZSBTb2xhbmFUeENtcCA9IHNjaGVtYXNbXCJTb2xhbmFUeENtcFwiXTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlT3JnUmVxdWVzdCA9IHNjaGVtYXNbXCJDcmVhdGVPcmdSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgT3JnTWV0cmljTmFtZSA9IHNjaGVtYXNbXCJNZXRyaWNOYW1lXCJdO1xuZXhwb3J0IHR5cGUgUXVlcnlNZXRyaWNzUmVxdWVzdCA9IHNjaGVtYXNbXCJRdWVyeU1ldHJpY3NSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgUXVlcnlNZXRyaWNzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUXVlcnlNZXRyaWNzUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIERpZmZpZUhlbGxtYW5SZXF1ZXN0ID0gc2NoZW1hc1tcIkRpZmZpZUhlbGxtYW5SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRGlmZmllSGVsbG1hblJlc3BvbnNlID0gc2NoZW1hc1tcIkRpZmZpZUhlbGxtYW5SZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgVXNlckV4cG9ydEluaXRSZXF1ZXN0ID0gc2NoZW1hc1tcIlVzZXJFeHBvcnRJbml0UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRJbml0UmVzcG9uc2UgPSBzY2hlbWFzW1wiVXNlckV4cG9ydEluaXRSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRDb21wbGV0ZVJlcXVlc3QgPSBzY2hlbWFzW1wiVXNlckV4cG9ydENvbXBsZXRlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRDb21wbGV0ZVJlc3BvbnNlID0gc2NoZW1hc1tcIlVzZXJFeHBvcnRDb21wbGV0ZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydExpc3RSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydEtleU1hdGVyaWFsID0gc2NoZW1hc1tcIkpzb25LZXlQYWNrYWdlXCJdO1xuXG5leHBvcnQgdHlwZSBIaXN0b3JpY2FsVHggPSBzY2hlbWFzW1wiSGlzdG9yaWNhbFR4XCJdO1xuZXhwb3J0IHR5cGUgTGlzdEhpc3RvcmljYWxUeFJlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RIaXN0b3JpY2FsVHhSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgTG9naW5SZXF1ZXN0ID0gc2NoZW1hc1tcIkxvZ2luUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFBhc3NrZXlBc3NlcnRDaGFsbGVuZ2UgPSBzY2hlbWFzW1wiUGFzc2tleUFzc2VydENoYWxsZW5nZVwiXTtcbmV4cG9ydCB0eXBlIFBhc3NrZXlBc3NlcnRBbnN3ZXIgPSBzY2hlbWFzW1wiUGFzc2tleUFzc2VydEFuc3dlclwiXTtcbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0aW9uUmVxdWVzdCA9IHNjaGVtYXNbXCJBdXRoZW50aWNhdGlvblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdGlvblJlc3BvbnNlID0gc2NoZW1hc1tcIkF1dGhlbnRpY2F0aW9uUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBQYXNzd29yZFJlc2V0UmVxdWVzdCA9IHNjaGVtYXNbXCJQYXNzd29yZFJlc2V0UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFBhc3N3b3JkUmVzZXRDb25maXJtUmVxdWVzdCA9IHNjaGVtYXNbXCJQYXNzd29yZFJlc2V0Q29uZmlybVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFbWFpbE90cFJlc3BvbnNlID0gc2NoZW1hc1tcIkVtYWlsT3RwUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFbWFpbFRlbXBsYXRlUHVycG9zZSA9IHNjaGVtYXNbXCJQdXJwb3NlXCJdO1xuXG5leHBvcnQgdHlwZSBFbXB0eSA9IHNjaGVtYXNbXCJFbXB0eUltcGxcIl07XG5cbmV4cG9ydCB0eXBlIFNjb3BlID0gc2NoZW1hc1tcIlNjb3BlXCJdO1xuXG4vKiogT3B0aW9ucyBmb3IgYSBuZXcgT0lEQyB1c2VyICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9pZGNVc2VyT3B0aW9ucyB7XG4gIC8qKiBPcHRpb25hbCBuYW1lICovXG4gIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhlIHJvbGUgb2YgYW4gT0lEQyB1c2VyLCBkZWZhdWx0IGlzIFwiQWxpZW5cIiAqL1xuICBtZW1iZXJSb2xlPzogTWVtYmVyUm9sZTtcbiAgLyoqIE9wdGlvbmFsIE1GQSBwb2xpY3kgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHVzZXIgYWNjb3VudCAqL1xuICBtZmFQb2xpY3k/OiBNZmFQb2xpY3k7XG59XG5cbmV4cG9ydCB0eXBlIEdldFJvbGVLZXlPcHRpb25zID0gb3BlcmF0aW9uc1tcImdldFJvbGVLZXlcIl1bXCJwYXJhbWV0ZXJzXCJdW1wicXVlcnlcIl07XG5cbi8qKiBBdmEgUC0gb3IgWC1jaGFpbiB0cmFuc2FjdGlvbiAqL1xuZXhwb3J0IHR5cGUgQXZhVHggPSB7IFA6IEF2YVBDaGFpblR4IH0gfCB7IFg6IEF2YVhDaGFpblR4IH07XG5cbi8qKiBBdmEgUC1jaGFpbiB0cmFuc2FjdGlvbiAqL1xuZXhwb3J0IHR5cGUgQXZhUENoYWluVHggPVxuICB8IHsgQWRkUGVybWlzc2lvbmxlc3NWYWxpZGF0b3I6IEpzb25NYXAgfVxuICB8IHsgQWRkU3VibmV0VmFsaWRhdG9yOiBKc29uTWFwIH1cbiAgfCB7IEFkZFZhbGlkYXRvcjogSnNvbk1hcCB9XG4gIHwgeyBDcmVhdGVDaGFpbjogSnNvbk1hcCB9XG4gIHwgeyBDcmVhdGVTdWJuZXQ6IEpzb25NYXAgfVxuICB8IHsgRXhwb3J0OiBKc29uTWFwIH1cbiAgfCB7IEltcG9ydDogSnNvbk1hcCB9O1xuXG4vKiogQXZhIFgtY2hhaW4gdHJhbnNhY3Rpb24gKi9cbmV4cG9ydCB0eXBlIEF2YVhDaGFpblR4ID0geyBCYXNlOiBKc29uTWFwIH0gfCB7IEV4cG9ydDogSnNvbk1hcCB9IHwgeyBJbXBvcnQ6IEpzb25NYXAgfTtcblxuLyoqIEF2YSBjaGFpbnMgKi9cbmV4cG9ydCB0eXBlIEF2YUNoYWluID0gXCJDXCIgfCBcIlhcIiB8IFwiUFwiO1xuXG4vKiogS2V5IGltcG9ydCAqL1xuZXhwb3J0IHR5cGUgQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2UgPSBzY2hlbWFzW1wiQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBJbXBvcnRLZXlSZXF1ZXN0ID0gc2NoZW1hc1tcIkltcG9ydEtleVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWwgPSBzY2hlbWFzW1wiSW1wb3J0S2V5UmVxdWVzdE1hdGVyaWFsXCJdO1xuXG5leHBvcnQgdHlwZSBJbnZpdGF0aW9uQWNjZXB0UmVxdWVzdCA9IHNjaGVtYXNbXCJJbnZpdGF0aW9uQWNjZXB0UmVxdWVzdFwiXTtcblxuZXhwb3J0IHR5cGUgS2V5VHlwZUFuZERlcml2YXRpb25QYXRoID0gc2NoZW1hc1tcIktleVR5cGVBbmREZXJpdmF0aW9uUGF0aFwiXTtcblxuZXhwb3J0IHR5cGUgUG9saWN5SW5mbyA9IHNjaGVtYXNbXCJQb2xpY3lJbmZvXCJdO1xuZXhwb3J0IHR5cGUgVXBkYXRlUG9saWN5UmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVQb2xpY3lSZXF1ZXN0XCJdICYge1xuICBydWxlcz86IEpzb25WYWx1ZVtdO1xufTtcbmV4cG9ydCB0eXBlIExpc3RQb2xpY2llc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RQb2xpY2llc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgUG9saWN5VHlwZSA9IHNjaGVtYXNbXCJQb2xpY3lUeXBlXCJdO1xuZXhwb3J0IHR5cGUgUG9saWN5QXR0YWNoZWRUb0lkID0gc2NoZW1hc1tcIlBvbGljeUF0dGFjaGVkVG9JZFwiXTtcblxuZXhwb3J0IHR5cGUgVXBsb2FkV2FzbVBvbGljeVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBsb2FkV2FzbVBvbGljeVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVcGxvYWRXYXNtUG9saWN5UmVzcG9uc2UgPSBzY2hlbWFzW1wiVXBsb2FkV2FzbVBvbGljeVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgSW52b2tlUG9saWN5UmVxdWVzdCA9IHNjaGVtYXNbXCJJbnZva2VQb2xpY3lSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgSW52b2tlUG9saWN5UmVzcG9uc2UgPSBzY2hlbWFzW1wiSW52b2tlUG9saWN5UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBXYXNtUG9saWN5UmVzcG9uc2UgPSBzY2hlbWFzW1wiV2FzbVBvbGljeVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgV2FzbVJ1bGUgPSBzY2hlbWFzW1wiV2FzbVJ1bGVcIl07XG5cbmV4cG9ydCB0eXBlIFBvbGljeUVuZ2luZUNvbmZpZ3VyYXRpb24gPSBzY2hlbWFzW1wiUG9saWN5RW5naW5lQ29uZmlndXJhdGlvblwiXTtcbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBjb21wb25lbnRzLCBvcGVyYXRpb25zIH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5pbXBvcnQgdHlwZSB7IEpzb25NYXAsIEpzb25WYWx1ZSB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IHR5cGUgc2NoZW1hcyA9IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdO1xuXG5leHBvcnQgdHlwZSBVc2VySW5mbyA9IHNjaGVtYXNbXCJVc2VySW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVzZXJJbk9yZ01lbWJlcnNoaXAgPSBzY2hlbWFzW1wiVXNlckluT3JnTWVtYmVyc2hpcFwiXTtcbmV4cG9ydCB0eXBlIENvbmZpZ3VyZWRNZmEgPSBzY2hlbWFzW1wiQ29uZmlndXJlZE1mYVwiXTtcbmV4cG9ydCB0eXBlIFJhdGNoZXRDb25maWcgPSBzY2hlbWFzW1wiUmF0Y2hldENvbmZpZ1wiXTtcbmV4cG9ydCB0eXBlIElkZW50aXR5UHJvb2YgPSBzY2hlbWFzW1wiSWRlbnRpdHlQcm9vZlwiXTtcbmV4cG9ydCB0eXBlIEFkZElkZW50aXR5UmVxdWVzdCA9IHNjaGVtYXNbXCJBZGRJZGVudGl0eVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBMaXN0SWRlbnRpdHlSZXNwb25zZSA9IHNjaGVtYXNbXCJMaXN0SWRlbnRpdGllc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVG90cEluZm8gPSBzY2hlbWFzW1wiVG90cEluZm9cIl07XG5cbmV4cG9ydCB0eXBlIE9pZGNBdXRoUmVzcG9uc2UgPSBzY2hlbWFzW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXBpQWRkRmlkb0NoYWxsZW5nZSA9IHNjaGVtYXNbXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBcGlNZmFGaWRvQ2hhbGxlbmdlID0gc2NoZW1hc1tcIkZpZG9Bc3NlcnRDaGFsbGVuZ2VcIl07XG5cbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgPSBzY2hlbWFzW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG5leHBvcnQgdHlwZSBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yXCJdO1xuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhID0gc2NoZW1hc1tcIkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYVwiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5ID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbCA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsXCJdO1xuXG5leHBvcnQgdHlwZSBPcmdJbmZvID0gc2NoZW1hc1tcIk9yZ0luZm9cIl07XG5leHBvcnQgdHlwZSBQdWJsaWNPcmdJbmZvID0gc2NoZW1hc1tcIlB1YmxpY09yZ0luZm9cIl07XG5leHBvcnQgdHlwZSBVc2VySW5PcmdJbmZvID0gc2NoZW1hc1tcIlVzZXJJbk9yZ0luZm9cIl07XG5leHBvcnQgdHlwZSBVcGRhdGVPcmdSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZU9yZ1JlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVPcmdSZXNwb25zZSA9IHNjaGVtYXNbXCJVcGRhdGVPcmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZVVzZXJNZW1iZXJzaGlwUmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVVc2VyTWVtYmVyc2hpcFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb24gPSBzY2hlbWFzW1wiTm90aWZpY2F0aW9uRW5kcG9pbnRDb25maWd1cmF0aW9uXCJdO1xuZXhwb3J0IHR5cGUgT3JnRXZlbnRzID0gc2NoZW1hc1tcIk9yZ0V2ZW50RGlzY3JpbWluYW50c1wiXTtcbmV4cG9ydCB0eXBlIEJpbGxpbmdFdmVudCA9IHNjaGVtYXNbXCJCaWxsaW5nRXZlbnRcIl07XG5leHBvcnQgdHlwZSBPcGVyYXRpb25LaW5kID0gc2NoZW1hc1tcIk9wZXJhdGlvbktpbmRcIl07XG5cbmV4cG9ydCB0eXBlIE9yZ0RhdGEgPSBzY2hlbWFzW1wiT3JnRGF0YVwiXTtcbmV4cG9ydCB0eXBlIFVzZXJPcmdzUmVzcG9uc2UgPSBzY2hlbWFzW1wiVXNlck9yZ3NSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgT2lkY0lkZW50aXR5ID0gc2NoZW1hc1tcIk9pZGNJZGVudGl0eVwiXTtcbmV4cG9ydCB0eXBlIE1lbWJlclJvbGUgPSBzY2hlbWFzW1wiTWVtYmVyUm9sZVwiXTtcblxuZXhwb3J0IHR5cGUgU2NoZW1hS2V5VHlwZSA9IHNjaGVtYXNbXCJLZXlUeXBlXCJdO1xuXG5leHBvcnQgdHlwZSBMaXN0S2V5c1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RLZXlzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVLZXlSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZUtleVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBLZXlQcm9wZXJ0aWVzID0gc2NoZW1hc1tcIkNyZWF0ZUFuZFVwZGF0ZUtleVByb3BlcnRpZXNcIl07XG5leHBvcnQgdHlwZSBDcmVhdGVLZXlSZXF1ZXN0ID0gc2NoZW1hc1tcIkNyZWF0ZUtleVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBLZXlJbmZvID0gc2NoZW1hc1tcIktleUluZm9cIl07XG5leHBvcnQgdHlwZSBLZXlJblJvbGVJbmZvID0gc2NoZW1hc1tcIktleUluUm9sZUluZm9cIl07XG5leHBvcnQgdHlwZSBHZXRVc2Vyc0luT3JnUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgR2V0VXNlckJ5RW1haWxSZXNwb25zZSA9IHNjaGVtYXNbXCJHZXRVc2VyQnlFbWFpbFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgR2V0VXNlckJ5T2lkY1Jlc3BvbnNlID0gc2NoZW1hc1tcIkdldFVzZXJCeU9pZGNSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgVXNlckluUm9sZUluZm8gPSBzY2hlbWFzW1wiVXNlckluUm9sZUluZm9cIl07XG5leHBvcnQgdHlwZSBLZXlUeXBlQXBpID0gc2NoZW1hc1tcIktleVR5cGVcIl07XG5cbmV4cG9ydCB0eXBlIExpc3RLZXlSb2xlc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RLZXlSb2xlc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgTGlzdFJvbGVzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFJvbGVzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBMaXN0Um9sZUtleXNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0Um9sZUtleXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIExpc3RSb2xlVXNlcnNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0Um9sZVVzZXJzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVSb2xlUmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVSb2xlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleVdpdGhQb2xpY2llc0luZm8gPSBzY2hlbWFzW1wiS2V5SW5Sb2xlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFJvbGVJbmZvID0gc2NoZW1hc1tcIlJvbGVJbmZvXCJdO1xuZXhwb3J0IHR5cGUgUm9sZUFjdGlvbiA9IHNjaGVtYXNbXCJSb2xlQWN0aW9uXCJdO1xuZXhwb3J0IHR5cGUgUmVzdHJpY3RlZEFjdGlvbnNNYXAgPSBQYXJ0aWFsPFJlY29yZDxSb2xlQWN0aW9uLCBNZW1iZXJSb2xlW10+PjtcblxuZXhwb3J0IHR5cGUgU2Vzc2lvbkluZm8gPSBzY2hlbWFzW1wiU2Vzc2lvbkluZm9cIl07XG5leHBvcnQgdHlwZSBDbGllbnRTZXNzaW9uSW5mbyA9IHNjaGVtYXNbXCJDbGllbnRTZXNzaW9uSW5mb1wiXTtcbmV4cG9ydCB0eXBlIE5ld1Nlc3Npb25SZXNwb25zZSA9IHNjaGVtYXNbXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBTZXNzaW9uc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZFNlc3Npb25zUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIEVkaXRQb2xpY3kgPSBzY2hlbWFzW1wiRWRpdFBvbGljeVwiXTtcblxuZXhwb3J0IHR5cGUgQ29udGFjdEluZm8gPSBzY2hlbWFzW1wiQ29udGFjdEluZm9SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEFkZHJlc3NNYXAgPSBzY2hlbWFzW1wiQWRkcmVzc01hcFwiXTtcbmV4cG9ydCB0eXBlIEJ0Y0NoYWluID0gc2NoZW1hc1tcIkJ0Y0NoYWluXCJdO1xuZXhwb3J0IHR5cGUgU3VpQ2hhaW4gPSBzY2hlbWFzW1wiU3VpQ2hhaW5cIl07XG5leHBvcnQgdHlwZSBDcmVhdGVDb250YWN0UmVxdWVzdCA9IHNjaGVtYXNbXCJDcmVhdGVDb250YWN0UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUNvbnRhY3RSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZUNvbnRhY3RSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgTGlzdENvbnRhY3RzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdENvbnRhY3RzUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVNpZ25lclNlc3Npb25SZXF1ZXN0ID0gc2NoZW1hc1tcIkNyZWF0ZVRva2VuUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFJlZnJlc2hTaWduZXJTZXNzaW9uUmVxdWVzdCA9IHNjaGVtYXNbXCJBdXRoRGF0YVwiXTtcblxuZXhwb3J0IHR5cGUgRXZtU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiRXRoMVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXZtU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIkV0aDFTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFaXAxOTFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFaXAxOTFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVpcDcxMlNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkVpcDcxMlNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRWlwMTkxT3I3MTJTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkV0aDJTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEV0aDJTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiRXRoMlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEV0aDJTdGFrZVJlcXVlc3QgPSBzY2hlbWFzW1wiU3Rha2VSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXRoMlN0YWtlUmVzcG9uc2UgPSBzY2hlbWFzW1wiU3Rha2VSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEV0aDJVbnN0YWtlUmVxdWVzdCA9IHNjaGVtYXNbXCJVbnN0YWtlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEV0aDJVbnN0YWtlUmVzcG9uc2UgPSBzY2hlbWFzW1wiVW5zdGFrZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQmxvYlNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkJsb2JTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJsb2JTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQnRjU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQnRjU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBCdGNTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQnRjTWVzc2FnZVNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkJ0Y01lc3NhZ2VTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJ0Y01lc3NhZ2VTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiQnRjTWVzc2FnZVNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFBzYnRTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJQc2J0U2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBQc2J0U2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlBzYnRTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBUYXByb290U2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiVGFwcm9vdFNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgVGFwcm9vdFNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFb3RzU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiRW90c1NpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRW90c1NpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFb3RzQ3JlYXRlTm9uY2VSZXF1ZXN0ID0gc2NoZW1hc1tcIkVvdHNDcmVhdGVOb25jZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFb3RzQ3JlYXRlTm9uY2VSZXNwb25zZSA9IHNjaGVtYXNbXCJFb3RzQ3JlYXRlTm9uY2VSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nUmVxdWVzdCA9IHNjaGVtYXNbXCJCYWJ5bG9uU3Rha2luZ1JlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBCYWJ5bG9uU3Rha2luZ1Jlc3BvbnNlID0gc2NoZW1hc1tcIkJhYnlsb25TdGFraW5nUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCYWJ5bG9uU3Rha2luZ0Vhcmx5VW5ib25kID0gc2NoZW1hc1tcIkJhYnlsb25TdGFraW5nRWFybHlVbmJvbmRcIl07XG5leHBvcnQgdHlwZSBCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWwgPSBzY2hlbWFzW1wiQmFieWxvblN0YWtpbmdXaXRoZHJhd2FsXCJdO1xuZXhwb3J0IHR5cGUgQmFieWxvblJlZ2lzdHJhdGlvblJlcXVlc3QgPSBzY2hlbWFzW1wiQmFieWxvblJlZ2lzdHJhdGlvblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2UgPSBzY2hlbWFzW1wiQmFieWxvblJlZ2lzdHJhdGlvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgU29sYW5hU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiU29sYW5hU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBTb2xhbmFTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXZhU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQXZhU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBBdmFTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXZhU2VyaWFsaXplZFR4U2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQXZhU2VyaWFsaXplZFR4U2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBTdWlTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJTdWlTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFN1aVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIFBlbmRpbmdNZXNzYWdlU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlBlbmRpbmdNZXNzYWdlU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgUGVuZGluZ01lc3NhZ2VJbmZvID0gc2NoZW1hc1tcIlBlbmRpbmdNZXNzYWdlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIEV2bVRyYW5zYWN0aW9uID0gc2NoZW1hc1tcIlRyYW5zYWN0aW9uXCJdO1xuZXhwb3J0IHR5cGUgVHlwZWRUcmFuc2FjdGlvbiA9IHNjaGVtYXNbXCJUeXBlZFRyYW5zYWN0aW9uXCJdO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25BbmRTdGF0dXMgPSBzY2hlbWFzW1wiVHJhbnNhY3Rpb25BbmRTdGF0dXNcIl07XG5leHBvcnQgdHlwZSBTaWduZWRNZXNzYWdlID0gc2NoZW1hc1tcIlNpZ25lZE1lc3NhZ2VcIl07XG5leHBvcnQgdHlwZSBNbWlNZXRhZGF0YSA9IHNjaGVtYXNbXCJNbWlNZXRhZGF0YVwiXTtcbmV4cG9ydCB0eXBlIE1taVN0YXR1cyA9IHNjaGVtYXNbXCJNbWlTdGF0dXNcIl07XG5leHBvcnQgdHlwZSBFaXAxOTFNZXNzYWdlID0gTm9uTnVsbGFibGU8UGVuZGluZ01lc3NhZ2VJbmZvW1wibWVzc2FnZV9laXAxOTFcIl0+O1xuZXhwb3J0IHR5cGUgRWlwNzEyTWVzc2FnZSA9IE5vbk51bGxhYmxlPFBlbmRpbmdNZXNzYWdlSW5mb1tcIm1lc3NhZ2VfZWlwNzEyXCJdPjtcblxuZXhwb3J0IHR5cGUgSnJwY1Jlc3BvbnNlID0gc2NoZW1hc1tcIkpycGNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIE1taUpycGNNZXRob2QgPVxuICB8IFwiY3VzdG9kaWFuX2xpc3RBY2NvdW50c1wiXG4gIHwgXCJjdXN0b2RpYW5fbGlzdEFjY291bnRzU2lnbmVkXCJcbiAgfCBcImN1c3RvZGlhbl9saXN0QWNjb3VudENoYWluSWRzXCJcbiAgfCBcImN1c3RvZGlhbl9jcmVhdGVUcmFuc2FjdGlvblwiXG4gIHwgXCJjdXN0b2RpYW5fc2lnblwiXG4gIHwgXCJjdXN0b2RpYW5fc2lnblR5cGVkRGF0YVwiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0U2lnbmVkTWVzc2FnZUJ5SWRcIlxuICB8IFwiY3VzdG9kaWFuX2dldFRyYW5zYWN0aW9uQnlJZFwiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0Q3VzdG9tZXJQcm9vZlwiXG4gIHwgXCJjdXN0b2RpYW5fcmVwbGFjZVRyYW5zYWN0aW9uXCJcbiAgfCBcImN1c3RvZGlhbl9nZXRUcmFuc2FjdGlvbkxpbmtcIlxuICB8IFwiY3VzdG9kaWFuX2dldFNpZ25lZE1lc3NhZ2VMaW5rXCI7XG5cbmV4cG9ydCB0eXBlIEFjY2VwdGVkUmVzcG9uc2UgPSBzY2hlbWFzW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVycm9yUmVzcG9uc2UgPSBzY2hlbWFzW1wiRXJyb3JSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEJ0Y1NpZ25hdHVyZUtpbmQgPSBzY2hlbWFzW1wiQnRjU2lnbmF0dXJlS2luZFwiXTtcbmV4cG9ydCB0eXBlIENzRXJyQ29kZSA9IHNjaGVtYXNbXCJTaWduZXJFcnJvckNvZGVcIl07XG5cbmV4cG9ydCB0eXBlIE1mYVR5cGUgPVxuICB8IFwiQ3ViZVNpZ25lclwiXG4gIHwgXCJGaWRvXCJcbiAgfCBgRmlkb0tleSMke3N0cmluZ31gXG4gIHwgXCJUb3RwXCJcbiAgfCBcIkVtYWlsT3RwXCJcbiAgfCBgRW1haWxPdHAjJHtudW1iZXJ9YDtcbmV4cG9ydCB0eXBlIE1mYVBvbGljeSA9IE9taXQ8c2NoZW1hc1tcIk1mYVBvbGljeVwiXSwgXCJhbGxvd2VkX21mYV90eXBlc1wiPiAmIHtcbiAgLyoqIEFsbG93ZWQgYXBwcm92YWwgdHlwZXMuIFdoZW4gb21pdHRlZCwgZGVmYXVsdHMgdG8gYW55LiAqL1xuICBhbGxvd2VkX21mYV90eXBlcz86IE1mYVR5cGVbXSB8IG51bGw7IC8vIG92ZXJyaWRpbmcgdG8gdXNlIGEgc3Ryb25nZXIgYE1mYVR5cGVgIHR5cGVcbn07XG5leHBvcnQgdHlwZSBNZmFWb3RlID0gc2NoZW1hc1tcIk1mYVZvdGVcIl07XG5leHBvcnQgdHlwZSBNZmFSZXF1ZXN0SW5mbyA9IHNjaGVtYXNbXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbmV4cG9ydCB0eXBlIE1mYVByb3RlY3RlZEFjdGlvbiA9IHNjaGVtYXNbXCJNZmFQcm90ZWN0ZWRBY3Rpb25cIl07XG5leHBvcnQgdHlwZSBNZmFSZXF1aXJlZCA9IHNjaGVtYXNbXCJBY2NlcHRlZFZhbHVlXCJdW1wiTWZhUmVxdWlyZWRcIl07XG5leHBvcnQgdHlwZSBFdm1UeENtcCA9IHNjaGVtYXNbXCJFdm1UeENtcFwiXTtcbmV4cG9ydCB0eXBlIFNvbGFuYVR4Q21wID0gc2NoZW1hc1tcIlNvbGFuYVR4Q21wXCJdO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVPcmdSZXF1ZXN0ID0gc2NoZW1hc1tcIkNyZWF0ZU9yZ1JlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBPcmdNZXRyaWNOYW1lID0gc2NoZW1hc1tcIk1ldHJpY05hbWVcIl07XG5leHBvcnQgdHlwZSBRdWVyeU1ldHJpY3NSZXF1ZXN0ID0gc2NoZW1hc1tcIlF1ZXJ5TWV0cmljc1JlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBRdWVyeU1ldHJpY3NSZXNwb25zZSA9IHNjaGVtYXNbXCJRdWVyeU1ldHJpY3NSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgRGlmZmllSGVsbG1hblJlcXVlc3QgPSBzY2hlbWFzW1wiRGlmZmllSGVsbG1hblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBEaWZmaWVIZWxsbWFuUmVzcG9uc2UgPSBzY2hlbWFzW1wiRGlmZmllSGVsbG1hblJlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0SW5pdFJlcXVlc3QgPSBzY2hlbWFzW1wiVXNlckV4cG9ydEluaXRSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydEluaXRSZXNwb25zZSA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0SW5pdFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydENvbXBsZXRlUmVxdWVzdCA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0Q29tcGxldGVSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2UgPSBzY2hlbWFzW1wiVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0TGlzdFJlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZFVzZXJFeHBvcnRMaXN0UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0S2V5TWF0ZXJpYWwgPSBzY2hlbWFzW1wiSnNvbktleVBhY2thZ2VcIl07XG5cbmV4cG9ydCB0eXBlIEhpc3RvcmljYWxUeCA9IHNjaGVtYXNbXCJIaXN0b3JpY2FsVHhcIl07XG5leHBvcnQgdHlwZSBMaXN0SGlzdG9yaWNhbFR4UmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdEhpc3RvcmljYWxUeFJlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBMb2dpblJlcXVlc3QgPSBzY2hlbWFzW1wiTG9naW5SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgUGFzc2tleUFzc2VydENoYWxsZW5nZSA9IHNjaGVtYXNbXCJQYXNza2V5QXNzZXJ0Q2hhbGxlbmdlXCJdO1xuZXhwb3J0IHR5cGUgUGFzc2tleUFzc2VydEFuc3dlciA9IHNjaGVtYXNbXCJQYXNza2V5QXNzZXJ0QW5zd2VyXCJdO1xuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25SZXF1ZXN0ID0gc2NoZW1hc1tcIkF1dGhlbnRpY2F0aW9uUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0aW9uUmVzcG9uc2UgPSBzY2hlbWFzW1wiQXV0aGVudGljYXRpb25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFBhc3N3b3JkUmVzZXRSZXF1ZXN0ID0gc2NoZW1hc1tcIlBhc3N3b3JkUmVzZXRSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgUGFzc3dvcmRSZXNldENvbmZpcm1SZXF1ZXN0ID0gc2NoZW1hc1tcIlBhc3N3b3JkUmVzZXRDb25maXJtUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVtYWlsT3RwUmVzcG9uc2UgPSBzY2hlbWFzW1wiRW1haWxPdHBSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVtYWlsVGVtcGxhdGVQdXJwb3NlID0gc2NoZW1hc1tcIlB1cnBvc2VcIl07XG5cbmV4cG9ydCB0eXBlIEVtcHR5ID0gc2NoZW1hc1tcIkVtcHR5SW1wbFwiXTtcblxuZXhwb3J0IHR5cGUgU2NvcGUgPSBzY2hlbWFzW1wiU2NvcGVcIl07XG5cbi8qKiBPcHRpb25zIGZvciBhIG5ldyBPSURDIHVzZXIgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT2lkY1VzZXJPcHRpb25zIHtcbiAgLyoqIE9wdGlvbmFsIG5hbWUgKi9cbiAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUaGUgcm9sZSBvZiBhbiBPSURDIHVzZXIsIGRlZmF1bHQgaXMgXCJBbGllblwiICovXG4gIG1lbWJlclJvbGU/OiBNZW1iZXJSb2xlO1xuICAvKiogT3B0aW9uYWwgTUZBIHBvbGljeSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgdXNlciBhY2NvdW50ICovXG4gIG1mYVBvbGljeT86IE1mYVBvbGljeTtcbn1cblxuZXhwb3J0IHR5cGUgR2V0Um9sZUtleU9wdGlvbnMgPSBvcGVyYXRpb25zW1wiZ2V0Um9sZUtleVwiXVtcInBhcmFtZXRlcnNcIl1bXCJxdWVyeVwiXTtcblxuLyoqIEF2YSBQLSBvciBYLWNoYWluIHRyYW5zYWN0aW9uICovXG5leHBvcnQgdHlwZSBBdmFUeCA9IHsgUDogQXZhUENoYWluVHggfSB8IHsgWDogQXZhWENoYWluVHggfTtcblxuLyoqIEF2YSBQLWNoYWluIHRyYW5zYWN0aW9uICovXG5leHBvcnQgdHlwZSBBdmFQQ2hhaW5UeCA9XG4gIHwgeyBBZGRQZXJtaXNzaW9ubGVzc1ZhbGlkYXRvcjogSnNvbk1hcCB9XG4gIHwgeyBBZGRTdWJuZXRWYWxpZGF0b3I6IEpzb25NYXAgfVxuICB8IHsgQWRkVmFsaWRhdG9yOiBKc29uTWFwIH1cbiAgfCB7IENyZWF0ZUNoYWluOiBKc29uTWFwIH1cbiAgfCB7IENyZWF0ZVN1Ym5ldDogSnNvbk1hcCB9XG4gIHwgeyBFeHBvcnQ6IEpzb25NYXAgfVxuICB8IHsgSW1wb3J0OiBKc29uTWFwIH07XG5cbi8qKiBBdmEgWC1jaGFpbiB0cmFuc2FjdGlvbiAqL1xuZXhwb3J0IHR5cGUgQXZhWENoYWluVHggPSB7IEJhc2U6IEpzb25NYXAgfSB8IHsgRXhwb3J0OiBKc29uTWFwIH0gfCB7IEltcG9ydDogSnNvbk1hcCB9O1xuXG4vKiogQXZhIGNoYWlucyAqL1xuZXhwb3J0IHR5cGUgQXZhQ2hhaW4gPSBcIkNcIiB8IFwiWFwiIHwgXCJQXCI7XG5cbi8qKiBLZXkgaW1wb3J0ICovXG5leHBvcnQgdHlwZSBDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZSA9IHNjaGVtYXNbXCJDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEltcG9ydEtleVJlcXVlc3QgPSBzY2hlbWFzW1wiSW1wb3J0S2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEltcG9ydEtleVJlcXVlc3RNYXRlcmlhbCA9IHNjaGVtYXNbXCJJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWxcIl07XG5cbmV4cG9ydCB0eXBlIEludml0YXRpb25BY2NlcHRSZXF1ZXN0ID0gc2NoZW1hc1tcIkludml0YXRpb25BY2NlcHRSZXF1ZXN0XCJdO1xuXG5leHBvcnQgdHlwZSBLZXlUeXBlQW5kRGVyaXZhdGlvblBhdGggPSBzY2hlbWFzW1wiS2V5VHlwZUFuZERlcml2YXRpb25QYXRoXCJdO1xuXG5leHBvcnQgdHlwZSBQb2xpY3lJbmZvID0gc2NoZW1hc1tcIlBvbGljeUluZm9cIl07XG5leHBvcnQgdHlwZSBVcGRhdGVQb2xpY3lSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZVBvbGljeVJlcXVlc3RcIl0gJiB7XG4gIHJ1bGVzPzogSnNvblZhbHVlW107XG59O1xuZXhwb3J0IHR5cGUgTGlzdFBvbGljaWVzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFBvbGljaWVzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBQb2xpY3lUeXBlID0gc2NoZW1hc1tcIlBvbGljeVR5cGVcIl07XG5leHBvcnQgdHlwZSBQb2xpY3lBdHRhY2hlZFRvSWQgPSBzY2hlbWFzW1wiUG9saWN5QXR0YWNoZWRUb0lkXCJdO1xuXG5leHBvcnQgdHlwZSBVcGxvYWRXYXNtUG9saWN5UmVxdWVzdCA9IHNjaGVtYXNbXCJVcGxvYWRXYXNtUG9saWN5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFVwbG9hZFdhc21Qb2xpY3lSZXNwb25zZSA9IHNjaGVtYXNbXCJVcGxvYWRXYXNtUG9saWN5UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBJbnZva2VQb2xpY3lSZXF1ZXN0ID0gc2NoZW1hc1tcIkludm9rZVBvbGljeVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBJbnZva2VQb2xpY3lSZXNwb25zZSA9IHNjaGVtYXNbXCJJbnZva2VQb2xpY3lSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFdhc21Qb2xpY3lSZXNwb25zZSA9IHNjaGVtYXNbXCJXYXNtUG9saWN5UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBXYXNtUnVsZSA9IHNjaGVtYXNbXCJXYXNtUnVsZVwiXTtcblxuZXhwb3J0IHR5cGUgUG9saWN5RW5naW5lQ29uZmlndXJhdGlvbiA9IHNjaGVtYXNbXCJQb2xpY3lFbmdpbmVDb25maWd1cmF0aW9uXCJdO1xuIl19
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "git+https://github.com/cubist-labs/CubeSigner-TypeScript-SDK.git",
|
|
6
6
|
"directory": "packages/sdk"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.4.
|
|
8
|
+
"version": "0.4.201",
|
|
9
9
|
"description": "CubeSigner TypeScript SDK",
|
|
10
10
|
"license": "MIT OR Apache-2.0",
|
|
11
11
|
"author": "Cubist, Inc.",
|
package/src/key.ts
CHANGED
|
@@ -37,6 +37,7 @@ import type {
|
|
|
37
37
|
BabylonStakingResponse,
|
|
38
38
|
BtcMessageSignRequest,
|
|
39
39
|
CubeSignerResponse,
|
|
40
|
+
EditPolicy,
|
|
40
41
|
Empty,
|
|
41
42
|
ErrResponse,
|
|
42
43
|
HistoricalTx,
|
|
@@ -222,6 +223,17 @@ export class Key {
|
|
|
222
223
|
await this.update({ policy }, mfaReceipt);
|
|
223
224
|
}
|
|
224
225
|
|
|
226
|
+
/**
|
|
227
|
+
* Set new edit policy (overwriting any edit policies previously set for this key)
|
|
228
|
+
*
|
|
229
|
+
* @param editPolicy The new edit policy to set
|
|
230
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
231
|
+
* @throws if MFA is required and no receipts are provided
|
|
232
|
+
*/
|
|
233
|
+
async setEditPolicy(editPolicy: EditPolicy, mfaReceipt?: MfaReceipts) {
|
|
234
|
+
await this.update({ edit_policy: editPolicy }, mfaReceipt);
|
|
235
|
+
}
|
|
236
|
+
|
|
225
237
|
/**
|
|
226
238
|
* Set key metadata. The metadata must be at most 1024 characters
|
|
227
239
|
* and must match the following regex: ^[A-Za-z0-9_=+/ \-\.\,]{0,1024}$.
|
|
@@ -333,13 +345,15 @@ export class Key {
|
|
|
333
345
|
/**
|
|
334
346
|
* Append to existing key policy. This append is not atomic -- it uses {@link policy}
|
|
335
347
|
* to fetch the current policy and then {@link setPolicy} to set the policy -- and
|
|
336
|
-
* should not be used
|
|
348
|
+
* should not be used across concurrent sessions.
|
|
337
349
|
*
|
|
338
350
|
* @param policy The policy to append to the existing one.
|
|
351
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
352
|
+
* @throws If MFA is required and no MFA receipts are provided
|
|
339
353
|
*/
|
|
340
|
-
async appendPolicy(policy: KeyPolicy) {
|
|
354
|
+
async appendPolicy(policy: KeyPolicy, mfaReceipt?: MfaReceipts) {
|
|
341
355
|
const existing = await this.policy();
|
|
342
|
-
await this.setPolicy([...existing, ...policy]);
|
|
356
|
+
await this.setPolicy([...existing, ...policy], mfaReceipt);
|
|
343
357
|
}
|
|
344
358
|
|
|
345
359
|
/**
|
|
@@ -352,6 +366,16 @@ export class Key {
|
|
|
352
366
|
return (data.policy ?? []) as unknown as KeyPolicy;
|
|
353
367
|
}
|
|
354
368
|
|
|
369
|
+
/**
|
|
370
|
+
* Get the edit policy for the key.
|
|
371
|
+
*
|
|
372
|
+
* @returns The edit policy for the key, undefined if there is no edit policy
|
|
373
|
+
*/
|
|
374
|
+
async editPolicy(): Promise<EditPolicy | undefined> {
|
|
375
|
+
const data = await this.fetch();
|
|
376
|
+
return data.edit_policy;
|
|
377
|
+
}
|
|
378
|
+
|
|
355
379
|
/**
|
|
356
380
|
* Fetch the metadata for the key.
|
|
357
381
|
*
|
package/src/role.ts
CHANGED
|
@@ -4,7 +4,6 @@ import type {
|
|
|
4
4
|
EvmTxCmp,
|
|
5
5
|
SolanaTxCmp,
|
|
6
6
|
KeyWithPoliciesInfo,
|
|
7
|
-
MfaType,
|
|
8
7
|
PageOpts,
|
|
9
8
|
RoleInfo,
|
|
10
9
|
Scope,
|
|
@@ -18,6 +17,8 @@ import type {
|
|
|
18
17
|
Empty,
|
|
19
18
|
RestrictedActionsMap,
|
|
20
19
|
GetRoleKeyOptions,
|
|
20
|
+
EditPolicy,
|
|
21
|
+
MfaPolicy,
|
|
21
22
|
} from ".";
|
|
22
23
|
import { Key, SignerSessionInfo } from ".";
|
|
23
24
|
|
|
@@ -304,41 +305,6 @@ export type BtcSegwitValueLimitWindow = {
|
|
|
304
305
|
*/
|
|
305
306
|
export type SourceIpAllowlist = { SourceIpAllowlist: string[] };
|
|
306
307
|
|
|
307
|
-
/**
|
|
308
|
-
* MFA policy
|
|
309
|
-
*
|
|
310
|
-
* @example {
|
|
311
|
-
* {
|
|
312
|
-
* count: 1,
|
|
313
|
-
* num_auth_factors: 1,
|
|
314
|
-
* allowed_mfa_types: [ "Totp" ],
|
|
315
|
-
* allowed_approvers: [ "User#123" ],
|
|
316
|
-
* }
|
|
317
|
-
*/
|
|
318
|
-
export type MfaPolicy = {
|
|
319
|
-
count?: number;
|
|
320
|
-
num_auth_factors?: number;
|
|
321
|
-
allowed_approvers?: string[];
|
|
322
|
-
allowed_mfa_types?: MfaType[];
|
|
323
|
-
restricted_operations?: OperationKind[];
|
|
324
|
-
/** Lifetime in seconds, defaults to 900 (15 minutes) */
|
|
325
|
-
lifetime?: number;
|
|
326
|
-
/**
|
|
327
|
-
* How to compare HTTP requests when verifying the MFA receipt.
|
|
328
|
-
* This specifies how we check equality between (1) the HTTP request when the 202 (MFA required)
|
|
329
|
-
* response is returned and (2) the HTTP request when the correspond MFA receipt is used.
|
|
330
|
-
*/
|
|
331
|
-
request_comparer?: HttpRequestComparer;
|
|
332
|
-
/**
|
|
333
|
-
* The amount of time in seconds before an MFA receipt can be redeemed.
|
|
334
|
-
* Defaults to 0, i.e., no delay. Approvers can vote to approve or veto
|
|
335
|
-
* before the delay expires. After approving, it is still possible for
|
|
336
|
-
* anyone to veto the request until the delay expires and the receipt
|
|
337
|
-
* is redeemed.
|
|
338
|
-
*/
|
|
339
|
-
time_delay?: number;
|
|
340
|
-
};
|
|
341
|
-
|
|
342
308
|
export type HttpRequestComparer = "Eq" | { EvmTx: EvmTxCmp } | { SolanaTx: SolanaTxCmp };
|
|
343
309
|
|
|
344
310
|
/**
|
|
@@ -671,7 +637,7 @@ export class Role {
|
|
|
671
637
|
/**
|
|
672
638
|
* Append to existing role policy. This append is not atomic---it uses
|
|
673
639
|
* {@link policy} to fetch the current policy and then {@link setPolicy}
|
|
674
|
-
* to set the policy---and should not be used
|
|
640
|
+
* to set the policy---and should not be used across concurrent sessions.
|
|
675
641
|
*
|
|
676
642
|
* @param policy The policy to append to the existing one.
|
|
677
643
|
* @param mfaReceipt Optional MFA receipt(s)
|
|
@@ -692,6 +658,27 @@ export class Role {
|
|
|
692
658
|
return (data.policy ?? []) as unknown as RolePolicy;
|
|
693
659
|
}
|
|
694
660
|
|
|
661
|
+
/**
|
|
662
|
+
* Set new edit policy (overwriting any edit policies previously set for this role)
|
|
663
|
+
*
|
|
664
|
+
* @param editPolicy The new edit policy to set
|
|
665
|
+
* @param mfaReceipt Optional MFA receipt(s)
|
|
666
|
+
* @throws if MFA is required and no receipts are provided
|
|
667
|
+
*/
|
|
668
|
+
async setEditPolicy(editPolicy: EditPolicy, mfaReceipt?: MfaReceipts) {
|
|
669
|
+
await this.update({ edit_policy: editPolicy }, mfaReceipt);
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/**
|
|
673
|
+
* Get the edit policy for the role.
|
|
674
|
+
*
|
|
675
|
+
* @returns The edit policy for the role, undefined if there is no edit policy
|
|
676
|
+
*/
|
|
677
|
+
async editPolicy(): Promise<EditPolicy | undefined> {
|
|
678
|
+
const data = await this.fetch();
|
|
679
|
+
return data.edit_policy;
|
|
680
|
+
}
|
|
681
|
+
|
|
695
682
|
/**
|
|
696
683
|
* Sets the restricted actions on the role.
|
|
697
684
|
*
|
package/src/schema_types.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { MfaPolicy } from "./role";
|
|
2
1
|
import type { components, operations } from "./schema";
|
|
3
2
|
import type { JsonMap, JsonValue } from "./util";
|
|
4
3
|
|
|
@@ -162,6 +161,10 @@ export type MfaType =
|
|
|
162
161
|
| "Totp"
|
|
163
162
|
| "EmailOtp"
|
|
164
163
|
| `EmailOtp#${number}`;
|
|
164
|
+
export type MfaPolicy = Omit<schemas["MfaPolicy"], "allowed_mfa_types"> & {
|
|
165
|
+
/** Allowed approval types. When omitted, defaults to any. */
|
|
166
|
+
allowed_mfa_types?: MfaType[] | null; // overriding to use a stronger `MfaType` type
|
|
167
|
+
};
|
|
165
168
|
export type MfaVote = schemas["MfaVote"];
|
|
166
169
|
export type MfaRequestInfo = schemas["MfaRequestInfo"];
|
|
167
170
|
export type MfaProtectedAction = schemas["MfaProtectedAction"];
|