@bitgo-beta/statics 15.1.1-beta.210 → 15.1.1-beta.2101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/account.d.ts +1187 -73
- package/dist/src/account.d.ts.map +1 -1
- package/dist/src/account.js +1794 -161
- package/dist/src/ada.d.ts.map +1 -1
- package/dist/src/ada.js +7 -3
- package/dist/src/allCoinsAndTokens.d.ts +2 -0
- package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
- package/dist/src/allCoinsAndTokens.js +1905 -0
- package/dist/src/avaxp.d.ts.map +1 -1
- package/dist/src/avaxp.js +8 -3
- package/dist/src/base.d.ts +2957 -45
- package/dist/src/base.d.ts.map +1 -1
- package/dist/src/base.js +3082 -56
- package/dist/src/canton.d.ts +34 -0
- package/dist/src/canton.d.ts.map +1 -0
- package/dist/src/canton.js +51 -0
- package/dist/src/coinFeatures.d.ts +134 -0
- package/dist/src/coinFeatures.d.ts.map +1 -0
- package/dist/src/coinFeatures.js +817 -0
- package/dist/src/coins/adaTokens.d.ts +2 -0
- package/dist/src/coins/adaTokens.d.ts.map +1 -0
- package/dist/src/coins/adaTokens.js +27 -0
- package/dist/src/coins/avaxTokens.d.ts +2 -0
- package/dist/src/coins/avaxTokens.d.ts.map +1 -0
- package/dist/src/coins/avaxTokens.js +133 -0
- package/dist/src/coins/botOfcTokens.d.ts +3 -0
- package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
- package/dist/src/coins/botOfcTokens.js +309 -0
- package/dist/src/coins/botTokens.d.ts +3 -0
- package/dist/src/coins/botTokens.d.ts.map +1 -0
- package/dist/src/coins/botTokens.js +966 -0
- package/dist/src/coins/bscTokens.d.ts +2 -0
- package/dist/src/coins/bscTokens.d.ts.map +1 -0
- package/dist/src/coins/bscTokens.js +421 -0
- package/dist/src/coins/cantonTokens.d.ts +2 -0
- package/dist/src/coins/cantonTokens.d.ts.map +1 -0
- package/dist/src/coins/cantonTokens.js +134 -0
- package/dist/src/coins/cosmosTokens.d.ts +2 -0
- package/dist/src/coins/cosmosTokens.d.ts.map +1 -0
- package/dist/src/coins/cosmosTokens.js +14 -0
- package/dist/src/coins/erc20Coins.d.ts +2 -0
- package/dist/src/coins/erc20Coins.d.ts.map +1 -0
- package/dist/src/coins/erc20Coins.js +2086 -0
- package/dist/src/coins/erc7984Tokens.d.ts +17 -0
- package/dist/src/coins/erc7984Tokens.d.ts.map +1 -0
- package/dist/src/coins/erc7984Tokens.js +40 -0
- package/dist/src/coins/generateERC20.d.ts +36 -0
- package/dist/src/coins/generateERC20.d.ts.map +1 -0
- package/dist/src/coins/generateERC20.js +46 -0
- package/dist/src/coins/hoodethTokens.d.ts +2 -0
- package/dist/src/coins/hoodethTokens.d.ts.map +1 -0
- package/dist/src/coins/hoodethTokens.js +318 -0
- package/dist/src/coins/jettonTokens.d.ts +2 -0
- package/dist/src/coins/jettonTokens.d.ts.map +1 -0
- package/dist/src/coins/jettonTokens.js +19 -0
- package/dist/src/coins/nep141Tokens.d.ts +2 -0
- package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
- package/dist/src/coins/nep141Tokens.js +18 -0
- package/dist/src/coins/ofcCoins.d.ts +2 -0
- package/dist/src/coins/ofcCoins.d.ts.map +1 -0
- package/dist/src/coins/ofcCoins.js +1457 -0
- package/dist/src/coins/ofcErc20Coins.d.ts +4 -0
- package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
- package/dist/src/coins/ofcErc20Coins.js +1902 -0
- package/dist/src/coins/ofcHoodethTokens.d.ts +2 -0
- package/dist/src/coins/ofcHoodethTokens.d.ts.map +1 -0
- package/dist/src/coins/ofcHoodethTokens.js +316 -0
- package/dist/src/coins/polygonTokens.d.ts +2 -0
- package/dist/src/coins/polygonTokens.d.ts.map +1 -0
- package/dist/src/coins/polygonTokens.js +216 -0
- package/dist/src/coins/polyxTokens.d.ts +2 -0
- package/dist/src/coins/polyxTokens.d.ts.map +1 -0
- package/dist/src/coins/polyxTokens.js +22 -0
- package/dist/src/coins/sip10Tokens.d.ts +2 -0
- package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
- package/dist/src/coins/sip10Tokens.js +25 -0
- package/dist/src/coins/solTokens.d.ts +3 -0
- package/dist/src/coins/solTokens.d.ts.map +1 -0
- package/dist/src/coins/solTokens.js +538 -0
- package/dist/src/coins/vetTokens.d.ts +2 -0
- package/dist/src/coins/vetTokens.d.ts.map +1 -0
- package/dist/src/coins/vetTokens.js +11 -0
- package/dist/src/coins.d.ts +22 -1
- package/dist/src/coins.d.ts.map +1 -1
- package/dist/src/coins.js +477 -2059
- package/dist/src/constants.d.ts +1 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +3 -2
- package/dist/src/errors.d.ts +9 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +23 -2
- package/dist/src/flrp.d.ts +40 -0
- package/dist/src/flrp.d.ts.map +1 -0
- package/dist/src/flrp.js +66 -0
- package/dist/src/hypeevm.d.ts +28 -0
- package/dist/src/hypeevm.d.ts.map +1 -0
- package/dist/src/hypeevm.js +60 -0
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +49 -3
- package/dist/src/kaspa.d.ts +34 -0
- package/dist/src/kaspa.d.ts.map +1 -0
- package/dist/src/kaspa.js +63 -0
- package/dist/src/lightning.d.ts +43 -0
- package/dist/src/lightning.d.ts.map +1 -0
- package/dist/src/lightning.js +64 -0
- package/dist/src/map.d.ts +34 -1
- package/dist/src/map.d.ts.map +1 -1
- package/dist/src/map.js +251 -35
- package/dist/src/networkFeatureMapForTokens.d.ts +30 -0
- package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
- package/dist/src/networkFeatureMapForTokens.js +91 -0
- package/dist/src/networks.d.ts +2055 -68
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +2528 -104
- package/dist/src/ofc.d.ts +695 -3
- package/dist/src/ofc.d.ts.map +1 -1
- package/dist/src/ofc.js +1653 -28
- package/dist/src/tokenConfig.d.ts +717 -114
- package/dist/src/tokenConfig.d.ts.map +1 -1
- package/dist/src/tokenConfig.js +1118 -233
- package/dist/src/utxo.d.ts +6 -2
- package/dist/src/utxo.d.ts.map +1 -1
- package/dist/src/utxo.js +132 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -3
- package/.mocharc.js +0 -10
- package/.prettierignore +0 -2
- package/CHANGELOG.md +0 -1504
package/dist/src/networks.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Networks = exports.BaseNetwork = exports.NetworkType = void 0;
|
|
3
|
+
exports.Networks = exports.DynamicNetwork = exports.FlareTestnet = exports.Flare = exports.FlarePTestnet = exports.FlareP = exports.KaspaTestnet = exports.KaspaMainnet = exports.BaseNetwork = exports.NetworkType = void 0;
|
|
4
|
+
exports.getNetworkByName = getNetworkByName;
|
|
5
|
+
exports.getNetworksMap = getNetworksMap;
|
|
6
|
+
exports.registerNetwork = registerNetwork;
|
|
7
|
+
exports.getNetwork = getNetwork;
|
|
4
8
|
const base_1 = require("./base");
|
|
5
9
|
var NetworkType;
|
|
6
10
|
(function (NetworkType) {
|
|
7
11
|
NetworkType["MAINNET"] = "mainnet";
|
|
8
12
|
NetworkType["TESTNET"] = "testnet";
|
|
9
|
-
})(NetworkType
|
|
13
|
+
})(NetworkType || (exports.NetworkType = NetworkType = {}));
|
|
10
14
|
class BaseNetwork {
|
|
11
15
|
}
|
|
12
16
|
exports.BaseNetwork = BaseNetwork;
|
|
@@ -27,7 +31,7 @@ class Algorand extends Mainnet {
|
|
|
27
31
|
super(...arguments);
|
|
28
32
|
this.name = 'Algorand';
|
|
29
33
|
this.family = base_1.CoinFamily.ALGO;
|
|
30
|
-
this.explorerUrl = 'https://
|
|
34
|
+
this.explorerUrl = 'https://allo.info/tx/';
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
37
|
class AlgorandTestnet extends Testnet {
|
|
@@ -35,7 +39,7 @@ class AlgorandTestnet extends Testnet {
|
|
|
35
39
|
super(...arguments);
|
|
36
40
|
this.name = 'AlgorandTestnet';
|
|
37
41
|
this.family = base_1.CoinFamily.ALGO;
|
|
38
|
-
this.explorerUrl = 'https://testnet.
|
|
42
|
+
this.explorerUrl = 'https://testnet.explorer.perawallet.app/tx/';
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
class Ada extends Mainnet {
|
|
@@ -46,7 +50,8 @@ class Ada extends Mainnet {
|
|
|
46
50
|
this.utxolibName = 'cardano';
|
|
47
51
|
this.poolDeposit = 500000000;
|
|
48
52
|
this.stakeKeyDeposit = 2000000;
|
|
49
|
-
this.explorerUrl = 'https://
|
|
53
|
+
this.explorerUrl = 'https://cardanoscan.io/transaction/';
|
|
54
|
+
this.accountExplorerUrl = 'https://cardanoscan.io/address/';
|
|
50
55
|
this.coinsPerUtxoWord = 34482;
|
|
51
56
|
this.maxTransactionSize = 8000;
|
|
52
57
|
this.maxValueSize = 4000;
|
|
@@ -58,7 +63,8 @@ class AdaTestnet extends Testnet {
|
|
|
58
63
|
this.name = 'AdaCardanoTestnet';
|
|
59
64
|
this.family = base_1.CoinFamily.ADA;
|
|
60
65
|
this.utxolibName = 'cardanoTestnet';
|
|
61
|
-
this.explorerUrl = 'https://preprod.
|
|
66
|
+
this.explorerUrl = 'https://preprod.cardanoscan.io/transaction/';
|
|
67
|
+
this.accountExplorerUrl = 'https://preprod.cardanoscan.io/address/';
|
|
62
68
|
this.coinsPerUtxoWord = 34482;
|
|
63
69
|
this.maxTransactionSize = 8000;
|
|
64
70
|
this.maxValueSize = 4000;
|
|
@@ -66,6 +72,64 @@ class AdaTestnet extends Testnet {
|
|
|
66
72
|
this.stakeKeyDeposit = 2000000;
|
|
67
73
|
}
|
|
68
74
|
}
|
|
75
|
+
class Apt extends Mainnet {
|
|
76
|
+
constructor() {
|
|
77
|
+
super(...arguments);
|
|
78
|
+
this.name = 'Apt';
|
|
79
|
+
this.family = base_1.CoinFamily.APT;
|
|
80
|
+
this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=mainnet';
|
|
81
|
+
this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=mainnet';
|
|
82
|
+
this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=mainnet';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
class AptTestnet extends Testnet {
|
|
86
|
+
constructor() {
|
|
87
|
+
super(...arguments);
|
|
88
|
+
this.name = 'Testnet Apt';
|
|
89
|
+
this.family = base_1.CoinFamily.APT;
|
|
90
|
+
this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=testnet';
|
|
91
|
+
this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=testnet';
|
|
92
|
+
this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=testnet';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
class Icp extends Mainnet {
|
|
96
|
+
constructor() {
|
|
97
|
+
super(...arguments);
|
|
98
|
+
this.name = 'Internet Computer';
|
|
99
|
+
this.family = base_1.CoinFamily.ICP;
|
|
100
|
+
this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/';
|
|
101
|
+
this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
class IcpTestnet extends Testnet {
|
|
105
|
+
constructor() {
|
|
106
|
+
super(...arguments);
|
|
107
|
+
this.name = 'Testnet Internet Computer';
|
|
108
|
+
this.family = base_1.CoinFamily.ICP;
|
|
109
|
+
this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/'; // ICP testnet explorer is not available, so using mainnet explorer
|
|
110
|
+
this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
class KaspaMainnet extends Mainnet {
|
|
114
|
+
constructor() {
|
|
115
|
+
super(...arguments);
|
|
116
|
+
this.name = 'Kaspa';
|
|
117
|
+
this.family = base_1.CoinFamily.KASPA;
|
|
118
|
+
this.explorerUrl = 'https://explorer.kaspa.org/txs/';
|
|
119
|
+
this.accountExplorerUrl = 'https://explorer.kaspa.org/addresses/';
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.KaspaMainnet = KaspaMainnet;
|
|
123
|
+
class KaspaTestnet extends Testnet {
|
|
124
|
+
constructor() {
|
|
125
|
+
super(...arguments);
|
|
126
|
+
this.name = 'Testnet Kaspa';
|
|
127
|
+
this.family = base_1.CoinFamily.KASPA;
|
|
128
|
+
this.explorerUrl = 'https://explorer-tn10.kaspa.org/txs/';
|
|
129
|
+
this.accountExplorerUrl = 'https://explorer-tn10.kaspa.org/addresses/';
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.KaspaTestnet = KaspaTestnet;
|
|
69
133
|
class Arbitrum extends Mainnet {
|
|
70
134
|
constructor() {
|
|
71
135
|
super(...arguments);
|
|
@@ -74,8 +138,13 @@ class Arbitrum extends Mainnet {
|
|
|
74
138
|
this.explorerUrl = 'https://arbiscan.io/tx/';
|
|
75
139
|
this.accountExplorerUrl = 'https://arbiscan.io/address/';
|
|
76
140
|
this.chainId = 42161;
|
|
77
|
-
this.nativeCoinOperationHashPrefix = '
|
|
78
|
-
this.tokenOperationHashPrefix = '
|
|
141
|
+
this.nativeCoinOperationHashPrefix = '42161';
|
|
142
|
+
this.tokenOperationHashPrefix = '42161-ERC20';
|
|
143
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
144
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
145
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
146
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
147
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
79
148
|
}
|
|
80
149
|
}
|
|
81
150
|
class ArbitrumTestnet extends Testnet {
|
|
@@ -86,8 +155,13 @@ class ArbitrumTestnet extends Testnet {
|
|
|
86
155
|
this.explorerUrl = 'https://sepolia.arbiscan.io/tx/';
|
|
87
156
|
this.accountExplorerUrl = 'https://sepolia.arbiscan.io/address/';
|
|
88
157
|
this.chainId = 421614;
|
|
89
|
-
this.nativeCoinOperationHashPrefix = '
|
|
90
|
-
this.tokenOperationHashPrefix = '
|
|
158
|
+
this.nativeCoinOperationHashPrefix = '421614';
|
|
159
|
+
this.tokenOperationHashPrefix = '421614-ERC20';
|
|
160
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
161
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
162
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
163
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
164
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
91
165
|
}
|
|
92
166
|
}
|
|
93
167
|
class AvalancheC extends Mainnet {
|
|
@@ -99,6 +173,7 @@ class AvalancheC extends Mainnet {
|
|
|
99
173
|
this.explorerUrl = 'https://subnets.avax.network/c-chain/tx/';
|
|
100
174
|
this.accountExplorerUrl = 'https://subnets.avax.network/c-chain/address/';
|
|
101
175
|
this.chainId = 43114;
|
|
176
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
102
177
|
}
|
|
103
178
|
}
|
|
104
179
|
class AvalancheCTestnet extends Testnet {
|
|
@@ -110,6 +185,7 @@ class AvalancheCTestnet extends Testnet {
|
|
|
110
185
|
this.explorerUrl = 'https://subnets-test.avax.network/c-chain/tx/';
|
|
111
186
|
this.accountExplorerUrl = 'https://subnets-test.avax.network/c-chain/address/';
|
|
112
187
|
this.chainId = 43113;
|
|
188
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
113
189
|
}
|
|
114
190
|
}
|
|
115
191
|
class AvalancheP extends Mainnet {
|
|
@@ -175,9 +251,12 @@ class BinanceSmartChain extends Mainnet {
|
|
|
175
251
|
super(...arguments);
|
|
176
252
|
this.name = 'BinanceSmartChain';
|
|
177
253
|
this.family = base_1.CoinFamily.BSC;
|
|
178
|
-
this.explorerUrl = 'https://
|
|
179
|
-
this.accountExplorerUrl = 'https://
|
|
254
|
+
this.explorerUrl = 'https://bscscan.com/tx/';
|
|
255
|
+
this.accountExplorerUrl = 'https://bscscan.com/address/';
|
|
180
256
|
this.chainId = 56;
|
|
257
|
+
this.nativeCoinOperationHashPrefix = '56';
|
|
258
|
+
this.tokenOperationHashPrefix = '56-ERC20';
|
|
259
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
181
260
|
}
|
|
182
261
|
}
|
|
183
262
|
class BinanceSmartChainTestnet extends Testnet {
|
|
@@ -188,6 +267,105 @@ class BinanceSmartChainTestnet extends Testnet {
|
|
|
188
267
|
this.explorerUrl = 'https://testnet.bscscan.com/tx/';
|
|
189
268
|
this.accountExplorerUrl = 'https://testnet.bscscan.com/address/';
|
|
190
269
|
this.chainId = 97;
|
|
270
|
+
this.nativeCoinOperationHashPrefix = '97';
|
|
271
|
+
this.tokenOperationHashPrefix = '97-ERC20';
|
|
272
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
class OpBNB extends Mainnet {
|
|
276
|
+
constructor() {
|
|
277
|
+
super(...arguments);
|
|
278
|
+
this.name = 'OpBNB';
|
|
279
|
+
this.family = base_1.CoinFamily.OPBNB;
|
|
280
|
+
this.explorerUrl = 'https://opbnbscan.com/tx/';
|
|
281
|
+
this.accountExplorerUrl = 'https://opbnbscan.com/address/';
|
|
282
|
+
this.chainId = 204;
|
|
283
|
+
this.nativeCoinOperationHashPrefix = '204';
|
|
284
|
+
this.tokenOperationHashPrefix = '204-ERC20';
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
class OpBNBTestnet extends Testnet {
|
|
288
|
+
constructor() {
|
|
289
|
+
super(...arguments);
|
|
290
|
+
this.name = 'OpBNBTestnet';
|
|
291
|
+
this.family = base_1.CoinFamily.OPBNB;
|
|
292
|
+
this.explorerUrl = 'https://testnet.opbnbscan.com/tx/';
|
|
293
|
+
this.accountExplorerUrl = 'https://testnet.opbnbscan.com/address/';
|
|
294
|
+
this.chainId = 5611;
|
|
295
|
+
this.nativeCoinOperationHashPrefix = '5611';
|
|
296
|
+
this.tokenOperationHashPrefix = '5611-ERC20';
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
class Fantom extends Mainnet {
|
|
300
|
+
constructor() {
|
|
301
|
+
super(...arguments);
|
|
302
|
+
this.name = 'Fantom';
|
|
303
|
+
this.family = base_1.CoinFamily.FANTOM;
|
|
304
|
+
this.explorerUrl = 'https://explorer.fantom.network/transactions/';
|
|
305
|
+
this.accountExplorerUrl = 'https://explorer.fantom.network/address/';
|
|
306
|
+
this.chainId = 250;
|
|
307
|
+
this.nativeCoinOperationHashPrefix = '250';
|
|
308
|
+
this.tokenOperationHashPrefix = '250-ERC20';
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
class FantomTestnet extends Testnet {
|
|
312
|
+
constructor() {
|
|
313
|
+
super(...arguments);
|
|
314
|
+
this.name = 'FantomTestnet';
|
|
315
|
+
this.family = base_1.CoinFamily.FANTOM;
|
|
316
|
+
this.explorerUrl = 'https://explorer.fantom.network/transactions/';
|
|
317
|
+
this.accountExplorerUrl = 'https://explorer.fantom.network/address/';
|
|
318
|
+
this.chainId = 4002;
|
|
319
|
+
this.nativeCoinOperationHashPrefix = '4002';
|
|
320
|
+
this.tokenOperationHashPrefix = '4002-ERC20';
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
class Cotieth extends Mainnet {
|
|
324
|
+
constructor() {
|
|
325
|
+
super(...arguments);
|
|
326
|
+
this.name = 'Cotieth';
|
|
327
|
+
this.family = base_1.CoinFamily.COTIETH;
|
|
328
|
+
this.explorerUrl = 'https://mainnet.cotiscan.io/tx/';
|
|
329
|
+
this.accountExplorerUrl = 'https://mainnet.cotiscan.io/address/';
|
|
330
|
+
this.chainId = 2632500;
|
|
331
|
+
this.nativeCoinOperationHashPrefix = '2632500';
|
|
332
|
+
this.tokenOperationHashPrefix = '2632500-ERC20';
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
class CotiethTestnet extends Testnet {
|
|
336
|
+
constructor() {
|
|
337
|
+
super(...arguments);
|
|
338
|
+
this.name = 'CotiethTestnet';
|
|
339
|
+
this.family = base_1.CoinFamily.COTIETH;
|
|
340
|
+
this.explorerUrl = 'https://testnet.cotiscan.io/tx/';
|
|
341
|
+
this.accountExplorerUrl = 'https://testnet.cotiscan.io/address/';
|
|
342
|
+
this.chainId = 7082400;
|
|
343
|
+
this.nativeCoinOperationHashPrefix = '7082400';
|
|
344
|
+
this.tokenOperationHashPrefix = '7082400-ERC20';
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
class LightningBitcoin extends Mainnet {
|
|
348
|
+
constructor() {
|
|
349
|
+
super(...arguments);
|
|
350
|
+
this.name = 'LightningBitcoin';
|
|
351
|
+
this.family = base_1.CoinFamily.LNBTC;
|
|
352
|
+
this.utxolibName = 'bitcoin';
|
|
353
|
+
this.explorerUrl = 'https://mempool.space/lightning';
|
|
354
|
+
this.lightningServicePubKey = '0338508686f978ceffd7ce05404041b1a5b4f75a39bc92a6d355240ccc081f763e';
|
|
355
|
+
this.middlewarePubKey = '020d52f6458b17b565bc03516568d1a65c8cbd131ce03f2207567e4cd3322e82f3';
|
|
356
|
+
this.tatPubKey = '03953da20068c096858d3cca60f8c5b0e5a2f5d0383ecf9b6ab392d71e4f3e72df';
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
class LightningBitcoinTestnet extends Testnet {
|
|
360
|
+
constructor() {
|
|
361
|
+
super(...arguments);
|
|
362
|
+
this.name = 'LightningBitcoinTestnet';
|
|
363
|
+
this.family = base_1.CoinFamily.LNBTC;
|
|
364
|
+
this.utxolibName = 'testnet';
|
|
365
|
+
this.explorerUrl = 'https://mempool.space/testnet/lightning';
|
|
366
|
+
this.lightningServicePubKey = '024055021db1e7f019ebb783ab0b0810c21a819207d4cb1ec4a6e2150ac07f1482';
|
|
367
|
+
this.middlewarePubKey = '027cb3bc6b49fc385d282b42a7be232a94ffcbaffc7818b603b17722582bbf539b';
|
|
368
|
+
this.tatPubKey = '02e747c99c371eac9c14fb19913bec8a0e3e46e35ab1a45878e5b9afbb69899c1e';
|
|
191
369
|
}
|
|
192
370
|
}
|
|
193
371
|
class Bitcoin extends Mainnet {
|
|
@@ -206,6 +384,62 @@ class BitcoinTestnet extends Testnet {
|
|
|
206
384
|
this.family = base_1.CoinFamily.BTC;
|
|
207
385
|
this.utxolibName = 'testnet';
|
|
208
386
|
this.explorerUrl = 'https://mempool.space/testnet/tx/';
|
|
387
|
+
// Add our pubkey for our paygo wallet
|
|
388
|
+
this.paygoAddressAttestationPubkey = 'xpub6BKRgmCPX5oQiJgJ6Vq6BF8tDvZhwQki5dVVQohckK2ZJXtxj8K6M9pavLwt9piW33hZz17SWmG8QWsjJ1tHdde2Fs5UA3DFbApCtbdaGKn';
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
class BitcoinPublicSignet extends Testnet {
|
|
392
|
+
constructor() {
|
|
393
|
+
super(...arguments);
|
|
394
|
+
this.name = 'BitcoinPublicSignet';
|
|
395
|
+
this.family = base_1.CoinFamily.BTC;
|
|
396
|
+
this.utxolibName = 'bitcoinPublicSignet';
|
|
397
|
+
this.explorerUrl = 'https://mempool.space/signet/tx/';
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
class BitcoinTestnet4 extends Testnet {
|
|
401
|
+
constructor() {
|
|
402
|
+
super(...arguments);
|
|
403
|
+
this.name = 'BitcoinTestnet4';
|
|
404
|
+
this.family = base_1.CoinFamily.BTC;
|
|
405
|
+
this.utxolibName = 'bitcoinTestnet4';
|
|
406
|
+
this.explorerUrl = 'https://mempool.space/testnet4/tx/';
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
class BitcoinBitGoSignet extends Testnet {
|
|
410
|
+
constructor() {
|
|
411
|
+
super(...arguments);
|
|
412
|
+
this.name = 'BitcoinBitGoSignet';
|
|
413
|
+
this.family = base_1.CoinFamily.BTC;
|
|
414
|
+
this.utxolibName = 'bitcoinBitGoSignet';
|
|
415
|
+
this.explorerUrl = 'https://mempool.space/notanetwork/tx/';
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
class BitcoinStx extends Testnet {
|
|
419
|
+
constructor() {
|
|
420
|
+
super(...arguments);
|
|
421
|
+
this.name = 'BitcoinStx';
|
|
422
|
+
this.family = base_1.CoinFamily.BTC;
|
|
423
|
+
// Stacks regtest uses testnet transaction semantics in utxo-lib.
|
|
424
|
+
this.utxolibName = 'testnet';
|
|
425
|
+
this.explorerUrl = undefined;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
class BitcoinStxPrivate1 extends BitcoinStx {
|
|
429
|
+
constructor() {
|
|
430
|
+
super(...arguments);
|
|
431
|
+
this.name = 'BitcoinStxPrivate1';
|
|
432
|
+
// Stacks private-1 regtest uses testnet transaction semantics in utxo-lib.
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
class BitcoinStxSignet extends Testnet {
|
|
436
|
+
constructor() {
|
|
437
|
+
super(...arguments);
|
|
438
|
+
this.name = 'BitcoinStxSignet';
|
|
439
|
+
this.family = base_1.CoinFamily.BTC;
|
|
440
|
+
// Stacks staking-testnet runs on a private Bitcoin signet (BIP-325) with testnet address encoding.
|
|
441
|
+
this.utxolibName = 'bitcoinPublicSignet';
|
|
442
|
+
this.explorerUrl = undefined;
|
|
209
443
|
}
|
|
210
444
|
}
|
|
211
445
|
class BitcoinCash extends Mainnet {
|
|
@@ -223,7 +457,7 @@ class BitcoinCashTestnet extends Testnet {
|
|
|
223
457
|
this.name = 'BitcoinCashTestnet';
|
|
224
458
|
this.family = base_1.CoinFamily.BCH;
|
|
225
459
|
this.utxolibName = 'bitcoincashTestnet';
|
|
226
|
-
this.explorerUrl = 'https://
|
|
460
|
+
this.explorerUrl = 'https://tbch.loping.net/tx/';
|
|
227
461
|
}
|
|
228
462
|
}
|
|
229
463
|
class BitcoinSV extends Mainnet {
|
|
@@ -316,30 +550,30 @@ class ECashTestnet extends Testnet {
|
|
|
316
550
|
this.explorerUrl = undefined;
|
|
317
551
|
}
|
|
318
552
|
}
|
|
319
|
-
class
|
|
553
|
+
class PolkadotAssetHub extends Mainnet {
|
|
320
554
|
constructor() {
|
|
321
555
|
super(...arguments);
|
|
322
|
-
this.name = '
|
|
556
|
+
this.name = 'PolkadotAssetHub';
|
|
323
557
|
this.family = base_1.CoinFamily.DOT;
|
|
324
|
-
this.explorerUrl = 'https://polkadot.subscan.io/extrinsic/';
|
|
325
|
-
this.specName = '
|
|
326
|
-
this.genesisHash = '
|
|
327
|
-
this.specVersion =
|
|
328
|
-
this.chainName = 'Polkadot';
|
|
329
|
-
this.txVersion =
|
|
558
|
+
this.explorerUrl = 'https://assethub-polkadot.subscan.io/extrinsic/';
|
|
559
|
+
this.specName = 'statemint';
|
|
560
|
+
this.genesisHash = '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f';
|
|
561
|
+
this.specVersion = 1007001;
|
|
562
|
+
this.chainName = 'Polkadot Asset Hub';
|
|
563
|
+
this.txVersion = 15;
|
|
330
564
|
}
|
|
331
565
|
}
|
|
332
|
-
class
|
|
566
|
+
class WestendAssetHub extends Testnet {
|
|
333
567
|
constructor() {
|
|
334
568
|
super(...arguments);
|
|
335
|
-
this.name = '
|
|
569
|
+
this.name = 'WestendAssetHub';
|
|
336
570
|
this.family = base_1.CoinFamily.DOT;
|
|
337
|
-
this.explorerUrl = 'https://westend.subscan.io/extrinsic/';
|
|
338
|
-
this.specName = '
|
|
339
|
-
this.genesisHash = '
|
|
340
|
-
this.specVersion =
|
|
341
|
-
this.chainName = 'Westend';
|
|
342
|
-
this.txVersion =
|
|
571
|
+
this.explorerUrl = 'https://assethub-westend.subscan.io/extrinsic/';
|
|
572
|
+
this.specName = 'westmint';
|
|
573
|
+
this.genesisHash = '0x67f9723393ef76214df0118c34bbbd3dbebc8ed46a10973a8c969d48fe7598c9';
|
|
574
|
+
this.specVersion = 1020000;
|
|
575
|
+
this.chainName = 'Westend Asset Hub';
|
|
576
|
+
this.txVersion = 16;
|
|
343
577
|
}
|
|
344
578
|
}
|
|
345
579
|
class Celo extends Mainnet {
|
|
@@ -350,6 +584,8 @@ class Celo extends Mainnet {
|
|
|
350
584
|
this.explorerUrl = 'https://explorer.celo.org/tx/';
|
|
351
585
|
this.accountExplorerUrl = 'https://explorer.celo.org/address/';
|
|
352
586
|
this.chainId = 42220;
|
|
587
|
+
this.nativeCoinOperationHashPrefix = 'CELO';
|
|
588
|
+
this.tokenOperationHashPrefix = 'CELO-ERC20';
|
|
353
589
|
}
|
|
354
590
|
}
|
|
355
591
|
class CeloTestnet extends Testnet {
|
|
@@ -357,9 +593,57 @@ class CeloTestnet extends Testnet {
|
|
|
357
593
|
super(...arguments);
|
|
358
594
|
this.name = 'CeloTestnet';
|
|
359
595
|
this.family = base_1.CoinFamily.CELO;
|
|
360
|
-
this.explorerUrl = 'https://
|
|
361
|
-
this.accountExplorerUrl = 'https://
|
|
362
|
-
this.chainId =
|
|
596
|
+
this.explorerUrl = 'https://sepolia.celoscan.io/tx/';
|
|
597
|
+
this.accountExplorerUrl = 'https://sepolia.celoscan.io/address/';
|
|
598
|
+
this.chainId = 11142220;
|
|
599
|
+
this.nativeCoinOperationHashPrefix = 'CELO';
|
|
600
|
+
this.tokenOperationHashPrefix = 'CELO-ERC20';
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
class Chiliz extends Mainnet {
|
|
604
|
+
constructor() {
|
|
605
|
+
super(...arguments);
|
|
606
|
+
this.name = 'Chiliz';
|
|
607
|
+
this.family = base_1.CoinFamily.CHILIZ;
|
|
608
|
+
this.explorerUrl = 'https://chiliscan.com/tx/';
|
|
609
|
+
this.accountExplorerUrl = 'https://chiliscan.com/address/';
|
|
610
|
+
this.chainId = 88888;
|
|
611
|
+
this.nativeCoinOperationHashPrefix = '88888';
|
|
612
|
+
this.tokenOperationHashPrefix = '88888-ERC20';
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
class ChilizTestnet extends Testnet {
|
|
616
|
+
constructor() {
|
|
617
|
+
super(...arguments);
|
|
618
|
+
this.name = 'ChilizTestnet';
|
|
619
|
+
this.family = base_1.CoinFamily.CHILIZ;
|
|
620
|
+
this.explorerUrl = 'https://testnet.chiliscan.com/tx/';
|
|
621
|
+
this.accountExplorerUrl = 'https://testnet.chiliscan.com/address/';
|
|
622
|
+
this.chainId = 88882;
|
|
623
|
+
this.nativeCoinOperationHashPrefix = '88882';
|
|
624
|
+
this.tokenOperationHashPrefix = '88882-ERC20';
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
class CodexEth extends Mainnet {
|
|
628
|
+
constructor() {
|
|
629
|
+
super(...arguments);
|
|
630
|
+
this.name = 'Codex Ethereum';
|
|
631
|
+
this.family = base_1.CoinFamily.CODEXETH;
|
|
632
|
+
this.explorerUrl = 'https://explorer.codex.xyz/tx/';
|
|
633
|
+
this.accountExplorerUrl = 'https://explorer.codex.xyz/address/';
|
|
634
|
+
this.chainId = 81224;
|
|
635
|
+
this.nativeCoinOperationHashPrefix = '81224';
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
class CodexEthTestnet extends Testnet {
|
|
639
|
+
constructor() {
|
|
640
|
+
super(...arguments);
|
|
641
|
+
this.name = 'Testnet Codex Ethereum';
|
|
642
|
+
this.family = base_1.CoinFamily.CODEXETH;
|
|
643
|
+
this.explorerUrl = 'https://explorer.codex-stg.xyz/tx/';
|
|
644
|
+
this.accountExplorerUrl = 'https://explorer.codex-stg.xyz/address/';
|
|
645
|
+
this.chainId = 812242;
|
|
646
|
+
this.nativeCoinOperationHashPrefix = '812242';
|
|
363
647
|
}
|
|
364
648
|
}
|
|
365
649
|
// TODO update explorerUrl STLX-1657
|
|
@@ -391,11 +675,23 @@ class Ethereum extends Mainnet {
|
|
|
391
675
|
this.blockExplorerUrl = 'https://etherscan.io/block/';
|
|
392
676
|
// from https://github.com/ethereumjs/ethereumjs-common/blob/a978f630858f6843176bb20b277569785914e899/src/chains/index.ts
|
|
393
677
|
this.chainId = 1;
|
|
394
|
-
this.batcherContractAddress = '
|
|
678
|
+
this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
|
|
395
679
|
this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
|
|
396
680
|
this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
|
|
681
|
+
this.walletV2ForwarderFactoryAddress = '0x29Ef46035e9fA3D570c598d3266424Ca11413b0C';
|
|
682
|
+
this.walletV2ForwarderImplementationAddress = '0x5397d0869aBA0D55e96D5716d383F6e1d8695ed7';
|
|
683
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
684
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
397
685
|
this.nativeCoinOperationHashPrefix = 'ETHER';
|
|
398
686
|
this.tokenOperationHashPrefix = 'ERC20';
|
|
687
|
+
this.walletFactoryAddress = '0x9a0d63911620f7fc15c3c020edbe4d7267ea3e4d';
|
|
688
|
+
this.walletImplementationAddress = '0xe8e847cf573fc8ed75621660a36affd18c543d7e';
|
|
689
|
+
this.walletV2FactoryAddress = '0xa7198f48C58E91f01317E70Cd24C5Cce475c1555';
|
|
690
|
+
this.walletV2ImplementationAddress = '0xe5DcdC13B628c2df813DB1080367E929c1507Ca0';
|
|
691
|
+
this.walletV4FactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
692
|
+
this.walletV4ImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
693
|
+
// https://github.com/zama-ai/sdk/blob/prerelease/packages/sdk/src/chains/configs.ts#L17
|
|
694
|
+
this.zamaAclContractAddress = '0xca2e8f1f656cd25c01f05d0b243ab1ecd4a8ffb6';
|
|
399
695
|
}
|
|
400
696
|
}
|
|
401
697
|
class Ethereum2 extends Mainnet {
|
|
@@ -422,6 +718,28 @@ class EthereumW extends Mainnet {
|
|
|
422
718
|
this.tokenOperationHashPrefix = 'ERC20';
|
|
423
719
|
}
|
|
424
720
|
}
|
|
721
|
+
class XtzEvm extends Mainnet {
|
|
722
|
+
constructor() {
|
|
723
|
+
super(...arguments);
|
|
724
|
+
this.name = 'Etherlink';
|
|
725
|
+
this.family = base_1.CoinFamily.XTZEVM;
|
|
726
|
+
this.explorerUrl = 'https://explorer.etherlink.com/tx/';
|
|
727
|
+
this.accountExplorerUrl = 'https://explorer.etherlink.com/address/';
|
|
728
|
+
this.chainId = 42793;
|
|
729
|
+
this.nativeCoinOperationHashPrefix = '42793';
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
class XtzEvmTestnet extends Testnet {
|
|
733
|
+
constructor() {
|
|
734
|
+
super(...arguments);
|
|
735
|
+
this.name = 'Testnet Etherlink';
|
|
736
|
+
this.family = base_1.CoinFamily.XTZEVM;
|
|
737
|
+
this.explorerUrl = 'https://shadownet.explorer.etherlink.com/tx/';
|
|
738
|
+
this.accountExplorerUrl = 'https://shadownet.explorer.etherlink.com/address/';
|
|
739
|
+
this.chainId = 127823;
|
|
740
|
+
this.nativeCoinOperationHashPrefix = '127823';
|
|
741
|
+
}
|
|
742
|
+
}
|
|
425
743
|
class Pyrmont extends Testnet {
|
|
426
744
|
constructor() {
|
|
427
745
|
super(...arguments);
|
|
@@ -469,16 +787,62 @@ class Holesky extends Testnet {
|
|
|
469
787
|
super(...arguments);
|
|
470
788
|
this.name = 'Holesky';
|
|
471
789
|
this.family = base_1.CoinFamily.ETH;
|
|
472
|
-
this.explorerUrl = 'https://holesky.
|
|
473
|
-
this.accountExplorerUrl = 'https://holesky.
|
|
474
|
-
this.blockExplorerUrl = 'https://holesky.
|
|
790
|
+
this.explorerUrl = 'https://holesky.etherscan.io/tx/';
|
|
791
|
+
this.accountExplorerUrl = 'https://holesky.etherscan.io/address/';
|
|
792
|
+
this.blockExplorerUrl = 'https://holesky.etherscan.io/block/';
|
|
475
793
|
// https://chainlist.org/chain/17000
|
|
476
794
|
this.chainId = 17000;
|
|
477
|
-
this.batcherContractAddress = '
|
|
478
|
-
this.forwarderFactoryAddress = '
|
|
479
|
-
this.forwarderImplementationAddress = '
|
|
795
|
+
this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
|
|
796
|
+
this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
|
|
797
|
+
this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
|
|
798
|
+
this.nativeCoinOperationHashPrefix = 'ETHER';
|
|
799
|
+
this.tokenOperationHashPrefix = 'ERC20';
|
|
800
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
801
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
class Hoodi extends Testnet {
|
|
805
|
+
constructor() {
|
|
806
|
+
super(...arguments);
|
|
807
|
+
this.name = 'Hoodi';
|
|
808
|
+
this.family = base_1.CoinFamily.ETH;
|
|
809
|
+
this.explorerUrl = 'https://hoodi.etherscan.io/tx/';
|
|
810
|
+
this.accountExplorerUrl = 'https://hoodi.etherscan.io/address/';
|
|
811
|
+
this.blockExplorerUrl = 'https://hoodi.etherscan.io/block/';
|
|
812
|
+
// https://chainlist.org/chain/560048
|
|
813
|
+
this.chainId = 560048;
|
|
814
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
815
|
+
this.forwarderFactoryAddress = '0x0e2874d6824fae4f61e446012317a9b86384bd8e';
|
|
816
|
+
this.forwarderImplementationAddress = '0x7441f20a59be97011842404b9aefd8d85fd81aa6';
|
|
817
|
+
this.walletV2ForwarderFactoryAddress = '0x0e2874d6824fae4f61e446012317a9b86384bd8e';
|
|
818
|
+
this.walletV2ForwarderImplementationAddress = '0x7441f20a59be97011842404b9aefd8d85fd81aa6';
|
|
819
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
820
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
821
|
+
this.walletFactoryAddress = '0xf514cd80a41bde2e20033b251f1f74633caf3e59';
|
|
822
|
+
this.walletImplementationAddress = '0x6bb86b3b27b092bf8a285080fe7d58acdf841041';
|
|
823
|
+
this.walletV2FactoryAddress = '0xf514cd80a41bde2e20033b251f1f74633caf3e59';
|
|
824
|
+
this.walletV2ImplementationAddress = '0x6bb86b3b27b092bf8a285080fe7d58acdf841041';
|
|
825
|
+
this.walletV4FactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
826
|
+
this.walletV4ImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
827
|
+
this.nativeCoinOperationHashPrefix = 'ETHER';
|
|
828
|
+
this.tokenOperationHashPrefix = 'ERC20';
|
|
829
|
+
// https://github.com/zama-ai/sdk/blob/prerelease/packages/sdk/src/chains/configs.ts#L52
|
|
830
|
+
this.zamaAclContractAddress = '0x6d3faf6f86e1ff9f3b0831dda920aba1cbd5bd68';
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
class Sepolia extends Testnet {
|
|
834
|
+
constructor() {
|
|
835
|
+
super(...arguments);
|
|
836
|
+
this.name = 'Sepolia';
|
|
837
|
+
this.family = base_1.CoinFamily.ETH;
|
|
838
|
+
this.explorerUrl = 'https://sepolia.etherscan.io/tx/';
|
|
839
|
+
this.accountExplorerUrl = 'https://sepolia.etherscan.io/address/';
|
|
840
|
+
this.blockExplorerUrl = 'https://sepolia.etherscan.io/block/';
|
|
841
|
+
// https://chainlist.org/chain/11155111
|
|
842
|
+
this.chainId = 11155111;
|
|
480
843
|
this.nativeCoinOperationHashPrefix = 'ETHER';
|
|
481
844
|
this.tokenOperationHashPrefix = 'ERC20';
|
|
845
|
+
// TODO: [CECHO-1729] add batcher/forwarder/wallet contract addresses once deployed on Sepolia
|
|
482
846
|
}
|
|
483
847
|
}
|
|
484
848
|
class EthereumClassic extends Mainnet {
|
|
@@ -490,6 +854,8 @@ class EthereumClassic extends Mainnet {
|
|
|
490
854
|
this.accountExplorerUrl = 'https://blockscout.com/etc/mainnet/address/';
|
|
491
855
|
// from https://chainid.network/chains/
|
|
492
856
|
this.chainId = 61;
|
|
857
|
+
this.nativeCoinOperationHashPrefix = 'ETC';
|
|
858
|
+
this.tokenOperationHashPrefix = 'ETC-ERC20';
|
|
493
859
|
}
|
|
494
860
|
}
|
|
495
861
|
class EthereumClassicTestnet extends Testnet {
|
|
@@ -501,6 +867,8 @@ class EthereumClassicTestnet extends Testnet {
|
|
|
501
867
|
this.accountExplorerUrl = 'https://blockscout.com/etc/mordor/address/';
|
|
502
868
|
// from https://chainid.network/chains/
|
|
503
869
|
this.chainId = 63;
|
|
870
|
+
this.nativeCoinOperationHashPrefix = 'ETC';
|
|
871
|
+
this.tokenOperationHashPrefix = 'ETC-ERC20';
|
|
504
872
|
}
|
|
505
873
|
}
|
|
506
874
|
class Eos extends Mainnet {
|
|
@@ -524,7 +892,7 @@ class Hedera extends Mainnet {
|
|
|
524
892
|
super(...arguments);
|
|
525
893
|
this.name = 'Hedera';
|
|
526
894
|
this.family = base_1.CoinFamily.HBAR;
|
|
527
|
-
this.explorerUrl = 'https://
|
|
895
|
+
this.explorerUrl = 'https://hashscan.io/mainnet/transaction/';
|
|
528
896
|
}
|
|
529
897
|
}
|
|
530
898
|
class HederaTestnet extends Testnet {
|
|
@@ -532,7 +900,7 @@ class HederaTestnet extends Testnet {
|
|
|
532
900
|
super(...arguments);
|
|
533
901
|
this.name = 'HederaTestnet';
|
|
534
902
|
this.family = base_1.CoinFamily.HBAR;
|
|
535
|
-
this.explorerUrl = 'https://
|
|
903
|
+
this.explorerUrl = 'https://testnet.dragonglass.me/hedera/search?q=';
|
|
536
904
|
}
|
|
537
905
|
}
|
|
538
906
|
class Litecoin extends Mainnet {
|
|
@@ -541,7 +909,7 @@ class Litecoin extends Mainnet {
|
|
|
541
909
|
this.name = 'Litecoin';
|
|
542
910
|
this.family = base_1.CoinFamily.LTC;
|
|
543
911
|
this.utxolibName = 'litecoin';
|
|
544
|
-
this.explorerUrl = 'https://
|
|
912
|
+
this.explorerUrl = 'https://litecoinspace.org/tx/';
|
|
545
913
|
}
|
|
546
914
|
}
|
|
547
915
|
class LitecoinTestnet extends Testnet {
|
|
@@ -577,6 +945,8 @@ class Rbtc extends Mainnet {
|
|
|
577
945
|
this.explorerUrl = 'https://explorer.rsk.co/tx/';
|
|
578
946
|
this.accountExplorerUrl = 'https://explorer.rsk.co/address/';
|
|
579
947
|
this.chainId = 30;
|
|
948
|
+
this.nativeCoinOperationHashPrefix = 'RSK';
|
|
949
|
+
this.tokenOperationHashPrefix = 'RSK-ERC20';
|
|
580
950
|
}
|
|
581
951
|
}
|
|
582
952
|
class RbtcTestnet extends Testnet {
|
|
@@ -587,6 +957,8 @@ class RbtcTestnet extends Testnet {
|
|
|
587
957
|
this.explorerUrl = 'https://explorer.testnet.rsk.co/tx/';
|
|
588
958
|
this.accountExplorerUrl = 'https://explorer.testnet.rsk.co/address/';
|
|
589
959
|
this.chainId = 31;
|
|
960
|
+
this.nativeCoinOperationHashPrefix = 'RSK';
|
|
961
|
+
this.tokenOperationHashPrefix = 'RSK-ERC20';
|
|
590
962
|
}
|
|
591
963
|
}
|
|
592
964
|
class Stellar extends Mainnet {
|
|
@@ -621,12 +993,31 @@ class SolTestnet extends Testnet {
|
|
|
621
993
|
this.explorerUrl = 'https://explorer.solana.com/tx/?cluster=devnet';
|
|
622
994
|
}
|
|
623
995
|
}
|
|
996
|
+
class StarknetMainnet extends Mainnet {
|
|
997
|
+
constructor() {
|
|
998
|
+
super(...arguments);
|
|
999
|
+
this.name = 'Starknet';
|
|
1000
|
+
this.family = base_1.CoinFamily.STARKNET;
|
|
1001
|
+
this.explorerUrl = 'https://voyager.online/tx/';
|
|
1002
|
+
this.accountExplorerUrl = 'https://voyager.online/contract/';
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
class StarknetTestnet extends Testnet {
|
|
1006
|
+
constructor() {
|
|
1007
|
+
super(...arguments);
|
|
1008
|
+
this.name = 'Testnet Starknet';
|
|
1009
|
+
this.family = base_1.CoinFamily.STARKNET;
|
|
1010
|
+
this.explorerUrl = 'https://sepolia.voyager.online/tx/';
|
|
1011
|
+
this.accountExplorerUrl = 'https://sepolia.voyager.online/contract/';
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
624
1014
|
class Sui extends Mainnet {
|
|
625
1015
|
constructor() {
|
|
626
1016
|
super(...arguments);
|
|
627
1017
|
this.name = 'Sui';
|
|
628
1018
|
this.family = base_1.CoinFamily.SUI;
|
|
629
1019
|
this.explorerUrl = 'https://explorer.sui.io/txblock/?network=mainnet';
|
|
1020
|
+
this.accountExplorerUrl = 'https://explorer.sui.io/address/?network=mainnet';
|
|
630
1021
|
}
|
|
631
1022
|
}
|
|
632
1023
|
class SuiTestnet extends Testnet {
|
|
@@ -635,6 +1026,7 @@ class SuiTestnet extends Testnet {
|
|
|
635
1026
|
this.name = 'Testnet Sui';
|
|
636
1027
|
this.family = base_1.CoinFamily.SUI;
|
|
637
1028
|
this.explorerUrl = 'https://explorer.sui.io/txblock/?network=testnet';
|
|
1029
|
+
this.accountExplorerUrl = 'https://explorer.sui.io/address/?network=testnet';
|
|
638
1030
|
}
|
|
639
1031
|
}
|
|
640
1032
|
class Atom extends Mainnet {
|
|
@@ -642,7 +1034,8 @@ class Atom extends Mainnet {
|
|
|
642
1034
|
super(...arguments);
|
|
643
1035
|
this.name = 'Cosmos Hub ATOM';
|
|
644
1036
|
this.family = base_1.CoinFamily.ATOM;
|
|
645
|
-
this.explorerUrl = 'https://
|
|
1037
|
+
this.explorerUrl = 'https://www.mintscan.io/cosmos/tx/';
|
|
1038
|
+
this.addressPrefix = 'cosmos';
|
|
646
1039
|
}
|
|
647
1040
|
}
|
|
648
1041
|
class AtomTestnet extends Testnet {
|
|
@@ -650,7 +1043,8 @@ class AtomTestnet extends Testnet {
|
|
|
650
1043
|
super(...arguments);
|
|
651
1044
|
this.name = 'Testnet Cosmos Hub ATOM';
|
|
652
1045
|
this.family = base_1.CoinFamily.ATOM;
|
|
653
|
-
this.explorerUrl = 'https://explorer.
|
|
1046
|
+
this.explorerUrl = 'https://explorer.polypore.xyz/provider/tx/';
|
|
1047
|
+
this.addressPrefix = 'cosmos';
|
|
654
1048
|
}
|
|
655
1049
|
}
|
|
656
1050
|
class Osmo extends Mainnet {
|
|
@@ -659,6 +1053,7 @@ class Osmo extends Mainnet {
|
|
|
659
1053
|
this.name = 'Osmosis';
|
|
660
1054
|
this.family = base_1.CoinFamily.OSMO;
|
|
661
1055
|
this.explorerUrl = 'https://www.mintscan.io/osmosis/txs/';
|
|
1056
|
+
this.addressPrefix = 'osmo';
|
|
662
1057
|
}
|
|
663
1058
|
}
|
|
664
1059
|
class OsmoTestnet extends Testnet {
|
|
@@ -667,6 +1062,7 @@ class OsmoTestnet extends Testnet {
|
|
|
667
1062
|
this.name = 'Testnet Osmosis';
|
|
668
1063
|
this.family = base_1.CoinFamily.OSMO;
|
|
669
1064
|
this.explorerUrl = 'https://testnet.osmosis.explorers.guru/transaction/';
|
|
1065
|
+
this.addressPrefix = 'osmo';
|
|
670
1066
|
}
|
|
671
1067
|
}
|
|
672
1068
|
class Tia extends Mainnet {
|
|
@@ -675,6 +1071,7 @@ class Tia extends Mainnet {
|
|
|
675
1071
|
this.name = 'Celestia';
|
|
676
1072
|
this.family = base_1.CoinFamily.TIA;
|
|
677
1073
|
this.explorerUrl = 'https://www.mintscan.io/celestia/tx/';
|
|
1074
|
+
this.addressPrefix = 'celestia';
|
|
678
1075
|
}
|
|
679
1076
|
}
|
|
680
1077
|
class TiaTestnet extends Testnet {
|
|
@@ -682,7 +1079,8 @@ class TiaTestnet extends Testnet {
|
|
|
682
1079
|
super(...arguments);
|
|
683
1080
|
this.name = 'Testnet Celestia';
|
|
684
1081
|
this.family = base_1.CoinFamily.TIA;
|
|
685
|
-
this.explorerUrl = 'https://testnet.
|
|
1082
|
+
this.explorerUrl = 'https://testnet.celestia.explorers.guru/transaction/';
|
|
1083
|
+
this.addressPrefix = 'celestia';
|
|
686
1084
|
}
|
|
687
1085
|
}
|
|
688
1086
|
class Hash extends Mainnet {
|
|
@@ -691,6 +1089,7 @@ class Hash extends Mainnet {
|
|
|
691
1089
|
this.name = 'Provenance';
|
|
692
1090
|
this.family = base_1.CoinFamily.HASH;
|
|
693
1091
|
this.explorerUrl = 'https://explorer.provenance.io/tx/';
|
|
1092
|
+
this.addressPrefix = 'pb';
|
|
694
1093
|
}
|
|
695
1094
|
}
|
|
696
1095
|
class HashTestnet extends Testnet {
|
|
@@ -699,6 +1098,7 @@ class HashTestnet extends Testnet {
|
|
|
699
1098
|
this.name = 'Testnet Provenance';
|
|
700
1099
|
this.family = base_1.CoinFamily.HASH;
|
|
701
1100
|
this.explorerUrl = 'https://explorer.test.provenance.io/tx/';
|
|
1101
|
+
this.addressPrefix = 'tp';
|
|
702
1102
|
}
|
|
703
1103
|
}
|
|
704
1104
|
class Bld extends Mainnet {
|
|
@@ -707,6 +1107,7 @@ class Bld extends Mainnet {
|
|
|
707
1107
|
this.name = 'Agoric';
|
|
708
1108
|
this.family = base_1.CoinFamily.BLD;
|
|
709
1109
|
this.explorerUrl = 'https://bigdipper.live/agoric/transactions/';
|
|
1110
|
+
this.addressPrefix = 'agoric';
|
|
710
1111
|
}
|
|
711
1112
|
}
|
|
712
1113
|
class BldTestnet extends Testnet {
|
|
@@ -715,6 +1116,7 @@ class BldTestnet extends Testnet {
|
|
|
715
1116
|
this.name = 'Testnet Agoric';
|
|
716
1117
|
this.family = base_1.CoinFamily.BLD;
|
|
717
1118
|
this.explorerUrl = 'https://emerynet.explorer.agoric.net/agoric/tx/';
|
|
1119
|
+
this.addressPrefix = 'agoric';
|
|
718
1120
|
}
|
|
719
1121
|
}
|
|
720
1122
|
class Sei extends Mainnet {
|
|
@@ -722,8 +1124,8 @@ class Sei extends Mainnet {
|
|
|
722
1124
|
super(...arguments);
|
|
723
1125
|
this.name = 'Sei';
|
|
724
1126
|
this.family = base_1.CoinFamily.SEI;
|
|
725
|
-
|
|
726
|
-
this.
|
|
1127
|
+
this.explorerUrl = 'https://mintscan.io/sei/tx/';
|
|
1128
|
+
this.addressPrefix = 'sei';
|
|
727
1129
|
}
|
|
728
1130
|
}
|
|
729
1131
|
class SeiTestnet extends Testnet {
|
|
@@ -731,7 +1133,8 @@ class SeiTestnet extends Testnet {
|
|
|
731
1133
|
super(...arguments);
|
|
732
1134
|
this.name = 'Testnet Sei';
|
|
733
1135
|
this.family = base_1.CoinFamily.SEI;
|
|
734
|
-
this.explorerUrl = 'https://
|
|
1136
|
+
this.explorerUrl = 'https://testnet.seitrace.com/tx/';
|
|
1137
|
+
this.addressPrefix = 'sei';
|
|
735
1138
|
}
|
|
736
1139
|
}
|
|
737
1140
|
class Zeta extends Mainnet {
|
|
@@ -739,8 +1142,8 @@ class Zeta extends Mainnet {
|
|
|
739
1142
|
super(...arguments);
|
|
740
1143
|
this.name = 'Zeta';
|
|
741
1144
|
this.family = base_1.CoinFamily.ZETA;
|
|
742
|
-
|
|
743
|
-
this.
|
|
1145
|
+
this.explorerUrl = 'https://explorer.zetachain.com/cosmos/tx/';
|
|
1146
|
+
this.addressPrefix = 'zeta';
|
|
744
1147
|
}
|
|
745
1148
|
}
|
|
746
1149
|
class ZetaTestnet extends Testnet {
|
|
@@ -748,7 +1151,8 @@ class ZetaTestnet extends Testnet {
|
|
|
748
1151
|
super(...arguments);
|
|
749
1152
|
this.name = 'Testnet Zeta';
|
|
750
1153
|
this.family = base_1.CoinFamily.ZETA;
|
|
751
|
-
this.explorerUrl = 'https://zetachain.
|
|
1154
|
+
this.explorerUrl = 'https://athens.explorer.zetachain.com/cosmos/tx/';
|
|
1155
|
+
this.addressPrefix = 'zeta';
|
|
752
1156
|
}
|
|
753
1157
|
}
|
|
754
1158
|
class Injective extends Mainnet {
|
|
@@ -756,7 +1160,8 @@ class Injective extends Mainnet {
|
|
|
756
1160
|
super(...arguments);
|
|
757
1161
|
this.name = 'Injective';
|
|
758
1162
|
this.family = base_1.CoinFamily.INJECTIVE;
|
|
759
|
-
this.explorerUrl = 'https://
|
|
1163
|
+
this.explorerUrl = 'https://www.mintscan.io/injective/tx/';
|
|
1164
|
+
this.addressPrefix = 'inj';
|
|
760
1165
|
}
|
|
761
1166
|
}
|
|
762
1167
|
class InjectiveTestnet extends Testnet {
|
|
@@ -765,70 +1170,231 @@ class InjectiveTestnet extends Testnet {
|
|
|
765
1170
|
this.name = 'InjectiveTestnet';
|
|
766
1171
|
this.family = base_1.CoinFamily.INJECTIVE;
|
|
767
1172
|
this.explorerUrl = 'https://testnet.explorer.injective.network/transaction/';
|
|
1173
|
+
this.addressPrefix = 'inj';
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
class KavaCosmos extends Mainnet {
|
|
1177
|
+
constructor() {
|
|
1178
|
+
super(...arguments);
|
|
1179
|
+
this.name = 'KavaCosmos';
|
|
1180
|
+
this.family = base_1.CoinFamily.KAVACOSMOS;
|
|
1181
|
+
this.explorerUrl = 'https://www.mintscan.io/kava/tx/';
|
|
1182
|
+
this.addressPrefix = 'kava';
|
|
1183
|
+
this.validatorPrefix = 'kavavaloper';
|
|
1184
|
+
this.denom = 'ukava';
|
|
1185
|
+
this.gasAmount = '5000';
|
|
1186
|
+
this.gasLimit = 200000;
|
|
1187
|
+
this.validDenoms = ['kava', 'ukava'];
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
class KavaCosmosTestnet extends Testnet {
|
|
1191
|
+
constructor() {
|
|
1192
|
+
super(...arguments);
|
|
1193
|
+
this.name = 'KavaCosmosTestnet';
|
|
1194
|
+
this.family = base_1.CoinFamily.KAVACOSMOS;
|
|
1195
|
+
this.explorerUrl = 'https://www.mintscan.io/kava-testnet/tx/';
|
|
1196
|
+
this.addressPrefix = 'kava';
|
|
1197
|
+
this.validatorPrefix = 'kavavaloper';
|
|
1198
|
+
this.denom = 'ukava';
|
|
1199
|
+
this.gasAmount = '5000';
|
|
1200
|
+
this.gasLimit = 200000;
|
|
1201
|
+
this.validDenoms = ['kava', 'ukava'];
|
|
768
1202
|
}
|
|
769
1203
|
}
|
|
770
|
-
class
|
|
1204
|
+
class Dydx extends Mainnet {
|
|
771
1205
|
constructor() {
|
|
772
1206
|
super(...arguments);
|
|
773
|
-
this.name = '
|
|
774
|
-
this.family = base_1.CoinFamily.
|
|
775
|
-
this.explorerUrl = 'https://www.mintscan.io/
|
|
1207
|
+
this.name = 'Dydx';
|
|
1208
|
+
this.family = base_1.CoinFamily.DYDXCOSMOS;
|
|
1209
|
+
this.explorerUrl = 'https://www.mintscan.io/dydx/tx/';
|
|
1210
|
+
this.addressPrefix = 'dydx';
|
|
1211
|
+
this.validatorPrefix = 'dydxvaloper';
|
|
1212
|
+
this.denom = 'adydx';
|
|
1213
|
+
this.gasAmount = '5000000000000000';
|
|
1214
|
+
this.gasLimit = 200000;
|
|
1215
|
+
this.validDenoms = ['adydx'];
|
|
776
1216
|
}
|
|
777
1217
|
}
|
|
778
|
-
class
|
|
1218
|
+
class DydxTestnet extends Testnet {
|
|
779
1219
|
constructor() {
|
|
780
1220
|
super(...arguments);
|
|
781
|
-
this.name = '
|
|
782
|
-
this.family = base_1.CoinFamily.
|
|
783
|
-
this.explorerUrl = 'https://
|
|
1221
|
+
this.name = 'DydxTestnet';
|
|
1222
|
+
this.family = base_1.CoinFamily.DYDXCOSMOS;
|
|
1223
|
+
this.explorerUrl = 'https://www.mintscan.io/dydx-testnet/tx/';
|
|
1224
|
+
this.addressPrefix = 'dydx';
|
|
1225
|
+
this.validatorPrefix = 'dydxvaloper';
|
|
1226
|
+
this.denom = 'adv4tnt';
|
|
1227
|
+
this.gasAmount = '5000000000000000';
|
|
1228
|
+
this.gasLimit = 200000;
|
|
1229
|
+
this.validDenoms = ['adv4tnt'];
|
|
784
1230
|
}
|
|
785
1231
|
}
|
|
786
1232
|
class Ton extends Mainnet {
|
|
787
1233
|
constructor() {
|
|
788
1234
|
super(...arguments);
|
|
789
|
-
this.name = '
|
|
1235
|
+
this.name = 'Gram';
|
|
790
1236
|
this.family = base_1.CoinFamily.TON;
|
|
791
|
-
this.explorerUrl = 'https://
|
|
1237
|
+
this.explorerUrl = 'https://tonscan.org/tx/';
|
|
792
1238
|
}
|
|
793
1239
|
}
|
|
794
1240
|
class TonTestnet extends Testnet {
|
|
795
1241
|
constructor() {
|
|
796
1242
|
super(...arguments);
|
|
797
|
-
this.name = 'Testnet
|
|
1243
|
+
this.name = 'Testnet Gram';
|
|
798
1244
|
this.family = base_1.CoinFamily.TON;
|
|
799
|
-
this.explorerUrl = 'https://
|
|
1245
|
+
this.explorerUrl = 'https://testnet.tonscan.org/tx/';
|
|
800
1246
|
}
|
|
801
1247
|
}
|
|
802
1248
|
class Coreum extends Mainnet {
|
|
803
1249
|
constructor() {
|
|
804
1250
|
super(...arguments);
|
|
805
|
-
this.name = '
|
|
1251
|
+
this.name = 'TX';
|
|
806
1252
|
this.family = base_1.CoinFamily.COREUM;
|
|
807
|
-
this.explorerUrl = 'https://explorer.
|
|
1253
|
+
this.explorerUrl = 'https://explorer.tx.org/tx/transactions/';
|
|
1254
|
+
this.addressPrefix = 'core';
|
|
808
1255
|
}
|
|
809
1256
|
}
|
|
810
1257
|
class CoreumTestnet extends Testnet {
|
|
811
1258
|
constructor() {
|
|
812
1259
|
super(...arguments);
|
|
813
|
-
this.name = '
|
|
1260
|
+
this.name = 'Testnet TX';
|
|
814
1261
|
this.family = base_1.CoinFamily.COREUM;
|
|
815
|
-
this.explorerUrl = 'https://explorer.testnet-1.
|
|
1262
|
+
this.explorerUrl = 'https://explorer.testnet-1.tx.org/tx/transactions/';
|
|
1263
|
+
this.addressPrefix = 'testcore';
|
|
816
1264
|
}
|
|
817
1265
|
}
|
|
818
|
-
class
|
|
1266
|
+
class Rune extends Mainnet {
|
|
819
1267
|
constructor() {
|
|
820
1268
|
super(...arguments);
|
|
821
|
-
this.name = '
|
|
822
|
-
this.family = base_1.CoinFamily.
|
|
823
|
-
this.explorerUrl =
|
|
1269
|
+
this.name = 'Rune';
|
|
1270
|
+
this.family = base_1.CoinFamily.THOR;
|
|
1271
|
+
this.explorerUrl = 'https://runescan.io/tx/';
|
|
1272
|
+
this.addressPrefix = 'thor';
|
|
824
1273
|
}
|
|
825
1274
|
}
|
|
826
|
-
class
|
|
1275
|
+
class RuneTestNet extends Testnet {
|
|
827
1276
|
constructor() {
|
|
828
1277
|
super(...arguments);
|
|
829
|
-
this.name = '
|
|
830
|
-
this.family = base_1.CoinFamily.
|
|
831
|
-
this.explorerUrl =
|
|
1278
|
+
this.name = 'RuneTestNet';
|
|
1279
|
+
this.family = base_1.CoinFamily.THOR;
|
|
1280
|
+
this.explorerUrl = 'https://runescan.io/tx/?network=stagenet';
|
|
1281
|
+
this.addressPrefix = 'sthor';
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
class Baby extends Mainnet {
|
|
1285
|
+
constructor() {
|
|
1286
|
+
super(...arguments);
|
|
1287
|
+
this.name = 'Babylon';
|
|
1288
|
+
this.family = base_1.CoinFamily.BABY;
|
|
1289
|
+
this.explorerUrl = 'https://www.mintscan.io/babylon/tx/';
|
|
1290
|
+
this.addressPrefix = 'bbn';
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1293
|
+
class BabyTestnet extends Testnet {
|
|
1294
|
+
constructor() {
|
|
1295
|
+
super(...arguments);
|
|
1296
|
+
this.name = 'Testnet Babylon';
|
|
1297
|
+
this.family = base_1.CoinFamily.BABY;
|
|
1298
|
+
this.explorerUrl = 'https://www.mintscan.io/babylon-testnet/tx/';
|
|
1299
|
+
this.addressPrefix = 'bbn';
|
|
1300
|
+
}
|
|
1301
|
+
}
|
|
1302
|
+
class Mantra extends Mainnet {
|
|
1303
|
+
constructor() {
|
|
1304
|
+
super(...arguments);
|
|
1305
|
+
this.name = 'Mantra';
|
|
1306
|
+
this.family = base_1.CoinFamily.MANTRA;
|
|
1307
|
+
this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-1/tx/';
|
|
1308
|
+
this.addressPrefix = 'mantra';
|
|
1309
|
+
this.validatorPrefix = 'mantravaloper';
|
|
1310
|
+
this.denom = 'uom';
|
|
1311
|
+
this.gasAmount = '8000';
|
|
1312
|
+
this.gasLimit = 200000;
|
|
1313
|
+
this.validDenoms = ['om', 'uom'];
|
|
1314
|
+
}
|
|
1315
|
+
}
|
|
1316
|
+
class MantraTestnet extends Testnet {
|
|
1317
|
+
constructor() {
|
|
1318
|
+
super(...arguments);
|
|
1319
|
+
this.name = 'Testnet Mantra';
|
|
1320
|
+
this.family = base_1.CoinFamily.MANTRA;
|
|
1321
|
+
this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-Dukong/tx/';
|
|
1322
|
+
this.addressPrefix = 'mantra';
|
|
1323
|
+
this.validatorPrefix = 'mantravaloper';
|
|
1324
|
+
this.denom = 'uom';
|
|
1325
|
+
this.gasAmount = '8000';
|
|
1326
|
+
this.gasLimit = 200000;
|
|
1327
|
+
this.validDenoms = ['om', 'uom'];
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
class Cronos extends Mainnet {
|
|
1331
|
+
constructor() {
|
|
1332
|
+
super(...arguments);
|
|
1333
|
+
this.name = 'Cronos POS';
|
|
1334
|
+
this.family = base_1.CoinFamily.CRONOS;
|
|
1335
|
+
this.explorerUrl = 'https://cronos-pos.org/explorer/tx/';
|
|
1336
|
+
this.addressPrefix = 'cro';
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
class CronosTestnet extends Testnet {
|
|
1340
|
+
constructor() {
|
|
1341
|
+
super(...arguments);
|
|
1342
|
+
this.name = 'Testnet Cronos POS';
|
|
1343
|
+
this.family = base_1.CoinFamily.CRONOS;
|
|
1344
|
+
this.explorerUrl = 'https://cronos-pos.org/explorer/croeseid4/tx/';
|
|
1345
|
+
this.addressPrefix = 'tcro';
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
class FetchAi extends Mainnet {
|
|
1349
|
+
constructor() {
|
|
1350
|
+
super(...arguments);
|
|
1351
|
+
this.name = 'Fetch';
|
|
1352
|
+
this.family = base_1.CoinFamily.FETCHAI;
|
|
1353
|
+
this.explorerUrl = 'https://www.mintscan.io/fetchai';
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
class FetchAiTestnet extends Testnet {
|
|
1357
|
+
constructor() {
|
|
1358
|
+
super(...arguments);
|
|
1359
|
+
this.name = 'Testnet Fetch';
|
|
1360
|
+
this.family = base_1.CoinFamily.FETCHAI;
|
|
1361
|
+
this.explorerUrl = 'https://explore-eridanus-1.fetch.ai/';
|
|
1362
|
+
}
|
|
1363
|
+
}
|
|
1364
|
+
class Initia extends Mainnet {
|
|
1365
|
+
constructor() {
|
|
1366
|
+
super(...arguments);
|
|
1367
|
+
this.name = 'Initia';
|
|
1368
|
+
this.family = base_1.CoinFamily.INITIA;
|
|
1369
|
+
this.explorerUrl = 'https://scan.initia.xyz/interwoven-1/txs/';
|
|
1370
|
+
this.addressPrefix = 'init';
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
class InitiaTestnet extends Testnet {
|
|
1374
|
+
constructor() {
|
|
1375
|
+
super(...arguments);
|
|
1376
|
+
this.name = 'Testnet Initia';
|
|
1377
|
+
this.family = base_1.CoinFamily.INITIA;
|
|
1378
|
+
this.explorerUrl = 'https://scan.testnet.initia.xyz/initiation-2/txs/';
|
|
1379
|
+
this.addressPrefix = 'init';
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
class Asi extends Mainnet {
|
|
1383
|
+
constructor() {
|
|
1384
|
+
super(...arguments);
|
|
1385
|
+
this.name = 'Fetch Native';
|
|
1386
|
+
this.family = base_1.CoinFamily.ASI;
|
|
1387
|
+
this.explorerUrl = 'https://companion.fetch.ai/fetchhub-4/transactions/';
|
|
1388
|
+
this.addressPrefix = 'fetch';
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
class AsiTestnet extends Testnet {
|
|
1392
|
+
constructor() {
|
|
1393
|
+
super(...arguments);
|
|
1394
|
+
this.name = 'Testnet Fetch Native';
|
|
1395
|
+
this.family = base_1.CoinFamily.ASI;
|
|
1396
|
+
this.explorerUrl = 'https://companion.fetch.ai/dorado-1/transactions/';
|
|
1397
|
+
this.addressPrefix = 'fetch';
|
|
832
1398
|
}
|
|
833
1399
|
}
|
|
834
1400
|
class Islm extends Mainnet {
|
|
@@ -837,6 +1403,7 @@ class Islm extends Mainnet {
|
|
|
837
1403
|
this.name = 'Haqq';
|
|
838
1404
|
this.family = base_1.CoinFamily.ISLM;
|
|
839
1405
|
this.explorerUrl = 'https://ping.pub/haqq/tx/';
|
|
1406
|
+
this.addressPrefix = 'haqq';
|
|
840
1407
|
}
|
|
841
1408
|
}
|
|
842
1409
|
class IslmTestnet extends Testnet {
|
|
@@ -845,6 +1412,7 @@ class IslmTestnet extends Testnet {
|
|
|
845
1412
|
this.name = 'HaqqTestnet';
|
|
846
1413
|
this.family = base_1.CoinFamily.ISLM;
|
|
847
1414
|
this.explorerUrl = 'https://testnet.ping.pub/haqq/tx/';
|
|
1415
|
+
this.addressPrefix = 'haqq';
|
|
848
1416
|
}
|
|
849
1417
|
}
|
|
850
1418
|
class Stx extends Mainnet {
|
|
@@ -852,9 +1420,10 @@ class Stx extends Mainnet {
|
|
|
852
1420
|
super(...arguments);
|
|
853
1421
|
this.name = 'Stx';
|
|
854
1422
|
this.family = base_1.CoinFamily.STX;
|
|
855
|
-
this.explorerUrl = 'https://explorer.
|
|
1423
|
+
this.explorerUrl = 'https://explorer.hiro.so/txid/';
|
|
856
1424
|
this.sendmanymemoContractAddress = 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE';
|
|
857
1425
|
this.stakingContractAddress = 'SP000000000000000000002Q6VF78';
|
|
1426
|
+
this.sbtcWithdrawalContractAddress = 'SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4';
|
|
858
1427
|
}
|
|
859
1428
|
}
|
|
860
1429
|
class StxTestnet extends Testnet {
|
|
@@ -862,9 +1431,10 @@ class StxTestnet extends Testnet {
|
|
|
862
1431
|
super(...arguments);
|
|
863
1432
|
this.name = 'StxTestnet';
|
|
864
1433
|
this.family = base_1.CoinFamily.STX;
|
|
865
|
-
this.explorerUrl = 'https://explorer.
|
|
1434
|
+
this.explorerUrl = 'https://explorer.hiro.so/txid/?chain=testnet';
|
|
866
1435
|
this.sendmanymemoContractAddress = 'ST3F1X4QGV2SM8XD96X45M6RTQXKA1PZJZZCQAB4B';
|
|
867
1436
|
this.stakingContractAddress = 'ST000000000000000000002AMW42H';
|
|
1437
|
+
this.sbtcWithdrawalContractAddress = 'SN69P7RZRKK8ERQCCABHT2JWKB2S4DHH9H74231T';
|
|
868
1438
|
}
|
|
869
1439
|
}
|
|
870
1440
|
class SUSD extends Mainnet {
|
|
@@ -899,11 +1469,33 @@ class Fiat extends Mainnet {
|
|
|
899
1469
|
this.explorerUrl = undefined;
|
|
900
1470
|
}
|
|
901
1471
|
}
|
|
1472
|
+
class Bittensor extends Mainnet {
|
|
1473
|
+
constructor() {
|
|
1474
|
+
super(...arguments);
|
|
1475
|
+
this.name = 'Tao';
|
|
1476
|
+
this.family = base_1.CoinFamily.TAO;
|
|
1477
|
+
this.explorerUrl = 'https://taostats.io/extrinsic/';
|
|
1478
|
+
}
|
|
1479
|
+
}
|
|
1480
|
+
class BittensorTestnet extends Testnet {
|
|
1481
|
+
constructor() {
|
|
1482
|
+
super(...arguments);
|
|
1483
|
+
this.name = 'Testnet Tao';
|
|
1484
|
+
this.family = base_1.CoinFamily.TAO;
|
|
1485
|
+
this.explorerUrl = 'https://explorer.finney.opentensor.ai/#/';
|
|
1486
|
+
this.specName = 'node-subtensor';
|
|
1487
|
+
this.genesisHash = '0x8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105';
|
|
1488
|
+
this.specVersion = 224;
|
|
1489
|
+
this.chainName = 'bittensor';
|
|
1490
|
+
this.txVersion = 1;
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
902
1493
|
class Trx extends Mainnet {
|
|
903
1494
|
constructor() {
|
|
904
1495
|
super(...arguments);
|
|
905
1496
|
this.name = 'Trx';
|
|
906
1497
|
this.family = base_1.CoinFamily.TRX;
|
|
1498
|
+
this.accountExplorerUrl = 'https://tronscan.org/#/address/';
|
|
907
1499
|
this.explorerUrl = 'https://tronscan.org/#/transaction/';
|
|
908
1500
|
this.maxFeeLimit = '5000000000';
|
|
909
1501
|
this.contractCallFeeLimit = '100000000';
|
|
@@ -914,6 +1506,7 @@ class TrxTestnet extends Testnet {
|
|
|
914
1506
|
super(...arguments);
|
|
915
1507
|
this.name = 'TrxTestnet';
|
|
916
1508
|
this.family = base_1.CoinFamily.TRX;
|
|
1509
|
+
this.accountExplorerUrl = 'https://shasta.tronscan.org/#/address/';
|
|
917
1510
|
this.explorerUrl = 'https://shasta.tronscan.org/#/transaction/';
|
|
918
1511
|
this.maxFeeLimit = '5000000000';
|
|
919
1512
|
this.contractCallFeeLimit = '100000000';
|
|
@@ -932,7 +1525,7 @@ class XrpTestnet extends Testnet {
|
|
|
932
1525
|
super(...arguments);
|
|
933
1526
|
this.name = 'XrpTestnet';
|
|
934
1527
|
this.family = base_1.CoinFamily.XRP;
|
|
935
|
-
this.explorerUrl = 'https://test.
|
|
1528
|
+
this.explorerUrl = 'https://test.xrplexplorer.com/explorer/';
|
|
936
1529
|
}
|
|
937
1530
|
}
|
|
938
1531
|
class Xtz extends Mainnet {
|
|
@@ -941,6 +1534,7 @@ class Xtz extends Mainnet {
|
|
|
941
1534
|
this.name = 'Xtz';
|
|
942
1535
|
this.family = base_1.CoinFamily.XTZ;
|
|
943
1536
|
this.explorerUrl = 'https://tzstats.com/';
|
|
1537
|
+
this.accountExplorerUrl = 'https://tzstats.com/';
|
|
944
1538
|
}
|
|
945
1539
|
}
|
|
946
1540
|
class XtzTestnet extends Testnet {
|
|
@@ -948,7 +1542,8 @@ class XtzTestnet extends Testnet {
|
|
|
948
1542
|
super(...arguments);
|
|
949
1543
|
this.name = 'XtzTestnet';
|
|
950
1544
|
this.family = base_1.CoinFamily.XTZ;
|
|
951
|
-
this.explorerUrl = 'https://
|
|
1545
|
+
this.explorerUrl = 'https://ghostnet.tzkt.io/';
|
|
1546
|
+
this.accountExplorerUrl = 'https://ghostnet.tzkt.io/';
|
|
952
1547
|
}
|
|
953
1548
|
}
|
|
954
1549
|
class ZCash extends Mainnet {
|
|
@@ -957,7 +1552,7 @@ class ZCash extends Mainnet {
|
|
|
957
1552
|
this.name = 'ZCash';
|
|
958
1553
|
this.family = base_1.CoinFamily.ZEC;
|
|
959
1554
|
this.utxolibName = 'zcash';
|
|
960
|
-
this.explorerUrl = 'https://
|
|
1555
|
+
this.explorerUrl = 'https://mainnet.zcashexplorer.app/transactions/';
|
|
961
1556
|
}
|
|
962
1557
|
}
|
|
963
1558
|
class ZCashTestnet extends Testnet {
|
|
@@ -966,7 +1561,36 @@ class ZCashTestnet extends Testnet {
|
|
|
966
1561
|
this.name = 'ZCashTestnet';
|
|
967
1562
|
this.family = base_1.CoinFamily.ZEC;
|
|
968
1563
|
this.utxolibName = 'zcashTest';
|
|
969
|
-
this.explorerUrl = 'https://
|
|
1564
|
+
this.explorerUrl = 'https://testnet.zcashexplorer.app/transactions/';
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
/*
|
|
1568
|
+
* Pearl is served through @bitgo/wasm-utxo and is deliberately NOT registered as a
|
|
1569
|
+
* network in @bitgo-beta/utxo-lib.
|
|
1570
|
+
*
|
|
1571
|
+
* `utxolibName` is required by UtxoNetwork, so it carries the wasm-utxo `CoinName`
|
|
1572
|
+
* instead. It must not be resolved via `utxolib.networks[...]` - that yields
|
|
1573
|
+
* undefined for Pearl and throws `TypeError: invalid network` downstream. Use the
|
|
1574
|
+
* wasm-utxo coin name directly.
|
|
1575
|
+
*/
|
|
1576
|
+
class Pearl extends Mainnet {
|
|
1577
|
+
constructor() {
|
|
1578
|
+
super(...arguments);
|
|
1579
|
+
this.name = 'Pearl';
|
|
1580
|
+
this.family = base_1.CoinFamily.PEARL;
|
|
1581
|
+
/** wasm-utxo CoinName, not a utxo-lib network - see note above */
|
|
1582
|
+
this.utxolibName = 'pearl';
|
|
1583
|
+
this.explorerUrl = 'https://blockbook.pearlresearch.ai/tx/';
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
class PearlTestnet extends Testnet {
|
|
1587
|
+
constructor() {
|
|
1588
|
+
super(...arguments);
|
|
1589
|
+
this.name = 'PearlTestnet';
|
|
1590
|
+
this.family = base_1.CoinFamily.PEARL;
|
|
1591
|
+
/** wasm-utxo CoinName, not a utxo-lib network - see note above */
|
|
1592
|
+
this.utxolibName = 'tpearl';
|
|
1593
|
+
this.explorerUrl = 'https://blockbook.testnet.pearlresearch.ai/tx/';
|
|
970
1594
|
}
|
|
971
1595
|
}
|
|
972
1596
|
class Near extends Mainnet {
|
|
@@ -974,7 +1598,8 @@ class Near extends Mainnet {
|
|
|
974
1598
|
super(...arguments);
|
|
975
1599
|
this.name = 'Near';
|
|
976
1600
|
this.family = base_1.CoinFamily.NEAR;
|
|
977
|
-
this.explorerUrl = 'https://
|
|
1601
|
+
this.explorerUrl = 'https://nearblocks.io/txns/';
|
|
1602
|
+
this.accountExplorerUrl = 'https://nearblocks.io/address/';
|
|
978
1603
|
this.feeReserve = '50000000000000000000000';
|
|
979
1604
|
this.storageReserve = '2000000000000000000000'; // feeReserve + storageReserve is minimum account balance for a NEAR wallet https://docs.near.org/integrator/faq#is-there-a-minimum-account-balance
|
|
980
1605
|
}
|
|
@@ -984,7 +1609,8 @@ class NearTestnet extends Testnet {
|
|
|
984
1609
|
super(...arguments);
|
|
985
1610
|
this.name = 'NearTestnet';
|
|
986
1611
|
this.family = base_1.CoinFamily.NEAR;
|
|
987
|
-
this.explorerUrl = 'https://
|
|
1612
|
+
this.explorerUrl = 'https://testnet.nearblocks.io/txns/';
|
|
1613
|
+
this.accountExplorerUrl = 'https://testnet.nearblocks.io/address/';
|
|
988
1614
|
this.feeReserve = '50000000000000000000000';
|
|
989
1615
|
this.storageReserve = '2000000000000000000000'; // feeReserve + storageReserve is minimum account balance for a NEAR wallet https://docs.near.org/integrator/faq#is-there-a-minimum-account-balance
|
|
990
1616
|
}
|
|
@@ -1001,9 +1627,11 @@ class Polygon extends Mainnet {
|
|
|
1001
1627
|
this.forwarderImplementationAddress = '0x5397d0869aba0d55e96d5716d383f6e1d8695ed7';
|
|
1002
1628
|
this.walletFactoryAddress = '0xa7198f48c58e91f01317e70cd24c5cce475c1555';
|
|
1003
1629
|
this.walletImplementationAddress = '0xe5dcdc13b628c2df813db1080367e929c1507ca0';
|
|
1004
|
-
this.batcherContractAddress = '
|
|
1630
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1005
1631
|
this.nativeCoinOperationHashPrefix = 'POLYGON';
|
|
1006
1632
|
this.tokenOperationHashPrefix = 'POLYGON-ERC20';
|
|
1633
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1634
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1007
1635
|
}
|
|
1008
1636
|
}
|
|
1009
1637
|
class PolygonTestnet extends Testnet {
|
|
@@ -1011,16 +1639,18 @@ class PolygonTestnet extends Testnet {
|
|
|
1011
1639
|
super(...arguments);
|
|
1012
1640
|
this.name = 'PolygonTestnet';
|
|
1013
1641
|
this.family = base_1.CoinFamily.POLYGON;
|
|
1014
|
-
this.explorerUrl = 'https://
|
|
1015
|
-
this.accountExplorerUrl = 'https://
|
|
1016
|
-
this.chainId =
|
|
1017
|
-
this.forwarderFactoryAddress = '
|
|
1018
|
-
this.forwarderImplementationAddress = '
|
|
1019
|
-
this.walletFactoryAddress = '
|
|
1020
|
-
this.walletImplementationAddress = '
|
|
1021
|
-
this.batcherContractAddress = '
|
|
1642
|
+
this.explorerUrl = 'https://amoy.polygonscan.com/tx/';
|
|
1643
|
+
this.accountExplorerUrl = 'https://amoy.polygonscan.com/address/';
|
|
1644
|
+
this.chainId = 80002;
|
|
1645
|
+
this.forwarderFactoryAddress = '0x23223fd7cfc5f34b20f38ebb9a489e1ff3c084d1';
|
|
1646
|
+
this.forwarderImplementationAddress = '0xd4c24325b5ef514fbb1ecc76a9bb4dcb57a8341e';
|
|
1647
|
+
this.walletFactoryAddress = '0xe9c16033e01bf9f94bf9f99fc0fefcfb8b124992';
|
|
1648
|
+
this.walletImplementationAddress = '0xf8360c213e4f44cce03e48cb9281254de2a7a566';
|
|
1649
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1022
1650
|
this.nativeCoinOperationHashPrefix = 'POLYGON';
|
|
1023
1651
|
this.tokenOperationHashPrefix = 'POLYGON-ERC20';
|
|
1652
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1653
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1024
1654
|
}
|
|
1025
1655
|
}
|
|
1026
1656
|
class Optimism extends Mainnet {
|
|
@@ -1031,8 +1661,15 @@ class Optimism extends Mainnet {
|
|
|
1031
1661
|
this.explorerUrl = 'https://optimistic.etherscan.io/tx/';
|
|
1032
1662
|
this.accountExplorerUrl = 'https://optimistic.etherscan.io/address/';
|
|
1033
1663
|
this.chainId = 10;
|
|
1034
|
-
this.nativeCoinOperationHashPrefix = '
|
|
1035
|
-
this.tokenOperationHashPrefix = '
|
|
1664
|
+
this.nativeCoinOperationHashPrefix = '10';
|
|
1665
|
+
this.tokenOperationHashPrefix = '10-ERC20';
|
|
1666
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1667
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1668
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
1669
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
1670
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1671
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1672
|
+
this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
|
|
1036
1673
|
}
|
|
1037
1674
|
}
|
|
1038
1675
|
class OptimismTestnet extends Testnet {
|
|
@@ -1043,31 +1680,1609 @@ class OptimismTestnet extends Testnet {
|
|
|
1043
1680
|
this.explorerUrl = 'https://sepolia-optimism.etherscan.io/tx/';
|
|
1044
1681
|
this.accountExplorerUrl = 'https://sepolia-optimism.etherscan.io/address/';
|
|
1045
1682
|
this.chainId = 11155420;
|
|
1046
|
-
this.nativeCoinOperationHashPrefix = '
|
|
1047
|
-
this.tokenOperationHashPrefix = '
|
|
1683
|
+
this.nativeCoinOperationHashPrefix = '11155420';
|
|
1684
|
+
this.tokenOperationHashPrefix = '11155420-ERC20';
|
|
1685
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1686
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1687
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
1688
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
1689
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1690
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1691
|
+
this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1694
|
+
class ZkSync extends Mainnet {
|
|
1695
|
+
constructor() {
|
|
1696
|
+
super(...arguments);
|
|
1697
|
+
this.name = 'ZkSync';
|
|
1698
|
+
this.family = base_1.CoinFamily.ZKETH;
|
|
1699
|
+
this.explorerUrl = 'https://explorer.zksync.io/tx/';
|
|
1700
|
+
this.accountExplorerUrl = 'https://explorer.zksync.io/address/';
|
|
1701
|
+
this.chainId = 324;
|
|
1702
|
+
this.nativeCoinOperationHashPrefix = '324';
|
|
1703
|
+
this.tokenOperationHashPrefix = '324-ERC20';
|
|
1704
|
+
}
|
|
1705
|
+
}
|
|
1706
|
+
class ZkSyncTestnet extends Testnet {
|
|
1707
|
+
constructor() {
|
|
1708
|
+
super(...arguments);
|
|
1709
|
+
this.name = 'ZkSyncTestnet';
|
|
1710
|
+
this.family = base_1.CoinFamily.ZKETH;
|
|
1711
|
+
this.explorerUrl = 'https://sepolia.explorer.zksync.io/tx/';
|
|
1712
|
+
this.accountExplorerUrl = 'https://sepolia.explorer.zksync.io/address/';
|
|
1713
|
+
this.chainId = 300;
|
|
1714
|
+
this.nativeCoinOperationHashPrefix = '300';
|
|
1715
|
+
this.tokenOperationHashPrefix = '300-ERC20';
|
|
1716
|
+
this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
|
|
1717
|
+
this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
|
|
1718
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1719
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1720
|
+
this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
|
|
1721
|
+
this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
|
|
1722
|
+
}
|
|
1723
|
+
}
|
|
1724
|
+
class ZkSyncEra extends Mainnet {
|
|
1725
|
+
constructor() {
|
|
1726
|
+
super(...arguments);
|
|
1727
|
+
this.name = 'ZkSyncEra';
|
|
1728
|
+
this.family = base_1.CoinFamily.ZKSYNCERA;
|
|
1729
|
+
this.explorerUrl = 'https://explorer.zksync.io/tx/';
|
|
1730
|
+
this.accountExplorerUrl = 'https://explorer.zksync.io/address/';
|
|
1731
|
+
this.chainId = 324;
|
|
1732
|
+
this.nativeCoinOperationHashPrefix = '324';
|
|
1733
|
+
this.tokenOperationHashPrefix = '324-ERC20';
|
|
1734
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1735
|
+
}
|
|
1736
|
+
}
|
|
1737
|
+
class ZkSyncEraTestnet extends Testnet {
|
|
1738
|
+
constructor() {
|
|
1739
|
+
super(...arguments);
|
|
1740
|
+
this.name = 'ZkSyncEraTestnet';
|
|
1741
|
+
this.family = base_1.CoinFamily.ZKSYNCERA;
|
|
1742
|
+
this.explorerUrl = 'https://sepolia.explorer.zksync.io/tx/';
|
|
1743
|
+
this.accountExplorerUrl = 'https://sepolia.explorer.zksync.io/address/';
|
|
1744
|
+
this.chainId = 300;
|
|
1745
|
+
this.nativeCoinOperationHashPrefix = '300';
|
|
1746
|
+
this.tokenOperationHashPrefix = '300-ERC20';
|
|
1747
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1748
|
+
this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
|
|
1749
|
+
this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
|
|
1750
|
+
this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1751
|
+
this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1752
|
+
this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
|
|
1753
|
+
this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
|
|
1754
|
+
}
|
|
1755
|
+
}
|
|
1756
|
+
class Berachain extends Mainnet {
|
|
1757
|
+
constructor() {
|
|
1758
|
+
super(...arguments);
|
|
1759
|
+
this.name = 'Bera';
|
|
1760
|
+
this.family = base_1.CoinFamily.BERA;
|
|
1761
|
+
this.explorerUrl = 'https://berascan.com/tx/';
|
|
1762
|
+
this.accountExplorerUrl = 'https://berascan.com/address/';
|
|
1763
|
+
this.chainId = 80094;
|
|
1764
|
+
this.nativeCoinOperationHashPrefix = '80094';
|
|
1765
|
+
this.tokenOperationHashPrefix = '80094-ERC20';
|
|
1766
|
+
this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
|
|
1767
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1768
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
class BerachainTestnet extends Testnet {
|
|
1772
|
+
constructor() {
|
|
1773
|
+
super(...arguments);
|
|
1774
|
+
this.name = 'BeraTestnet';
|
|
1775
|
+
this.family = base_1.CoinFamily.BERA;
|
|
1776
|
+
this.explorerUrl = 'https://testnet.berascan.com/tx/';
|
|
1777
|
+
this.accountExplorerUrl = 'https://testnet.berascan.com/address/';
|
|
1778
|
+
this.chainId = 80069;
|
|
1779
|
+
this.nativeCoinOperationHashPrefix = '80069';
|
|
1780
|
+
this.tokenOperationHashPrefix = '80069-ERC20';
|
|
1781
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1782
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1783
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1784
|
+
}
|
|
1785
|
+
}
|
|
1786
|
+
class Oas extends Mainnet {
|
|
1787
|
+
constructor() {
|
|
1788
|
+
super(...arguments);
|
|
1789
|
+
this.name = 'Oas';
|
|
1790
|
+
this.family = base_1.CoinFamily.OAS;
|
|
1791
|
+
this.explorerUrl = 'https://explorer.oasys.games/tx/';
|
|
1792
|
+
this.accountExplorerUrl = 'https://explorer.oasys.games/address/';
|
|
1793
|
+
this.chainId = 248;
|
|
1794
|
+
this.nativeCoinOperationHashPrefix = '248';
|
|
1795
|
+
this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
|
|
1796
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1797
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
class OasTestnet extends Testnet {
|
|
1801
|
+
constructor() {
|
|
1802
|
+
super(...arguments);
|
|
1803
|
+
this.name = 'OasTestnet';
|
|
1804
|
+
this.family = base_1.CoinFamily.OAS;
|
|
1805
|
+
this.explorerUrl = 'https://explorer.testnet.oasys.games/tx/';
|
|
1806
|
+
this.accountExplorerUrl = 'https://explorer.testnet.oasys.games/address/';
|
|
1807
|
+
this.chainId = 9372;
|
|
1808
|
+
this.nativeCoinOperationHashPrefix = '9372';
|
|
1809
|
+
this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
|
|
1810
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1811
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1814
|
+
class Coredao extends Mainnet {
|
|
1815
|
+
constructor() {
|
|
1816
|
+
super(...arguments);
|
|
1817
|
+
this.name = 'Coredao';
|
|
1818
|
+
this.family = base_1.CoinFamily.COREDAO;
|
|
1819
|
+
this.explorerUrl = 'https://scan.coredao.org/tx/';
|
|
1820
|
+
this.accountExplorerUrl = 'https://scan.coredao.org/address/';
|
|
1821
|
+
this.chainId = 1116;
|
|
1822
|
+
this.nativeCoinOperationHashPrefix = '1116';
|
|
1823
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
1824
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1825
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1826
|
+
}
|
|
1827
|
+
}
|
|
1828
|
+
class CoredaoTestnet extends Testnet {
|
|
1829
|
+
constructor() {
|
|
1830
|
+
super(...arguments);
|
|
1831
|
+
this.name = 'CoredaoTestnet';
|
|
1832
|
+
this.family = base_1.CoinFamily.COREDAO;
|
|
1833
|
+
this.explorerUrl = 'https://scan.test2.btcs.network/tx/';
|
|
1834
|
+
this.accountExplorerUrl = 'https://scan.test2.btcs.network/address/';
|
|
1835
|
+
this.chainId = 1114;
|
|
1836
|
+
this.nativeCoinOperationHashPrefix = '1114';
|
|
1837
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
1838
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1839
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
class IP extends Mainnet {
|
|
1843
|
+
constructor() {
|
|
1844
|
+
super(...arguments);
|
|
1845
|
+
this.name = 'Data Network';
|
|
1846
|
+
this.family = base_1.CoinFamily.IP;
|
|
1847
|
+
this.explorerUrl = 'https://datanetscan.io/tx/';
|
|
1848
|
+
this.accountExplorerUrl = 'https://datanetscan.io/address/';
|
|
1849
|
+
this.chainId = 1514;
|
|
1850
|
+
this.nativeCoinOperationHashPrefix = '1514';
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
class IPTestnet extends Testnet {
|
|
1854
|
+
constructor() {
|
|
1855
|
+
super(...arguments);
|
|
1856
|
+
this.name = 'Data Network Testnet';
|
|
1857
|
+
this.family = base_1.CoinFamily.IP;
|
|
1858
|
+
this.explorerUrl = 'https://aeneid.datanetscan.io/tx/';
|
|
1859
|
+
this.accountExplorerUrl = 'https://aeneid.datanetscan.io/address/';
|
|
1860
|
+
this.chainId = 1315;
|
|
1861
|
+
this.nativeCoinOperationHashPrefix = '1315';
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
class ApeChain extends Mainnet {
|
|
1865
|
+
constructor() {
|
|
1866
|
+
super(...arguments);
|
|
1867
|
+
this.name = 'ApeChain';
|
|
1868
|
+
this.family = base_1.CoinFamily.APECHAIN;
|
|
1869
|
+
this.explorerUrl = 'https://apescan.io/tx/';
|
|
1870
|
+
this.accountExplorerUrl = 'https://apescan.io/address/';
|
|
1871
|
+
this.chainId = 33139;
|
|
1872
|
+
this.nativeCoinOperationHashPrefix = '33139';
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
class ApeChainTestnet extends Testnet {
|
|
1876
|
+
constructor() {
|
|
1877
|
+
super(...arguments);
|
|
1878
|
+
this.name = 'ApeChainTestnet';
|
|
1879
|
+
this.family = base_1.CoinFamily.APECHAIN;
|
|
1880
|
+
this.explorerUrl = 'https://curtis.apescan.io/tx/';
|
|
1881
|
+
this.accountExplorerUrl = 'https://curtis.apescan.io/address/';
|
|
1882
|
+
this.chainId = 33111;
|
|
1883
|
+
this.nativeCoinOperationHashPrefix = '33111';
|
|
1884
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1885
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1886
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
1887
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
1888
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1889
|
+
}
|
|
1890
|
+
}
|
|
1891
|
+
class AbstractEth extends Mainnet {
|
|
1892
|
+
constructor() {
|
|
1893
|
+
super(...arguments);
|
|
1894
|
+
this.name = 'Abstract Ethereum';
|
|
1895
|
+
this.family = base_1.CoinFamily.ABSTRACTETH;
|
|
1896
|
+
this.explorerUrl = 'https://abscan.org/tx/';
|
|
1897
|
+
this.accountExplorerUrl = 'https://abscan.org/address/';
|
|
1898
|
+
this.chainId = 2741;
|
|
1899
|
+
this.nativeCoinOperationHashPrefix = '2741';
|
|
1900
|
+
}
|
|
1901
|
+
}
|
|
1902
|
+
class AbstractEthTestnet extends Testnet {
|
|
1903
|
+
constructor() {
|
|
1904
|
+
super(...arguments);
|
|
1905
|
+
this.name = 'Testnet Abstract Ethereum';
|
|
1906
|
+
this.family = base_1.CoinFamily.ABSTRACTETH;
|
|
1907
|
+
this.explorerUrl = 'https://sepolia.abscan.org/tx/';
|
|
1908
|
+
this.accountExplorerUrl = 'https://sepolia.abscan.org/address/';
|
|
1909
|
+
this.chainId = 11124;
|
|
1910
|
+
this.nativeCoinOperationHashPrefix = '11124';
|
|
1911
|
+
}
|
|
1912
|
+
}
|
|
1913
|
+
class Pharos extends Mainnet {
|
|
1914
|
+
constructor() {
|
|
1915
|
+
super(...arguments);
|
|
1916
|
+
this.name = 'Pharos';
|
|
1917
|
+
this.family = base_1.CoinFamily.PHRS;
|
|
1918
|
+
this.explorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
|
|
1919
|
+
this.accountExplorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
|
|
1920
|
+
this.chainId = 688688; // TODO: WIN-5787 Add mainnet id when available
|
|
1921
|
+
this.nativeCoinOperationHashPrefix = '688688';
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
class PharosTestnet extends Testnet {
|
|
1925
|
+
constructor() {
|
|
1926
|
+
super(...arguments);
|
|
1927
|
+
this.name = 'PharosTestnet';
|
|
1928
|
+
this.family = base_1.CoinFamily.PHRS;
|
|
1929
|
+
this.explorerUrl = 'https://atlantic.pharosscan.xyz/tx/';
|
|
1930
|
+
this.accountExplorerUrl = 'https://atlantic.pharosscan.xyz/address/';
|
|
1931
|
+
this.chainId = 688689;
|
|
1932
|
+
this.nativeCoinOperationHashPrefix = '688689';
|
|
1933
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1934
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1935
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
1936
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
1937
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
class Creditcoin extends Mainnet {
|
|
1941
|
+
constructor() {
|
|
1942
|
+
super(...arguments);
|
|
1943
|
+
this.name = 'Creditcoin';
|
|
1944
|
+
this.family = base_1.CoinFamily.CTC;
|
|
1945
|
+
this.explorerUrl = 'https://creditcoin.blockscout.com/tx/';
|
|
1946
|
+
this.accountExplorerUrl = 'https://creditcoin.blockscout.com/address/';
|
|
1947
|
+
this.chainId = 102030;
|
|
1948
|
+
this.nativeCoinOperationHashPrefix = '102030';
|
|
1949
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1950
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1951
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
1952
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
1953
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1954
|
+
}
|
|
1955
|
+
}
|
|
1956
|
+
class Plasma extends Mainnet {
|
|
1957
|
+
constructor() {
|
|
1958
|
+
super(...arguments);
|
|
1959
|
+
this.name = 'Plasma';
|
|
1960
|
+
this.family = base_1.CoinFamily.XPL;
|
|
1961
|
+
this.explorerUrl = 'https://plasmascan.to/tx/';
|
|
1962
|
+
this.accountExplorerUrl = 'https://plasmascan.to/address/';
|
|
1963
|
+
this.chainId = 9745;
|
|
1964
|
+
this.nativeCoinOperationHashPrefix = '9745';
|
|
1965
|
+
}
|
|
1966
|
+
}
|
|
1967
|
+
class PlasmaTestnet extends Testnet {
|
|
1968
|
+
constructor() {
|
|
1969
|
+
super(...arguments);
|
|
1970
|
+
this.name = 'PlasmaTestnet';
|
|
1971
|
+
this.family = base_1.CoinFamily.XPL;
|
|
1972
|
+
this.explorerUrl = 'https://testnet.plasmascan.to/tx/';
|
|
1973
|
+
this.accountExplorerUrl = 'https://testnet.plasmascan.to/address/';
|
|
1974
|
+
this.chainId = 9746;
|
|
1975
|
+
this.nativeCoinOperationHashPrefix = '9746';
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
class HypeEVMTestnet extends Testnet {
|
|
1979
|
+
constructor() {
|
|
1980
|
+
super(...arguments);
|
|
1981
|
+
this.name = 'HyperliquidEVMTestnet';
|
|
1982
|
+
this.family = base_1.CoinFamily.HYPEEVM;
|
|
1983
|
+
this.explorerUrl = 'https://testnet.purrsec.com/tx/';
|
|
1984
|
+
this.accountExplorerUrl = 'https://testnet.purrsec.com/address/';
|
|
1985
|
+
this.chainId = 998;
|
|
1986
|
+
this.nativeCoinOperationHashPrefix = '998';
|
|
1987
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
1988
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
1989
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
1990
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
1991
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
1992
|
+
}
|
|
1993
|
+
}
|
|
1994
|
+
class HypeEVM extends Mainnet {
|
|
1995
|
+
constructor() {
|
|
1996
|
+
super(...arguments);
|
|
1997
|
+
this.name = 'HyperliquidEVM';
|
|
1998
|
+
this.family = base_1.CoinFamily.HYPEEVM;
|
|
1999
|
+
this.explorerUrl = 'https://hyperevmscan.io/tx/';
|
|
2000
|
+
this.accountExplorerUrl = 'https://hyperevmscan.io/address/';
|
|
2001
|
+
this.chainId = 999;
|
|
2002
|
+
this.nativeCoinOperationHashPrefix = '999';
|
|
2003
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2004
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2005
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2006
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2007
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2008
|
+
}
|
|
2009
|
+
}
|
|
2010
|
+
class Hyperliquid extends Mainnet {
|
|
2011
|
+
constructor() {
|
|
2012
|
+
super(...arguments);
|
|
2013
|
+
this.name = 'Hyperliquid';
|
|
2014
|
+
this.family = base_1.CoinFamily.HYPERLIQUID;
|
|
2015
|
+
this.explorerUrl = 'https://app.hyperliquid.xyz/explorer';
|
|
2016
|
+
this.accountExplorerUrl = 'https://app.hyperliquid.xyz/explorer';
|
|
2017
|
+
}
|
|
2018
|
+
}
|
|
2019
|
+
class HyperliquidTestnet extends Testnet {
|
|
2020
|
+
constructor() {
|
|
2021
|
+
super(...arguments);
|
|
2022
|
+
this.name = 'HyperliquidTestnet';
|
|
2023
|
+
this.family = base_1.CoinFamily.HYPERLIQUID;
|
|
2024
|
+
this.explorerUrl = 'https://app.hyperliquid-testnet.xyz/explorer';
|
|
2025
|
+
this.accountExplorerUrl = 'https://app.hyperliquid-testnet.xyz/explorer';
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
class KavaEVMTestnet extends Testnet {
|
|
2029
|
+
constructor() {
|
|
2030
|
+
super(...arguments);
|
|
2031
|
+
this.name = 'KavaEVMTestnet';
|
|
2032
|
+
this.family = base_1.CoinFamily.KAVAEVM;
|
|
2033
|
+
this.explorerUrl = 'https://testnet.kavascan.com/tx/';
|
|
2034
|
+
this.accountExplorerUrl = 'https://testnet.kavascan.com/address/';
|
|
2035
|
+
this.chainId = 2221;
|
|
2036
|
+
this.nativeCoinOperationHashPrefix = '2221';
|
|
2037
|
+
}
|
|
2038
|
+
}
|
|
2039
|
+
class KavaEVM extends Mainnet {
|
|
2040
|
+
constructor() {
|
|
2041
|
+
super(...arguments);
|
|
2042
|
+
this.name = 'KavaEVM';
|
|
2043
|
+
this.family = base_1.CoinFamily.KAVAEVM;
|
|
2044
|
+
this.explorerUrl = 'https://kavascan.com/tx/';
|
|
2045
|
+
this.accountExplorerUrl = 'https://kavascan.com/address/';
|
|
2046
|
+
this.chainId = 2222;
|
|
2047
|
+
this.nativeCoinOperationHashPrefix = '2222';
|
|
2048
|
+
}
|
|
2049
|
+
}
|
|
2050
|
+
class LineaETH extends Mainnet {
|
|
2051
|
+
constructor() {
|
|
2052
|
+
super(...arguments);
|
|
2053
|
+
this.name = 'Linea Ethereum Mainnet';
|
|
2054
|
+
this.family = base_1.CoinFamily.LINEAETH;
|
|
2055
|
+
this.explorerUrl = 'https://lineascan.build/tx/';
|
|
2056
|
+
this.accountExplorerUrl = 'https://lineascan.build/address/';
|
|
2057
|
+
this.chainId = 59144;
|
|
2058
|
+
this.nativeCoinOperationHashPrefix = '59144';
|
|
2059
|
+
}
|
|
2060
|
+
}
|
|
2061
|
+
class LineaETHTestnet extends Testnet {
|
|
2062
|
+
constructor() {
|
|
2063
|
+
super(...arguments);
|
|
2064
|
+
this.name = 'Linea Ethereum Testnet';
|
|
2065
|
+
this.family = base_1.CoinFamily.LINEAETH;
|
|
2066
|
+
this.explorerUrl = 'https://sepolia.lineascan.build/tx/';
|
|
2067
|
+
this.accountExplorerUrl = 'https://sepolia.lineascan.build/address/';
|
|
2068
|
+
this.chainId = 59141;
|
|
2069
|
+
this.nativeCoinOperationHashPrefix = '59141';
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
class FluentETH extends Mainnet {
|
|
2073
|
+
constructor() {
|
|
2074
|
+
super(...arguments);
|
|
2075
|
+
this.name = 'Fluent Ethereum';
|
|
2076
|
+
this.family = base_1.CoinFamily.FLUENTETH;
|
|
2077
|
+
this.explorerUrl = 'https://fluentscan.xyz/tx/';
|
|
2078
|
+
this.accountExplorerUrl = 'https://fluentscan.xyz/address/';
|
|
2079
|
+
this.chainId = 25363;
|
|
2080
|
+
this.nativeCoinOperationHashPrefix = '25363';
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
class FluentETHTestnet extends Testnet {
|
|
2084
|
+
constructor() {
|
|
2085
|
+
super(...arguments);
|
|
2086
|
+
this.name = 'Testnet Fluent Ethereum';
|
|
2087
|
+
this.family = base_1.CoinFamily.FLUENTETH;
|
|
2088
|
+
this.explorerUrl = 'https://testnet.fluentscan.xyz/tx/';
|
|
2089
|
+
this.accountExplorerUrl = 'https://testnet.fluentscan.xyz/address/';
|
|
2090
|
+
this.chainId = 20994;
|
|
2091
|
+
this.nativeCoinOperationHashPrefix = '20994';
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
class Mantle extends Mainnet {
|
|
2095
|
+
constructor() {
|
|
2096
|
+
super(...arguments);
|
|
2097
|
+
this.name = 'Mantle Native';
|
|
2098
|
+
this.family = base_1.CoinFamily.MANTLE;
|
|
2099
|
+
this.explorerUrl = 'https://mantlescan.xyz/tx/';
|
|
2100
|
+
this.accountExplorerUrl = 'https://mantlescan.xyz/address/';
|
|
2101
|
+
this.chainId = 5000;
|
|
2102
|
+
this.nativeCoinOperationHashPrefix = '5000';
|
|
2103
|
+
}
|
|
2104
|
+
}
|
|
2105
|
+
class MantleTestnet extends Testnet {
|
|
2106
|
+
constructor() {
|
|
2107
|
+
super(...arguments);
|
|
2108
|
+
this.name = 'Testnet Mantle Native';
|
|
2109
|
+
this.family = base_1.CoinFamily.MANTLE;
|
|
2110
|
+
this.explorerUrl = 'https://sepolia.mantlescan.xyz/tx/';
|
|
2111
|
+
this.accountExplorerUrl = 'https://sepolia.mantlescan.xyz/address/';
|
|
2112
|
+
this.chainId = 5003;
|
|
2113
|
+
this.nativeCoinOperationHashPrefix = '5003';
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
class JovayETH extends Mainnet {
|
|
2117
|
+
constructor() {
|
|
2118
|
+
super(...arguments);
|
|
2119
|
+
this.name = 'Jovay Ethereum';
|
|
2120
|
+
this.family = base_1.CoinFamily.JOVAYETH;
|
|
2121
|
+
this.explorerUrl = 'https://explorer.jovay.io/tx/';
|
|
2122
|
+
this.accountExplorerUrl = 'https://explorer.jovay.io/address/';
|
|
2123
|
+
this.chainId = 5734951;
|
|
2124
|
+
this.nativeCoinOperationHashPrefix = '5734951';
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
class JovayETHTestnet extends Testnet {
|
|
2128
|
+
constructor() {
|
|
2129
|
+
super(...arguments);
|
|
2130
|
+
this.name = 'Testnet Jovay Ethereum';
|
|
2131
|
+
this.family = base_1.CoinFamily.JOVAYETH;
|
|
2132
|
+
this.explorerUrl = 'https://sepolia-explorer.jovay.io/tx/';
|
|
2133
|
+
this.accountExplorerUrl = 'https://sepolia-explorer.jovay.io/address/';
|
|
2134
|
+
this.chainId = 2019775;
|
|
2135
|
+
this.nativeCoinOperationHashPrefix = '2019775';
|
|
2136
|
+
}
|
|
2137
|
+
}
|
|
2138
|
+
class Unieth extends Mainnet {
|
|
2139
|
+
constructor() {
|
|
2140
|
+
super(...arguments);
|
|
2141
|
+
this.name = 'Unichain';
|
|
2142
|
+
this.family = base_1.CoinFamily.UNIETH;
|
|
2143
|
+
this.explorerUrl = 'https://uniscan.xyz/tx/';
|
|
2144
|
+
this.accountExplorerUrl = 'https://uniscan.xyz/address/';
|
|
2145
|
+
this.chainId = 130;
|
|
2146
|
+
this.nativeCoinOperationHashPrefix = '130';
|
|
2147
|
+
}
|
|
2148
|
+
}
|
|
2149
|
+
class UniethTestnet extends Testnet {
|
|
2150
|
+
constructor() {
|
|
2151
|
+
super(...arguments);
|
|
2152
|
+
this.name = 'Testnet Unichain';
|
|
2153
|
+
this.family = base_1.CoinFamily.UNIETH;
|
|
2154
|
+
this.explorerUrl = 'https://sepolia.uniscan.xyz/tx/';
|
|
2155
|
+
this.accountExplorerUrl = 'https://sepolia.uniscan.xyz/address/';
|
|
2156
|
+
this.chainId = 1301;
|
|
2157
|
+
this.nativeCoinOperationHashPrefix = '1301';
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2160
|
+
class Hppeth extends Mainnet {
|
|
2161
|
+
constructor() {
|
|
2162
|
+
super(...arguments);
|
|
2163
|
+
this.name = 'House Party Protocol';
|
|
2164
|
+
this.family = base_1.CoinFamily.HPPETH;
|
|
2165
|
+
this.explorerUrl = 'https://explorer.hpp.io/tx/';
|
|
2166
|
+
this.accountExplorerUrl = 'https://explorer.hpp.io/address/';
|
|
2167
|
+
this.chainId = 190415;
|
|
2168
|
+
this.nativeCoinOperationHashPrefix = '190415';
|
|
2169
|
+
}
|
|
2170
|
+
}
|
|
2171
|
+
class HppethTestnet extends Testnet {
|
|
2172
|
+
constructor() {
|
|
2173
|
+
super(...arguments);
|
|
2174
|
+
this.name = 'Testnet House Party Protocol';
|
|
2175
|
+
this.family = base_1.CoinFamily.HPPETH;
|
|
2176
|
+
this.explorerUrl = 'https://sepolia-explorer.hpp.io/tx/';
|
|
2177
|
+
this.accountExplorerUrl = 'https://sepolia-explorer.hpp.io/address/';
|
|
2178
|
+
this.chainId = 181228;
|
|
2179
|
+
this.nativeCoinOperationHashPrefix = '181228';
|
|
2180
|
+
}
|
|
2181
|
+
}
|
|
2182
|
+
class HoodethTestnet extends Testnet {
|
|
2183
|
+
constructor() {
|
|
2184
|
+
super(...arguments);
|
|
2185
|
+
this.name = 'Testnet Robinhood Chain';
|
|
2186
|
+
this.family = base_1.CoinFamily.HOODETH;
|
|
2187
|
+
this.explorerUrl = 'https://explorer.testnet.chain.robinhood.com/tx/';
|
|
2188
|
+
this.accountExplorerUrl = 'https://explorer.testnet.chain.robinhood.com/address/';
|
|
2189
|
+
this.chainId = 46630;
|
|
2190
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2191
|
+
this.nativeCoinOperationHashPrefix = '46630';
|
|
2192
|
+
}
|
|
2193
|
+
}
|
|
2194
|
+
class Hoodeth extends Mainnet {
|
|
2195
|
+
constructor() {
|
|
2196
|
+
super(...arguments);
|
|
2197
|
+
this.name = 'Robinhood Chain';
|
|
2198
|
+
this.family = base_1.CoinFamily.HOODETH;
|
|
2199
|
+
this.explorerUrl = 'https://robinhoodchain.blockscout.com/tx/';
|
|
2200
|
+
this.accountExplorerUrl = 'https://robinhoodchain.blockscout.com/address/';
|
|
2201
|
+
this.chainId = 4663;
|
|
2202
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2203
|
+
this.nativeCoinOperationHashPrefix = '4663';
|
|
2204
|
+
}
|
|
2205
|
+
}
|
|
2206
|
+
class HumanityProtocol extends Mainnet {
|
|
2207
|
+
constructor() {
|
|
2208
|
+
super(...arguments);
|
|
2209
|
+
this.name = 'Humanity Protocol';
|
|
2210
|
+
this.family = base_1.CoinFamily.H;
|
|
2211
|
+
this.explorerUrl = 'https://explorer.humanity.org/mainnet/txns/';
|
|
2212
|
+
this.accountExplorerUrl = 'https://explorer.humanity.org/mainnet/accounts/';
|
|
2213
|
+
this.chainId = 6985385;
|
|
2214
|
+
this.nativeCoinOperationHashPrefix = '6985385';
|
|
2215
|
+
}
|
|
2216
|
+
}
|
|
2217
|
+
class HumanityProtocolTestnet extends Testnet {
|
|
2218
|
+
constructor() {
|
|
2219
|
+
super(...arguments);
|
|
2220
|
+
this.name = 'Testnet Humanity Protocol';
|
|
2221
|
+
this.family = base_1.CoinFamily.H;
|
|
2222
|
+
this.explorerUrl = 'https://explorer.humanity.org/testnet/txns/';
|
|
2223
|
+
this.accountExplorerUrl = 'https://explorer.humanity.org/testnet/accounts/';
|
|
2224
|
+
this.chainId = 7080969;
|
|
2225
|
+
this.nativeCoinOperationHashPrefix = '7080969';
|
|
2226
|
+
}
|
|
2227
|
+
}
|
|
2228
|
+
class Xlayer extends Mainnet {
|
|
2229
|
+
constructor() {
|
|
2230
|
+
super(...arguments);
|
|
2231
|
+
this.name = 'X Layer';
|
|
2232
|
+
this.family = base_1.CoinFamily.OKBXLAYER;
|
|
2233
|
+
this.explorerUrl = 'https://www.oklink.com/x-layer/tx/';
|
|
2234
|
+
this.accountExplorerUrl = 'https://www.oklink.com/x-layer/address/';
|
|
2235
|
+
this.chainId = 196;
|
|
2236
|
+
this.nativeCoinOperationHashPrefix = '196';
|
|
2237
|
+
}
|
|
2238
|
+
}
|
|
2239
|
+
class XlayerTestnet extends Testnet {
|
|
2240
|
+
constructor() {
|
|
2241
|
+
super(...arguments);
|
|
2242
|
+
this.name = 'Testnet X Layer';
|
|
2243
|
+
this.family = base_1.CoinFamily.OKBXLAYER;
|
|
2244
|
+
this.explorerUrl = 'https://www.oklink.com/x-layer-testnet/tx/';
|
|
2245
|
+
this.accountExplorerUrl = 'https://www.oklink.com/x-layer-testnet/address/';
|
|
2246
|
+
this.chainId = 1952;
|
|
2247
|
+
this.nativeCoinOperationHashPrefix = '1952';
|
|
2248
|
+
}
|
|
2249
|
+
}
|
|
2250
|
+
class Morph extends Mainnet {
|
|
2251
|
+
constructor() {
|
|
2252
|
+
super(...arguments);
|
|
2253
|
+
this.name = 'Morph Mainnet';
|
|
2254
|
+
this.family = base_1.CoinFamily.MORPH;
|
|
2255
|
+
this.explorerUrl = 'https://explorer-api-hoodi.morphl2.io/tx/'; // TODO: WIN-8134 add mainnet url when available
|
|
2256
|
+
this.accountExplorerUrl = 'https://explorer-api-hoodi.morphl2.io/address/'; // TODO: WIN-8134 add mainnet account explorer url when available
|
|
2257
|
+
this.chainId = 2818;
|
|
2258
|
+
this.nativeCoinOperationHashPrefix = '2818';
|
|
2259
|
+
}
|
|
2260
|
+
}
|
|
2261
|
+
class MorphTestnet extends Testnet {
|
|
2262
|
+
constructor() {
|
|
2263
|
+
super(...arguments);
|
|
2264
|
+
this.name = 'Morph Testnet';
|
|
2265
|
+
this.family = base_1.CoinFamily.MORPH;
|
|
2266
|
+
this.explorerUrl = 'https://explorer-hoodi.morph.network/tx/';
|
|
2267
|
+
this.accountExplorerUrl = 'https://explorer-hoodi.morph.network/address/';
|
|
2268
|
+
this.chainId = 2910;
|
|
2269
|
+
this.nativeCoinOperationHashPrefix = '2910';
|
|
2270
|
+
}
|
|
2271
|
+
}
|
|
2272
|
+
class MorphETH extends Mainnet {
|
|
2273
|
+
constructor() {
|
|
2274
|
+
super(...arguments);
|
|
2275
|
+
this.name = 'Morph Ethereum Mainnet';
|
|
2276
|
+
this.family = base_1.CoinFamily.MORPHETH;
|
|
2277
|
+
this.explorerUrl = 'https://explorer.morph.network/tx/';
|
|
2278
|
+
this.accountExplorerUrl = 'https://explorer.morph.network/address/';
|
|
2279
|
+
this.chainId = 2818;
|
|
2280
|
+
this.nativeCoinOperationHashPrefix = '2818';
|
|
2281
|
+
}
|
|
2282
|
+
}
|
|
2283
|
+
class MorphETHTestnet extends Testnet {
|
|
2284
|
+
constructor() {
|
|
2285
|
+
super(...arguments);
|
|
2286
|
+
this.name = 'Morph Ethereum Testnet';
|
|
2287
|
+
this.family = base_1.CoinFamily.MORPHETH;
|
|
2288
|
+
this.explorerUrl = 'https://explorer-hoodi.morph.network/tx/';
|
|
2289
|
+
this.accountExplorerUrl = 'https://explorer-hoodi.morph.network/address/';
|
|
2290
|
+
this.chainId = 2910;
|
|
2291
|
+
this.nativeCoinOperationHashPrefix = '2910';
|
|
2292
|
+
}
|
|
2293
|
+
}
|
|
2294
|
+
class CreditcoinTestnet extends Testnet {
|
|
2295
|
+
constructor() {
|
|
2296
|
+
super(...arguments);
|
|
2297
|
+
this.name = 'CreditcoinTestnet';
|
|
2298
|
+
this.family = base_1.CoinFamily.CTC;
|
|
2299
|
+
this.explorerUrl = 'https://creditcoin-testnet.blockscout.com/tx/';
|
|
2300
|
+
this.accountExplorerUrl = 'https://creditcoin-testnet.blockscout.com/address/';
|
|
2301
|
+
this.chainId = 102031;
|
|
2302
|
+
this.nativeCoinOperationHashPrefix = '102031';
|
|
2303
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2304
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2305
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2306
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2307
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
class Sonic extends Mainnet {
|
|
2311
|
+
constructor() {
|
|
2312
|
+
super(...arguments);
|
|
2313
|
+
this.name = 'Sonic';
|
|
2314
|
+
this.family = base_1.CoinFamily.SONIC;
|
|
2315
|
+
this.explorerUrl = 'https://sonicscan.org/tx/';
|
|
2316
|
+
this.accountExplorerUrl = 'https://sonicscan.org/address/';
|
|
2317
|
+
this.chainId = 146;
|
|
2318
|
+
this.nativeCoinOperationHashPrefix = '146';
|
|
2319
|
+
}
|
|
2320
|
+
}
|
|
2321
|
+
class SonicTestnet extends Testnet {
|
|
2322
|
+
constructor() {
|
|
2323
|
+
super(...arguments);
|
|
2324
|
+
this.name = 'SonicTestnet';
|
|
2325
|
+
this.family = base_1.CoinFamily.SONIC;
|
|
2326
|
+
this.explorerUrl = 'https://testnet.sonicscan.org/tx/';
|
|
2327
|
+
this.accountExplorerUrl = 'https://testnet.sonicscan.org/address/';
|
|
2328
|
+
this.chainId = 14601;
|
|
2329
|
+
this.nativeCoinOperationHashPrefix = '14601';
|
|
2330
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2331
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2332
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2333
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2334
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2335
|
+
}
|
|
2336
|
+
}
|
|
2337
|
+
class Usdt0 extends Mainnet {
|
|
2338
|
+
constructor() {
|
|
2339
|
+
super(...arguments);
|
|
2340
|
+
this.name = 'StableEVM';
|
|
2341
|
+
this.family = base_1.CoinFamily.USDT0;
|
|
2342
|
+
this.explorerUrl = 'https://stablescan.xyz/tx/';
|
|
2343
|
+
this.accountExplorerUrl = 'https://stablescan.xyz/address/';
|
|
2344
|
+
this.chainId = 988;
|
|
2345
|
+
this.nativeCoinOperationHashPrefix = '988';
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
class Usdt0Testnet extends Testnet {
|
|
2349
|
+
constructor() {
|
|
2350
|
+
super(...arguments);
|
|
2351
|
+
this.name = 'Testnet StableEVM';
|
|
2352
|
+
this.family = base_1.CoinFamily.USDT0;
|
|
2353
|
+
this.explorerUrl = 'https://testnet.stablescan.xyz/tx/';
|
|
2354
|
+
this.accountExplorerUrl = 'https://testnet.stablescan.xyz/address/';
|
|
2355
|
+
this.chainId = 2201;
|
|
2356
|
+
this.nativeCoinOperationHashPrefix = '2201';
|
|
2357
|
+
}
|
|
2358
|
+
}
|
|
2359
|
+
class Kaia extends Mainnet {
|
|
2360
|
+
constructor() {
|
|
2361
|
+
super(...arguments);
|
|
2362
|
+
this.name = 'Kaia';
|
|
2363
|
+
this.family = base_1.CoinFamily.KAIA;
|
|
2364
|
+
this.explorerUrl = 'https://kaiascan.io/tx/';
|
|
2365
|
+
this.accountExplorerUrl = 'https://kaiascan.io/address/';
|
|
2366
|
+
this.chainId = 8217;
|
|
2367
|
+
this.nativeCoinOperationHashPrefix = '8217';
|
|
2368
|
+
}
|
|
2369
|
+
}
|
|
2370
|
+
class KaiaTestnet extends Testnet {
|
|
2371
|
+
constructor() {
|
|
2372
|
+
super(...arguments);
|
|
2373
|
+
this.name = 'KaiaTestnet';
|
|
2374
|
+
this.family = base_1.CoinFamily.KAIA;
|
|
2375
|
+
this.explorerUrl = 'https://kairos.kaiascan.io/tx/';
|
|
2376
|
+
this.accountExplorerUrl = 'https://kairos.kaiascan.io/address/';
|
|
2377
|
+
this.chainId = 1001;
|
|
2378
|
+
this.nativeCoinOperationHashPrefix = '1001';
|
|
2379
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2380
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2381
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2382
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2383
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
class Irys extends Mainnet {
|
|
2387
|
+
constructor() {
|
|
2388
|
+
super(...arguments);
|
|
2389
|
+
this.name = 'Irys';
|
|
2390
|
+
this.family = base_1.CoinFamily.IRYS;
|
|
2391
|
+
this.explorerUrl = 'https://evm-explorer.irys.xyz/tx/';
|
|
2392
|
+
this.accountExplorerUrl = 'https://evm-explorer.irys.xyz/address/';
|
|
2393
|
+
this.chainId = 3282;
|
|
2394
|
+
this.nativeCoinOperationHashPrefix = '3282';
|
|
2395
|
+
}
|
|
2396
|
+
}
|
|
2397
|
+
class IrysTestnet extends Testnet {
|
|
2398
|
+
constructor() {
|
|
2399
|
+
super(...arguments);
|
|
2400
|
+
this.name = 'IrysTestnet';
|
|
2401
|
+
this.family = base_1.CoinFamily.IRYS;
|
|
2402
|
+
this.explorerUrl = 'https://testnet-explorer.irys.xyz/tx/';
|
|
2403
|
+
this.accountExplorerUrl = 'https://testnet-explorer.irys.xyz/address/';
|
|
2404
|
+
this.chainId = 1270;
|
|
2405
|
+
this.nativeCoinOperationHashPrefix = '1270';
|
|
2406
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2407
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2408
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2409
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2410
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2411
|
+
}
|
|
2412
|
+
}
|
|
2413
|
+
class Og extends Mainnet {
|
|
2414
|
+
constructor() {
|
|
2415
|
+
super(...arguments);
|
|
2416
|
+
this.name = 'Zero Gravity';
|
|
2417
|
+
this.family = base_1.CoinFamily.OG;
|
|
2418
|
+
this.explorerUrl = 'https://chainscan.0g.ai/tx/';
|
|
2419
|
+
this.accountExplorerUrl = 'https://chainscan.0g.ai/address/';
|
|
2420
|
+
this.chainId = 16661;
|
|
2421
|
+
this.nativeCoinOperationHashPrefix = '16661';
|
|
2422
|
+
}
|
|
2423
|
+
}
|
|
2424
|
+
class OgTestnet extends Testnet {
|
|
2425
|
+
constructor() {
|
|
2426
|
+
super(...arguments);
|
|
2427
|
+
this.name = 'Zero Gravity Testnet';
|
|
2428
|
+
this.family = base_1.CoinFamily.OG;
|
|
2429
|
+
this.explorerUrl = 'https://chainscan-galileo.0g.ai/tx/';
|
|
2430
|
+
this.accountExplorerUrl = 'https://chainscan-galileo.0g.ai/address/';
|
|
2431
|
+
this.chainId = 16602;
|
|
2432
|
+
this.nativeCoinOperationHashPrefix = '16602';
|
|
2433
|
+
}
|
|
2434
|
+
}
|
|
2435
|
+
class Xdc extends Mainnet {
|
|
2436
|
+
constructor() {
|
|
2437
|
+
super(...arguments);
|
|
2438
|
+
this.name = 'XdcChain';
|
|
2439
|
+
this.family = base_1.CoinFamily.XDC;
|
|
2440
|
+
this.explorerUrl = 'https://xdcscan.com/tx/';
|
|
2441
|
+
this.accountExplorerUrl = 'https://xdcscan.com/address/';
|
|
2442
|
+
this.chainId = 50;
|
|
2443
|
+
this.nativeCoinOperationHashPrefix = '50';
|
|
2444
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
2445
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2446
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2447
|
+
}
|
|
2448
|
+
}
|
|
2449
|
+
class XdcTestnet extends Testnet {
|
|
2450
|
+
constructor() {
|
|
2451
|
+
super(...arguments);
|
|
2452
|
+
this.name = 'XdcChainTestnet';
|
|
2453
|
+
this.family = base_1.CoinFamily.XDC;
|
|
2454
|
+
this.explorerUrl = 'https://testnet.xdcscan.com/tx/';
|
|
2455
|
+
this.accountExplorerUrl = 'https://testnet.xdcscan.com/address/';
|
|
2456
|
+
this.chainId = 51;
|
|
2457
|
+
this.nativeCoinOperationHashPrefix = '51';
|
|
2458
|
+
this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
|
|
2459
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2460
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2461
|
+
}
|
|
2462
|
+
}
|
|
2463
|
+
class Wemix extends Mainnet {
|
|
2464
|
+
constructor() {
|
|
2465
|
+
super(...arguments);
|
|
2466
|
+
this.name = 'WemixChain';
|
|
2467
|
+
this.family = base_1.CoinFamily.WEMIX;
|
|
2468
|
+
this.explorerUrl = 'https://explorer.wemix.com/tx/';
|
|
2469
|
+
this.accountExplorerUrl = 'https://explorer.wemix.com/address/';
|
|
2470
|
+
this.chainId = 1111;
|
|
2471
|
+
this.nativeCoinOperationHashPrefix = '1111';
|
|
2472
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
2473
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2474
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
class WemixTestnet extends Testnet {
|
|
2478
|
+
constructor() {
|
|
2479
|
+
super(...arguments);
|
|
2480
|
+
this.name = 'WemixChainTestnet';
|
|
2481
|
+
this.family = base_1.CoinFamily.WEMIX;
|
|
2482
|
+
this.explorerUrl = 'https://explorer.test.wemix.com/tx/';
|
|
2483
|
+
this.accountExplorerUrl = 'https://explorer.test.wemix.com/address/';
|
|
2484
|
+
this.chainId = 1112;
|
|
2485
|
+
this.nativeCoinOperationHashPrefix = '1112';
|
|
2486
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
2487
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2488
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2489
|
+
}
|
|
2490
|
+
}
|
|
2491
|
+
class MonadTestnet extends Testnet {
|
|
2492
|
+
constructor() {
|
|
2493
|
+
super(...arguments);
|
|
2494
|
+
this.name = 'MonadTestnet';
|
|
2495
|
+
this.family = base_1.CoinFamily.MON;
|
|
2496
|
+
this.explorerUrl = 'https://testnet.monadexplorer.com/tx/';
|
|
2497
|
+
this.accountExplorerUrl = 'https://testnet.monadexplorer.com/address/';
|
|
2498
|
+
this.chainId = 10143;
|
|
2499
|
+
this.nativeCoinOperationHashPrefix = '10143';
|
|
2500
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2501
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2502
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2503
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2504
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2505
|
+
}
|
|
2506
|
+
}
|
|
2507
|
+
class Monad extends Mainnet {
|
|
2508
|
+
constructor() {
|
|
2509
|
+
super(...arguments);
|
|
2510
|
+
this.name = 'Monad';
|
|
2511
|
+
this.family = base_1.CoinFamily.MON;
|
|
2512
|
+
this.explorerUrl = 'https://mainnet-beta.monvision.io/tx/';
|
|
2513
|
+
this.chainId = 143;
|
|
2514
|
+
this.nativeCoinOperationHashPrefix = '143';
|
|
2515
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2516
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2517
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2518
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2519
|
+
}
|
|
2520
|
+
}
|
|
2521
|
+
class World extends Mainnet {
|
|
2522
|
+
constructor() {
|
|
2523
|
+
super(...arguments);
|
|
2524
|
+
this.name = 'Worldchain';
|
|
2525
|
+
this.family = base_1.CoinFamily.WORLD;
|
|
2526
|
+
this.explorerUrl = 'https://worldscan.org/tx/';
|
|
2527
|
+
this.accountExplorerUrl = 'https://worldscan.org/address/';
|
|
2528
|
+
this.chainId = 480;
|
|
2529
|
+
this.nativeCoinOperationHashPrefix = '480';
|
|
2530
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2531
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2532
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2533
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2534
|
+
}
|
|
2535
|
+
}
|
|
2536
|
+
class WorldTestnet extends Testnet {
|
|
2537
|
+
constructor() {
|
|
2538
|
+
super(...arguments);
|
|
2539
|
+
this.name = 'WorldchainTestnet';
|
|
2540
|
+
this.family = base_1.CoinFamily.WORLD;
|
|
2541
|
+
this.explorerUrl = 'https://sepolia.worldscan.org/tx/';
|
|
2542
|
+
this.accountExplorerUrl = 'https://sepolia.worldscan.org/address/';
|
|
2543
|
+
this.chainId = 4801;
|
|
2544
|
+
this.nativeCoinOperationHashPrefix = '4801';
|
|
2545
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2546
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2547
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2548
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2551
|
+
class Soneium extends Mainnet {
|
|
2552
|
+
constructor() {
|
|
2553
|
+
super(...arguments);
|
|
2554
|
+
this.name = 'Soneium';
|
|
2555
|
+
this.family = base_1.CoinFamily.SONEIUM;
|
|
2556
|
+
this.explorerUrl = 'https://soneium.blockscout.com/tx/';
|
|
2557
|
+
this.accountExplorerUrl = 'https://soneium.blockscout.com/address/';
|
|
2558
|
+
this.chainId = 1868;
|
|
2559
|
+
this.nativeCoinOperationHashPrefix = '1868';
|
|
2560
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2561
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2562
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2563
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2564
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2565
|
+
}
|
|
2566
|
+
}
|
|
2567
|
+
class SoneiumTestnet extends Testnet {
|
|
2568
|
+
constructor() {
|
|
2569
|
+
super(...arguments);
|
|
2570
|
+
this.name = 'SoneiumTestnet';
|
|
2571
|
+
this.family = base_1.CoinFamily.SONEIUM;
|
|
2572
|
+
this.explorerUrl = 'https://soneium-minato.blockscout.com/tx/';
|
|
2573
|
+
this.accountExplorerUrl = 'https://soneium-minato.blockscout.com/address/';
|
|
2574
|
+
this.chainId = 1946;
|
|
2575
|
+
this.nativeCoinOperationHashPrefix = '1946';
|
|
2576
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2577
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2578
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2579
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2580
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2581
|
+
}
|
|
2582
|
+
}
|
|
2583
|
+
class ScrollEth extends Mainnet {
|
|
2584
|
+
constructor() {
|
|
2585
|
+
super(...arguments);
|
|
2586
|
+
this.name = 'Scroll';
|
|
2587
|
+
this.family = base_1.CoinFamily.SCROLLETH;
|
|
2588
|
+
this.explorerUrl = 'https://scrollscan.com/tx/';
|
|
2589
|
+
this.accountExplorerUrl = 'https://scrollscan.com/address/';
|
|
2590
|
+
this.chainId = 534352;
|
|
2591
|
+
this.nativeCoinOperationHashPrefix = '534352';
|
|
2592
|
+
}
|
|
2593
|
+
}
|
|
2594
|
+
class ScrollEthTestnet extends Testnet {
|
|
2595
|
+
constructor() {
|
|
2596
|
+
super(...arguments);
|
|
2597
|
+
this.name = 'Scroll Sepolia';
|
|
2598
|
+
this.family = base_1.CoinFamily.SCROLLETH;
|
|
2599
|
+
this.explorerUrl = 'https://sepolia.scrollscan.com/tx/';
|
|
2600
|
+
this.accountExplorerUrl = 'https://sepolia.scrollscan.com/address/';
|
|
2601
|
+
this.chainId = 534351;
|
|
2602
|
+
this.nativeCoinOperationHashPrefix = '534351';
|
|
2603
|
+
}
|
|
2604
|
+
}
|
|
2605
|
+
class SeiEvm extends Mainnet {
|
|
2606
|
+
constructor() {
|
|
2607
|
+
super(...arguments);
|
|
2608
|
+
this.name = 'Seievm';
|
|
2609
|
+
this.family = base_1.CoinFamily.SEIEVM;
|
|
2610
|
+
this.explorerUrl = 'https://seiscan.io/tx/';
|
|
2611
|
+
this.accountExplorerUrl = 'https://seiscan.io/address/';
|
|
2612
|
+
this.chainId = 1329;
|
|
2613
|
+
this.nativeCoinOperationHashPrefix = '1329';
|
|
2614
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2615
|
+
}
|
|
2616
|
+
}
|
|
2617
|
+
class SeiEvmTestnet extends Testnet {
|
|
2618
|
+
constructor() {
|
|
2619
|
+
super(...arguments);
|
|
2620
|
+
this.name = 'SeiEvmTestnet';
|
|
2621
|
+
this.family = base_1.CoinFamily.SEIEVM;
|
|
2622
|
+
this.explorerUrl = 'https://testnet.seiscan.io/tx/';
|
|
2623
|
+
this.accountExplorerUrl = 'https://testnet.seiscan.io/address/';
|
|
2624
|
+
this.chainId = 1328;
|
|
2625
|
+
this.nativeCoinOperationHashPrefix = '1328';
|
|
2626
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2627
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2628
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2629
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2630
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2631
|
+
}
|
|
2632
|
+
}
|
|
2633
|
+
class SomniaTestnet extends Testnet {
|
|
2634
|
+
constructor() {
|
|
2635
|
+
super(...arguments);
|
|
2636
|
+
this.name = 'SomniaTestnet';
|
|
2637
|
+
this.family = base_1.CoinFamily.STT;
|
|
2638
|
+
this.explorerUrl = 'https://shannon-explorer.somnia.network/tx/';
|
|
2639
|
+
this.accountExplorerUrl = 'https://shannon-explorer.somnia.network/address/';
|
|
2640
|
+
this.chainId = 50312;
|
|
2641
|
+
this.nativeCoinOperationHashPrefix = '50312';
|
|
2642
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2643
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2644
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2645
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2646
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2647
|
+
}
|
|
2648
|
+
}
|
|
2649
|
+
class Somi extends Mainnet {
|
|
2650
|
+
constructor() {
|
|
2651
|
+
super(...arguments);
|
|
2652
|
+
this.name = 'Somnia';
|
|
2653
|
+
this.family = base_1.CoinFamily.SOMI;
|
|
2654
|
+
this.explorerUrl = 'https://mainnet.somnia.w3us.site/tx/';
|
|
2655
|
+
this.chainId = 5031;
|
|
2656
|
+
this.nativeCoinOperationHashPrefix = '5031';
|
|
2657
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2658
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2659
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2660
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2661
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
2664
|
+
class FlareP extends Mainnet {
|
|
2665
|
+
constructor() {
|
|
2666
|
+
super(...arguments);
|
|
2667
|
+
this.assetId = '2MxKSeEWXViLdYyDhW1SQ46AECZEbE2bnVRZptv42JrxqyUX5k';
|
|
2668
|
+
this.name = 'FlareP';
|
|
2669
|
+
this.family = base_1.CoinFamily.FLRP;
|
|
2670
|
+
this.explorerUrl = 'https://flarescan.com/blockchain/pvm/tx/';
|
|
2671
|
+
this.accountExplorerUrl = 'https://flarescan.com/blockchain/pvm/address/';
|
|
2672
|
+
this.blockchainID = '11111111111111111111111111111111LpoYY';
|
|
2673
|
+
this.cChainBlockchainID = 'umkbhSrjVw5nUvy1eo25AdrjRkPBdtzAMewuxA2rqEx4YMo4c';
|
|
2674
|
+
this.xChainBlockchainID = 'fK5e6T3EniMqagBkxXjAug9EbhFDZbEzPPr4f22uwMoP5i2cJ';
|
|
2675
|
+
this.networkID = 14;
|
|
2676
|
+
this.hrp = 'flare';
|
|
2677
|
+
this.alias = 'P';
|
|
2678
|
+
this.vm = 'platformvm';
|
|
2679
|
+
this.minImportToPFee = '1261000'; // 0.1261 FLR
|
|
2680
|
+
this.txFee = '200000'; // FLR P-chain import requires higher fee than base txFee
|
|
2681
|
+
this.baseTxFee = '1000000';
|
|
2682
|
+
this.maxImportFee = '10000000'; // defaults
|
|
2683
|
+
this.createAssetTxFee = '1000000';
|
|
2684
|
+
this.createSubnetTx = '100000000'; // defaults
|
|
2685
|
+
this.transformSubnetTxFee = '100000000';
|
|
2686
|
+
this.createChainTx = '100000000'; // defaults
|
|
2687
|
+
this.creationTxFee = '10000000'; // defaults
|
|
2688
|
+
this.minConsumption = '0.1';
|
|
2689
|
+
this.maxConsumption = '0.12';
|
|
2690
|
+
this.maxSupply = '103688266974000000000'; // 103B tokens
|
|
2691
|
+
this.minStake = '1000000000000000'; // 1M FLR
|
|
2692
|
+
this.minStakeDuration = '5256000'; // 2 months
|
|
2693
|
+
this.maxStakeDuration = '31536000'; // 1 year
|
|
2694
|
+
this.minDelegationStake = '50000000000000'; // 50000 FLR
|
|
2695
|
+
this.minDelegationFee = '0';
|
|
2696
|
+
this.addPrimaryNetworkValidatorFee = '0';
|
|
2697
|
+
this.addSubnetValidatorFee = '1000000';
|
|
2698
|
+
this.addSubnetDelegatorFee = '1000000';
|
|
2699
|
+
}
|
|
2700
|
+
}
|
|
2701
|
+
exports.FlareP = FlareP;
|
|
2702
|
+
class FlarePTestnet extends Testnet {
|
|
2703
|
+
constructor() {
|
|
2704
|
+
super(...arguments);
|
|
2705
|
+
this.name = 'FlarePTestnet';
|
|
2706
|
+
this.family = base_1.CoinFamily.FLRP;
|
|
2707
|
+
this.explorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/pvm/tx/';
|
|
2708
|
+
this.accountExplorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/pvm/address/';
|
|
2709
|
+
this.flarePublicUrl = 'https://coston2.testnet.flare.network';
|
|
2710
|
+
this.blockchainID = '11111111111111111111111111111111LpoYY';
|
|
2711
|
+
this.cChainBlockchainID = 'vE8M98mEQH6wk56sStD1ML8HApTgSqfJZLk9gQ3Fsd4i6m3Bi';
|
|
2712
|
+
this.xChainBlockchainID = 'FJuSwZuP85eyBpuBrKECnpPedGyXoDy2hP9q4JD8qBTZGxYJ';
|
|
2713
|
+
this.networkID = 114;
|
|
2714
|
+
this.hrp = 'costwo';
|
|
2715
|
+
this.alias = 'P';
|
|
2716
|
+
this.assetId = 'fxMAKpBQQpFedrUhWMsDYfCUJxdUw4mneTczKBzNg3rc2JUub';
|
|
2717
|
+
this.vm = 'platformvm';
|
|
2718
|
+
this.minImportToPFee = '1261000'; // 0.1261 FLR
|
|
2719
|
+
this.txFee = '200000'; // FLR P-chain import requires higher fee than base txFee
|
|
2720
|
+
this.baseTxFee = '1000000';
|
|
2721
|
+
this.maxImportFee = '10000000'; // defaults
|
|
2722
|
+
this.createAssetTxFee = '1000000';
|
|
2723
|
+
this.createSubnetTx = '100000000'; // defaults
|
|
2724
|
+
this.transformSubnetTxFee = '100000000';
|
|
2725
|
+
this.createChainTx = '100000000'; // defaults
|
|
2726
|
+
this.creationTxFee = '10000000'; // defaults
|
|
2727
|
+
this.minConsumption = '0.1';
|
|
2728
|
+
this.maxConsumption = '0.12';
|
|
2729
|
+
this.maxSupply = '79000000000000000000000'; // 79 trillion tokens
|
|
2730
|
+
this.minStake = '1000000000000000'; // 1M FLR
|
|
2731
|
+
this.minStakeDuration = '5256000'; // 2 months
|
|
2732
|
+
this.maxStakeDuration = '31536000'; // 1 year
|
|
2733
|
+
this.minDelegationStake = '50000000000000'; // 50000 FLR
|
|
2734
|
+
this.minDelegationFee = '0';
|
|
2735
|
+
this.addPrimaryNetworkValidatorFee = '0';
|
|
2736
|
+
this.addSubnetValidatorFee = '1000000';
|
|
2737
|
+
this.addSubnetDelegatorFee = '1000000';
|
|
2738
|
+
}
|
|
2739
|
+
}
|
|
2740
|
+
exports.FlarePTestnet = FlarePTestnet;
|
|
2741
|
+
class Flare extends Mainnet {
|
|
2742
|
+
constructor() {
|
|
2743
|
+
super(...arguments);
|
|
2744
|
+
this.name = 'Flarechain';
|
|
2745
|
+
this.family = base_1.CoinFamily.FLR;
|
|
2746
|
+
this.explorerUrl = 'https://flarescan.com/tx/';
|
|
2747
|
+
this.accountExplorerUrl = 'https://flarescan.com/blockchain/address/';
|
|
2748
|
+
this.flarePublicUrl = 'https://flarescan.com';
|
|
2749
|
+
this.chainId = 14;
|
|
2750
|
+
this.nativeCoinOperationHashPrefix = '14';
|
|
2751
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2752
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2753
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
2754
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2755
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2756
|
+
}
|
|
2757
|
+
}
|
|
2758
|
+
exports.Flare = Flare;
|
|
2759
|
+
class FlareTestnet extends Testnet {
|
|
2760
|
+
constructor() {
|
|
2761
|
+
super(...arguments);
|
|
2762
|
+
this.name = 'FlarechainTestnet';
|
|
2763
|
+
this.family = base_1.CoinFamily.FLR;
|
|
2764
|
+
this.explorerUrl = 'https://coston2.testnet.flarescan.com/tx/';
|
|
2765
|
+
this.accountExplorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/address/';
|
|
2766
|
+
this.chainId = 114;
|
|
2767
|
+
this.nativeCoinOperationHashPrefix = '114';
|
|
2768
|
+
this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
|
|
2769
|
+
this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
|
|
2770
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
2771
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2772
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2773
|
+
}
|
|
2774
|
+
}
|
|
2775
|
+
exports.FlareTestnet = FlareTestnet;
|
|
2776
|
+
class Songbird extends Mainnet {
|
|
2777
|
+
constructor() {
|
|
2778
|
+
super(...arguments);
|
|
2779
|
+
this.name = 'Songbirdchain';
|
|
2780
|
+
this.family = base_1.CoinFamily.SGB;
|
|
2781
|
+
this.explorerUrl = 'https://songbird-explorer.flare.network/tx/';
|
|
2782
|
+
this.accountExplorerUrl = 'https://songbird-explorer.flare.network/address/';
|
|
2783
|
+
this.chainId = 19;
|
|
2784
|
+
this.nativeCoinOperationHashPrefix = '19';
|
|
2785
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
2786
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2787
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2788
|
+
}
|
|
2789
|
+
}
|
|
2790
|
+
class SongbirdTestnet extends Testnet {
|
|
2791
|
+
constructor() {
|
|
2792
|
+
super(...arguments);
|
|
2793
|
+
this.name = 'SongbirdchainTestnet';
|
|
2794
|
+
this.family = base_1.CoinFamily.SGB;
|
|
2795
|
+
this.explorerUrl = 'https://coston-explorer.flare.network/tx/';
|
|
2796
|
+
this.accountExplorerUrl = 'https://coston-explorer.flare.network/address/';
|
|
2797
|
+
this.chainId = 16;
|
|
2798
|
+
this.nativeCoinOperationHashPrefix = '16';
|
|
2799
|
+
this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
|
|
2800
|
+
this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
|
|
2801
|
+
this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
|
|
2802
|
+
}
|
|
2803
|
+
}
|
|
2804
|
+
class BaseChainTestnet extends Testnet {
|
|
2805
|
+
constructor() {
|
|
2806
|
+
super(...arguments);
|
|
2807
|
+
//BaseETH testnet
|
|
2808
|
+
this.name = 'BaseChainTestnet';
|
|
2809
|
+
this.family = base_1.CoinFamily.BASEETH;
|
|
2810
|
+
this.explorerUrl = 'https://sepolia.basescan.org/tx/';
|
|
2811
|
+
this.accountExplorerUrl = 'https://sepolia.basescan.org/address/';
|
|
2812
|
+
this.chainId = 84532;
|
|
2813
|
+
this.nativeCoinOperationHashPrefix = '84532';
|
|
2814
|
+
this.tokenOperationHashPrefix = '84532-ERC20';
|
|
2815
|
+
this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
|
|
2816
|
+
this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
|
|
2817
|
+
this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
|
|
2818
|
+
this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
|
|
2819
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
class BaseChain extends Mainnet {
|
|
2823
|
+
constructor() {
|
|
2824
|
+
super(...arguments);
|
|
2825
|
+
//BaseETH
|
|
2826
|
+
this.name = 'BaseChain';
|
|
2827
|
+
this.family = base_1.CoinFamily.BASEETH;
|
|
2828
|
+
this.explorerUrl = 'https://basescan.org/tx/';
|
|
2829
|
+
this.accountExplorerUrl = 'https://basescan.org/address/';
|
|
2830
|
+
this.chainId = 8453;
|
|
2831
|
+
this.nativeCoinOperationHashPrefix = '8453';
|
|
2832
|
+
this.tokenOperationHashPrefix = '8453-ERC20';
|
|
2833
|
+
this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
|
|
2834
|
+
this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
|
|
2835
|
+
this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
|
|
2836
|
+
this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
|
|
2837
|
+
this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
|
|
2838
|
+
}
|
|
2839
|
+
}
|
|
2840
|
+
class Polymesh extends Mainnet {
|
|
2841
|
+
constructor() {
|
|
2842
|
+
super(...arguments);
|
|
2843
|
+
this.name = 'Polymesh';
|
|
2844
|
+
this.family = base_1.CoinFamily.POLYX;
|
|
2845
|
+
this.explorerUrl = 'https://polymesh.subscan.io/extrinsic/';
|
|
2846
|
+
this.specName = 'polymesh_mainnet';
|
|
2847
|
+
this.genesisHash = '0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063';
|
|
2848
|
+
this.specVersion = 7002000;
|
|
2849
|
+
this.chainName = 'Polymesh Mainnet';
|
|
2850
|
+
this.txVersion = 7;
|
|
2851
|
+
this.v8SpecVersion = 8000000;
|
|
2852
|
+
this.v8TxVersion = 8;
|
|
2853
|
+
}
|
|
2854
|
+
}
|
|
2855
|
+
class PolymeshTestnet extends Testnet {
|
|
2856
|
+
constructor() {
|
|
2857
|
+
super(...arguments);
|
|
2858
|
+
this.name = 'PolymeshTestnet';
|
|
2859
|
+
this.family = base_1.CoinFamily.POLYX;
|
|
2860
|
+
this.explorerUrl = 'https://polymesh-testnet.subscan.io/extrinsic/';
|
|
2861
|
+
this.specName = 'polymesh_testnet';
|
|
2862
|
+
this.genesisHash = '0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6';
|
|
2863
|
+
this.specVersion = 7002000;
|
|
2864
|
+
this.chainName = 'Polymesh Testnet';
|
|
2865
|
+
this.txVersion = 7;
|
|
2866
|
+
this.v8SpecVersion = 8000000;
|
|
2867
|
+
this.v8TxVersion = 8;
|
|
2868
|
+
}
|
|
2869
|
+
}
|
|
2870
|
+
class Vet extends Mainnet {
|
|
2871
|
+
constructor() {
|
|
2872
|
+
super(...arguments);
|
|
2873
|
+
this.name = 'VeChain';
|
|
2874
|
+
this.family = base_1.CoinFamily.VET;
|
|
2875
|
+
this.explorerUrl = 'https://explore.vechain.org/transactions/';
|
|
2876
|
+
this.accountExplorerUrl = 'https://explore.vechain.org/accounts/';
|
|
2877
|
+
this.chainId = 100009;
|
|
2878
|
+
this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
|
|
2879
|
+
this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
|
|
2880
|
+
}
|
|
2881
|
+
}
|
|
2882
|
+
class VetTestnet extends Testnet {
|
|
2883
|
+
constructor() {
|
|
2884
|
+
super(...arguments);
|
|
2885
|
+
this.name = 'VeChainTestnet';
|
|
2886
|
+
this.family = base_1.CoinFamily.VET;
|
|
2887
|
+
this.explorerUrl = 'https://explore-testnet.vechain.org/transactions/';
|
|
2888
|
+
this.accountExplorerUrl = 'https://explore-testnet.vechain.org/accounts/';
|
|
2889
|
+
this.chainId = 100010;
|
|
2890
|
+
this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
|
|
2891
|
+
this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
|
|
2892
|
+
}
|
|
2893
|
+
}
|
|
2894
|
+
class Iota extends Mainnet {
|
|
2895
|
+
constructor() {
|
|
2896
|
+
super(...arguments);
|
|
2897
|
+
this.name = 'Iota';
|
|
2898
|
+
this.family = base_1.CoinFamily.IOTA;
|
|
2899
|
+
this.explorerUrl = 'https://explorer.iota.org/txblock/?network=mainnet';
|
|
2900
|
+
this.accountExplorerUrl = 'https://explorer.iota.org/address/?network=mainnet';
|
|
2901
|
+
}
|
|
2902
|
+
}
|
|
2903
|
+
class IotaTestnet extends Testnet {
|
|
2904
|
+
constructor() {
|
|
2905
|
+
super(...arguments);
|
|
2906
|
+
this.name = 'Testnet Iota';
|
|
2907
|
+
this.family = base_1.CoinFamily.IOTA;
|
|
2908
|
+
this.explorerUrl = 'https://explorer.iota.org/txblock/?network=testnet';
|
|
2909
|
+
this.accountExplorerUrl = 'https://explorer.iota.org/address/?network=testnet';
|
|
2910
|
+
}
|
|
2911
|
+
}
|
|
2912
|
+
class Flow extends Mainnet {
|
|
2913
|
+
constructor() {
|
|
2914
|
+
super(...arguments);
|
|
2915
|
+
this.name = 'Flow';
|
|
2916
|
+
this.family = base_1.CoinFamily.FLOW;
|
|
2917
|
+
this.explorerUrl = 'https://evm.flowscan.io/tx/';
|
|
2918
|
+
this.accountExplorerUrl = 'https://evm.flowscan.io/address/';
|
|
2919
|
+
this.chainId = 747;
|
|
2920
|
+
this.nativeCoinOperationHashPrefix = '747';
|
|
2921
|
+
}
|
|
2922
|
+
}
|
|
2923
|
+
class FlowTestnet extends Testnet {
|
|
2924
|
+
constructor() {
|
|
2925
|
+
super(...arguments);
|
|
2926
|
+
this.name = 'FlowTestnet';
|
|
2927
|
+
this.family = base_1.CoinFamily.FLOW;
|
|
2928
|
+
this.explorerUrl = 'https://evm-testnet.flowscan.io/tx/';
|
|
2929
|
+
this.accountExplorerUrl = 'https://evm-testnet.flowscan.io/address/';
|
|
2930
|
+
this.chainId = 545;
|
|
2931
|
+
this.nativeCoinOperationHashPrefix = '545';
|
|
2932
|
+
}
|
|
2933
|
+
}
|
|
2934
|
+
class GasEvm extends Mainnet {
|
|
2935
|
+
constructor() {
|
|
2936
|
+
super(...arguments);
|
|
2937
|
+
this.name = 'Neo X';
|
|
2938
|
+
this.family = base_1.CoinFamily.GASEVM;
|
|
2939
|
+
this.explorerUrl = 'https://neoxscan.ngd.network/tx/';
|
|
2940
|
+
this.accountExplorerUrl = 'https://neoxscan.ngd.network/address/';
|
|
2941
|
+
this.chainId = 47763;
|
|
2942
|
+
this.nativeCoinOperationHashPrefix = '47763';
|
|
2943
|
+
}
|
|
2944
|
+
}
|
|
2945
|
+
class GasEvmTestnet extends Testnet {
|
|
2946
|
+
constructor() {
|
|
2947
|
+
super(...arguments);
|
|
2948
|
+
this.name = 'Testnet Neo X';
|
|
2949
|
+
this.family = base_1.CoinFamily.GASEVM;
|
|
2950
|
+
this.explorerUrl = 'https://neoxt4scan.ngd.network/tx/';
|
|
2951
|
+
this.accountExplorerUrl = 'https://neoxt4scan.ngd.network/address/';
|
|
2952
|
+
this.chainId = 12227332;
|
|
2953
|
+
this.nativeCoinOperationHashPrefix = '12227332';
|
|
2954
|
+
}
|
|
2955
|
+
}
|
|
2956
|
+
class MegaETH extends Mainnet {
|
|
2957
|
+
constructor() {
|
|
2958
|
+
super(...arguments);
|
|
2959
|
+
this.name = 'MegaETH';
|
|
2960
|
+
this.family = base_1.CoinFamily.MEGAETH;
|
|
2961
|
+
this.explorerUrl = 'https://megaeth.blockscout.com/tx/';
|
|
2962
|
+
this.accountExplorerUrl = 'https://megaeth.blockscout.com/address/';
|
|
2963
|
+
this.chainId = 4326;
|
|
2964
|
+
this.nativeCoinOperationHashPrefix = '4326';
|
|
2965
|
+
}
|
|
2966
|
+
}
|
|
2967
|
+
class MegaETHTestnet extends Testnet {
|
|
2968
|
+
constructor() {
|
|
2969
|
+
super(...arguments);
|
|
2970
|
+
this.name = 'MegaETHTestnet';
|
|
2971
|
+
this.family = base_1.CoinFamily.MEGAETH;
|
|
2972
|
+
this.explorerUrl = 'https://www.megaexplorer.xyz/tx/';
|
|
2973
|
+
this.accountExplorerUrl = 'https://www.megaexplorer.xyz/address/';
|
|
2974
|
+
this.chainId = 6343;
|
|
2975
|
+
this.nativeCoinOperationHashPrefix = '6343';
|
|
2976
|
+
}
|
|
2977
|
+
}
|
|
2978
|
+
class Plume extends Mainnet {
|
|
2979
|
+
constructor() {
|
|
2980
|
+
super(...arguments);
|
|
2981
|
+
this.name = 'Plume';
|
|
2982
|
+
this.family = base_1.CoinFamily.PLUME;
|
|
2983
|
+
this.explorerUrl = 'https://explorer.plume.org/tx/';
|
|
2984
|
+
this.accountExplorerUrl = 'https://explorer.plume.org/address/';
|
|
2985
|
+
this.chainId = 98866;
|
|
2986
|
+
this.nativeCoinOperationHashPrefix = '98866';
|
|
2987
|
+
}
|
|
2988
|
+
}
|
|
2989
|
+
class HederaEVMTestnet extends Testnet {
|
|
2990
|
+
constructor() {
|
|
2991
|
+
super(...arguments);
|
|
2992
|
+
this.name = 'Testnet Hedera EVM';
|
|
2993
|
+
this.family = base_1.CoinFamily.HBAREVM;
|
|
2994
|
+
this.explorerUrl = 'https://hashscan.io/testnet/transaction/';
|
|
2995
|
+
this.accountExplorerUrl = 'https://hashscan.io/testnet/account/';
|
|
2996
|
+
this.chainId = 296;
|
|
2997
|
+
this.nativeCoinOperationHashPrefix = '296';
|
|
2998
|
+
}
|
|
2999
|
+
}
|
|
3000
|
+
class HederaEVM extends Mainnet {
|
|
3001
|
+
constructor() {
|
|
3002
|
+
super(...arguments);
|
|
3003
|
+
this.name = 'Hedera EVM';
|
|
3004
|
+
this.family = base_1.CoinFamily.HBAREVM;
|
|
3005
|
+
this.explorerUrl = 'https://hashscan.io/mainnet/transaction/';
|
|
3006
|
+
this.accountExplorerUrl = 'https://hashscan.io/mainnet/account/';
|
|
3007
|
+
this.chainId = 295;
|
|
3008
|
+
this.nativeCoinOperationHashPrefix = '295';
|
|
3009
|
+
}
|
|
3010
|
+
}
|
|
3011
|
+
class HemiEth extends Mainnet {
|
|
3012
|
+
constructor() {
|
|
3013
|
+
super(...arguments);
|
|
3014
|
+
this.name = 'Hemi Ethereum';
|
|
3015
|
+
this.family = base_1.CoinFamily.HEMIETH;
|
|
3016
|
+
this.explorerUrl = 'https://explorer.hemi.xyz/tx/';
|
|
3017
|
+
this.accountExplorerUrl = 'https://explorer.hemi.xyz/address/';
|
|
3018
|
+
this.chainId = 43111;
|
|
3019
|
+
this.nativeCoinOperationHashPrefix = '43111';
|
|
3020
|
+
}
|
|
3021
|
+
}
|
|
3022
|
+
class HemiEthTestnet extends Testnet {
|
|
3023
|
+
constructor() {
|
|
3024
|
+
super(...arguments);
|
|
3025
|
+
this.name = 'Testnet Hemi Ethereum';
|
|
3026
|
+
this.family = base_1.CoinFamily.HEMIETH;
|
|
3027
|
+
this.explorerUrl = 'https://testnet.explorer.hemi.xyz/tx/';
|
|
3028
|
+
this.accountExplorerUrl = 'https://testnet.explorer.hemi.xyz/address/';
|
|
3029
|
+
this.chainId = 743111;
|
|
3030
|
+
this.nativeCoinOperationHashPrefix = '743111';
|
|
3031
|
+
}
|
|
3032
|
+
}
|
|
3033
|
+
class KatanaEth extends Mainnet {
|
|
3034
|
+
constructor() {
|
|
3035
|
+
super(...arguments);
|
|
3036
|
+
this.name = 'Katana';
|
|
3037
|
+
this.family = base_1.CoinFamily.KATANAETH;
|
|
3038
|
+
this.explorerUrl = 'https://katanascan.com/tx/';
|
|
3039
|
+
this.accountExplorerUrl = 'https://katanascan.com/address/';
|
|
3040
|
+
this.chainId = 747474;
|
|
3041
|
+
this.nativeCoinOperationHashPrefix = '747474';
|
|
3042
|
+
}
|
|
3043
|
+
}
|
|
3044
|
+
class KatanaEthTestnet extends Testnet {
|
|
3045
|
+
constructor() {
|
|
3046
|
+
super(...arguments);
|
|
3047
|
+
this.name = 'Testnet Katana';
|
|
3048
|
+
this.family = base_1.CoinFamily.KATANAETH;
|
|
3049
|
+
this.explorerUrl = 'https://explorer-bokuto.katanarpc.com/tx/';
|
|
3050
|
+
this.accountExplorerUrl = 'https://explorer-bokuto.katanarpc.com/address/';
|
|
3051
|
+
this.chainId = 737373;
|
|
3052
|
+
this.nativeCoinOperationHashPrefix = '737373';
|
|
3053
|
+
}
|
|
3054
|
+
}
|
|
3055
|
+
class PrividiumETH extends Mainnet {
|
|
3056
|
+
constructor() {
|
|
3057
|
+
super(...arguments);
|
|
3058
|
+
this.name = 'Prividium Ethereum Mainnet';
|
|
3059
|
+
this.family = base_1.CoinFamily.PRIVIDIUMETH;
|
|
3060
|
+
this.explorerUrl = 'https://explorer.prividium.zksync.dev/tx/'; // TODO: update with mainnet URL when available
|
|
3061
|
+
this.accountExplorerUrl = 'https://explorer.prividium.zksync.dev/address/'; // TODO: update with mainnet URL when available
|
|
3062
|
+
this.chainId = 9999999; // TODO: update with mainnet chain ID when available
|
|
3063
|
+
this.nativeCoinOperationHashPrefix = '9999999';
|
|
3064
|
+
}
|
|
3065
|
+
}
|
|
3066
|
+
class PrividiumETHTestnet extends Testnet {
|
|
3067
|
+
constructor() {
|
|
3068
|
+
super(...arguments);
|
|
3069
|
+
this.name = 'Prividium Ethereum Testnet';
|
|
3070
|
+
this.family = base_1.CoinFamily.PRIVIDIUMETH;
|
|
3071
|
+
this.explorerUrl = 'https://explorer.testnet-prividium.zksync.dev/tx/';
|
|
3072
|
+
this.accountExplorerUrl = 'https://explorer.testnet-prividium.zksync.dev/address/';
|
|
3073
|
+
this.chainId = 8022834;
|
|
3074
|
+
this.nativeCoinOperationHashPrefix = '8022834';
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
class InkEth extends Mainnet {
|
|
3078
|
+
constructor() {
|
|
3079
|
+
super(...arguments);
|
|
3080
|
+
this.name = 'INK Mainnet';
|
|
3081
|
+
this.family = base_1.CoinFamily.INKETH;
|
|
3082
|
+
this.explorerUrl = 'https://explorer.inkonchain.com/tx/';
|
|
3083
|
+
this.accountExplorerUrl = 'https://explorer.inkonchain.com/address/';
|
|
3084
|
+
this.chainId = 57073;
|
|
3085
|
+
this.nativeCoinOperationHashPrefix = '57073';
|
|
3086
|
+
}
|
|
3087
|
+
}
|
|
3088
|
+
class InkEthTestnet extends Testnet {
|
|
3089
|
+
constructor() {
|
|
3090
|
+
super(...arguments);
|
|
3091
|
+
this.name = 'INK Testnet';
|
|
3092
|
+
this.family = base_1.CoinFamily.INKETH;
|
|
3093
|
+
this.explorerUrl = 'https://explorer-sepolia.inkonchain.com/tx/';
|
|
3094
|
+
this.accountExplorerUrl = 'https://explorer-sepolia.inkonchain.com/address/';
|
|
3095
|
+
this.chainId = 763373;
|
|
3096
|
+
this.nativeCoinOperationHashPrefix = '763373';
|
|
3097
|
+
}
|
|
3098
|
+
}
|
|
3099
|
+
class PlumeTestnet extends Testnet {
|
|
3100
|
+
constructor() {
|
|
3101
|
+
super(...arguments);
|
|
3102
|
+
this.name = 'PlumeTestnet';
|
|
3103
|
+
this.family = base_1.CoinFamily.PLUME;
|
|
3104
|
+
this.explorerUrl = 'https://testnet-explorer.plume.org/tx/';
|
|
3105
|
+
this.accountExplorerUrl = 'https://testnet-explorer.plume.org/address/';
|
|
3106
|
+
this.chainId = 98867;
|
|
3107
|
+
this.nativeCoinOperationHashPrefix = '98867';
|
|
3108
|
+
}
|
|
3109
|
+
}
|
|
3110
|
+
class Canton extends Mainnet {
|
|
3111
|
+
constructor() {
|
|
3112
|
+
super(...arguments);
|
|
3113
|
+
this.name = 'Canton';
|
|
3114
|
+
this.family = base_1.CoinFamily.CANTON;
|
|
3115
|
+
this.explorerUrl = 'https://lighthouse.cantonloop.com/transactions/';
|
|
3116
|
+
}
|
|
3117
|
+
}
|
|
3118
|
+
class CantonTestnet extends Testnet {
|
|
3119
|
+
constructor() {
|
|
3120
|
+
super(...arguments);
|
|
3121
|
+
this.name = 'CantonTestnet';
|
|
3122
|
+
this.family = base_1.CoinFamily.CANTON;
|
|
3123
|
+
this.explorerUrl = 'https://lighthouse.testnet.cantonloop.com/transactions/';
|
|
3124
|
+
}
|
|
3125
|
+
}
|
|
3126
|
+
class Dogeos extends Mainnet {
|
|
3127
|
+
constructor() {
|
|
3128
|
+
super(...arguments);
|
|
3129
|
+
this.name = 'Doge OS';
|
|
3130
|
+
this.family = base_1.CoinFamily.DOGEOS;
|
|
3131
|
+
this.explorerUrl = 'https://blockscout.testnet.dogeos.com/tx/'; //TODO: WIN-8082 => add mainnet url when available
|
|
3132
|
+
this.accountExplorerUrl = "'https://blockscout.testnet.dogeos.com/address/"; //TODO: WIN-8082 => add mainnet url when available
|
|
3133
|
+
this.chainId = 1234567; ////TODO: WIN-8082 => add mainnet chainId when available
|
|
3134
|
+
this.nativeCoinOperationHashPrefix = '1234567'; //TODO: WIN-8082 => add when mainnet details available
|
|
3135
|
+
}
|
|
3136
|
+
}
|
|
3137
|
+
class DogeosTestnet extends Testnet {
|
|
3138
|
+
constructor() {
|
|
3139
|
+
super(...arguments);
|
|
3140
|
+
this.name = 'Doge OS Testnet';
|
|
3141
|
+
this.family = base_1.CoinFamily.DOGEOS;
|
|
3142
|
+
this.explorerUrl = 'https://blockscout.testnet.dogeos.com/tx/';
|
|
3143
|
+
this.accountExplorerUrl = 'https://blockscout.testnet.dogeos.com/address/';
|
|
3144
|
+
this.chainId = 6281971;
|
|
3145
|
+
this.nativeCoinOperationHashPrefix = '6281971';
|
|
3146
|
+
}
|
|
3147
|
+
}
|
|
3148
|
+
class ArcUSDCTestnet extends Testnet {
|
|
3149
|
+
constructor() {
|
|
3150
|
+
super(...arguments);
|
|
3151
|
+
this.name = 'USDC (ARC) Testnet';
|
|
3152
|
+
this.family = base_1.CoinFamily.ARCUSDC;
|
|
3153
|
+
this.explorerUrl = 'https://testnet.arcscan.app/tx/';
|
|
3154
|
+
this.accountExplorerUrl = 'https://testnet.arcscan.app/address/';
|
|
3155
|
+
this.chainId = 5042002;
|
|
3156
|
+
this.nativeCoinOperationHashPrefix = '5042002';
|
|
3157
|
+
}
|
|
3158
|
+
}
|
|
3159
|
+
class ArcUSDC extends Mainnet {
|
|
3160
|
+
constructor() {
|
|
3161
|
+
super(...arguments);
|
|
3162
|
+
this.name = 'USDC (ARC)';
|
|
3163
|
+
this.family = base_1.CoinFamily.ARCUSDC;
|
|
3164
|
+
this.explorerUrl = 'https://explorer.arc.io/tx/'; // WIN-8844 change to prod explorer url
|
|
3165
|
+
this.accountExplorerUrl = 'https://explorer.arc.io/address/'; // change to prod explorer url when available
|
|
3166
|
+
this.chainId = 5042;
|
|
3167
|
+
this.nativeCoinOperationHashPrefix = '5042';
|
|
3168
|
+
}
|
|
3169
|
+
}
|
|
3170
|
+
class Tempo extends Mainnet {
|
|
3171
|
+
constructor() {
|
|
3172
|
+
super(...arguments);
|
|
3173
|
+
this.name = 'Tempo';
|
|
3174
|
+
this.family = base_1.CoinFamily.TEMPO;
|
|
3175
|
+
this.explorerUrl = 'https://explore.mainnet.tempo.xyz/tx/';
|
|
3176
|
+
this.accountExplorerUrl = 'https://explore.mainnet.tempo.xyz/address/';
|
|
3177
|
+
this.chainId = 4217;
|
|
3178
|
+
this.nativeCoinOperationHashPrefix = 'TEMPO';
|
|
3179
|
+
this.tokenOperationHashPrefix = 'TEMPO-TIP20';
|
|
3180
|
+
}
|
|
3181
|
+
}
|
|
3182
|
+
class TempoTestnet extends Testnet {
|
|
3183
|
+
constructor() {
|
|
3184
|
+
super(...arguments);
|
|
3185
|
+
this.name = 'Tempo Testnet';
|
|
3186
|
+
this.family = base_1.CoinFamily.TEMPO;
|
|
3187
|
+
this.explorerUrl = 'https://explore.testnet.tempo.xyz/tx/';
|
|
3188
|
+
this.accountExplorerUrl = 'https://explore.testnet.tempo.xyz/address/';
|
|
3189
|
+
this.chainId = 42431;
|
|
3190
|
+
this.nativeCoinOperationHashPrefix = '42431';
|
|
3191
|
+
this.tokenOperationHashPrefix = '42431';
|
|
3192
|
+
}
|
|
3193
|
+
}
|
|
3194
|
+
class Boba extends Mainnet {
|
|
3195
|
+
constructor() {
|
|
3196
|
+
super(...arguments);
|
|
3197
|
+
this.name = 'Boba';
|
|
3198
|
+
this.family = base_1.CoinFamily.BOBAETH;
|
|
3199
|
+
this.explorerUrl = 'https://bobascan.com/tx/';
|
|
3200
|
+
this.accountExplorerUrl = 'https://bobascan.com/address/';
|
|
3201
|
+
this.chainId = 288;
|
|
3202
|
+
this.nativeCoinOperationHashPrefix = '288';
|
|
3203
|
+
this.tokenOperationHashPrefix = '288-ERC20';
|
|
3204
|
+
}
|
|
3205
|
+
}
|
|
3206
|
+
class BobaTestnet extends Testnet {
|
|
3207
|
+
constructor() {
|
|
3208
|
+
super(...arguments);
|
|
3209
|
+
this.name = 'Boba Testnet';
|
|
3210
|
+
this.family = base_1.CoinFamily.BOBAETH;
|
|
3211
|
+
this.explorerUrl = 'https://testnet.bobascan.com/tx/';
|
|
3212
|
+
this.accountExplorerUrl = 'https://testnet.bobascan.com/address/';
|
|
3213
|
+
this.chainId = 28882;
|
|
3214
|
+
this.nativeCoinOperationHashPrefix = '28882';
|
|
3215
|
+
this.tokenOperationHashPrefix = '28882-ERC20';
|
|
3216
|
+
}
|
|
3217
|
+
}
|
|
3218
|
+
/**
|
|
3219
|
+
* Concrete network class for AMS-discovered chains not yet registered in local statics.
|
|
3220
|
+
* Accepts string-typed type/family and casts to enums internally (safe since both are string enums).
|
|
3221
|
+
* Currently covers BaseNetwork + AccountNetwork + EthereumNetwork fields.
|
|
3222
|
+
*/
|
|
3223
|
+
class DynamicNetwork extends BaseNetwork {
|
|
3224
|
+
constructor(options) {
|
|
3225
|
+
super();
|
|
3226
|
+
this.name = options.name;
|
|
3227
|
+
this.type = options.type;
|
|
3228
|
+
this.family = options.family;
|
|
3229
|
+
this.explorerUrl = options.explorerUrl;
|
|
3230
|
+
this.accountExplorerUrl = options.accountExplorerUrl;
|
|
3231
|
+
this.blockExplorerUrl = options.blockExplorerUrl;
|
|
3232
|
+
this.chainId = options.chainId;
|
|
3233
|
+
this.batcherContractAddress = options.batcherContractAddress;
|
|
3234
|
+
this.forwarderFactoryAddress = options.forwarderFactoryAddress;
|
|
3235
|
+
this.forwarderImplementationAddress = options.forwarderImplementationAddress;
|
|
3236
|
+
this.walletFactoryAddress = options.walletFactoryAddress;
|
|
3237
|
+
this.walletImplementationAddress = options.walletImplementationAddress;
|
|
3238
|
+
this.walletV2FactoryAddress = options.walletV2FactoryAddress;
|
|
3239
|
+
this.walletV2ImplementationAddress = options.walletV2ImplementationAddress;
|
|
3240
|
+
this.walletV4FactoryAddress = options.walletV4FactoryAddress;
|
|
3241
|
+
this.walletV4ImplementationAddress = options.walletV4ImplementationAddress;
|
|
3242
|
+
this.walletV2ForwarderFactoryAddress = options.walletV2ForwarderFactoryAddress;
|
|
3243
|
+
this.walletV2ForwarderImplementationAddress = options.walletV2ForwarderImplementationAddress;
|
|
3244
|
+
this.walletV4ForwarderFactoryAddress = options.walletV4ForwarderFactoryAddress;
|
|
3245
|
+
this.walletV4ForwarderImplementationAddress = options.walletV4ForwarderImplementationAddress;
|
|
3246
|
+
this.nativeCoinOperationHashPrefix = options.nativeCoinOperationHashPrefix;
|
|
3247
|
+
this.tokenOperationHashPrefix = options.tokenOperationHashPrefix;
|
|
1048
3248
|
}
|
|
1049
3249
|
}
|
|
3250
|
+
exports.DynamicNetwork = DynamicNetwork;
|
|
1050
3251
|
exports.Networks = {
|
|
1051
3252
|
main: {
|
|
3253
|
+
abstracteth: Object.freeze(new AbstractEth()),
|
|
1052
3254
|
ada: Object.freeze(new Ada()),
|
|
1053
3255
|
algorand: Object.freeze(new Algorand()),
|
|
3256
|
+
apechain: Object.freeze(new ApeChain()),
|
|
3257
|
+
apt: Object.freeze(new Apt()),
|
|
1054
3258
|
arbitrum: Object.freeze(new Arbitrum()),
|
|
3259
|
+
arcusdc: Object.freeze(new ArcUSDC()),
|
|
3260
|
+
asi: Object.freeze(new Asi()),
|
|
1055
3261
|
atom: Object.freeze(new Atom()),
|
|
1056
3262
|
avalancheC: Object.freeze(new AvalancheC()),
|
|
1057
3263
|
avalancheP: Object.freeze(new AvalancheP()),
|
|
3264
|
+
baby: Object.freeze(new Baby()),
|
|
3265
|
+
basechain: Object.freeze(new BaseChain()),
|
|
1058
3266
|
bitcoin: Object.freeze(new Bitcoin()),
|
|
1059
3267
|
bitcoinCash: Object.freeze(new BitcoinCash()),
|
|
1060
3268
|
bitcoinGold: Object.freeze(new BitcoinGold()),
|
|
1061
3269
|
bitcoinSV: Object.freeze(new BitcoinSV()),
|
|
1062
|
-
bera: Object.freeze(new
|
|
3270
|
+
bera: Object.freeze(new Berachain()),
|
|
1063
3271
|
bld: Object.freeze(new Bld()),
|
|
1064
3272
|
bsc: Object.freeze(new BinanceSmartChain()),
|
|
3273
|
+
canton: Object.freeze(new Canton()),
|
|
1065
3274
|
casper: Object.freeze(new Casper()),
|
|
1066
3275
|
celo: Object.freeze(new Celo()),
|
|
3276
|
+
chiliz: Object.freeze(new Chiliz()),
|
|
3277
|
+
codexeth: Object.freeze(new CodexEth()),
|
|
3278
|
+
coredao: Object.freeze(new Coredao()),
|
|
1067
3279
|
coreum: Object.freeze(new Coreum()),
|
|
3280
|
+
cronos: Object.freeze(new Cronos()),
|
|
1068
3281
|
dash: Object.freeze(new Dash()),
|
|
1069
3282
|
dogecoin: Object.freeze(new Dogecoin()),
|
|
1070
|
-
|
|
3283
|
+
dogeos: Object.freeze(new Dogeos()),
|
|
3284
|
+
dot: Object.freeze(new PolkadotAssetHub()),
|
|
3285
|
+
dydx: Object.freeze(new Dydx()),
|
|
1071
3286
|
eCash: Object.freeze(new ECash()),
|
|
1072
3287
|
eos: Object.freeze(new Eos()),
|
|
1073
3288
|
ethereum: Object.freeze(new Ethereum()),
|
|
@@ -1075,85 +3290,294 @@ exports.Networks = {
|
|
|
1075
3290
|
ethereumClassic: Object.freeze(new EthereumClassic()),
|
|
1076
3291
|
ethereumW: Object.freeze(new EthereumW()),
|
|
1077
3292
|
fiat: Object.freeze(new Fiat()),
|
|
3293
|
+
fetchai: Object.freeze(new FetchAi()),
|
|
3294
|
+
flow: Object.freeze(new Flow()),
|
|
3295
|
+
gasevm: Object.freeze(new GasEvm()),
|
|
3296
|
+
flr: Object.freeze(new Flare()),
|
|
3297
|
+
flrP: Object.freeze(new FlareP()),
|
|
3298
|
+
fluenteth: Object.freeze(new FluentETH()),
|
|
3299
|
+
h: Object.freeze(new HumanityProtocol()),
|
|
1078
3300
|
hash: Object.freeze(new Hash()),
|
|
3301
|
+
hoodeth: Object.freeze(new Hoodeth()),
|
|
1079
3302
|
hedera: Object.freeze(new Hedera()),
|
|
3303
|
+
hederaEVM: Object.freeze(new HederaEVM()),
|
|
3304
|
+
hemieth: Object.freeze(new HemiEth()),
|
|
3305
|
+
inketh: Object.freeze(new InkEth()),
|
|
3306
|
+
hppeth: Object.freeze(new Hppeth()),
|
|
3307
|
+
prividiumeth: Object.freeze(new PrividiumETH()),
|
|
3308
|
+
icp: Object.freeze(new Icp()),
|
|
3309
|
+
ip: Object.freeze(new IP()),
|
|
3310
|
+
initia: Object.freeze(new Initia()),
|
|
3311
|
+
iota: Object.freeze(new Iota()),
|
|
1080
3312
|
injective: Object.freeze(new Injective()),
|
|
3313
|
+
irys: Object.freeze(new Irys()),
|
|
1081
3314
|
islm: Object.freeze(new Islm()),
|
|
1082
|
-
|
|
3315
|
+
jovayeth: Object.freeze(new JovayETH()),
|
|
3316
|
+
kaia: Object.freeze(new Kaia()),
|
|
3317
|
+
kaspa: Object.freeze(new KaspaMainnet()),
|
|
3318
|
+
katanaeth: Object.freeze(new KatanaEth()),
|
|
3319
|
+
kavacosmos: Object.freeze(new KavaCosmos()),
|
|
3320
|
+
kavaevm: Object.freeze(new KavaEVM()),
|
|
3321
|
+
lnbtc: Object.freeze(new LightningBitcoin()),
|
|
1083
3322
|
litecoin: Object.freeze(new Litecoin()),
|
|
3323
|
+
megaeth: Object.freeze(new MegaETH()),
|
|
3324
|
+
mon: Object.freeze(new Monad()),
|
|
3325
|
+
mantle: Object.freeze(new Mantle()),
|
|
3326
|
+
mantra: Object.freeze(new Mantra()),
|
|
3327
|
+
plume: Object.freeze(new Plume()),
|
|
1084
3328
|
polygon: Object.freeze(new Polygon()),
|
|
3329
|
+
polyx: Object.freeze(new Polymesh()),
|
|
3330
|
+
pearl: Object.freeze(new Pearl()),
|
|
3331
|
+
phrs: Object.freeze(new Pharos()),
|
|
3332
|
+
ctc: Object.freeze(new Creditcoin()),
|
|
3333
|
+
hypeevm: Object.freeze(new HypeEVM()),
|
|
3334
|
+
hyperliquid: Object.freeze(new Hyperliquid()),
|
|
3335
|
+
lineaeth: Object.freeze(new LineaETH()),
|
|
3336
|
+
oas: Object.freeze(new Oas()),
|
|
3337
|
+
og: Object.freeze(new Og()),
|
|
1085
3338
|
ofc: Object.freeze(new Ofc()),
|
|
3339
|
+
okbxlayer: Object.freeze(new Xlayer()),
|
|
3340
|
+
opbnb: Object.freeze(new OpBNB()),
|
|
3341
|
+
fantom: Object.freeze(new Fantom()),
|
|
3342
|
+
cotieth: Object.freeze(new Cotieth()),
|
|
3343
|
+
morph: Object.freeze(new Morph()),
|
|
3344
|
+
morpheth: Object.freeze(new MorphETH()),
|
|
1086
3345
|
optimism: Object.freeze(new Optimism()),
|
|
1087
3346
|
osmo: Object.freeze(new Osmo()),
|
|
1088
3347
|
rbtc: Object.freeze(new Rbtc()),
|
|
3348
|
+
rune: Object.freeze(new Rune()),
|
|
1089
3349
|
stellar: Object.freeze(new Stellar()),
|
|
3350
|
+
scrolleth: Object.freeze(new ScrollEth()),
|
|
1090
3351
|
sei: Object.freeze(new Sei()),
|
|
3352
|
+
seievm: Object.freeze(new SeiEvm()),
|
|
3353
|
+
sgb: Object.freeze(new Songbird()),
|
|
1091
3354
|
sol: Object.freeze(new Sol()),
|
|
3355
|
+
sonic: Object.freeze(new Sonic()),
|
|
3356
|
+
starknet: Object.freeze(new StarknetMainnet()),
|
|
1092
3357
|
sui: Object.freeze(new Sui()),
|
|
1093
3358
|
near: Object.freeze(new Near()),
|
|
1094
3359
|
stx: Object.freeze(new Stx()),
|
|
3360
|
+
somi: Object.freeze(new Somi()),
|
|
3361
|
+
soneium: Object.freeze(new Soneium()),
|
|
1095
3362
|
susd: Object.freeze(new SUSD()),
|
|
3363
|
+
tao: Object.freeze(new Bittensor()),
|
|
3364
|
+
tempo: Object.freeze(new Tempo()),
|
|
1096
3365
|
tia: Object.freeze(new Tia()),
|
|
1097
3366
|
ton: Object.freeze(new Ton()),
|
|
1098
3367
|
trx: Object.freeze(new Trx()),
|
|
3368
|
+
usdt0: Object.freeze(new Usdt0()),
|
|
3369
|
+
vet: Object.freeze(new Vet()),
|
|
3370
|
+
wemix: Object.freeze(new Wemix()),
|
|
3371
|
+
world: Object.freeze(new World()),
|
|
3372
|
+
xdc: Object.freeze(new Xdc()),
|
|
3373
|
+
xpl: Object.freeze(new Plasma()),
|
|
1099
3374
|
xrp: Object.freeze(new Xrp()),
|
|
1100
3375
|
xtz: Object.freeze(new Xtz()),
|
|
3376
|
+
xtzevm: Object.freeze(new XtzEvm()),
|
|
1101
3377
|
zCash: Object.freeze(new ZCash()),
|
|
1102
3378
|
zeta: Object.freeze(new Zeta()),
|
|
3379
|
+
zkSync: Object.freeze(new ZkSync()),
|
|
3380
|
+
zkSyncEra: Object.freeze(new ZkSyncEra()),
|
|
3381
|
+
unieth: Object.freeze(new Unieth()),
|
|
3382
|
+
boba: Object.freeze(new Boba()),
|
|
1103
3383
|
},
|
|
1104
3384
|
test: {
|
|
3385
|
+
abstracteth: Object.freeze(new AbstractEthTestnet()),
|
|
1105
3386
|
ada: Object.freeze(new AdaTestnet()),
|
|
1106
3387
|
algorand: Object.freeze(new AlgorandTestnet()),
|
|
3388
|
+
apechain: Object.freeze(new ApeChainTestnet()),
|
|
3389
|
+
apt: Object.freeze(new AptTestnet()),
|
|
1107
3390
|
arbitrum: Object.freeze(new ArbitrumTestnet()),
|
|
3391
|
+
arcusdc: Object.freeze(new ArcUSDCTestnet()),
|
|
3392
|
+
asi: Object.freeze(new AsiTestnet()),
|
|
1108
3393
|
atom: Object.freeze(new AtomTestnet()),
|
|
1109
3394
|
avalancheC: Object.freeze(new AvalancheCTestnet()),
|
|
1110
3395
|
avalancheP: Object.freeze(new AvalanchePTestnet()),
|
|
3396
|
+
baby: Object.freeze(new BabyTestnet()),
|
|
3397
|
+
basechain: Object.freeze(new BaseChainTestnet()),
|
|
1111
3398
|
bitcoin: Object.freeze(new BitcoinTestnet()),
|
|
3399
|
+
bitcoinPublicSignet: Object.freeze(new BitcoinPublicSignet()),
|
|
3400
|
+
bitcoinTestnet4: Object.freeze(new BitcoinTestnet4()),
|
|
3401
|
+
bitcoinBitGoSignet: Object.freeze(new BitcoinBitGoSignet()),
|
|
3402
|
+
bitcoinStx: Object.freeze(new BitcoinStx()),
|
|
3403
|
+
bitcoinStxPrivate1: Object.freeze(new BitcoinStxPrivate1()),
|
|
3404
|
+
bitcoinStxSignet: Object.freeze(new BitcoinStxSignet()),
|
|
1112
3405
|
bitcoinCash: Object.freeze(new BitcoinCashTestnet()),
|
|
1113
3406
|
bitcoinGold: Object.freeze(new BitcoinGoldTestnet()),
|
|
1114
3407
|
bitcoinSV: Object.freeze(new BitcoinSVTestnet()),
|
|
1115
|
-
bera: Object.freeze(new
|
|
3408
|
+
bera: Object.freeze(new BerachainTestnet()),
|
|
1116
3409
|
bld: Object.freeze(new BldTestnet()),
|
|
1117
3410
|
bsc: Object.freeze(new BinanceSmartChainTestnet()),
|
|
3411
|
+
canton: Object.freeze(new CantonTestnet()),
|
|
1118
3412
|
casper: Object.freeze(new CasperTestnet()),
|
|
1119
3413
|
celo: Object.freeze(new CeloTestnet()),
|
|
3414
|
+
chiliz: Object.freeze(new ChilizTestnet()),
|
|
3415
|
+
codexeth: Object.freeze(new CodexEthTestnet()),
|
|
3416
|
+
coredao: Object.freeze(new CoredaoTestnet()),
|
|
3417
|
+
cronos: Object.freeze(new CronosTestnet()),
|
|
1120
3418
|
dash: Object.freeze(new DashTestnet()),
|
|
1121
3419
|
dogecoin: Object.freeze(new DogecoinTestnet()),
|
|
1122
|
-
|
|
3420
|
+
dogeos: Object.freeze(new DogeosTestnet()),
|
|
3421
|
+
dot: Object.freeze(new WestendAssetHub()),
|
|
3422
|
+
dydx: Object.freeze(new DydxTestnet()),
|
|
1123
3423
|
eCash: Object.freeze(new ECashTestnet()),
|
|
1124
3424
|
eos: Object.freeze(new EosTestnet()),
|
|
1125
3425
|
fiat: Object.freeze(new FiatTestnet()),
|
|
3426
|
+
fetchai: Object.freeze(new FetchAiTestnet()),
|
|
3427
|
+
flow: Object.freeze(new FlowTestnet()),
|
|
3428
|
+
tgasevm: Object.freeze(new GasEvmTestnet()),
|
|
3429
|
+
flr: Object.freeze(new FlareTestnet()),
|
|
3430
|
+
flrP: Object.freeze(new FlarePTestnet()),
|
|
3431
|
+
fluenteth: Object.freeze(new FluentETHTestnet()),
|
|
3432
|
+
h: Object.freeze(new HumanityProtocolTestnet()),
|
|
3433
|
+
mon: Object.freeze(new MonadTestnet()),
|
|
3434
|
+
megaeth: Object.freeze(new MegaETHTestnet()),
|
|
1126
3435
|
pyrmont: Object.freeze(new Pyrmont()),
|
|
3436
|
+
plume: Object.freeze(new PlumeTestnet()),
|
|
1127
3437
|
ethereumClassicTestnet: Object.freeze(new EthereumClassicTestnet()),
|
|
1128
3438
|
hash: Object.freeze(new HashTestnet()),
|
|
1129
3439
|
hedera: Object.freeze(new HederaTestnet()),
|
|
3440
|
+
hoodeth: Object.freeze(new HoodethTestnet()),
|
|
3441
|
+
hppeth: Object.freeze(new HppethTestnet()),
|
|
3442
|
+
prividiumeth: Object.freeze(new PrividiumETHTestnet()),
|
|
3443
|
+
hederaEVM: Object.freeze(new HederaEVMTestnet()),
|
|
3444
|
+
hemieth: Object.freeze(new HemiEthTestnet()),
|
|
3445
|
+
inketh: Object.freeze(new InkEthTestnet()),
|
|
3446
|
+
icp: Object.freeze(new IcpTestnet()),
|
|
3447
|
+
ip: Object.freeze(new IPTestnet()),
|
|
3448
|
+
initia: Object.freeze(new InitiaTestnet()),
|
|
1130
3449
|
injective: Object.freeze(new InjectiveTestnet()),
|
|
3450
|
+
iota: Object.freeze(new IotaTestnet()),
|
|
3451
|
+
irys: Object.freeze(new IrysTestnet()),
|
|
1131
3452
|
islm: Object.freeze(new IslmTestnet()),
|
|
1132
|
-
|
|
3453
|
+
jovayeth: Object.freeze(new JovayETHTestnet()),
|
|
3454
|
+
kaspa: Object.freeze(new KaspaTestnet()),
|
|
3455
|
+
katanaeth: Object.freeze(new KatanaEthTestnet()),
|
|
3456
|
+
kavacosmos: Object.freeze(new KavaCosmosTestnet()),
|
|
3457
|
+
kavaevm: Object.freeze(new KavaEVMTestnet()),
|
|
1133
3458
|
kovan: Object.freeze(new Kovan()),
|
|
1134
3459
|
goerli: Object.freeze(new Goerli()),
|
|
1135
3460
|
holesky: Object.freeze(new Holesky()),
|
|
3461
|
+
hoodi: Object.freeze(new Hoodi()),
|
|
3462
|
+
sepolia: Object.freeze(new Sepolia()),
|
|
3463
|
+
lnbtc: Object.freeze(new LightningBitcoinTestnet()),
|
|
1136
3464
|
litecoin: Object.freeze(new LitecoinTestnet()),
|
|
3465
|
+
mantle: Object.freeze(new MantleTestnet()),
|
|
3466
|
+
mantra: Object.freeze(new MantraTestnet()),
|
|
1137
3467
|
polygon: Object.freeze(new PolygonTestnet()),
|
|
3468
|
+
polyx: Object.freeze(new PolymeshTestnet()),
|
|
3469
|
+
pearl: Object.freeze(new PearlTestnet()),
|
|
3470
|
+
phrs: Object.freeze(new PharosTestnet()),
|
|
3471
|
+
ctc: Object.freeze(new CreditcoinTestnet()),
|
|
3472
|
+
hypeevm: Object.freeze(new HypeEVMTestnet()),
|
|
3473
|
+
hyperliquid: Object.freeze(new HyperliquidTestnet()),
|
|
3474
|
+
lineaeth: Object.freeze(new LineaETHTestnet()),
|
|
3475
|
+
oas: Object.freeze(new OasTestnet()),
|
|
3476
|
+
og: Object.freeze(new OgTestnet()),
|
|
1138
3477
|
ofc: Object.freeze(new OfcTestnet()),
|
|
3478
|
+
okbxlayer: Object.freeze(new XlayerTestnet()),
|
|
3479
|
+
opbnb: Object.freeze(new OpBNBTestnet()),
|
|
3480
|
+
fantom: Object.freeze(new FantomTestnet()),
|
|
3481
|
+
cotieth: Object.freeze(new CotiethTestnet()),
|
|
3482
|
+
morph: Object.freeze(new MorphTestnet()),
|
|
3483
|
+
morpheth: Object.freeze(new MorphETHTestnet()),
|
|
1139
3484
|
optimism: Object.freeze(new OptimismTestnet()),
|
|
1140
3485
|
osmo: Object.freeze(new OsmoTestnet()),
|
|
1141
3486
|
rbtc: Object.freeze(new RbtcTestnet()),
|
|
3487
|
+
rune: Object.freeze(new RuneTestNet()),
|
|
3488
|
+
sgb: Object.freeze(new SongbirdTestnet()),
|
|
1142
3489
|
stellar: Object.freeze(new StellarTestnet()),
|
|
1143
3490
|
sei: Object.freeze(new SeiTestnet()),
|
|
3491
|
+
seievm: Object.freeze(new SeiEvmTestnet()),
|
|
1144
3492
|
sol: Object.freeze(new SolTestnet()),
|
|
3493
|
+
starknet: Object.freeze(new StarknetTestnet()),
|
|
1145
3494
|
sui: Object.freeze(new SuiTestnet()),
|
|
1146
3495
|
near: Object.freeze(new NearTestnet()),
|
|
1147
3496
|
stx: Object.freeze(new StxTestnet()),
|
|
3497
|
+
stt: Object.freeze(new SomniaTestnet()),
|
|
3498
|
+
scrolleth: Object.freeze(new ScrollEthTestnet()),
|
|
3499
|
+
soneium: Object.freeze(new SoneiumTestnet()),
|
|
3500
|
+
sonic: Object.freeze(new SonicTestnet()),
|
|
3501
|
+
kaia: Object.freeze(new KaiaTestnet()),
|
|
1148
3502
|
susd: Object.freeze(new SUSDTestnet()),
|
|
1149
3503
|
coreum: Object.freeze(new CoreumTestnet()),
|
|
3504
|
+
tao: Object.freeze(new BittensorTestnet()),
|
|
3505
|
+
tempo: Object.freeze(new TempoTestnet()),
|
|
1150
3506
|
tia: Object.freeze(new TiaTestnet()),
|
|
1151
3507
|
ton: Object.freeze(new TonTestnet()),
|
|
1152
3508
|
trx: Object.freeze(new TrxTestnet()),
|
|
3509
|
+
usdt0: Object.freeze(new Usdt0Testnet()),
|
|
3510
|
+
vet: Object.freeze(new VetTestnet()),
|
|
3511
|
+
wemix: Object.freeze(new WemixTestnet()),
|
|
3512
|
+
world: Object.freeze(new WorldTestnet()),
|
|
3513
|
+
xdc: Object.freeze(new XdcTestnet()),
|
|
3514
|
+
xpl: Object.freeze(new PlasmaTestnet()),
|
|
1153
3515
|
xrp: Object.freeze(new XrpTestnet()),
|
|
1154
3516
|
xtz: Object.freeze(new XtzTestnet()),
|
|
3517
|
+
xtzevm: Object.freeze(new XtzEvmTestnet()),
|
|
1155
3518
|
zCash: Object.freeze(new ZCashTestnet()),
|
|
1156
3519
|
zeta: Object.freeze(new ZetaTestnet()),
|
|
3520
|
+
zkSync: Object.freeze(new ZkSyncTestnet()),
|
|
3521
|
+
zkSyncEra: Object.freeze(new ZkSyncEraTestnet()),
|
|
3522
|
+
unieth: Object.freeze(new UniethTestnet()),
|
|
3523
|
+
boba: Object.freeze(new BobaTestnet()),
|
|
1157
3524
|
},
|
|
1158
3525
|
};
|
|
1159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQW9DO0FBRXBDLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUFFRCxNQUFzQixXQUFXO0NBS2hDO0FBTEQsa0NBS0M7QUF3RkQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFlLE9BQVEsU0FBUSxXQUFXO0lBQTFDOztRQUNFLFNBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7Q0FBQTtBQUVELE1BQU0sUUFBUyxTQUFRLE9BQU87SUFBOUI7O1FBQ0UsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUNsQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxJQUFJLENBQUM7UUFDekIsZ0JBQVcsR0FBRyw2QkFBNkIsQ0FBQztJQUM5QyxDQUFDO0NBQUE7QUFFRCxNQUFNLGVBQWdCLFNBQVEsT0FBTztJQUFyQzs7UUFDRSxTQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDekIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcscUNBQXFDLENBQUM7SUFDdEQsQ0FBQztDQUFBO0FBRUQsTUFBTSxHQUFJLFNBQVEsT0FBTztJQUF6Qjs7UUFDRSxTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixvQkFBZSxHQUFHLE9BQU8sQ0FBQztRQUMx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TSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7S0FDaEM7SUFDRCxJQUFJLEVBQUU7UUFDSixHQUFHLEVB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OUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO0tBQ3ZDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgZW51bSBOZXR3b3JrVHlwZSB7XG4gIE1BSU5ORVQgPSAnbWFpbm5ldCcsXG4gIFRFU1RORVQgPSAndGVzdG5ldCcsXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTmV0d29yayB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBOZXR3b3JrVHlwZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZhbWlseTogQ29pbkZhbWlseTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV4cGxvcmVyVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXR4b05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIE5ldHdvcmsgbmFtZSBhcyBkZWZpbmVkIGluIEBiaXRnby1iZXRhL3V0eG8tbGliIG5ldHdvcmtzLnRzXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRhTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gTmV0d29yayBuYW1lIGFzIGRlZmluZWQgaW4gQGJpdGdvLWJldGEvdXR4by1saWIgbmV0d29ya3MudHNcbiAgLy8gbWF5YmUgYWRkIG5ldHdvcmsgaWRlbnRpZmllciAvIG1hZ2ljIG5ldHdvcmsgbnVtYmVyXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG4gIHBvb2xEZXBvc2l0OiBudW1iZXI7XG4gIHN0YWtlS2V5RGVwb3NpdDogbnVtYmVyO1xuICBtYXhWYWx1ZVNpemU6IG51bWJlcjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplOiBudW1iZXI7XG4gIGNvaW5zUGVyVXR4b1dvcmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFsYW5jaGVOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICByZWFkb25seSBhbGlhczogc3RyaW5nO1xuICByZWFkb25seSBibG9ja2NoYWluSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY0NoYWluQmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldHdvcmtJRDogbnVtYmVyO1xuICByZWFkb25seSBocnA6IHN0cmluZztcbiAgcmVhZG9ubHkgdm06IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRpb25UeEZlZTogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVTdWJuZXRUeDogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVDaGFpblR4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkNvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heENvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN1cHBseTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZUR1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN0YWtlRHVyYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWluRGVsZWdhdGlvblN0YWtlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkRlbGVnYXRpb25GZWU6IHN0cmluZztcbiAgLy8gY3VycmVudCB2YWxpZCBhc3NldCBpZCBpcyBBVkFYXG4gIHJlYWRvbmx5IGF2YXhBc3NldElEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4RmVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heEltcG9ydEZlZTogc3RyaW5nOyAvLyAwLjAxIEFWQVhcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50TmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gc29tZSBjaGFpbnMgcGF5IGZlZXMgdmlhIGFuIGVudGVycHJpc2UgZ2FzIHRhc2suIFRoZSBhY2NvdW50IGV4cGxvcmVyIHVybFxuICAvLyBpcyBhIHVybCB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIGFjY291bnQgZm9yIHRoZSBnYXMgdGFuayBvbi1jaGFpbi5cbiAgcmVhZG9ubHkgYWNjb3VudEV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICByZWFkb25seSBibG9ja0V4cGxvcmVyVXJsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gbmFtZSB0eXBlIG9mIHRoZSBjaGFpbi4gVXNlZCBpbiBzZXR0aW5nIHVwIHRoZSByZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBQb2xrYWRvdFNwZWNOYW1lVHlwZSA9ICdrdXNhbWEnIHwgJ3BvbGthZG90JyB8ICd3ZXN0ZW5kJyB8ICdzdGF0ZW1pbnQnIHwgJ3N0YXRlbWluZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG90TmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gc29tZSBjaGFpbnMgcGF5IGZlZXMgdmlhIGFuIGVudGVycHJpc2UgZ2FzIHRhc2suIFRoZSBhY2NvdW50IGV4cGxvcmVyIHVybFxuICAvLyBpcyBhIHVybCB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIGFjY291bnQgZm9yIHRoZSBnYXMgdGFuayBvbi1jaGFpbi5cbiAgcmVhZG9ubHkgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlO1xuICByZWFkb25seSBnZW5lc2lzSGFzaDogc3RyaW5nO1xuICByZWFkb25seSBzcGVjVmVyc2lvbjogbnVtYmVyO1xuICByZWFkb25seSBjaGFpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHhWZXJzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRoZXJldW1OZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyB1bmlxdWUgY2hhaW4gaWQgdXNlZCBmb3IgcmVwbGF5LXByb3RlY3RpbmcgdHJhbnNhY3Rpb25zXG4gIHJlYWRvbmx5IGNoYWluSWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgLy8gZm9yd2FyZGVyIGNvbmZpZ3VyYXRpb24gYWRkcmVzc2VzIHVzZWQgZm9yIGNhbGN1bGF0aW5nIGZvcndhcmRlciB2ZXJzaW9uIDEgYWRkcmVzc2VzXG4gIHJlYWRvbmx5IGZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICByZWFkb25seSB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJvbk5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIG1heEZlZUxpbWl0OiBzdHJpbmc7XG4gIGNvbnRyYWN0Q2FsbEZlZUxpbWl0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tzTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgcmVhZG9ubHkgc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YWtpbmdDb250cmFjdEFkZHJlc3M6IHN0cmluZztcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgT2ZjTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHt9XG5cbmFic3RyYWN0IGNsYXNzIE1haW5uZXQgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIHR5cGUgPSBOZXR3b3JrVHlwZS5NQUlOTkVUO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBUZXN0bmV0IGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICB0eXBlID0gTmV0d29ya1R5cGUuVEVTVE5FVDtcbn1cblxuY2xhc3MgQWxnb3JhbmQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0FsZ29yYW5kJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BTEdPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FsZ29leHBsb3Jlci5pby90eC8nO1xufVxuXG5jbGFzcyBBbGdvcmFuZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0FsZ29yYW5kVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQUxHTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmFsZ29leHBsb3Jlci5pby90eC8nO1xufVxuXG5jbGFzcyBBZGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWRhTmV0d29yayB7XG4gIG5hbWUgPSAnQWRhQ2FyZGFubyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQURBO1xuICB1dHhvbGliTmFtZSA9ICdjYXJkYW5vJztcbiAgcG9vbERlcG9zaXQgPSA1MDAwMDAwMDA7XG4gIHN0YWtlS2V5RGVwb3NpdCA9IDIwMDAwMDA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY2FyZGFuby5vcmcvZW4vdHJhbnNhY3Rpb24/aWQ9JztcbiAgY29pbnNQZXJVdHhvV29yZCA9IDM0NDgyO1xuICBtYXhUcmFuc2FjdGlvblNpemUgPSA4MDAwO1xuICBtYXhWYWx1ZVNpemUgPSA0MDAwO1xufVxuXG5jbGFzcyBBZGFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFkYU5ldHdvcmsge1xuICBuYW1lID0gJ0FkYUNhcmRhbm9UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BREE7XG4gIHV0eG9saWJOYW1lID0gJ2NhcmRhbm9UZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wcmVwcm9kLmNleHBsb3Jlci5pby8nO1xuICBjb2luc1BlclV0eG9Xb3JkID0gMzQ0ODI7XG4gIG1heFRyYW5zYWN0aW9uU2l6ZSA9IDgwMDA7XG4gIG1heFZhbHVlU2l6ZSA9IDQwMDA7XG4gIHBvb2xEZXBvc2l0ID0gNTAwMDAwMDAwO1xuICBzdGFrZUtleURlcG9zaXQgPSAyMDAwMDAwO1xufVxuXG5jbGFzcyBBcmJpdHJ1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FyYml0cnVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUkJFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0FSQkVUSCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdBUkJFVEgtRVJDMjAnO1xufVxuXG5jbGFzcyBBcmJpdHJ1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmFyYmlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdBUkJFVEgnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQVJCRVRILUVSQzIwJztcbn1cblxuY2xhc3MgQXZhbGFuY2hlQyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvYy1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLmF2YXgubmV0d29yay9jLWNoYWluL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTE0O1xufVxuXG5jbGFzcyBBdmFsYW5jaGVDVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQ1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvYy1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLXRlc3QuYXZheC5uZXR3b3JrL2MtY2hhaW4vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDMxMTM7XG59XG5cbmNsYXNzIEF2YWxhbmNoZVAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQXZhbGFuY2hlTmV0d29yayB7XG4gIG5hbWUgPSAnQXZhbGFuY2hlUCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWFA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvcC1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLmF2YXgubmV0d29yay9wLWNoYWluL2FkZHJlc3MvJztcbiAgYmxvY2tjaGFpbklEID0gJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExTHBvWVknO1xuICBjQ2hhaW5CbG9ja2NoYWluSUQgPSAnMnE5ZTRyNk11M1U2OG5VMWZZamdiUjZKdndyUngzNkNvaHBBWDVVUXhzZTU1eDFRNSc7XG4gIGF2YXhBc3NldElEID0gJ0Z2d0VBaG14S2ZlaUc4U25FdnE0MmhjNndoUnlZM0VGWUF2ZWJNcUROREdDZ3hONVonO1xuICBuZXR3b3JrSUQgPSAxO1xuICBocnAgPSAnYXZheCc7XG4gIGFsaWFzID0gJ1AnO1xuICB2bSA9ICdwbGF0Zm9ybXZtJztcbiAgdHhGZWUgPSAnMTAwMDAwMCc7IC8vIDEgTUlMTElBVkFYXG4gIG1heEltcG9ydEZlZSA9ICcxMDAwMDAwMCc7IC8vIDAuMDEgQVZBWFxuICBjcmVhdGVTdWJuZXRUeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGlvblR4RmVlID0gJzEwMDAwMDAwJzsgLy8gMSBDRU5USUFWQVhcbiAgbWluQ29uc3VtcHRpb24gPSAnMC4xJztcbiAgbWF4Q29uc3VtcHRpb24gPSAnMC4xMic7XG4gIG1heFN1cHBseSA9ICc3MjAwMDAwMDAwMDAwMDAwMDAnOyAvLyA3MjAgbWlsIHRva2Vuc1xuICBtaW5TdGFrZSA9ICcyMDAwMDAwMDAwMDAwJzsgLy8gMjAwMCBBVkFYXG4gIG1pblN0YWtlRHVyYXRpb24gPSAnMTIwOTYwMCc7IC8vIDIgd2Vla3NcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnMjUwMDAwMDAwMDAnOyAvLyAyNSBBVkFYXG4gIG1pbkRlbGVnYXRpb25GZWUgPSAnMic7XG59XG5cbmNsYXNzIEF2YWxhbmNoZVBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEF2YWxhbmNoZU5ldHdvcmsge1xuICBuYW1lID0gJ0F2YWxhbmNoZVBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLXRlc3QuYXZheC5uZXR3b3JrL3AtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9wLWNoYWluL2FkZHJlc3MvJztcbiAgYmxvY2tjaGFpbklEID0gJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExTHBvWVknO1xuICBjQ2hhaW5CbG9ja2NoYWluSUQgPSAneUg4RDdUaE5Ka3htdGt1djJqZ0JhNFAxUm4zUXByNHBQcjdRWU5mY2RvUzZrNkhXcCc7XG4gIGF2YXhBc3NldElEID0gJ1U4aVJxSm9pSm04eFpIQWFjbXZZeVpWd3FReDZ1RE50UWVQM0NRNmZjZ1FrM0pxbksnO1xuICBuZXR3b3JrSUQgPSA1O1xuICBhbGlhcyA9ICdQJztcbiAgaHJwID0gJ2Z1amknO1xuICB2bSA9ICdwbGF0Zm9ybXZtJztcbiAgdHhGZWUgPSAnMTAwMDAwMCc7IC8vIDEgTUlMTElBVkFYXG4gIG1heEltcG9ydEZlZSA9ICcxMDAwMDAwMCc7IC8vIDAuMDEgQVZBWFxuICBjcmVhdGVTdWJuZXRUeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGlvblR4RmVlID0gJzEwMDAwMDAwJzsgLy8gMSBDRU5USUFWQVhcbiAgbWluQ29uc3VtcHRpb24gPSAnMC4xJztcbiAgbWF4Q29uc3VtcHRpb24gPSAnMC4xMic7XG4gIG1heFN1cHBseSA9ICc3MjAwMDAwMDAwMDAwMDAwMDAnOyAvLyA3MjAgbWlsIHRva2Vuc1xuICBtaW5TdGFrZSA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIG1pblN0YWtlRHVyYXRpb24gPSAnODY0MDAnOyAvLyAxIGRheVxuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIG1pbkRlbGVnYXRpb25GZWUgPSAnMic7XG59XG5cbmNsYXNzIEJpbmFuY2VTbWFydENoYWluIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQmluYW5jZVNtYXJ0Q2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuYnNjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LmJzY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU2O1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJzY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTc7XG59XG5cbmNsYXNzIEJpdGNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAndGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5DYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luY2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LmJsb2NrY2hhaW4uY29tL2JjaC90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luQ2FzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5DYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luY2FzaFRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ibG9ja2NoYWluLmNvbS9iY2gtdGVzdG5ldC90eC8nO1xufVxuY2xhc3MgQml0Y29pblNWIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luU1YnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTVjtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbnN2JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9iaXRjb2luLXN2L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEJpdGNvaW5TVlRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5TVlRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTVjtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbnN2VGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBCaXRjb2luR29sZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkdvbGQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJURztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmdvbGQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2J0Z2V4cGxvcmVyLmNvbS90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luR29sZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5Hb2xkVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRHO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luZ29sZFRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRGFzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRGFzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuREFTSDtcbiAgdXR4b2xpYk5hbWUgPSAnZGFzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaW5zaWdodC5kYXNoZXZvLm9yZy9pbnNpZ2h0L3R4Lyc7XG59XG5cbmNsYXNzIERhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuREFTSDtcbiAgdXR4b2xpYk5hbWUgPSAnZGFzaFRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQtaW5zaWdodC5kYXNoZXZvLm9yZy9pbnNpZ2h0L3R4Lyc7XG59XG5cbmNsYXNzIERvZ2Vjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEb2dlY29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9HRTtcbiAgdXR4b2xpYk5hbWUgPSAnZG9nZWNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2RvZ2Vjb2luL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIERvZ2Vjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRG9nZWNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET0dFO1xuICB1dHhvbGliTmFtZSA9ICdkb2dlY29pblRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrZXhwbG9yZXIub25lL2RvZ2Vjb2luL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgRUNhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0VDYXNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0hBO1xuICB1dHhvbGliTmFtZSA9ICdlY2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vZWNhc2gnO1xufVxuXG5jbGFzcyBFQ2FzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0VDYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIQTtcbiAgdXR4b2xpYk5hbWUgPSAnZWNhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFBvbGthZG90IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1BvbGthZG90JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET1Q7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9sa2Fkb3Quc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAncG9sa2Fkb3QnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDkxYjE3MWJiMTU4ZTJkMzg0OGZhMjNhOWYxYzI1MTgyZmI4ZTIwMzEzYjJjMWViNDkyMTlkYTdhNzBjZTkwYzMnO1xuICBzcGVjVmVyc2lvbiA9IDkxNDA7XG4gIGNoYWluTmFtZSA9ICdQb2xrYWRvdCc7XG4gIHR4VmVyc2lvbiA9IDk7XG59XG5cbmNsYXNzIFBvbGthZG90VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBEb3ROZXR3b3JrIHtcbiAgbmFtZSA9ICdXZXN0ZW5kJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET1Q7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd2VzdGVuZC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICd3ZXN0ZW5kJyBhcyBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgZ2VuZXNpc0hhc2ggPSAnMHhlMTQzZjIzODAzYWM1MGU4ZjZmOGU2MjY5NWQxY2U5ZTRlMWQ2OGFhMzZjMWNkMmNmZDE1MzQwMjEzZjM0MjNlJztcbiAgc3BlY1ZlcnNpb24gPSA5NDMwO1xuICBjaGFpbk5hbWUgPSAnV2VzdGVuZCc7XG4gIHR4VmVyc2lvbiA9IDIyO1xufVxuXG5jbGFzcyBDZWxvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2Vsbyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjIyMDtcbn1cblxuY2xhc3MgQ2Vsb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbGZham9yZXMtYmxvY2tzY291dC5jZWxvLXRlc3RuZXQub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FsZmFqb3Jlcy1ibG9ja3Njb3V0LmNlbG8tdGVzdG5ldC5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDQ3ODc7XG59XG5cbi8vIFRPRE8gdXBkYXRlIGV4cGxvcmVyVXJsIFNUTFgtMTY1N1xuY2xhc3MgQ2FzcGVyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDYXNwZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNTUFI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Nwci5saXZlL2RlcGxveS8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jc3ByLmxpdmUvYWNjb3VudC8nO1xufVxuXG5jbGFzcyBDYXNwZXJUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDYXNwZXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DU1BSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2ludGVncmF0aW9uLmNzcHIubGl2ZS9kZXBsb3kvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaW50ZWdyYXRpb24uY3Nwci5saXZlL2FjY291bnQvJztcbn1cblxuY2xhc3MgRXRoZXJldW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXRoZXJzY2FuLmlvL2Jsb2NrLyc7XG4gIC8vIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtanMvZXRoZXJldW1qcy1jb21tb24vYmxvYi9hOTc4ZjYzMDg1OGY2ODQzMTc2YmIyMGIyNzc1Njk3ODU5MTRlODk5L3NyYy9jaGFpbnMvaW5kZXgudHNcbiAgY2hhaW5JZCA9IDE7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgwYzliMjVkZmUwMmIyYzg5Y2NlODZlMWEwYmQ2YzA0YTdhY2EwMWI2JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhmZmEzOTcyODVjZTQ2ZmI3OGM1ODhhOWU5OTMyODZhYWM2OGMzN2NkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4MDU5ZmZhZmRjNmVmNTk0MjMwZGU0NGY4MjRlMmJkMGE1MWNhNWRlZCc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgRXRoZXJldW0yIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bTInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vdHgnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hZGRyZXNzJztcbn1cblxuY2xhc3MgRXRoZXJldW1XIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0gUG9XJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEhXO1xuICBleHBsb3JlclVybCA9ICcnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnJztcbiAgY2hhaW5JZCA9IDEwMDAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG59XG5cbmNsYXNzIFB5cm1vbnQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1B5cm1vbnQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vcHlybW9udC90eCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3B5cm1vbnQvYWRkcmVzcyc7XG59XG5cbmNsYXNzIEtvdmFuIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS292YW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rb3Zhbi5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va292YW4uZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gNDI7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjMGFhZjI2NDllN2IwZjM5NTAxNjQ2ODFlY2EyYjFhOGY2NTRhNDc4JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhhNzlhNDg1Mjk0ZDIyNjA3NWVlNjU0MTBiYzk0ZWE0NTRmM2U0MDlkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YTk0NmU3NDhmMjVhNWVjNjg3OGViMWE5ZjJlOTAyMDI4MTc0YzBiMyc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgR29lcmxpIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnR29lcmxpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9nb2VybGkuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gNTtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGU4ZTg0N2NmNTczZmM4ZWQ3NTYyMTY2MGEzNmFmZmQxOGM1NDNkN2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGY1Y2FhNWUzZTkzYWZiYzIxYmQxOWVmNGYyNjkxYTM3MTIxZjc5MTcnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg4MGQ1YzkxZThjYzIxZGY2OWZjNGQ2NGYyMWRjMmQ4MzEyMWMzOTk5JztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBIb2xlc2t5IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSG9sZXNreSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuYmVhY29uY2hhLmluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuYmVhY29uY2hhLmluL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuYmVhY29uY2hhLmluL2Jsb2NrLyc7XG4gIC8vIGh0dHBzOi8vY2hhaW5saXN0Lm9yZy9jaGFpbi8xNzAwMFxuICBjaGFpbklkID0gMTcwMDA7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHg4YWUyODZjNzVhMzM5ZmZhYmFlZDNhMjIwODhjNTJlYjRmNTg5NzgwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzMWYxNzkxN2VhNjEzMmM5YTIyNjVmNTE0OTcwNDkyYmFlM2VkNjY4JztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4MWE5MjQ4MTRlYWVlZTRhZWU1ZDY4N2M4Y2MxYmE1N2ViOGRiNzQ3Nyc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgRXRoZXJldW1DbGFzc2ljIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW1DbGFzc2ljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21haW5uZXQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21haW5uZXQvYWRkcmVzcy8nO1xuICAvLyBmcm9tICBodHRwczovL2NoYWluaWQubmV0d29yay9jaGFpbnMvXG4gIGNoYWluSWQgPSA2MTtcbn1cblxuY2xhc3MgRXRoZXJldW1DbGFzc2ljVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LmNvbS9ldGMvbW9yZG9yL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tb3Jkb3IvYWRkcmVzcy8nO1xuICAvLyBmcm9tICBodHRwczovL2NoYWluaWQubmV0d29yay9jaGFpbnMvXG4gIGNoYWluSWQgPSA2Mztcbn1cblxuY2xhc3MgRW9zIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFb3MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5lb3NuZXR3b3JrLmNvbS90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBFb3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFb3NUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va3lsaW4uZW9zeC5pby90eC8nO1xufVxuXG5jbGFzcyBIZWRlcmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hlZGVyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5rYWJ1dG8uc2gvbWFpbm5ldC90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBIZWRlcmFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIZWRlcmFUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQkFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmthYnV0by5zaC90ZXN0bmV0L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIExpdGVjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdMaXRlY29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTFRDO1xuICB1dHhvbGliTmFtZSA9ICdsaXRlY29pbic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vbGl0ZWNvaW4vdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgTGl0ZWNvaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdMaXRlY29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxUQztcbiAgdXR4b2xpYk5hbWUgPSAnbGl0ZWNvaW5UZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2V4cGxvcmVyLm9uZS9saXRlY29pbi90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIE9mYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBPZmNOZXR3b3JrIHtcbiAgbmFtZSA9ICdPZmMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9GQztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIE9mY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgT2ZjTmV0d29yayB7XG4gIG5hbWUgPSAnT2ZjVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0ZDO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgUmJ0YyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1JidGMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlJCVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucnNrLmNvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnJzay5jby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMDtcbn1cblxuY2xhc3MgUmJ0Y1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSYnRjVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUkJUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LnJzay5jby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LnJzay5jby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMTtcbn1cblxuY2xhc3MgU3RlbGxhciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU3RlbGxhcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWExNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N0ZWxsYXIuZXhwZXJ0L2V4cGxvcmVyL3B1YmxpYy90eC8nO1xufVxuXG5jbGFzcyBTdGVsbGFyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU3RlbGxhclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGVsbGFyLmV4cGVydC9leHBsb3Jlci90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIFNvbCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU29sJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT0w7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc29sYW5hLmNvbS90eC8nO1xufVxuXG5jbGFzcyBTb2xUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTb2xUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT0w7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc29sYW5hLmNvbS90eC8/Y2x1c3Rlcj1kZXZuZXQnO1xufVxuXG5jbGFzcyBTdWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N1aSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN1aS5pby90eGJsb2NrLz9uZXR3b3JrPW1haW5uZXQnO1xufVxuXG5jbGFzcyBTdWlUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFN1aSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN1aS5pby90eGJsb2NrLz9uZXR3b3JrPXRlc3RuZXQnO1xufVxuXG5jbGFzcyBBdG9tIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3Ntb3MgSHViIEFUT00nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFUT007XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXRvbXNjYW4uY29tL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBBdG9tVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBDb3Ntb3MgSHViIEFUT00nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFUT007XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGhldGEtdGVzdG5ldC5wb2x5cG9yZS54eXovdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIE9zbW8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ09zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL29zbW9zaXMvdHhzLyc7XG59XG5cbmNsYXNzIE9zbW9UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IE9zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5vc21vc2lzLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIFRpYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2VsZXN0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vY2VsZXN0aWEvdHgvJztcbn1cblxuY2xhc3MgVGlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBDZWxlc3RpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVElBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQubWludHNjYW4uaW8vY2VsZXN0aWEtdGVzdG5ldC90eHMvJztcbn1cblxuY2xhc3MgSGFzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUHJvdmVuYW5jZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEFTSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wcm92ZW5hbmNlLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEhhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFByb3ZlbmFuY2UnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhBU0g7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC5wcm92ZW5hbmNlLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEJsZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWdvcmljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CTEQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmlnZGlwcGVyLmxpdmUvYWdvcmljL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBCbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEFnb3JpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2VtZXJ5bmV0LmV4cGxvcmVyLmFnb3JpYy5uZXQvYWdvcmljL3R4Lyc7XG59XG5cbmNsYXNzIFNlaSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU2VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TRUk7XG4gIC8vICBUT0RPKEJHLTc4OTk3KTogU2VpIGlzIHN0aWxsIG9ubHkgaW4gdGVzdG5ldCB1cGRhdGUgdG8gbWFpbm5ldCB1cmwgd2hlbiBpdCdzIGxpdmVcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZWkuZXhwbG9yZXJzLmd1cnUvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgU2VpVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBTZWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuc2Vpc2Nhbi5hcHAvYXRsYW50aWMtMi90eHMvJztcbn1cblxuY2xhc3MgWmV0YSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWmV0YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVUQTtcbiAgLy8gIFRPRE8oV0lOLTE0Mik6IFpldGEgaXMgc3RpbGwgb25seSBpbiB0ZXN0bmV0IHVwZGF0ZSB0byBtYWlubmV0IHVybCB3aGVuIGl0J3MgbGl2ZVxuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnpldGFjaGFpbi5jb20vY2MvdHgvJztcbn1cblxuY2xhc3MgWmV0YVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgWmV0YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVUQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly96ZXRhY2hhaW4uZXhwbG9yZXJzLmd1cnUvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgSW5qZWN0aXZlIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbmplY3RpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSkVDVElWRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5pbmplY3RpdmUubmV0d29yay90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBJbmplY3RpdmVUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbmplY3RpdmVUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTkpFQ1RJVkU7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5pbmplY3RpdmUubmV0d29yay90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBLYXZhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQVZBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9rYXZhL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBLYXZhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnS2F2YVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5taW50c2Nhbi5pby9rYXZhLXRlc3RuZXQvdHhzLyc7XG59XG5cbmNsYXNzIFRvbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVG9uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaHR0cHM6Ly90b25zY2FuLm9yZy8nO1xufVxuXG5jbGFzcyBUb25UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFRvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVE9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2h0dHBzOi8vdGVzdG5ldC50b25zY2FuLm9yZy8nO1xufVxuXG5jbGFzcyBDb3JldW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0NvcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRVVNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvcmV1bS5jb20vY29yZXVtL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBDb3JldW1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JldW1UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC0xLmNvcmV1bS5kZXYvY29yZXVtL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBCZXJhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdCZXJhY2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJFUkE7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBCZXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQmVyYWNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkVSQTtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIElzbG0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hhcXEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklTTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcGluZy5wdWIvaGFxcS90eC8nO1xufVxuXG5jbGFzcyBJc2xtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGFxcVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklTTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5waW5nLnB1Yi9oYXFxL3R4Lyc7XG59XG5cbmNsYXNzIFN0eCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdGFja3MuY28vdHhpZC8nO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1AzRkJSMkFHSzVIOVFCREgzRUVONkRGOEVLOEpZN1JYOFFKNVNWVEUnO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NQMDAwMDAwMDAwMDAwMDAwMDAwMDAyUTZWRjc4Jztcbn1cblxuY2xhc3MgU3R4VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVFg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3RhY2tzLmNvL3R4aWQvP2NoYWluPXRlc3RuZXQnO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1QzRjFYNFFHVjJTTThYRDk2WDQ1TTZSVFFYS0ExUFpKWlpDUUFCNEInO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NUMDAwMDAwMDAwMDAwMDAwMDAwMDAyQU1XNDJIJztcbn1cblxuY2xhc3MgU1VTRCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU1VTRCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VTRDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFNVU0RUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTVVNEVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VTRDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEZpYXRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdGaWF0VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRklBVDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEZpYXQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQmFzZU5ldHdvcmsge1xuICBuYW1lID0gJ0ZpYXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZJQVQ7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBUcnggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVHJvbk5ldHdvcmsge1xuICBuYW1lID0gJ1RyeCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVFJYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Ryb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBUcnhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcnhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhc3RhLnRyb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBYcnAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpdmVuZXQueHJwbC5vcmcvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFhycFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0LmJpdGhvbXAuY29tL2V4cGxvcmVyLyc7XG59XG5cbmNsYXNzIFh0eiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHR6JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFo7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHpzdGF0cy5jb20vJztcbn1cblxuY2xhc3MgWHR6VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHR6VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFRaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL211bWJhaS50enN0YXRzLmNvbS8nO1xufVxuXG5jbGFzcyBaQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnWkNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFQztcbiAgdXR4b2xpYk5hbWUgPSAnemNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NoYWluLnNvL3R4L1pFQy8nO1xufVxuXG5jbGFzcyBaQ2FzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ1pDYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVDO1xuICB1dHhvbGliTmFtZSA9ICd6Y2FzaFRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NoYWluLnNvL3R4L1pFQ1RFU1QvJztcbn1cblxuY2xhc3MgTmVhciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTmVhcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTkVBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5uZWFyLm9yZy90cmFuc2FjdGlvbnMvJztcbiAgZmVlUmVzZXJ2ZSA9ICc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIHN0b3JhZ2VSZXNlcnZlID0gJzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBmZWVSZXNlcnZlICsgc3RvcmFnZVJlc2VydmUgaXMgbWluaW11bSBhY2NvdW50IGJhbGFuY2UgZm9yIGEgTkVBUiB3YWxsZXQgaHR0cHM6Ly9kb2NzLm5lYXIub3JnL2ludGVncmF0b3IvZmFxI2lzLXRoZXJlLWEtbWluaW11bS1hY2NvdW50LWJhbGFuY2Vcbn1cblxuY2xhc3MgTmVhclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ05lYXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQubmVhci5vcmcvdHJhbnNhY3Rpb25zLyc7XG4gIGZlZVJlc2VydmUgPSAnNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuICBzdG9yYWdlUmVzZXJ2ZSA9ICcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwJzsgLy8gZmVlUmVzZXJ2ZSArIHN0b3JhZ2VSZXNlcnZlIGlzIG1pbmltdW0gYWNjb3VudCBiYWxhbmNlIGZvciBhIE5FQVIgd2FsbGV0IGh0dHBzOi8vZG9jcy5uZWFyLm9yZy9pbnRlZ3JhdG9yL2ZhcSNpcy10aGVyZS1hLW1pbmltdW0tYWNjb3VudC1iYWxhbmNlXG59XG5cbmNsYXNzIFBvbHlnb24gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5Z29uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZR09OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbHlnb25zY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wb2x5Z29uc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTM3O1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDI5ZWY0NjAzNWU5ZmEzZDU3MGM1OThkMzI2NjQyNGNhMTE0MTNiMGMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg1Mzk3ZDA4NjlhYmEwZDU1ZTk2ZDU3MTZkMzgzZjZlMWQ4Njk1ZWQ3JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHhhNzE5OGY0OGM1OGU5MWYwMTMxN2U3MGNkMjRjNWNjZTQ3NWMxNTU1JztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZTVkY2RjMTNiNjI4YzJkZjgxM2RiMTA4MDM2N2U5MjljMTUwN2NhMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHg3YWRjOWIzZDc1MjE3MTAzMjFiZWM3ZGQ2ODk3ZDMzN2U1M2MyNDkzJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUE9MWUdPTic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OLUVSQzIwJztcbn1cblxuY2xhc3MgUG9seWdvblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5Z29uVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUE9MWUdPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tdW1iYWkucG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL211bWJhaS5wb2x5Z29uc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODAwMDE7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4N2QxMGNmZGNiNzYzMzc1ZmI1ZjBhMGU5MTAxZjQ5MGYwYmYxYjQzYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGFhMjIxNmQ3MmQ3YzE0OWRmZTRjM2RkMjE1NGNkMDA5OTQyMTY1MDYnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGUzN2MwN2ZhZWM4N2JlMDc1Y2U0MDAyYjVmZWRiZGUwMGE0ZmU5ZDUnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHgxMWY4ZDcwYTRlZTlkMDk2MmJiMTE2MGQ3NzZkNGE5OTZjZmRmZjQwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGNkZjAxYTMxZWEyYTFkNjI5NTFhYWMzYTU3NDNjNDQxNmY5ZGEzZmInO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04tRVJDMjAnO1xufVxuXG5jbGFzcyBPcHRpbWlzbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wdGltaXNtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcHRpbWlzdGljLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcHRpbWlzdGljLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnT1BFVEgnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnT1BFVEgtRVJDMjAnO1xufVxuXG5jbGFzcyBPcHRpbWlzbVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdPcHRpbWlzbVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9QRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtb3B0aW1pc20uZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtb3B0aW1pc20uZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExMTU1NDIwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdPUEVUSCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdPUEVUSC1FUkMyMCc7XG59XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrcyA9IHtcbiAgbWFpbjoge1xuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhKCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZCgpKSxcbiAgICBhcmJpdHJ1bTogT2JqZWN0LmZyZWV6ZShuZXcgQXJiaXRydW0oKSksXG4gICAgYXRvbTogT2JqZWN0LmZyZWV6ZShuZXcgQXRvbSgpKSxcbiAgICBhdmFsYW5jaGVDOiBPYmplY3QuZnJlZXplKG5ldyBBdmFsYW5jaGVDKCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVAoKSksXG4gICAgYml0Y29pbjogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbigpKSxcbiAgICBiaXRjb2luQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkNhc2goKSksXG4gICAgYml0Y29pbkdvbGQ6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5Hb2xkKCkpLFxuICAgIGJpdGNvaW5TVjogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblNWKCkpLFxuICAgIGJlcmE6IE9iamVjdC5mcmVlemUobmV3IEJlcmEoKSksXG4gICAgYmxkOiBPYmplY3QuZnJlZXplKG5ldyBCbGQoKSksXG4gICAgYnNjOiBPYmplY3QuZnJlZXplKG5ldyBCaW5hbmNlU21hcnRDaGFpbigpKSxcbiAgICBjYXNwZXI6IE9iamVjdC5mcmVlemUobmV3IENhc3BlcigpKSxcbiAgICBjZWxvOiBPYmplY3QuZnJlZXplKG5ldyBDZWxvKCkpLFxuICAgIGNvcmV1bTogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZXVtKCkpLFxuICAgIGRhc2g6IE9iamVjdC5mcmVlemUobmV3IERhc2goKSksXG4gICAgZG9nZWNvaW46IE9iamVjdC5mcmVlemUobmV3IERvZ2Vjb2luKCkpLFxuICAgIGRvdDogT2JqZWN0LmZyZWV6ZShuZXcgUG9sa2Fkb3QoKSksXG4gICAgZUNhc2g6IE9iamVjdC5mcmVlemUobmV3IEVDYXNoKCkpLFxuICAgIGVvczogT2JqZWN0LmZyZWV6ZShuZXcgRW9zKCkpLFxuICAgIGV0aGVyZXVtOiBPYmplY3QuZnJlZXplKG5ldyBFdGhlcmV1bSgpKSxcbiAgICBldGhlcmV1bTI6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtMigpKSxcbiAgICBldGhlcmV1bUNsYXNzaWM6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtQ2xhc3NpYygpKSxcbiAgICBldGhlcmV1bVc6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtVygpKSxcbiAgICBmaWF0OiBPYmplY3QuZnJlZXplKG5ldyBGaWF0KCkpLFxuICAgIGhhc2g6IE9iamVjdC5mcmVlemUobmV3IEhhc2goKSksXG4gICAgaGVkZXJhOiBPYmplY3QuZnJlZXplKG5ldyBIZWRlcmEoKSksXG4gICAgaW5qZWN0aXZlOiBPYmplY3QuZnJlZXplKG5ldyBJbmplY3RpdmUoKSksXG4gICAgaXNsbTogT2JqZWN0LmZyZWV6ZShuZXcgSXNsbSgpKSxcbiAgICBrYXZhOiBPYmplY3QuZnJlZXplKG5ldyBLYXZhKCkpLFxuICAgIGxpdGVjb2luOiBPYmplY3QuZnJlZXplKG5ldyBMaXRlY29pbigpKSxcbiAgICBwb2x5Z29uOiBPYmplY3QuZnJlZXplKG5ldyBQb2x5Z29uKCkpLFxuICAgIG9mYzogT2JqZWN0LmZyZWV6ZShuZXcgT2ZjKCkpLFxuICAgIG9wdGltaXNtOiBPYmplY3QuZnJlZXplKG5ldyBPcHRpbWlzbSgpKSxcbiAgICBvc21vOiBPYmplY3QuZnJlZXplKG5ldyBPc21vKCkpLFxuICAgIHJidGM6IE9iamVjdC5mcmVlemUobmV3IFJidGMoKSksXG4gICAgc3RlbGxhcjogT2JqZWN0LmZyZWV6ZShuZXcgU3RlbGxhcigpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaSgpKSxcbiAgICBzb2w6IE9iamVjdC5mcmVlemUobmV3IFNvbCgpKSxcbiAgICBzdWk6IE9iamVjdC5mcmVlemUobmV3IFN1aSgpKSxcbiAgICBuZWFyOiBPYmplY3QuZnJlZXplKG5ldyBOZWFyKCkpLFxuICAgIHN0eDogT2JqZWN0LmZyZWV6ZShuZXcgU3R4KCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0QoKSksXG4gICAgdGlhOiBPYmplY3QuZnJlZXplKG5ldyBUaWEoKSksXG4gICAgdG9uOiBPYmplY3QuZnJlZXplKG5ldyBUb24oKSksXG4gICAgdHJ4OiBPYmplY3QuZnJlZXplKG5ldyBUcngoKSksXG4gICAgeHJwOiBPYmplY3QuZnJlZXplKG5ldyBYcnAoKSksXG4gICAgeHR6OiBPYmplY3QuZnJlZXplKG5ldyBYdHooKSksXG4gICAgekNhc2g6IE9iamVjdC5mcmVlemUobmV3IFpDYXNoKCkpLFxuICAgIHpldGE6IE9iamVjdC5mcmVlemUobmV3IFpldGEoKSksXG4gIH0sXG4gIHRlc3Q6IHtcbiAgICBhZGE6IE9iamVjdC5mcmVlemUobmV3IEFkYVRlc3RuZXQoKSksXG4gICAgYWxnb3JhbmQ6IE9iamVjdC5mcmVlemUobmV3IEFsZ29yYW5kVGVzdG5ldCgpKSxcbiAgICBhcmJpdHJ1bTogT2JqZWN0LmZyZWV6ZShuZXcgQXJiaXRydW1UZXN0bmV0KCkpLFxuICAgIGF0b206IE9iamVjdC5mcmVlemUobmV3IEF0b21UZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZUM6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZUNUZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVBUZXN0bmV0KCkpLFxuICAgIGJpdGNvaW46IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5UZXN0bmV0KCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaFRlc3RuZXQoKSksXG4gICAgYml0Y29pbkdvbGQ6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5Hb2xkVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luU1Y6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5TVlRlc3RuZXQoKSksXG4gICAgYmVyYTogT2JqZWN0LmZyZWV6ZShuZXcgQmVyYVRlc3RuZXQoKSksXG4gICAgYmxkOiBPYmplY3QuZnJlZXplKG5ldyBCbGRUZXN0bmV0KCkpLFxuICAgIGJzYzogT2JqZWN0LmZyZWV6ZShuZXcgQmluYW5jZVNtYXJ0Q2hhaW5UZXN0bmV0KCkpLFxuICAgIGNhc3BlcjogT2JqZWN0LmZyZWV6ZShuZXcgQ2FzcGVyVGVzdG5ldCgpKSxcbiAgICBjZWxvOiBPYmplY3QuZnJlZXplKG5ldyBDZWxvVGVzdG5ldCgpKSxcbiAgICBkYXNoOiBPYmplY3QuZnJlZXplKG5ldyBEYXNoVGVzdG5ldCgpKSxcbiAgICBkb2dlY29pbjogT2JqZWN0LmZyZWV6ZShuZXcgRG9nZWNvaW5UZXN0bmV0KCkpLFxuICAgIGRvdDogT2JqZWN0LmZyZWV6ZShuZXcgUG9sa2Fkb3RUZXN0bmV0KCkpLFxuICAgIGVDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBFQ2FzaFRlc3RuZXQoKSksXG4gICAgZW9zOiBPYmplY3QuZnJlZXplKG5ldyBFb3NUZXN0bmV0KCkpLFxuICAgIGZpYXQ6IE9iamVjdC5mcmVlemUobmV3IEZpYXRUZXN0bmV0KCkpLFxuICAgIHB5cm1vbnQ6IE9iamVjdC5mcmVlemUobmV3IFB5cm1vbnQoKSksXG4gICAgZXRoZXJldW1DbGFzc2ljVGVzdG5ldDogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1DbGFzc2ljVGVzdG5ldCgpKSxcbiAgICBoYXNoOiBPYmplY3QuZnJlZXplKG5ldyBIYXNoVGVzdG5ldCgpKSxcbiAgICBoZWRlcmE6IE9iamVjdC5mcmVlemUobmV3IEhlZGVyYVRlc3RuZXQoKSksXG4gICAgaW5qZWN0aXZlOiBPYmplY3QuZnJlZXplKG5ldyBJbmplY3RpdmVUZXN0bmV0KCkpLFxuICAgIGlzbG06IE9iamVjdC5mcmVlemUobmV3IElzbG1UZXN0bmV0KCkpLFxuICAgIGthdmE6IE9iamVjdC5mcmVlemUobmV3IEthdmFUZXN0bmV0KCkpLFxuICAgIGtvdmFuOiBPYmplY3QuZnJlZXplKG5ldyBLb3ZhbigpKSxcbiAgICBnb2VybGk6IE9iamVjdC5mcmVlemUobmV3IEdvZXJsaSgpKSxcbiAgICBob2xlc2t5OiBPYmplY3QuZnJlZXplKG5ldyBIb2xlc2t5KCkpLFxuICAgIGxpdGVjb2luOiBPYmplY3QuZnJlZXplKG5ldyBMaXRlY29pblRlc3RuZXQoKSksXG4gICAgcG9seWdvbjogT2JqZWN0LmZyZWV6ZShuZXcgUG9seWdvblRlc3RuZXQoKSksXG4gICAgb2ZjOiBPYmplY3QuZnJlZXplKG5ldyBPZmNUZXN0bmV0KCkpLFxuICAgIG9wdGltaXNtOiBPYmplY3QuZnJlZXplKG5ldyBPcHRpbWlzbVRlc3RuZXQoKSksXG4gICAgb3NtbzogT2JqZWN0LmZyZWV6ZShuZXcgT3Ntb1Rlc3RuZXQoKSksXG4gICAgcmJ0YzogT2JqZWN0LmZyZWV6ZShuZXcgUmJ0Y1Rlc3RuZXQoKSksXG4gICAgc3RlbGxhcjogT2JqZWN0LmZyZWV6ZShuZXcgU3RlbGxhclRlc3RuZXQoKSksXG4gICAgc2VpOiBPYmplY3QuZnJlZXplKG5ldyBTZWlUZXN0bmV0KCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sVGVzdG5ldCgpKSxcbiAgICBzdWk6IE9iamVjdC5mcmVlemUobmV3IFN1aVRlc3RuZXQoKSksXG4gICAgbmVhcjogT2JqZWN0LmZyZWV6ZShuZXcgTmVhclRlc3RuZXQoKSksXG4gICAgc3R4OiBPYmplY3QuZnJlZXplKG5ldyBTdHhUZXN0bmV0KCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0RUZXN0bmV0KCkpLFxuICAgIGNvcmV1bTogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZXVtVGVzdG5ldCgpKSxcbiAgICB0aWE6IE9iamVjdC5mcmVlemUobmV3IFRpYVRlc3RuZXQoKSksXG4gICAgdG9uOiBPYmplY3QuZnJlZXplKG5ldyBUb25UZXN0bmV0KCkpLFxuICAgIHRyeDogT2JqZWN0LmZyZWV6ZShuZXcgVHJ4VGVzdG5ldCgpKSxcbiAgICB4cnA6IE9iamVjdC5mcmVlemUobmV3IFhycFRlc3RuZXQoKSksXG4gICAgeHR6OiBPYmplY3QuZnJlZXplKG5ldyBYdHpUZXN0bmV0KCkpLFxuICAgIHpDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBaQ2FzaFRlc3RuZXQoKSksXG4gICAgemV0YTogT2JqZWN0LmZyZWV6ZShuZXcgWmV0YVRlc3RuZXQoKSksXG4gIH0sXG59O1xuIl19
|
|
3526
|
+
const networkByName = new Map(Object.values(exports.Networks).flatMap((category) => Object.values(category).map((network) => [network.name, network])));
|
|
3527
|
+
/**
|
|
3528
|
+
* Look up a registered network by its display name (e.g. "Ethereum", "Bitcoin").
|
|
3529
|
+
* Returns undefined for names not registered in local statics.
|
|
3530
|
+
*/
|
|
3531
|
+
function getNetworkByName(name) {
|
|
3532
|
+
return networkByName.get(name);
|
|
3533
|
+
}
|
|
3534
|
+
function getNetworksMap() {
|
|
3535
|
+
return new Map(networkByName);
|
|
3536
|
+
}
|
|
3537
|
+
/**
|
|
3538
|
+
* Dynamically register a new network in the lookup map.
|
|
3539
|
+
* Throws if a network with the same name is already registered.
|
|
3540
|
+
*/
|
|
3541
|
+
function registerNetwork(network) {
|
|
3542
|
+
if (networkByName.has(network.name)) {
|
|
3543
|
+
throw new Error(`Network '${network.name}' is already registered`);
|
|
3544
|
+
}
|
|
3545
|
+
networkByName.set(network.name, network);
|
|
3546
|
+
}
|
|
3547
|
+
/**
|
|
3548
|
+
* Look up a network by its display name or JSON representation.
|
|
3549
|
+
*
|
|
3550
|
+
* Resolution order:
|
|
3551
|
+
* 1. If `network` is a JSON string representing a DynamicNetworkOptions object
|
|
3552
|
+
* (must have `name`, `type`, and `family` fields), construct and
|
|
3553
|
+
* return a new DynamicNetwork instance.
|
|
3554
|
+
* 2. Local statics cache via getNetworkByName().
|
|
3555
|
+
*
|
|
3556
|
+
* @param network - A network display name (e.g. "bitcoin") or a JSON-encoded
|
|
3557
|
+
* DynamicNetworkOptions object.
|
|
3558
|
+
* @returns The matching BaseNetwork (or DynamicNetwork) instance.
|
|
3559
|
+
* @throws {Error} If the network is not found in local statics and the input
|
|
3560
|
+
* is not a valid DynamicNetworkOptions JSON string.
|
|
3561
|
+
*/
|
|
3562
|
+
function getNetwork(network) {
|
|
3563
|
+
// Check if the input is a JSON-encoded DynamicNetworkOptions object.
|
|
3564
|
+
try {
|
|
3565
|
+
const parsed = JSON.parse(network);
|
|
3566
|
+
if (parsed !== null &&
|
|
3567
|
+
typeof parsed === 'object' &&
|
|
3568
|
+
typeof parsed.name === 'string' &&
|
|
3569
|
+
typeof parsed.type === 'string' &&
|
|
3570
|
+
typeof parsed.family === 'string') {
|
|
3571
|
+
return new DynamicNetwork(parsed);
|
|
3572
|
+
}
|
|
3573
|
+
}
|
|
3574
|
+
catch {
|
|
3575
|
+
// Not valid JSON — fall through to local lookup by name.
|
|
3576
|
+
}
|
|
3577
|
+
const networkObj = getNetworkByName(network);
|
|
3578
|
+
if (!networkObj) {
|
|
3579
|
+
throw new Error(`Network ${network} not found`);
|
|
3580
|
+
}
|
|
3581
|
+
return networkObj;
|
|
3582
|
+
}
|
|
3583
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMHBHQSw0Q0FFQztBQUVELHdDQUVDO0FBTUQsMENBS0M7QUFpQkQsZ0NBc0JDO0FBcnFHRCxpQ0FBb0M7QUFFcEMsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLGtDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFFRCxNQUFzQixXQUFXO0NBS2hDO0FBTEQsa0NBS0M7QUF3SkQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFlLE9BQVEsU0FBUSxXQUFXO0lBQTFDOztRQUNFLFNBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7Q0FBQTtBQUVELE1BQU0sUUFBUyxTQUFRLE9BQU87SUFBOUI7O1FBQ0UsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUNsQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxJQUFJLENBQUM7UUFDekIsZ0JBQVcsR0FBRyx1QkFBdUIsQ0FBQztJQUN4QyxDQUFDO0NBQUE7QUFFRCxNQUFNLGVBQWdCLFNBQVEsT0FBTztJQUFyQzs7UUFDRSxTQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDekIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsNkNBQTZDLENBQUM7SUFDOUQsQ0FBQztDQUFBO0FBRUQsTUFBTSxHQUFJLFNBQVEsT0FBTztJQUF6Qjs7UUFDRSxTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNB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RUFBRSxDQUFDO1FBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDbkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNqQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNqQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNoQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFF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UUFDMUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUN2QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO0tBQ3ZDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUE2QixJQUFJLEdBQUcsQ0FDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDakgsQ0FBQztBQUVGOzs7R0FHRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLElBQVk7SUFDM0MsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLE9BQU8sSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxPQUFvQjtJQUNsRCxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLE9BQU8sQ0FBQyxJQUFJLHlCQUF5QixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixVQUFVLENBQUMsT0FBZTtJQUN4QyxxRUFBcUU7SUFDckUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxJQUNFLE1BQU0sS0FBSyxJQUFJO1lBQ2YsT0FBTyxNQUFNLEtBQUssUUFBUTtZQUMxQixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUMvQixPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUNqQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUErQixDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCx5REFBeUQ7SUFDM0QsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsT0FBTyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEZsYXJlTmV0d29yayBpbnRlcmZhY2UgZm9yIEZsYXJlLWZhbWlseSBjaGFpbnNcbmV4cG9ydCBpbnRlcmZhY2UgRmxhcmVOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZhbWlseTogQ29pbkZhbWlseTtcbiAgZXhwbG9yZXJVcmw6IHN0cmluZztcbiAgYWNjb3VudEV4cGxvcmVyVXJsOiBzdHJpbmc7XG4gIGNoYWluSWQ/OiBudW1iZXI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICBibG9ja2NoYWluSUQ6IHN0cmluZztcbiAgY0NoYWluQmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIG5ldHdvcmtJRDogbnVtYmVyO1xuICBocnA6IHN0cmluZztcbiAgYWxpYXM6IHN0cmluZztcbiAgYXNzZXRJZDogc3RyaW5nO1xuICB2bT86IHN0cmluZztcbiAgdHhGZWU6IHN0cmluZztcbiAgbWluSW1wb3J0VG9QRmVlOiBzdHJpbmc7XG4gIG1heEltcG9ydEZlZTogc3RyaW5nO1xuICBjcmVhdGVTdWJuZXRUeD86IHN0cmluZztcbiAgY3JlYXRlQ2hhaW5UeD86IHN0cmluZztcbiAgY3JlYXRpb25UeEZlZT86IHN0cmluZztcbiAgbWluQ29uc3VtcHRpb24/OiBzdHJpbmc7XG4gIG1heENvbnN1bXB0aW9uPzogc3RyaW5nO1xuICBtYXhTdXBwbHk/OiBzdHJpbmc7XG4gIG1pblN0YWtlOiBzdHJpbmc7XG4gIG1pblN0YWtlRHVyYXRpb24/OiBzdHJpbmc7XG4gIG1heFN0YWtlRHVyYXRpb24/OiBzdHJpbmc7XG4gIG1pbkRlbGVnYXRpb25TdGFrZT86IHN0cmluZztcbiAgbWluRGVsZWdhdGlvbkZlZT86IHN0cmluZztcbiAgZmxhcmVQdWJsaWNVcmw/OiBzdHJpbmc7XG4gIGJhc2VUeEZlZT86IHN0cmluZztcbiAgY3JlYXRlQXNzZXRUeEZlZT86IHN0cmluZztcbiAgY3JlYXRlU3VibmV0VHhGZWU/OiBzdHJpbmc7XG4gIHRyYW5zZm9ybVN1Ym5ldFR4RmVlPzogc3RyaW5nO1xuICBjcmVhdGVCbG9ja2NoYWluVHhGZWU/OiBzdHJpbmc7XG4gIGFkZFByaW1hcnlOZXR3b3JrVmFsaWRhdG9yRmVlPzogc3RyaW5nO1xuICBhZGRQcmltYXJ5TmV0d29ya0RlbGVnYXRvckZlZT86IHN0cmluZztcbiAgYWRkU3VibmV0VmFsaWRhdG9yRmVlPzogc3RyaW5nO1xuICBhZGRTdWJuZXREZWxlZ2F0b3JGZWU/OiBzdHJpbmc7XG4gIHhDaGFpbkJsb2NrY2hhaW5JRD86IHN0cmluZztcbn1cblxuaW1wb3J0IHsgQ29pbkZhbWlseSB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBlbnVtIE5ldHdvcmtUeXBlIHtcbiAgTUFJTk5FVCA9ICdtYWlubmV0JyxcbiAgVEVTVE5FVCA9ICd0ZXN0bmV0Jyxcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VOZXR3b3JrIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHR5cGU6IE5ldHdvcmtUeXBlO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmFtaWx5OiBDb2luRmFtaWx5O1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZXhwbG9yZXJVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVdHhvTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gTmV0d29yayBuYW1lIGFzIGRlZmluZWQgaW4gQGJpdGdvLWJldGEvdXR4by1saWIgbmV0d29ya3MudHNcbiAgdXR4b2xpYk5hbWU6IHN0cmluZztcbiAgcGF5Z29BZGRyZXNzQXR0ZXN0YXRpb25QdWJrZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlnaHRuaW5nTmV0d29yayBleHRlbmRzIFV0eG9OZXR3b3JrIHtcbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMga2V5IG9mIHRoZSBMaWdodG5pbmcgc2VydmljZSwgdXNlZCBmb3IgZGVyaXZpbmcgdGhlIHNoYXJlZCBFbGxpcHRpYyBDdXJ2ZSBEaWZmaWUtSGVsbG1hbiAoRUNESCkgc2VjcmV0XG4gICAqIGJldHdlZW4gdGhlIHVzZXIncyBleHRlbmRlZCBwcml2YXRlIGtleSBhbmQgdGhlIExpZ2h0bmluZyBzZXJ2aWNlLiBUaGlzIGtleSBmYWNpbGl0YXRlcyBzZWN1cmUgY29tbXVuaWNhdGlvblxuICAgKiBieSBlbmFibGluZyB0aGUgY3JlYXRpb24gb2YgYSBzaGFyZWQgc2VjcmV0IGZvciBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIG9mIGRhdGEuXG4gICAqL1xuICBsaWdodG5pbmdTZXJ2aWNlUHViS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcHVibGljIGtleSBvZiB0aGUgbWlkZGxld2FyZSBzZXJ2aWNlLCB1c2VkIGZvciBkZXJpdmluZyB0aGUgc2hhcmVkIEVsbGlwdGljIEN1cnZlIERpZmZpZS1IZWxsbWFuIChFQ0RIKSBzZWNyZXRcbiAgICogYmV0d2VlbiB0aGUgdXNlcidzIGV4dGVuZGVkIHByaXZhdGUga2V5IGFuZCB0aGUgbWlkZGxld2FyZSBzZXJ2aWNlLlxuICAgKi9cbiAgbWlkZGxld2FyZVB1YktleTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHB1YmxpYyBrZXkgb2YgdGhlIFRBVCBzZXJ2aWNlLCB1c2VkIGZvciBkZXJpdmluZyB0aGUgc2hhcmVkIEVsbGlwdGljIEN1cnZlIERpZmZpZS1IZWxsbWFuIChFQ0RIKSBzZWNyZXRcbiAgICogYmV0d2VlbiB0aGUgdXNlcidzIGV4dGVuZGVkIHByaXZhdGUga2V5IGFuZCB0aGUgVEFUIHNlcnZpY2UuXG4gICAqL1xuICB0YXRQdWJLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGFOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICAvLyBOZXR3b3JrIG5hbWUgYXMgZGVmaW5lZCBpbiBAYml0Z28tYmV0YS91dHhvLWxpYiBuZXR3b3Jrcy50c1xuICAvLyBtYXliZSBhZGQgbmV0d29yayBpZGVudGlmaWVyIC8gbWFnaWMgbmV0d29yayBudW1iZXJcbiAgdXR4b2xpYk5hbWU6IHN0cmluZztcbiAgcG9vbERlcG9zaXQ6IG51bWJlcjtcbiAgc3Rha2VLZXlEZXBvc2l0OiBudW1iZXI7XG4gIG1heFZhbHVlU2l6ZTogbnVtYmVyO1xuICBtYXhUcmFuc2FjdGlvblNpemU6IG51bWJlcjtcbiAgY29pbnNQZXJVdHhvV29yZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YWxhbmNoZU5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIHJlYWRvbmx5IGFsaWFzOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJsb2NrY2hhaW5JRDogc3RyaW5nO1xuICByZWFkb25seSBjQ2hhaW5CbG9ja2NoYWluSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbmV0d29ya0lEOiBudW1iZXI7XG4gIHJlYWRvbmx5IGhycDogc3RyaW5nO1xuICByZWFkb25seSB2bTogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGlvblR4RmVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNyZWF0ZVN1Ym5ldFR4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNyZWF0ZUNoYWluVHg6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluQ29uc3VtcHRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWF4Q29uc3VtcHRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWF4U3VwcGx5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pblN0YWtlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pblN0YWtlRHVyYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWF4U3Rha2VEdXJhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBtaW5EZWxlZ2F0aW9uU3Rha2U6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluRGVsZWdhdGlvbkZlZTogc3RyaW5nO1xuICAvLyBjdXJyZW50IHZhbGlkIGFzc2V0IGlkIGlzIEFWQVhcbiAgcmVhZG9ubHkgYXZheEFzc2V0SUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgdHhGZWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbWF4SW1wb3J0RmVlOiBzdHJpbmc7IC8vIDAuMDEgQVZBWFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnROZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICAvLyBzb21lIGNoYWlucyBwYXkgZmVlcyB2aWEgYW4gZW50ZXJwcmlzZSBnYXMgdGFzay4gVGhlIGFjY291bnQgZXhwbG9yZXIgdXJsXG4gIC8vIGlzIGEgdXJsIHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9vayB1cCB0aGUgYWNjb3VudCBmb3IgdGhlIGdhcyB0YW5rIG9uLWNoYWluLlxuICByZWFkb25seSBhY2NvdW50RXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJsb2NrRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIC8vIGJlY2gzMiBIUlAgZm9yIGNoYWlucyB0aGF0IHVzZSBvbmUgKGUuZy4gQ29zbW9zLWZhbWlseSBjb2lucylcbiAgcmVhZG9ubHkgYWRkcmVzc1ByZWZpeD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3Ntb3NOZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICByZWFkb25seSBhZGRyZXNzUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbGlkYXRvclByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSBkZW5vbTogc3RyaW5nO1xuICByZWFkb25seSBnYXNBbW91bnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZ2FzTGltaXQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdmFsaWREZW5vbXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gbmFtZSB0eXBlIG9mIHRoZSBjaGFpbi4gVXNlZCBpbiBzZXR0aW5nIHVwIHRoZSByZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBQb2xrYWRvdFNwZWNOYW1lVHlwZSA9ICdrdXNhbWEnIHwgJ3BvbGthZG90JyB8ICd3ZXN0ZW5kJyB8ICdzdGF0ZW1pbnQnIHwgJ3N0YXRlbWluZScgfCAnd2VzdG1pbnQnO1xuXG5leHBvcnQgdHlwZSBTdWJzdHJhdGVTcGVjTmFtZVR5cGUgPVxuICB8ICdrdXNhbWEnXG4gIHwgJ3BvbGthZG90J1xuICB8ICd3ZXN0ZW5kJ1xuICB8ICdzdGF0ZW1pbnQnXG4gIHwgJ3N0YXRlbWluZSdcbiAgfCAnbm9kZS1zdWJ0ZW5zb3InXG4gIHwgJ3BvbHltZXNoX3Rlc3RuZXQnXG4gIHwgJ3BvbHltZXNoX21haW5uZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvdE5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IHNwZWNOYW1lOiBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgcmVhZG9ubHkgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgcmVhZG9ubHkgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgY2hhaW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4VmVyc2lvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvbHl4TmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgcmVhZG9ubHkgc3BlY05hbWU6IFN1YnN0cmF0ZVNwZWNOYW1lVHlwZTtcbiAgcmVhZG9ubHkgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgcmVhZG9ubHkgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgY2hhaW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4VmVyc2lvbjogbnVtYmVyO1xuICByZWFkb25seSB2OFNwZWNWZXJzaW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IHY4VHhWZXJzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRoZXJldW1OZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyB1bmlxdWUgY2hhaW4gaWQgdXNlZCBmb3IgcmVwbGF5LXByb3RlY3RpbmcgdHJhbnNhY3Rpb25zXG4gIHJlYWRvbmx5IGNoYWluSWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgLy8gZm9yd2FyZGVyIGNvbmZpZ3VyYXRpb24gYWRkcmVzc2VzIHVzZWQgZm9yIGNhbGN1bGF0aW5nIGZvcndhcmRlciB2ZXJzaW9uIDEgYWRkcmVzc2VzXG4gIHJlYWRvbmx5IGZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFYyRm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0RmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFY0RmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFY0SW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeD86IHN0cmluZztcbiAgcmVhZG9ubHkgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICAvLyBaYW1hIGZoRVZNIEFDTCBjb250cmFjdCBhZGRyZXNzIOKAlCByZXF1aXJlZCBmb3IgRVJDLTc5ODQgY29uZmlkZW50aWFsIHRva2VuIGRlbGVnYXRpb25cbiAgcmVhZG9ubHkgemFtYUFjbENvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcm9uTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgbWF4RmVlTGltaXQ6IHN0cmluZztcbiAgY29udHJhY3RDYWxsRmVlTGltaXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja3NOZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICByZWFkb25seSBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgcmVhZG9ubHkgc3Rha2luZ0NvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICByZWFkb25seSBzYnRjV2l0aGRyYXdhbENvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBPZmNOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge31cblxuYWJzdHJhY3QgY2xhc3MgTWFpbm5ldCBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgdHlwZSA9IE5ldHdvcmtUeXBlLk1BSU5ORVQ7XG59XG5cbmFic3RyYWN0IGNsYXNzIFRlc3RuZXQgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIHR5cGUgPSBOZXR3b3JrVHlwZS5URVNUTkVUO1xufVxuXG5jbGFzcyBBbGdvcmFuZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWxnb3JhbmQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFMR087XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWxsby5pbmZvL3R4Lyc7XG59XG5cbmNsYXNzIEFsZ29yYW5kVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWxnb3JhbmRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BTEdPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuZXhwbG9yZXIucGVyYXdhbGxldC5hcHAvdHgvJztcbn1cblxuY2xhc3MgQWRhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFkYU5ldHdvcmsge1xuICBuYW1lID0gJ0FkYUNhcmRhbm8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFEQTtcbiAgdXR4b2xpYk5hbWUgPSAnY2FyZGFubyc7XG4gIHBvb2xEZXBvc2l0ID0gNTAwMDAwMDAwO1xuICBzdGFrZUtleURlcG9zaXQgPSAyMDAwMDAwO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NhcmRhbm9zY2FuLmlvL3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NhcmRhbm9zY2FuLmlvL2FkZHJlc3MvJztcbiAgY29pbnNQZXJVdHhvV29yZCA9IDM0NDgyO1xuICBtYXhUcmFuc2FjdGlvblNpemUgPSA4MDAwO1xuICBtYXhWYWx1ZVNpemUgPSA0MDAwO1xufVxuXG5jbGFzcyBBZGFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFkYU5ldHdvcmsge1xuICBuYW1lID0gJ0FkYUNhcmRhbm9UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BREE7XG4gIHV0eG9saWJOYW1lID0gJ2NhcmRhbm9UZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wcmVwcm9kLmNhcmRhbm9zY2FuLmlvL3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3ByZXByb2QuY2FyZGFub3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjb2luc1BlclV0eG9Xb3JkID0gMzQ0ODI7XG4gIG1heFRyYW5zYWN0aW9uU2l6ZSA9IDgwMDA7XG4gIG1heFZhbHVlU2l6ZSA9IDQwMDA7XG4gIHBvb2xEZXBvc2l0ID0gNTAwMDAwMDAwO1xuICBzdGFrZUtleURlcG9zaXQgPSAyMDAwMDAwO1xufVxuXG5jbGFzcyBBcHQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0FwdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVBUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vdHhuLz9uZXR3b3JrPW1haW5uZXQnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2FjY291bnQvP25ldHdvcms9bWFpbm5ldCc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2Jsb2NrLz9uZXR3b3JrPW1haW5uZXQnO1xufVxuXG5jbGFzcyBBcHRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEFwdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVBUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vdHhuLz9uZXR3b3JrPXRlc3RuZXQnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2FjY291bnQvP25ldHdvcms9dGVzdG5ldCc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2Jsb2NrLz9uZXR3b3JrPXRlc3RuZXQnO1xufVxuXG5jbGFzcyBJY3AgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0ludGVybmV0IENvbXB1dGVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JQ1A7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZGFzaGJvYXJkLmludGVybmV0Y29tcHV0ZXIub3JnL3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Rhc2hib2FyZC5pbnRlcm5ldGNvbXB1dGVyLm9yZy9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIEljcFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSW50ZXJuZXQgQ29tcHV0ZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklDUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9kYXNoYm9hcmQuaW50ZXJuZXRjb21wdXRlci5vcmcvdHJhbnNhY3Rpb24vJzsgLy8gSUNQIHRlc3RuZXQgZXhwbG9yZXIgaXMgbm90IGF2YWlsYWJsZSwgc28gdXNpbmcgbWFpbm5ldCBleHBsb3JlclxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9kYXNoYm9hcmQuaW50ZXJuZXRjb21wdXRlci5vcmcvYWNjb3VudC8nO1xufVxuXG5leHBvcnQgY2xhc3MgS2FzcGFNYWlubmV0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXNwYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FTUEE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIua2FzcGEub3JnL3R4cy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5rYXNwYS5vcmcvYWRkcmVzc2VzLyc7XG59XG5cbmV4cG9ydCBjbGFzcyBLYXNwYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgS2FzcGEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBU1BBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLXRuMTAua2FzcGEub3JnL3R4cy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci10bjEwLmthc3BhLm9yZy9hZGRyZXNzZXMvJztcbn1cblxuY2xhc3MgQXJiaXRydW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVJCRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FyYmlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FyYmlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyMTYxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MSc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MS1FUkMyMCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBBcmJpdHJ1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmFyYmlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MTQnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDIxNjE0LUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEF2YWxhbmNoZUMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyBodHRwczovL2RvY3MuYXZheC5uZXR3b3JrL2J1aWxkL3R1dG9yaWFscy9zbWFydC1jb250cmFjdHMvZGVwbG95LWEtc21hcnQtY29udHJhY3Qtb24tYXZhbGFuY2hlLXVzaW5nLXJlbWl4LWFuZC1tZXRhbWFzayNhdmFsYW5jaGUtbWFpbm5ldC1zZXR0aW5nc1xuICBuYW1lID0gJ0F2YWxhbmNoZUMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL2MtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvYy1jaGFpbi9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MzExNDtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVDVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQ1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvYy1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLXRlc3QuYXZheC5uZXR3b3JrL2MtY2hhaW4vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDMxMTM7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgQXZhbGFuY2hlUCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBdmFsYW5jaGVOZXR3b3JrIHtcbiAgbmFtZSA9ICdBdmFsYW5jaGVQJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLmF2YXgubmV0d29yay9wLWNoYWluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL3AtY2hhaW4vYWRkcmVzcy8nO1xuICBibG9ja2NoYWluSUQgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWSc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRCA9ICcycTllNHI2TXUzVTY4blUxZllqZ2JSNkp2d3JSeDM2Q29ocEFYNVVReHNlNTV4MVE1JztcbiAgYXZheEFzc2V0SUQgPSAnRnZ3RUFobXhLZmVpRzhTbkV2cTQyaGM2d2hSeVkzRUZZQXZlYk1xRE5ER0NneE41Wic7XG4gIG5ldHdvcmtJRCA9IDE7XG4gIGhycCA9ICdhdmF4JztcbiAgYWxpYXMgPSAnUCc7XG4gIHZtID0gJ3BsYXRmb3Jtdm0nO1xuICB0eEZlZSA9ICcxMDAwMDAwJzsgLy8gMSBNSUxMSUFWQVhcbiAgbWF4SW1wb3J0RmVlID0gJzEwMDAwMDAwJzsgLy8gMC4wMSBBVkFYXG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRlQ2hhaW5UeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0aW9uVHhGZWUgPSAnMTAwMDAwMDAnOyAvLyAxIENFTlRJQVZBWFxuICBtaW5Db25zdW1wdGlvbiA9ICcwLjEnO1xuICBtYXhDb25zdW1wdGlvbiA9ICcwLjEyJztcbiAgbWF4U3VwcGx5ID0gJzcyMDAwMDAwMDAwMDAwMDAwMCc7IC8vIDcyMCBtaWwgdG9rZW5zXG4gIG1pblN0YWtlID0gJzIwMDAwMDAwMDAwMDAnOyAvLyAyMDAwIEFWQVhcbiAgbWluU3Rha2VEdXJhdGlvbiA9ICcxMjA5NjAwJzsgLy8gMiB3ZWVrc1xuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICcyNTAwMDAwMDAwMCc7IC8vIDI1IEFWQVhcbiAgbWluRGVsZWdhdGlvbkZlZSA9ICcyJztcbn1cblxuY2xhc3MgQXZhbGFuY2hlUFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQXZhbGFuY2hlTmV0d29yayB7XG4gIG5hbWUgPSAnQXZhbGFuY2hlUFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvcC1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLXRlc3QuYXZheC5uZXR3b3JrL3AtY2hhaW4vYWRkcmVzcy8nO1xuICBibG9ja2NoYWluSUQgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWSc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRCA9ICd5SDhEN1RoTkpreG10a3V2MmpnQmE0UDFSbjNRcHI0cFByN1FZTmZjZG9TNms2SFdwJztcbiAgYXZheEFzc2V0SUQgPSAnVThpUnFKb2lKbTh4WkhBYWNtdll5WlZ3cVF4NnVETnRRZVAzQ1E2ZmNnUWszSnFuSyc7XG4gIG5ldHdvcmtJRCA9IDU7XG4gIGFsaWFzID0gJ1AnO1xuICBocnAgPSAnZnVqaSc7XG4gIHZtID0gJ3BsYXRmb3Jtdm0nO1xuICB0eEZlZSA9ICcxMDAwMDAwJzsgLy8gMSBNSUxMSUFWQVhcbiAgbWF4SW1wb3J0RmVlID0gJzEwMDAwMDAwJzsgLy8gMC4wMSBBVkFYXG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRlQ2hhaW5UeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0aW9uVHhGZWUgPSAnMTAwMDAwMDAnOyAvLyAxIENFTlRJQVZBWFxuICBtaW5Db25zdW1wdGlvbiA9ICcwLjEnO1xuICBtYXhDb25zdW1wdGlvbiA9ICcwLjEyJztcbiAgbWF4U3VwcGx5ID0gJzcyMDAwMDAwMDAwMDAwMDAwMCc7IC8vIDcyMCBtaWwgdG9rZW5zXG4gIG1pblN0YWtlID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgbWluU3Rha2VEdXJhdGlvbiA9ICc4NjQwMCc7IC8vIDEgZGF5XG4gIG1heFN0YWtlRHVyYXRpb24gPSAnMzE1MzYwMDAnOyAvLyAxIHllYXJcbiAgbWluRGVsZWdhdGlvblN0YWtlID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgbWluRGVsZWdhdGlvbkZlZSA9ICcyJztcbn1cblxuY2xhc3MgQmluYW5jZVNtYXJ0Q2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JzY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JzY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1Nic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1Ni1FUkMyMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgQmluYW5jZVNtYXJ0Q2hhaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQmluYW5jZVNtYXJ0Q2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU0M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5ic2NzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJzY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDk3O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5Nyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5Ny1FUkMyMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgT3BCTkIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdPcEJOQic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BCTkI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vb3BibmJzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcGJuYnNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDIwNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjA0JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzIwNC1FUkMyMCc7XG59XG5cbmNsYXNzIE9wQk5CVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wQk5CVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BCTkI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5vcGJuYnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQub3BibmJzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1NjExO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1NjExJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2MTEtRVJDMjAnO1xufVxuXG5jbGFzcyBGYW50b20gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdGYW50b20nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZBTlRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5mYW50b20ubmV0d29yay90cmFuc2FjdGlvbnMvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuZmFudG9tLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjUwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyNTAnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjUwLUVSQzIwJztcbn1cblxuY2xhc3MgRmFudG9tVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZhbnRvbVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZBTlRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5mYW50b20ubmV0d29yay90cmFuc2FjdGlvbnMvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuZmFudG9tLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDAwMjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDAwMic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MDAyLUVSQzIwJztcbn1cblxuY2xhc3MgQ290aWV0aCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NvdGlldGgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNPVElFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC5jb3Rpc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tYWlubmV0LmNvdGlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI2MzI1MDA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI2MzI1MDAnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjYzMjUwMC1FUkMyMCc7XG59XG5cbmNsYXNzIENvdGlldGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ290aWV0aFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNPVElFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5jb3Rpc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmNvdGlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDcwODI0MDA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzcwODI0MDAnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNzA4MjQwMC1FUkMyMCc7XG59XG5cbmNsYXNzIExpZ2h0bmluZ0JpdGNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgTGlnaHRuaW5nTmV0d29yayB7XG4gIG5hbWUgPSAnTGlnaHRuaW5nQml0Y29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTE5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvbGlnaHRuaW5nJztcbiAgbGlnaHRuaW5nU2VydmljZVB1YktleSA9ICcwMzM4NTA4Njg2Zjk3OGNlZmZkN2NlMDU0MDQwNDFiMWE1YjRmNzVhMzliYzkyYTZkMzU1MjQwY2NjMDgxZjc2M2UnO1xuICBtaWRkbGV3YXJlUHViS2V5ID0gJzAyMGQ1MmY2NDU4YjE3YjU2NWJjMDM1MTY1NjhkMWE2NWM4Y2JkMTMxY2UwM2YyMjA3NTY3ZTRjZDMzMjJlODJmMyc7XG4gIHRhdFB1YktleSA9ICcwMzk1M2RhMjAwNjhjMDk2ODU4ZDNjY2E2MGY4YzViMGU1YTJmNWQwMzgzZWNmOWI2YWIzOTJkNzFlNGYzZTcyZGYnO1xufVxuXG5jbGFzcyBMaWdodG5pbmdCaXRjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBMaWdodG5pbmdOZXR3b3JrIHtcbiAgbmFtZSA9ICdMaWdodG5pbmdCaXRjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTE5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ3Rlc3RuZXQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdGVzdG5ldC9saWdodG5pbmcnO1xuICBsaWdodG5pbmdTZXJ2aWNlUHViS2V5ID0gJzAyNDA1NTAyMWRiMWU3ZjAxOWViYjc4M2FiMGIwODEwYzIxYTgxOTIwN2Q0Y2IxZWM0YTZlMjE1MGFjMDdmMTQ4Mic7XG4gIG1pZGRsZXdhcmVQdWJLZXkgPSAnMDI3Y2IzYmM2YjQ5ZmMzODVkMjgyYjQyYTdiZTIzMmE5NGZmY2JhZmZjNzgxOGI2MDNiMTc3MjI1ODJiYmY1MzliJztcbiAgdGF0UHViS2V5ID0gJzAyZTc0N2M5OWMzNzFlYWM5YzE0ZmIxOTkxM2JlYzhhMGUzZTQ2ZTM1YWIxYTQ1ODc4ZTViOWFmYmI2OTg5OWMxZSc7XG59XG5cbmNsYXNzIEJpdGNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAndGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS90ZXN0bmV0L3R4Lyc7XG4gIC8vIEFkZCBvdXIgcHVia2V5IGZvciBvdXIgcGF5Z28gd2FsbGV0XG4gIHBheWdvQWRkcmVzc0F0dGVzdGF0aW9uUHVia2V5ID1cbiAgICAneHB1YjZCS1JnbUNQWDVvUWlKZ0o2VnE2QkY4dER2Wmh3UWtpNWRWVlFvaGNrSzJaSlh0eGo4SzZNOXBhdkx3dDlwaVczM2haejE3U1dtRzhRV3NqSjF0SGRkZTJGczVVQTNERmJBcEN0YmRhR0tuJztcbn1cblxuY2xhc3MgQml0Y29pblB1YmxpY1NpZ25ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblB1YmxpY1NpZ25ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRDO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luUHVibGljU2lnbmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3NpZ25ldC90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luVGVzdG5ldDQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5UZXN0bmV0NCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRDO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luVGVzdG5ldDQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdGVzdG5ldDQvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkJpdEdvU2lnbmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luQml0R29TaWduZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbkJpdEdvU2lnbmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL25vdGFuZXR3b3JrL3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5TdHggZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5TdHgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgLy8gU3RhY2tzIHJlZ3Rlc3QgdXNlcyB0ZXN0bmV0IHRyYW5zYWN0aW9uIHNlbWFudGljcyBpbiB1dHhvLWxpYi5cbiAgdXR4b2xpYk5hbWUgPSAndGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBCaXRjb2luU3R4UHJpdmF0ZTEgZXh0ZW5kcyBCaXRjb2luU3R4IHtcbiAgbmFtZSA9ICdCaXRjb2luU3R4UHJpdmF0ZTEnO1xuICAvLyBTdGFja3MgcHJpdmF0ZS0xIHJlZ3Rlc3QgdXNlcyB0ZXN0bmV0IHRyYW5zYWN0aW9uIHNlbWFudGljcyBpbiB1dHhvLWxpYi5cbn1cblxuY2xhc3MgQml0Y29pblN0eFNpZ25ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblN0eFNpZ25ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRDO1xuICAvLyBTdGFja3Mgc3Rha2luZy10ZXN0bmV0IHJ1bnMgb24gYSBwcml2YXRlIEJpdGNvaW4gc2lnbmV0IChCSVAtMzI1KSB3aXRoIHRlc3RuZXQgYWRkcmVzcyBlbmNvZGluZy5cbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pblB1YmxpY1NpZ25ldCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBCaXRjb2luQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ibG9ja2NoYWluLmNvbS9iY2gvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2hUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90YmNoLmxvcGluZy5uZXQvdHgvJztcbn1cbmNsYXNzIEJpdGNvaW5TViBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblNWJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vYml0Y29pbi1zdi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBCaXRjb2luU1ZUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luU1ZUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdlRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQml0Y29pbkdvbGQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5Hb2xkJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEc7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5nb2xkJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9idGdleHBsb3Jlci5jb20vdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkdvbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luR29sZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJURztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmdvbGRUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIERhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0Rhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2luc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRGFzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWluc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEb2dlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRG9nZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0U7XG4gIHV0eG9saWJOYW1lID0gJ2RvZ2Vjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9kb2dlY29pbi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBEb2dlY29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2Vjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9HRTtcbiAgdXR4b2xpYk5hbWUgPSAnZG9nZWNvaW5UZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2V4cGxvcmVyLm9uZS9kb2dlY29pbi90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIEVDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIQTtcbiAgdXR4b2xpYk5hbWUgPSAnZWNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2VjYXNoJztcbn1cblxuY2xhc3MgRUNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSEE7XG4gIHV0eG9saWJOYW1lID0gJ2VjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBQb2xrYWRvdEFzc2V0SHViIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1BvbGthZG90QXNzZXRIdWInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hc3NldGh1Yi1wb2xrYWRvdC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICdzdGF0ZW1pbnQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDY4ZDU2ZjE1Zjg1ZDMxMzY5NzBlYzE2OTQ2MDQwYmMxNzUyNjU0ZTkwNjE0N2Y3ZTQzZTlkNTM5ZDdjM2RlMmYnO1xuICBzcGVjVmVyc2lvbiA9IDEwMDcwMDE7XG4gIGNoYWluTmFtZSA9ICdQb2xrYWRvdCBBc3NldCBIdWInO1xuICB0eFZlcnNpb24gPSAxNTtcbn1cblxuY2xhc3MgV2VzdGVuZEFzc2V0SHViIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1dlc3RlbmRBc3NldEh1Yic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9UO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Fzc2V0aHViLXdlc3RlbmQuc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAnd2VzdG1pbnQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDY3Zjk3MjMzOTNlZjc2MjE0ZGYwMTE4YzM0YmJiZDNkYmViYzhlZDQ2YTEwOTczYThjOTY5ZDQ4ZmU3NTk4YzknO1xuICBzcGVjVmVyc2lvbiA9IDEwMjAwMDA7XG4gIGNoYWluTmFtZSA9ICdXZXN0ZW5kIEFzc2V0IEh1Yic7XG4gIHR4VmVyc2lvbiA9IDE2O1xufVxuXG5jbGFzcyBDZWxvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2Vsbyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjIyMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQ0VMTyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdDRUxPLUVSQzIwJztcbn1cblxuY2xhc3MgQ2Vsb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmNlbG9zY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuY2Vsb3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNDIyMjA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0NFTE8nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQ0VMTy1FUkMyMCc7XG59XG5cbmNsYXNzIENoaWxpeiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NoaWxpeic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0hJTElaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NoaWxpc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hpbGlzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4ODg4ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODg4ODgnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODg4ODgtRVJDMjAnO1xufVxuXG5jbGFzcyBDaGlsaXpUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2hpbGl6VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0hJTElaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuY2hpbGlzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmNoaWxpc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODg4ODI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg4ODgyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg4ODgyLUVSQzIwJztcbn1cblxuY2xhc3MgQ29kZXhFdGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb2RleCBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09ERVhFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY29kZXgueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvZGV4Lnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MTIyNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODEyMjQnO1xufVxuXG5jbGFzcyBDb2RleEV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENvZGV4IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT0RFWEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jb2RleC1zdGcueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODEyMjQyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MTIyNDInO1xufVxuXG4vLyBUT0RPIHVwZGF0ZSBleHBsb3JlclVybCBTVExYLTE2NTdcbmNsYXNzIENhc3BlciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DU1BSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NzcHIubGl2ZS9kZXBsb3kvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Nwci5saXZlL2FjY291bnQvJztcbn1cblxuY2xhc3MgQ2FzcGVyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1NQUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnRlZ3JhdGlvbi5jc3ByLmxpdmUvZGVwbG95Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ludGVncmF0aW9uLmNzcHIubGl2ZS9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIEV0aGVyZXVtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZmZhMzk3Mjg1Y2U0NmZiNzhjNTg4YTllOTkzMjg2YWFjNjhjMzdjZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDA1OWZmYWZkYzZlZjU5NDIzMGRlNDRmODI0ZTJiZDBhNTFjYTVkZWQnO1xuICB3YWxsZXRWMkZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjlFZjQ2MDM1ZTlmQTNENTcwYzU5OGQzMjY2NDI0Q2ExMTQxM2IwQyc7XG4gIHdhbGxldFYyRm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NTM5N2QwODY5YUJBMEQ1NWU5NkQ1NzE2ZDM4M0Y2ZTFkODY5NWVkNyc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDlhMGQ2MzkxMTYyMGY3ZmMxNWMzYzAyMGVkYmU0ZDcyNjdlYTNlNGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhlOGU4NDdjZjU3M2ZjOGVkNzU2MjE2NjBhMzZhZmZkMThjNTQzZDdlJztcbiAgd2FsbGV0VjJGYWN0b3J5QWRkcmVzcyA9ICcweGE3MTk4ZjQ4QzU4RTkxZjAxMzE3RTcwQ2QyNEM1Q2NlNDc1YzE1NTUnO1xuICB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGU1RGNkQzEzQjYyOGMyZGY4MTNEQjEwODAzNjdFOTI5YzE1MDdDYTAnO1xuICB3YWxsZXRWNEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldFY0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96YW1hLWFpL3Nkay9ibG9iL3ByZXJlbGVhc2UvcGFja2FnZXMvc2RrL3NyYy9jaGFpbnMvY29uZmlncy50cyNMMTdcbiAgemFtYUFjbENvbnRyYWN0QWRkcmVzcyA9ICcweGNhMmU4ZjFmNjU2Y2QyNWMwMWYwNWQwYjI0M2FiMWVjZDRhOGZmYjYnO1xufVxuXG5jbGFzcyBFdGhlcmV1bTIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtMic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIMjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS90eCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FkZHJlc3MnO1xufVxuXG5jbGFzcyBFdGhlcmV1bVcgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bSBQb1cnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSFc7XG4gIGV4cGxvcmVyVXJsID0gJyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICcnO1xuICBjaGFpbklkID0gMTAwMDE7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJyc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgWHR6RXZtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJsaW5rJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFpFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5ldGhlcmxpbmsuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyNzkzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0Mjc5Myc7XG59XG5cbmNsYXNzIFh0ekV2bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEV0aGVybGluayc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFRaRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NoYWRvd25ldC5leHBsb3Jlci5ldGhlcmxpbmsuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NoYWRvd25ldC5leHBsb3Jlci5ldGhlcmxpbmsuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEyNzgyMztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTI3ODIzJztcbn1cblxuY2xhc3MgUHlybW9udCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUHlybW9udCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIMjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9weXJtb250L3R4JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vcHlybW9udC9hZGRyZXNzJztcbn1cblxuY2xhc3MgS292YW4gZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLb3Zhbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2tvdmFuLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rb3Zhbi5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSA0MjtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGMwYWFmMjY0OWU3YjBmMzk1MDE2NDY4MWVjYTJiMWE4ZjY1NGE0NzgnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGE3OWE0ODUyOTRkMjI2MDc1ZWU2NTQxMGJjOTRlYTQ1NGYzZTQwOWQnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhhOTQ2ZTc0OGYyNWE1ZWM2ODc4ZWIxYTlmMmU5MDIwMjgxNzRjMGIzJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBHb2VybGkgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdHb2VybGknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9nb2VybGkuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSA1O1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZThlODQ3Y2Y1NzNmYzhlZDc1NjIxNjYwYTM2YWZmZDE4YzU0M2Q3ZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZjVjYWE1ZTNlOTNhZmJjMjFiZDE5ZWY0ZjI2OTFhMzcxMjFmNzkxNyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDgwZDVjOTFlOGNjMjFkZjY5ZmM0ZDY0ZjIxZGMyZDgzMTIxYzM5OTknO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG59XG5cbmNsYXNzIEhvbGVza3kgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIb2xlc2t5JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9sZXNreS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9sZXNreS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9sZXNreS5ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gaHR0cHM6Ly9jaGFpbmxpc3Qub3JnL2NoYWluLzE3MDAwXG4gIGNoYWluSWQgPSAxNzAwMDtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGViZTI3OTEzZmNjNzUxMGVhZGYxMDY0M2E4Zjg2YmY1NDkyYTk1NDEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGZmYTM5NzI4NWNlNDZmYjc4YzU4OGE5ZTk5MzI4NmFhYzY4YzM3Y2QnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHgwNTlmZmFmZGM2ZWY1OTQyMzBkZTQ0ZjgyNGUyYmQwYTUxY2E1ZGVkJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIEhvb2RpIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSG9vZGknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ob29kaS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9vZGkuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2hvb2RpLmV0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBodHRwczovL2NoYWlubGlzdC5vcmcvY2hhaW4vNTYwMDQ4XG4gIGNoYWluSWQgPSA1NjAwNDg7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgwZTI4NzRkNjgyNGZhZTRmNjFlNDQ2MDEyMzE3YTliODYzODRiZDhlJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NzQ0MWYyMGE1OWJlOTcwMTE4NDI0MDRiOWFlZmQ4ZDg1ZmQ4MWFhNic7XG4gIHdhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgwZTI4NzRkNjgyNGZhZTRmNjFlNDQ2MDEyMzE3YTliODYzODRiZDhlJztcbiAgd2FsbGV0VjJGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg3NDQxZjIwYTU5YmU5NzAxMTg0MjQwNGI5YWVmZDhkODVmZDgxYWE2JztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGY1MTRjZDgwYTQxYmRlMmUyMDAzM2IyNTFmMWY3NDYzM2NhZjNlNTknO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg2YmI4NmIzYjI3YjA5MmJmOGEyODUwODBmZTdkNThhY2RmODQxMDQxJztcbiAgd2FsbGV0VjJGYWN0b3J5QWRkcmVzcyA9ICcweGY1MTRjZDgwYTQxYmRlMmUyMDAzM2IyNTFmMWY3NDYzM2NhZjNlNTknO1xuICB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDZiYjg2YjNiMjdiMDkyYmY4YTI4NTA4MGZlN2Q1OGFjZGY4NDEwNDEnO1xuICB3YWxsZXRWNEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldFY0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3phbWEtYWkvc2RrL2Jsb2IvcHJlcmVsZWFzZS9wYWNrYWdlcy9zZGsvc3JjL2NoYWlucy9jb25maWdzLnRzI0w1MlxuICB6YW1hQWNsQ29udHJhY3RBZGRyZXNzID0gJzB4NmQzZmFmNmY4NmUxZmY5ZjNiMDgzMWRkYTkyMGFiYTFjYmQ1YmQ2OCc7XG59XG5cbmNsYXNzIFNlcG9saWEgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTZXBvbGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gaHR0cHM6Ly9jaGFpbmxpc3Qub3JnL2NoYWluLzExMTU1MTExXG4gIGNoYWluSWQgPSAxMTE1NTExMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xuICAvLyBUT0RPOiBbQ0VDSE8tMTcyOV0gYWRkIGJhdGNoZXIvZm9yd2FyZGVyL3dhbGxldCBjb250cmFjdCBhZGRyZXNzZXMgb25jZSBkZXBsb3llZCBvbiBTZXBvbGlhXG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtQ2xhc3NpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUQyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEMtRVJDMjAnO1xufVxuXG5jbGFzcyBFdGhlcmV1bUNsYXNzaWNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW1DbGFzc2ljVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tb3Jkb3IvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21vcmRvci9hZGRyZXNzLyc7XG4gIC8vIGZyb20gIGh0dHBzOi8vY2hhaW5pZC5uZXR3b3JrL2NoYWlucy9cbiAgY2hhaW5JZCA9IDYzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEMnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRDLUVSQzIwJztcbn1cblxuY2xhc3MgRW9zIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFb3MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5lb3NuZXR3b3JrLmNvbS90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBFb3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFb3NUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va3lsaW4uZW9zeC5pby90eC8nO1xufVxuXG5jbGFzcyBIZWRlcmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hlZGVyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oYXNoc2Nhbi5pby9tYWlubmV0L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEhlZGVyYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hlZGVyYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhCQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5kcmFnb25nbGFzcy5tZS9oZWRlcmEvc2VhcmNoP3E9Jztcbn1cblxuY2xhc3MgTGl0ZWNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0xpdGVjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MVEM7XG4gIHV0eG9saWJOYW1lID0gJ2xpdGVjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saXRlY29pbnNwYWNlLm9yZy90eC8nO1xufVxuXG5jbGFzcyBMaXRlY29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0xpdGVjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTFRDO1xuICB1dHhvbGliTmFtZSA9ICdsaXRlY29pblRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrZXhwbG9yZXIub25lL2xpdGVjb2luL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgT2ZjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIE9mY05ldHdvcmsge1xuICBuYW1lID0gJ09mYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0ZDO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgT2ZjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBPZmNOZXR3b3JrIHtcbiAgbmFtZSA9ICdPZmNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRkM7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBSYnRjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUmJ0Yyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUkJUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5yc2suY28vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucnNrLmNvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdSU0snO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUlNLLUVSQzIwJztcbn1cblxuY2xhc3MgUmJ0Y1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSYnRjVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUkJUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LnJzay5jby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LnJzay5jby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUlNLJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1JTSy1FUkMyMCc7XG59XG5cbmNsYXNzIFN0ZWxsYXIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGVsbGFyLmV4cGVydC9leHBsb3Jlci9wdWJsaWMvdHgvJztcbn1cblxuY2xhc3MgU3RlbGxhclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3RlbGxhci5leHBlcnQvZXhwbG9yZXIvdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBTb2wgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvJztcbn1cblxuY2xhc3MgU29sVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU29sVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvP2NsdXN0ZXI9ZGV2bmV0Jztcbn1cblxuY2xhc3MgU3RhcmtuZXRNYWlubmV0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTdGFya25ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1RBUktORVQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdm95YWdlci5vbmxpbmUvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdm95YWdlci5vbmxpbmUvY29udHJhY3QvJztcbn1cblxuY2xhc3MgU3RhcmtuZXRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFN0YXJrbmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVEFSS05FVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLnZveWFnZXIub25saW5lL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEudm95YWdlci5vbmxpbmUvY29udHJhY3QvJztcbn1cblxuY2xhc3MgU3VpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTdWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdWkuaW8vdHhibG9jay8/bmV0d29yaz1tYWlubmV0JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL2FkZHJlc3MvP25ldHdvcms9bWFpbm5ldCc7XG59XG5cbmNsYXNzIFN1aVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU3VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL3R4YmxvY2svP25ldHdvcms9dGVzdG5ldCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN1aS5pby9hZGRyZXNzLz9uZXR3b3JrPXRlc3RuZXQnO1xufVxuXG5jbGFzcyBBdG9tIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3Ntb3MgSHViIEFUT00nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFUT007XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2Nvc21vcy90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2Nvc21vcyc7XG59XG5cbmNsYXNzIEF0b21UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENvc21vcyBIdWIgQVRPTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wb2x5cG9yZS54eXovcHJvdmlkZXIvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdjb3Ntb3MnO1xufVxuXG5jbGFzcyBPc21vIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdPc21vc2lzJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PU01PO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9vc21vc2lzL3R4cy8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ29zbW8nO1xufVxuXG5jbGFzcyBPc21vVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBPc21vc2lzJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PU01PO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQub3Ntb3Npcy5leHBsb3JlcnMuZ3VydS90cmFuc2FjdGlvbi8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ29zbW8nO1xufVxuXG5jbGFzcyBUaWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0NlbGVzdGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5USUE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2NlbGVzdGlhL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnY2VsZXN0aWEnO1xufVxuXG5jbGFzcyBUaWFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENlbGVzdGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5USUE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5jZWxlc3RpYS5leHBsb3JlcnMuZ3VydS90cmFuc2FjdGlvbi8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2NlbGVzdGlhJztcbn1cblxuY2xhc3MgSGFzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUHJvdmVuYW5jZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEFTSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wcm92ZW5hbmNlLmlvL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAncGInO1xufVxuXG5jbGFzcyBIYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBQcm92ZW5hbmNlJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQVNIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3QucHJvdmVuYW5jZS5pby90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ3RwJztcbn1cblxuY2xhc3MgQmxkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBZ29yaWMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJMRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iaWdkaXBwZXIubGl2ZS9hZ29yaWMvdHJhbnNhY3Rpb25zLyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnYWdvcmljJztcbn1cblxuY2xhc3MgQmxkVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBBZ29yaWMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJMRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9lbWVyeW5ldC5leHBsb3Jlci5hZ29yaWMubmV0L2Fnb3JpYy90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2Fnb3JpYyc7XG59XG5cbmNsYXNzIFNlaSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU2VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TRUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWludHNjYW4uaW8vc2VpL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnc2VpJztcbn1cblxuY2xhc3MgU2VpVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBTZWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNlaXRyYWNlLmNvbS90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ3NlaSc7XG59XG5cbmNsYXNzIFpldGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1pldGEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFVEE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemV0YWNoYWluLmNvbS9jb3Ntb3MvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICd6ZXRhJztcbn1cblxuY2xhc3MgWmV0YVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgWmV0YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVUQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hdGhlbnMuZXhwbG9yZXIuemV0YWNoYWluLmNvbS9jb3Ntb3MvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICd6ZXRhJztcbn1cblxuY2xhc3MgSW5qZWN0aXZlIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbmplY3RpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSkVDVElWRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vaW5qZWN0aXZlL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnaW5qJztcbn1cblxuY2xhc3MgSW5qZWN0aXZlVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSW5qZWN0aXZlVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5KRUNUSVZFO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuZXhwbG9yZXIuaW5qZWN0aXZlLm5ldHdvcmsvdHJhbnNhY3Rpb24vJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdpbmonO1xufVxuXG5jbGFzcyBLYXZhQ29zbW9zIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIENvc21vc05ldHdvcmsge1xuICBuYW1lID0gJ0thdmFDb3Ntb3MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkFDT1NNT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2thdmEvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdrYXZhJztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ2thdmF2YWxvcGVyJztcbiAgZGVub20gPSAndWthdmEnO1xuICBnYXNBbW91bnQgPSAnNTAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsna2F2YScsICd1a2F2YSddO1xufVxuXG5jbGFzcyBLYXZhQ29zbW9zVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBDb3Ntb3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhQ29zbW9zVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FWQUNPU01PUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8va2F2YS10ZXN0bmV0L3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAna2F2YSc7XG4gIHZhbGlkYXRvclByZWZpeCA9ICdrYXZhdmFsb3Blcic7XG4gIGRlbm9tID0gJ3VrYXZhJztcbiAgZ2FzQW1vdW50ID0gJzUwMDAnO1xuICBnYXNMaW1pdCA9IDIwMDAwMDtcbiAgdmFsaWREZW5vbXMgPSBbJ2thdmEnLCAndWthdmEnXTtcbn1cblxuY2xhc3MgRHlkeCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBDb3Ntb3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdEeWR4JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5EWURYQ09TTU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9keWR4L3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnZHlkeCc7XG4gIHZhbGlkYXRvclByZWZpeCA9ICdkeWR4dmFsb3Blcic7XG4gIGRlbm9tID0gJ2FkeWR4JztcbiAgZ2FzQW1vdW50ID0gJzUwMDAwMDAwMDAwMDAwMDAnO1xuICBnYXNMaW1pdCA9IDIwMDAwMDtcbiAgdmFsaWREZW5vbXMgPSBbJ2FkeWR4J107XG59XG5cbmNsYXNzIER5ZHhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIENvc21vc05ldHdvcmsge1xuICBuYW1lID0gJ0R5ZHhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5EWURYQ09TTU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9keWR4LXRlc3RuZXQvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdkeWR4JztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ2R5ZHh2YWxvcGVyJztcbiAgZGVub20gPSAnYWR2NHRudCc7XG4gIGdhc0Ftb3VudCA9ICc1MDAwMDAwMDAwMDAwMDAwJztcbiAgZ2FzTGltaXQgPSAyMDAwMDA7XG4gIHZhbGlkRGVub21zID0gWydhZHY0dG50J107XG59XG5cbmNsYXNzIFRvbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnR3JhbSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVE9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3RvbnNjYW4ub3JnL3R4Lyc7XG59XG5cbmNsYXNzIFRvblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgR3JhbSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVE9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQudG9uc2Nhbi5vcmcvdHgvJztcbn1cblxuY2xhc3MgQ29yZXVtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUWCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRVVNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnR4Lm9yZy90eC90cmFuc2FjdGlvbnMvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdjb3JlJztcbn1cblxuY2xhc3MgQ29yZXVtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBUWCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRVVNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQtMS50eC5vcmcvdHgvdHJhbnNhY3Rpb25zLyc7XG4gIGFkZHJlc3NQcmVmaXggPSAndGVzdGNvcmUnO1xufVxuXG5jbGFzcyBSdW5lIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdSdW5lJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5USE9SO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3J1bmVzY2FuLmlvL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAndGhvcic7XG59XG5cbmNsYXNzIFJ1bmVUZXN0TmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdSdW5lVGVzdE5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVEhPUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ydW5lc2Nhbi5pby90eC8/bmV0d29yaz1zdGFnZW5ldCc7XG4gIGFkZHJlc3NQcmVmaXggPSAnc3Rob3InO1xufVxuXG5jbGFzcyBCYWJ5IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdCYWJ5bG9uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQUJZO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9iYWJ5bG9uL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnYmJuJztcbn1cblxuY2xhc3MgQmFieVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQmFieWxvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkFCWTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vYmFieWxvbi10ZXN0bmV0L3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnYmJuJztcbn1cblxuY2xhc3MgTWFudHJhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIENvc21vc05ldHdvcmsge1xuICBuYW1lID0gJ01hbnRyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTUFOVFJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm1hbnRyYWNoYWluLmlvL01BTlRSQS0xL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnbWFudHJhJztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ21hbnRyYXZhbG9wZXInO1xuICBkZW5vbSA9ICd1b20nO1xuICBnYXNBbW91bnQgPSAnODAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsnb20nLCAndW9tJ107XG59XG5cbmNsYXNzIE1hbnRyYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQ29zbW9zTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBNYW50cmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1BTlRSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5tYW50cmFjaGFpbi5pby9NQU5UUkEtRHVrb25nL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnbWFudHJhJztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ21hbnRyYXZhbG9wZXInO1xuICBkZW5vbSA9ICd1b20nO1xuICBnYXNBbW91bnQgPSAnODAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsnb20nLCAndW9tJ107XG59XG5cbmNsYXNzIENyb25vcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ3Jvbm9zIFBPUyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1JPTk9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nyb25vcy1wb3Mub3JnL2V4cGxvcmVyL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnY3JvJztcbn1cblxuY2xhc3MgQ3Jvbm9zVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBDcm9ub3MgUE9TJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DUk9OT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Jvbm9zLXBvcy5vcmcvZXhwbG9yZXIvY3JvZXNlaWQ0L3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAndGNybyc7XG59XG5cbmNsYXNzIEZldGNoQWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0ZldGNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GRVRDSEFJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9mZXRjaGFpJztcbn1cblxuY2xhc3MgRmV0Y2hBaVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgRmV0Y2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZFVENIQUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS1lcmlkYW51cy0xLmZldGNoLmFpLyc7XG59XG5cbmNsYXNzIEluaXRpYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSW5pdGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTklUSUE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi5pbml0aWEueHl6L2ludGVyd292ZW4tMS90eHMvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdpbml0Jztcbn1cblxuY2xhc3MgSW5pdGlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBJbml0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSVRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLnRlc3RuZXQuaW5pdGlhLnh5ei9pbml0aWF0aW9uLTIvdHhzLyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnaW5pdCc7XG59XG5cbmNsYXNzIEFzaSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRmV0Y2ggTmF0aXZlJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BU0k7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY29tcGFuaW9uLmZldGNoLmFpL2ZldGNoaHViLTQvdHJhbnNhY3Rpb25zLyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnZmV0Y2gnO1xufVxuXG5jbGFzcyBBc2lUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEZldGNoIE5hdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVNJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NvbXBhbmlvbi5mZXRjaC5haS9kb3JhZG8tMS90cmFuc2FjdGlvbnMvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdmZXRjaCc7XG59XG5cbmNsYXNzIElzbG0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hhcXEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklTTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcGluZy5wdWIvaGFxcS90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2hhcXEnO1xufVxuXG5jbGFzcyBJc2xtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGFxcVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklTTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5waW5nLnB1Yi9oYXFxL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnaGFxcSc7XG59XG5cbmNsYXNzIFN0eCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5oaXJvLnNvL3R4aWQvJztcbiAgc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzID0gJ1NQM0ZCUjJBR0s1SDlRQkRIM0VFTjZERjhFSzhKWTdSWDhRSjVTVlRFJztcbiAgc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyA9ICdTUDAwMDAwMDAwMDAwMDAwMDAwMDAwMlE2VkY3OCc7XG4gIHNidGNXaXRoZHJhd2FsQ29udHJhY3RBZGRyZXNzID0gJ1NNM1ZEWEszV1paU0E4NFhYRktBRkFGMTVOTlpYMzJDVFNHODJKRlE0Jztcbn1cblxuY2xhc3MgU3R4VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVFg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaGlyby5zby90eGlkLz9jaGFpbj10ZXN0bmV0JztcbiAgc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzID0gJ1NUM0YxWDRRR1YyU004WEQ5Nlg0NU02UlRRWEtBMVBaSlpaQ1FBQjRCJztcbiAgc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyA9ICdTVDAwMDAwMDAwMDAwMDAwMDAwMDAwMkFNVzQySCc7XG4gIHNidGNXaXRoZHJhd2FsQ29udHJhY3RBZGRyZXNzID0gJ1NONjlQN1JaUktLOEVSUUNDQUJIVDJKV0tCMlM0REhIOUg3NDIzMVQnO1xufVxuXG5jbGFzcyBTVVNEIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTVVNEJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVVNEO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgU1VTRFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NVU0RUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVVNEO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRmlhdFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQmFzZU5ldHdvcmsge1xuICBuYW1lID0gJ0ZpYXRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GSUFUO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRmlhdCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBCYXNlTmV0d29yayB7XG4gIG5hbWUgPSAnRmlhdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRklBVDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEJpdHRlbnNvciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGFvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UQU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGFvc3RhdHMuaW8vZXh0cmluc2ljLyc7XG59XG5cbmNsYXNzIEJpdHRlbnNvclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgVGFvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UQU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuZmlubmV5Lm9wZW50ZW5zb3IuYWkvIy8nO1xuICBzcGVjTmFtZSA9ICdub2RlLXN1YnRlbnNvcicgYXMgU3Vic3RyYXRlU3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDhmOWNmODU2YmY1NThhMTQ0NDBlNzU1NjljOWU1ODU5NDc1NzA0OGQ3YjNhODRiNWQyNWY2YmQ5NzgyNjMxMDUnO1xuICBzcGVjVmVyc2lvbiA9IDIyNDtcbiAgY2hhaW5OYW1lID0gJ2JpdHRlbnNvcic7XG4gIHR4VmVyc2lvbiA9IDE7XG59XG5cbmNsYXNzIFRyeCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBUcm9uTmV0d29yayB7XG4gIG5hbWUgPSAnVHJ4JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Ryb25zY2FuLm9yZy8jL2FkZHJlc3MvJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90cm9uc2Nhbi5vcmcvIy90cmFuc2FjdGlvbi8nO1xuICBtYXhGZWVMaW1pdCA9ICc1MDAwMDAwMDAwJztcbiAgY29udHJhY3RDYWxsRmVlTGltaXQgPSAnMTAwMDAwMDAwJztcbn1cblxuY2xhc3MgVHJ4VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBUcm9uTmV0d29yayB7XG4gIG5hbWUgPSAnVHJ4VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVFJYO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFzdGEudHJvbnNjYW4ub3JnLyMvYWRkcmVzcy8nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NoYXN0YS50cm9uc2Nhbi5vcmcvIy90cmFuc2FjdGlvbi8nO1xuICBtYXhGZWVMaW1pdCA9ICc1MDAwMDAwMDAwJztcbiAgY29udHJhY3RDYWxsRmVlTGltaXQgPSAnMTAwMDAwMDAwJztcbn1cblxuY2xhc3MgWHJwIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYcnAnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saXZlbmV0LnhycGwub3JnL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBYcnBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYcnBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YUlA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdC54cnBsZXhwbG9yZXIuY29tL2V4cGxvcmVyLyc7XG59XG5cbmNsYXNzIFh0eiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHR6JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFo7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHpzdGF0cy5jb20vJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHpzdGF0cy5jb20vJztcbn1cblxuY2xhc3MgWHR6VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHR6VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFRaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2dob3N0bmV0LnR6a3QuaW8vJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ2hvc3RuZXQudHprdC5pby8nO1xufVxuXG5jbGFzcyBaQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnWkNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFQztcbiAgdXR4b2xpYk5hbWUgPSAnemNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21haW5uZXQuemNhc2hleHBsb3Jlci5hcHAvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFpDYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnWkNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRUM7XG4gIHV0eG9saWJOYW1lID0gJ3pjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC56Y2FzaGV4cGxvcmVyLmFwcC90cmFuc2FjdGlvbnMvJztcbn1cblxuLypcbiAqIFBlYXJsIGlzIHNlcnZlZCB0aHJvdWdoIEBiaXRnby93YXNtLXV0eG8gYW5kIGlzIGRlbGliZXJhdGVseSBOT1QgcmVnaXN0ZXJlZCBhcyBhXG4gKiBuZXR3b3JrIGluIEBiaXRnby1iZXRhL3V0eG8tbGliLlxuICpcbiAqIGB1dHhvbGliTmFtZWAgaXMgcmVxdWlyZWQgYnkgVXR4b05ldHdvcmssIHNvIGl0IGNhcnJpZXMgdGhlIHdhc20tdXR4byBgQ29pbk5hbWVgXG4gKiBpbnN0ZWFkLiBJdCBtdXN0IG5vdCBiZSByZXNvbHZlZCB2aWEgYHV0eG9saWIubmV0d29ya3NbLi4uXWAgLSB0aGF0IHlpZWxkc1xuICogdW5kZWZpbmVkIGZvciBQZWFybCBhbmQgdGhyb3dzIGBUeXBlRXJyb3I6IGludmFsaWQgbmV0d29ya2AgZG93bnN0cmVhbS4gVXNlIHRoZVxuICogd2FzbS11dHhvIGNvaW4gbmFtZSBkaXJlY3RseS5cbiAqL1xuY2xhc3MgUGVhcmwgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ1BlYXJsJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QRUFSTDtcbiAgLyoqIHdhc20tdXR4byBDb2luTmFtZSwgbm90IGEgdXR4by1saWIgbmV0d29yayAtIHNlZSBub3RlIGFib3ZlICovXG4gIHV0eG9saWJOYW1lID0gJ3BlYXJsJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2Jvb2sucGVhcmxyZXNlYXJjaC5haS90eC8nO1xufVxuXG5jbGFzcyBQZWFybFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ1BlYXJsVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUEVBUkw7XG4gIC8qKiB3YXNtLXV0eG8gQ29pbk5hbWUsIG5vdCBhIHV0eG8tbGliIG5ldHdvcmsgLSBzZWUgbm90ZSBhYm92ZSAqL1xuICB1dHhvbGliTmFtZSA9ICd0cGVhcmwnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrYm9vay50ZXN0bmV0LnBlYXJscmVzZWFyY2guYWkvdHgvJztcbn1cblxuY2xhc3MgTmVhciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTmVhcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTkVBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9uZWFyYmxvY2tzLmlvL3R4bnMvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbmVhcmJsb2Nrcy5pby9hZGRyZXNzLyc7XG4gIGZlZVJlc2VydmUgPSAnNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuICBzdG9yYWdlUmVzZXJ2ZSA9ICcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwJzsgLy8gZmVlUmVzZXJ2ZSArIHN0b3JhZ2VSZXNlcnZlIGlzIG1pbmltdW0gYWNjb3VudCBiYWxhbmNlIGZvciBhIE5FQVIgd2FsbGV0IGh0dHBzOi8vZG9jcy5uZWFyLm9yZy9pbnRlZ3JhdG9yL2ZhcSNpcy10aGVyZS1hLW1pbmltdW0tYWNjb3VudC1iYWxhbmNlXG59XG5cbmNsYXNzIE5lYXJUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdOZWFyVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTkVBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm5lYXJibG9ja3MuaW8vdHhucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm5lYXJibG9ja3MuaW8vYWRkcmVzcy8nO1xuICBmZWVSZXNlcnZlID0gJzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcbiAgc3RvcmFnZVJlc2VydmUgPSAnMjAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7IC8vIGZlZVJlc2VydmUgKyBzdG9yYWdlUmVzZXJ2ZSBpcyBtaW5pbXVtIGFjY291bnQgYmFsYW5jZSBmb3IgYSBORUFSIHdhbGxldCBodHRwczovL2RvY3MubmVhci5vcmcvaW50ZWdyYXRvci9mYXEjaXMtdGhlcmUtYS1taW5pbXVtLWFjY291bnQtYmFsYW5jZVxufVxuXG5jbGFzcyBQb2x5Z29uIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUG9seWdvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUE9MWUdPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wb2x5Z29uc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seWdvbnNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzNztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgyOWVmNDYwMzVlOWZhM2Q1NzBjNTk4ZDMyNjY0MjRjYTExNDEzYjBjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NTM5N2QwODY5YWJhMGQ1NWU5NmQ1NzE2ZDM4M2Y2ZTFkODY5NWVkNyc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4YTcxOThmNDhjNThlOTFmMDEzMTdlNzBjZDI0YzVjY2U0NzVjMTU1NSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGU1ZGNkYzEzYjYyOGMyZGY4MTNkYjEwODAzNjdlOTI5YzE1MDdjYTAnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUE9MWUdPTi1FUkMyMCc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgUG9seWdvblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5Z29uVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUE9MWUdPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbW95LnBvbHlnb25zY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbW95LnBvbHlnb25zY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MDAwMjtcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgyMzIyM2ZkN2NmYzVmMzRiMjBmMzhlYmI5YTQ4OWUxZmYzYzA4NGQxJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDRjMjQzMjViNWVmNTE0ZmJiMWVjYzc2YTliYjRkY2I1N2E4MzQxZSc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ZTljMTYwMzNlMDFiZjlmOTRiZjlmOTlmYzBmZWZjZmI4YjEyNDk5Mic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGY4MzYwYzIxM2U0ZjQ0Y2NlMDNlNDhjYjkyODEyNTRkZTJhN2E1NjYnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUE9MWUdPTi1FUkMyMCc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgT3B0aW1pc20gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdPcHRpbWlzbSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vb3B0aW1pc3RpYy5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vb3B0aW1pc3RpYy5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlYmUyNzkxM2ZjYzc1MTBlYWRmMTA2NDNhOGY4NmJmNTQ5MmE5NTQxJztcbn1cblxuY2xhc3MgT3B0aW1pc21UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnT3B0aW1pc21UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLW9wdGltaXNtLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLW9wdGltaXNtLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTE1NTQyMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExNTU0MjAnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExNTU0MjAtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGViZTI3OTEzZmNjNzUxMGVhZGYxMDY0M2E4Zjg2YmY1NDkyYTk1NDEnO1xufVxuXG5jbGFzcyBaa1N5bmMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdaa1N5bmMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpLRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnprc3luYy5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci56a3N5bmMuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzI0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMjQnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzI0LUVSQzIwJztcbn1cblxuY2xhc3MgWmtTeW5jVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1prU3luY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpLRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuZXhwbG9yZXIuemtzeW5jLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuZXhwbG9yZXIuemtzeW5jLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMwMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzAwJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMwMC1FUkMyMCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZGQ0OTg3MDJmNDRjNGRhMDhlYjllMDhkM2YwMTVlZWZlNWNiNzFmYyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGJlNjljYWUzMTExOTFmYjQ1ZTY0OGVkMjA4NDdmMDZmYWQyZGJhYjQnO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBaa1N5bmNFcmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdaa1N5bmNFcmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpLU1lOQ0VSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci56a3N5bmMuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemtzeW5jLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMyNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzI0JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMyNC1FUkMyMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgWmtTeW5jRXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1prU3luY0VyYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpLU1lOQ0VSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmV4cGxvcmVyLnprc3luYy5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmV4cGxvcmVyLnprc3luYy5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMDA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMwMCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMDAtRVJDMjAnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZGQ0OTg3MDJmNDRjNGRhMDhlYjllMDhkM2YwMTVlZWZlNWNiNzFmYyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGJlNjljYWUzMTExOTFmYjQ1ZTY0OGVkMjA4NDdmMDZmYWQyZGJhYjQnO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBCZXJhY2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCZXJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JlcmFzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZXJhc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODAwOTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgwMDk0JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgwMDk0LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGVkZjFhMDAxNmQ5YzQxZDJhZDBjMjc1ZTFiYTcwODM2MWE5MGMwZDEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgQmVyYWNoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JlcmFUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYmVyYXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYmVyYXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgwMDY5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDA2OSc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDA2OS1FUkMyMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIE9hcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09hcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0FTO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI0ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjQ4JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGVkZjFhMDAxNmQ5YzQxZDJhZDBjMjc1ZTFiYTcwODM2MWE5MGMwZDEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgT2FzVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09hc1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9BUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0Lm9hc3lzLmdhbWVzL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTM3MjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTM3Mic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlZGYxYTAwMTZkOWM0MWQyYWQwYzI3NWUxYmE3MDgzNjFhOTBjMGQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIENvcmVkYW8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JlZGFvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFREFPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NjYW4uY29yZWRhby5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi5jb3JlZGFvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTE2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE2JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGM1ZDdhM2I0YzQ5MGM2MjQyZmIyOGYyMGU1ZmUzM2NkOTgzMzcyYTMnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgQ29yZWRhb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JlZGFvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRURBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLnRlc3QyLmJ0Y3MubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLnRlc3QyLmJ0Y3MubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE0JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGM1ZDdhM2I0YzQ5MGM2MjQyZmIyOGYyMGU1ZmUzM2NkOTgzMzcyYTMnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgSVAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdEYXRhIE5ldHdvcmsnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2RhdGFuZXRzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2RhdGFuZXRzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE1MTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE1MTQnO1xufVxuXG5jbGFzcyBJUFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdEYXRhIE5ldHdvcmsgVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWVuZWlkLmRhdGFuZXRzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FlbmVpZC5kYXRhbmV0c2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzE1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMzE1Jztcbn1cblxuY2xhc3MgQXBlQ2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcGVDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVBFQ0hBSU47XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXBlc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hcGVzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMzMTM5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMzEzOSc7XG59XG5cbmNsYXNzIEFwZUNoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FwZUNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVBFQ0hBSU47XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3VydGlzLmFwZXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3VydGlzLmFwZXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzMxMTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMzMTExJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEFic3RyYWN0RXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQWJzdHJhY3QgRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFCU1RSQUNURVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Fic2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWJzY2FuLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyNzQxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyNzQxJztcbn1cblxuY2xhc3MgQWJzdHJhY3RFdGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBBYnN0cmFjdCBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQUJTVFJBQ1RFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5hYnNjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYWJzY2FuLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTEyNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExMjQnO1xufVxuXG5jbGFzcyBQaGFyb3MgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQaGFyb3MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBIUlM7XG4gIGV4cGxvcmVyVXJsID0gJyc7IC8vIFRPRE86IFdJTi01Nzg3IEFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnJzsgLy8gVE9ETzogV0lOLTU3ODcgQWRkIG1haW5uZXQgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSA2ODg2ODg7IC8vIFRPRE86IFdJTi01Nzg3IEFkZCBtYWlubmV0IGlkIHdoZW4gYXZhaWxhYmxlXG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzY4ODY4OCc7XG59XG5cbmNsYXNzIFBoYXJvc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQaGFyb3NUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QSFJTO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2F0bGFudGljLnBoYXJvc3NjYW4ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2F0bGFudGljLnBoYXJvc3NjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDY4ODY4OTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNjg4Njg5JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIENyZWRpdGNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDcmVkaXRjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3JlZGl0Y29pbi5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jcmVkaXRjb2luLmJsb2Nrc2NvdXQuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwMjAzMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTAyMDMwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIFBsYXNtYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsYXNtYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFBMO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BsYXNtYXNjYW4udG8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcGxhc21hc2Nhbi50by9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5NzQ1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5NzQ1Jztcbn1cblxuY2xhc3MgUGxhc21hVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsYXNtYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhQTDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBsYXNtYXNjYW4udG8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5wbGFzbWFzY2FuLnRvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDk3NDY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3NDYnO1xufVxuXG5jbGFzcyBIeXBlRVZNVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0h5cGVybGlxdWlkRVZNVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFlQRUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnB1cnJzZWMuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQucHVycnNlYy5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTk4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5OTgnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgSHlwZUVWTSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0h5cGVybGlxdWlkRVZNJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IWVBFRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2h5cGVyZXZtc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oeXBlcmV2bXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTk5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5OTknO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgSHlwZXJsaXF1aWQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0h5cGVybGlxdWlkJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IWVBFUkxJUVVJRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hcHAuaHlwZXJsaXF1aWQueHl6L2V4cGxvcmVyJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXBwLmh5cGVybGlxdWlkLnh5ei9leHBsb3Jlcic7XG59XG5cbmNsYXNzIEh5cGVybGlxdWlkVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSHlwZXJsaXF1aWRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IWVBFUkxJUVVJRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hcHAuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXovZXhwbG9yZXInO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hcHAuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXovZXhwbG9yZXInO1xufVxuXG5jbGFzcyBLYXZhRVZNVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0thdmFFVk1UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQVZBRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQua2F2YXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQua2F2YXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDIyMjE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzIyMjEnO1xufVxuXG5jbGFzcyBLYXZhRVZNIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS2F2YUVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FWQUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYXZhc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va2F2YXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDIyMjI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzIyMjInO1xufVxuXG5jbGFzcyBMaW5lYUVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0xpbmVhIEV0aGVyZXVtIE1haW5uZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxJTkVBRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpbmVhc2Nhbi5idWlsZC90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saW5lYXNjYW4uYnVpbGQvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTkxNDQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU5MTQ0Jztcbn1cblxuY2xhc3MgTGluZWFFVEhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTGluZWEgRXRoZXJldW0gVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTElORUFFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5saW5lYXNjYW4uYnVpbGQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5saW5lYXNjYW4uYnVpbGQvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTkxNDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU5MTQxJztcbn1cblxuY2xhc3MgRmx1ZW50RVRIIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRmx1ZW50IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTFVFTlRFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZmx1ZW50c2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZmx1ZW50c2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjUzNjM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI1MzYzJztcbn1cblxuY2xhc3MgRmx1ZW50RVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgRmx1ZW50IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTFVFTlRFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5mbHVlbnRzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmZsdWVudHNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDIwOTk0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMDk5NCc7XG59XG5cbmNsYXNzIE1hbnRsZSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01hbnRsZSBOYXRpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1BTlRMRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tYW50bGVzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tYW50bGVzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDAwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDAwJztcbn1cblxuY2xhc3MgTWFudGxlVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgTWFudGxlIE5hdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTUFOVExFO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEubWFudGxlc2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5tYW50bGVzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDAzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDAzJztcbn1cblxuY2xhc3MgSm92YXlFVEggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdKb3ZheSBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSk9WQVlFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuam92YXkuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuam92YXkuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTczNDk1MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTczNDk1MSc7XG59XG5cbmNsYXNzIEpvdmF5RVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSm92YXkgRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkpPVkFZRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuam92YXkuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1leHBsb3Jlci5qb3ZheS5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyMDE5Nzc1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMDE5Nzc1Jztcbn1cblxuY2xhc3MgVW5pZXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVW5pY2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlVOSUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly91bmlzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly91bmlzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMCc7XG59XG5cbmNsYXNzIFVuaWV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFVuaWNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5VTklFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS51bmlzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLnVuaXNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzMDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMDEnO1xufVxuXG5jbGFzcyBIcHBldGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIb3VzZSBQYXJ0eSBQcm90b2NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFBQRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhwcC5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5ocHAuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTkwNDE1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxOTA0MTUnO1xufVxuXG5jbGFzcyBIcHBldGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBIb3VzZSBQYXJ0eSBQcm90b2NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFBQRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuaHBwLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuaHBwLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE4MTIyODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTgxMjI4Jztcbn1cblxuY2xhc3MgSG9vZGV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFJvYmluaG9vZCBDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSE9PREVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LmNoYWluLnJvYmluaG9vZC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5jaGFpbi5yb2Jpbmhvb2QuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQ2NjMwO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQ2NjMwJztcbn1cblxuY2xhc3MgSG9vZGV0aCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1JvYmluaG9vZCBDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSE9PREVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9yb2Jpbmhvb2RjaGFpbi5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9yb2Jpbmhvb2RjaGFpbi5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0NjYzO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQ2NjMnO1xufVxuXG5jbGFzcyBIdW1hbml0eVByb3RvY29sIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSHVtYW5pdHkgUHJvdG9jb2wnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lkg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaHVtYW5pdHkub3JnL21haW5uZXQvdHhucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5odW1hbml0eS5vcmcvbWFpbm5ldC9hY2NvdW50cy8nO1xuICBjaGFpbklkID0gNjk4NTM4NTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNjk4NTM4NSc7XG59XG5cbmNsYXNzIEh1bWFuaXR5UHJvdG9jb2xUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBIdW1hbml0eSBQcm90b2NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5odW1hbml0eS5vcmcvdGVzdG5ldC90eG5zLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmh1bWFuaXR5Lm9yZy90ZXN0bmV0L2FjY291bnRzLyc7XG4gIGNoYWluSWQgPSA3MDgwOTY5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc3MDgwOTY5Jztcbn1cblxuY2xhc3MgWGxheWVyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWCBMYXllcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0tCWExBWUVSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5va2xpbmsuY29tL3gtbGF5ZXIvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm9rbGluay5jb20veC1sYXllci9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE5Nic7XG59XG5cbmNsYXNzIFhsYXllclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFggTGF5ZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9LQlhMQVlFUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cub2tsaW5rLmNvbS94LWxheWVyLXRlc3RuZXQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm9rbGluay5jb20veC1sYXllci10ZXN0bmV0L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE5NTI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE5NTInO1xufVxuXG5jbGFzcyBNb3JwaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vcnBoIE1haW5uZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PUlBIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLWFwaS1ob29kaS5tb3JwaGwyLmlvL3R4Lyc7IC8vIFRPRE86IFdJTi04MTM0IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1hcGktaG9vZGkubW9ycGhsMi5pby9hZGRyZXNzLyc7IC8vIFRPRE86IFdJTi04MTM0IGFkZCBtYWlubmV0IGFjY291bnQgZXhwbG9yZXIgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSAyODE4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODE4Jztcbn1cblxuY2xhc3MgTW9ycGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTW9ycGggVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTU9SUEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1ob29kaS5tb3JwaC5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI5MTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI5MTAnO1xufVxuXG5jbGFzcyBNb3JwaEVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vcnBoIEV0aGVyZXVtIE1haW5uZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PUlBIRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm1vcnBoLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIubW9ycGgubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyODE4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODE4Jztcbn1cblxuY2xhc3MgTW9ycGhFVEhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTW9ycGggRXRoZXJldW0gVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTU9SUEhFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1ob29kaS5tb3JwaC5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI5MTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI5MTAnO1xufVxuXG5jbGFzcyBDcmVkaXRjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NyZWRpdGNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3JlZGl0Y29pbi10ZXN0bmV0LmJsb2Nrc2NvdXQuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NyZWRpdGNvaW4tdGVzdG5ldC5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMDIwMzE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMjAzMSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBTb25pYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbmljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT05JQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25pY3NjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Nvbmljc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTQ2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNDYnO1xufVxuXG5jbGFzcyBTb25pY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25pY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTklDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc29uaWNzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNvbmljc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTQ2MDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE0NjAxJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFVzZHQwIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU3RhYmxlRVZNJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5VU0RUMDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGFibGVzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGFibGVzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5ODg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk4OCc7XG59XG5cbmNsYXNzIFVzZHQwVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU3RhYmxlRVZNJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5VU0RUMDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnN0YWJsZXNjYW4ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc3RhYmxlc2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjIwMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjIwMSc7XG59XG5cbmNsYXNzIEthaWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLYWlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQUlBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2thaWFzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2thaWFzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgyMTc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgyMTcnO1xufVxuXG5jbGFzcyBLYWlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0thaWFUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQUlBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2thaXJvcy5rYWlhc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlyb3Mua2FpYXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTAwMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTAwMSc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBJcnlzIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSXJ5cyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVJZUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldm0tZXhwbG9yZXIuaXJ5cy54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXZtLWV4cGxvcmVyLmlyeXMueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMyODI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMyODInO1xufVxuXG5jbGFzcyBJcnlzVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0lyeXNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JUllTO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQtZXhwbG9yZXIuaXJ5cy54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5pcnlzLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMjcwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMjcwJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIE9nIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWmVybyBHcmF2aXR5JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jaGFpbnNjYW4uMGcuYWkvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW5zY2FuLjBnLmFpL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE2NjYxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNjY2MSc7XG59XG5cbmNsYXNzIE9nVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1plcm8gR3Jhdml0eSBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jaGFpbnNjYW4tZ2FsaWxlby4wZy5haS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jaGFpbnNjYW4tZ2FsaWxlby4wZy5haS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNjYwMjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTY2MDInO1xufVxuXG5jbGFzcyBYZGMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdYZGNDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWERDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3hkY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3hkY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBYZGNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWGRjQ2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YREM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC54ZGNzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnhkY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlYmUyNzkxM2ZjYzc1MTBlYWRmMTA2NDNhOGY4NmJmNTQ5MmE5NTQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBXZW1peCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1dlbWl4Q2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LldFTUlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLndlbWl4LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci53ZW1peC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExMSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBXZW1peFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdXZW1peENoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuV0VNSVg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC53ZW1peC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC53ZW1peC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExMjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBNb25hZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdNb25hZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm1vbmFkZXhwbG9yZXIuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQubW9uYWRleHBsb3Jlci5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTAxNDM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMTQzJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5jbGFzcyBNb25hZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vbmFkJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC1iZXRhLm1vbnZpc2lvbi5pby90eC8nO1xuICBjaGFpbklkID0gMTQzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNDMnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgV29ybGQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdXb3JsZGNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5XT1JMRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93b3JsZHNjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3dvcmxkc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDgwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0ODAnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgV29ybGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnV29ybGRjaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LldPUkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEud29ybGRzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLndvcmxkc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDgwMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDgwMSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBTb25laXVtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZWl1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09ORUlVTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25laXVtLmJsb2Nrc2NvdXQuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NvbmVpdW0uYmxvY2tzY291dC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTg2ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTg2OCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBTb25laXVtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbmVpdW1UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT05FSVVNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NvbmVpdW0tbWluYXRvLmJsb2Nrc2NvdXQuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NvbmVpdW0tbWluYXRvLmJsb2Nrc2NvdXQuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE5NDY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE5NDYnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgU2Nyb2xsRXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU2Nyb2xsJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TQ1JPTExFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nyb2xsc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nyb2xsc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTM0MzUyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MzQzNTInO1xufVxuXG5jbGFzcyBTY3JvbGxFdGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU2Nyb2xsIFNlcG9saWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNDUk9MTEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLnNjcm9sbHNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuc2Nyb2xsc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTM0MzUxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MzQzNTEnO1xufVxuXG5jbGFzcyBTZWlFdm0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTZWlldm0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZWlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTMyOTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTMyOSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgU2VpRXZtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NlaUV2bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNlaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5zZWlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzMjg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMjgnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgU29tbmlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbW5pYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFubm9uLWV4cGxvcmVyLnNvbW5pYS5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NoYW5ub24tZXhwbG9yZXIuc29tbmlhLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTAzMTI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwMzEyJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFNvbWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb21uaWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC5zb21uaWEudzN1cy5zaXRlL3R4Lyc7XG4gIGNoYWluSWQgPSA1MDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDMxJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZVAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRmxhcmVOZXR3b3JrIHtcbiAgYXNzZXRJZCA9ICcyTXhLU2VFV1hWaUxkWXlEaFcxU1E0NkFFQ1pFYkUyYm5WUlpwdHY0MkpyeHF5VVg1ayc7XG4gIG5hbWUgPSAnRmxhcmVQJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2ZsYXJlc2Nhbi5jb20vYmxvY2tjaGFpbi9wdm0vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZmxhcmVzY2FuLmNvbS9ibG9ja2NoYWluL3B2bS9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJ3Vta2JoU3JqVnc1blV2eTFlbzI1QWRyalJrUEJkdHpBTWV3dXhBMnJxRXg0WU1vNGMnO1xuICB4Q2hhaW5CbG9ja2NoYWluSUQgPSAnZks1ZTZUM0VuaU1xYWdCa3hYakF1ZzlFYmhGRFpiRXpQUHI0ZjIydXdNb1A1aTJjSic7XG4gIG5ldHdvcmtJRCA9IDE0O1xuICBocnAgPSAnZmxhcmUnO1xuICBhbGlhcyA9ICdQJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIG1pbkltcG9ydFRvUEZlZSA9ICcxMjYxMDAwJzsgLy8gMC4xMjYxIEZMUlxuICB0eEZlZSA9ICcyMDAwMDAnOyAvLyBGTFIgUC1jaGFpbiBpbXBvcnQgcmVxdWlyZXMgaGlnaGVyIGZlZSB0aGFuIGJhc2UgdHhGZWVcbiAgYmFzZVR4RmVlID0gJzEwMDAwMDAnO1xuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyBkZWZhdWx0c1xuICBjcmVhdGVBc3NldFR4RmVlID0gJzEwMDAwMDAnO1xuICBjcmVhdGVTdWJuZXRUeCA9ICcxMDAwMDAwMDAnOyAvLyBkZWZhdWx0c1xuICB0cmFuc2Zvcm1TdWJuZXRUeEZlZSA9ICcxMDAwMDAwMDAnO1xuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIGNyZWF0aW9uVHhGZWUgPSAnMTAwMDAwMDAnOyAvLyBkZWZhdWx0c1xuICBtaW5Db25zdW1wdGlvbiA9ICcwLjEnO1xuICBtYXhDb25zdW1wdGlvbiA9ICcwLjEyJztcbiAgbWF4U3VwcGx5ID0gJzEwMzY4ODI2Njk3NDAwMDAwMDAwMCc7IC8vIDEwM0IgdG9rZW5zXG4gIG1pblN0YWtlID0gJzEwMDAwMDAwMDAwMDAwMDAnOyAvLyAxTSBGTFJcbiAgbWluU3Rha2VEdXJhdGlvbiA9ICc1MjU2MDAwJzsgLy8gMiBtb250aHNcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnNTAwMDAwMDAwMDAwMDAnOyAvLyA1MDAwMCBGTFJcbiAgbWluRGVsZWdhdGlvbkZlZSA9ICcwJztcbiAgYWRkUHJpbWFyeU5ldHdvcmtWYWxpZGF0b3JGZWUgPSAnMCc7XG4gIGFkZFN1Ym5ldFZhbGlkYXRvckZlZSA9ICcxMDAwMDAwJztcbiAgYWRkU3VibmV0RGVsZWdhdG9yRmVlID0gJzEwMDAwMDAnO1xufVxuXG5leHBvcnQgY2xhc3MgRmxhcmVQVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBGbGFyZU5ldHdvcmsge1xuICBuYW1lID0gJ0ZsYXJlUFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZMUlA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY29zdG9uMi50ZXN0bmV0LmZsYXJlc2Nhbi5jb20vYmxvY2tjaGFpbi9wdm0vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY29zdG9uMi50ZXN0bmV0LmZsYXJlc2Nhbi5jb20vYmxvY2tjaGFpbi9wdm0vYWRkcmVzcy8nO1xuICBmbGFyZVB1YmxpY1VybCA9ICdodHRwczovL2Nvc3RvbjIudGVzdG5ldC5mbGFyZS5uZXR3b3JrJztcbiAgYmxvY2tjaGFpbklEID0gJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExTHBvWVknO1xuICBjQ2hhaW5CbG9ja2NoYWluSUQgPSAndkU4TTk4bUVRSDZ3azU2c1N0RDFNTDhIQXBUZ1NxZkpaTGs5Z1EzRnNkNGk2bTNCaSc7XG4gIHhDaGFpbkJsb2NrY2hhaW5JRCA9ICdGSnVTd1p1UDg1ZXlCcHVCcktFQ25wUGVkR3lYb0R5MmhQOXE0SkQ4cUJUWkd4WUonO1xuICBuZXR3b3JrSUQgPSAxMTQ7XG4gIGhycCA9ICdjb3N0d28nO1xuICBhbGlhcyA9ICdQJztcbiAgYXNzZXRJZCA9ICdmeE1BS3BCUVFwRmVkclVoV01zRFlmQ1VKeGRVdzRtbmVUY3pLQnpOZzNyYzJKVXViJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIG1pbkltcG9ydFRvUEZlZSA9ICcxMjYxMDAwJzsgLy8gMC4xMjYxIEZMUlxuICB0eEZlZSA9ICcyMDAwMDAnOyAvLyBGTFIgUC1jaGFpbiBpbXBvcnQgcmVxdWlyZXMgaGlnaGVyIGZlZSB0aGFuIGJhc2UgdHhGZWVcbiAgYmFzZVR4RmVlID0gJzEwMDAwMDAnO1xuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyBkZWZhdWx0c1xuICBjcmVhdGVBc3NldFR4RmVlID0gJzEwMDAwMDAnO1xuICBjcmVhdGVTdWJuZXRUeCA9ICcxMDAwMDAwMDAnOyAvLyBkZWZhdWx0c1xuICB0cmFuc2Zvcm1TdWJuZXRUeEZlZSA9ICcxMDAwMDAwMDAnO1xuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIGNyZWF0aW9uVHhGZWUgPSAnMTAwMDAwMDAnOyAvLyBkZWZhdWx0c1xuICBtaW5Db25zdW1wdGlvbiA9ICcwLjEnO1xuICBtYXhDb25zdW1wdGlvbiA9ICcwLjEyJztcbiAgbWF4U3VwcGx5ID0gJzc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwJzsgLy8gNzkgdHJpbGxpb24gdG9rZW5zXG4gIG1pblN0YWtlID0gJzEwMDAwMDAwMDAwMDAwMDAnOyAvLyAxTSBGTFJcbiAgbWluU3Rha2VEdXJhdGlvbiA9ICc1MjU2MDAwJzsgLy8gMiBtb250aHNcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnNTAwMDAwMDAwMDAwMDAnOyAvLyA1MDAwMCBGTFJcbiAgbWluRGVsZWdhdGlvbkZlZSA9ICcwJztcbiAgYWRkUHJpbWFyeU5ldHdvcmtWYWxpZGF0b3JGZWUgPSAnMCc7XG4gIGFkZFN1Ym5ldFZhbGlkYXRvckZlZSA9ICcxMDAwMDAwJztcbiAgYWRkU3VibmV0RGVsZWdhdG9yRmVlID0gJzEwMDAwMDAnO1xufVxuXG5leHBvcnQgY2xhc3MgRmxhcmUgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdGbGFyZWNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTFI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZmxhcmVzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9mbGFyZXNjYW4uY29tL2Jsb2NrY2hhaW4vYWRkcmVzcy8nO1xuICBmbGFyZVB1YmxpY1VybCA9ICdodHRwczovL2ZsYXJlc2Nhbi5jb20nO1xuICBjaGFpbklkID0gMTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE0JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdGbGFyZWNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nvc3RvbjIudGVzdG5ldC5mbGFyZXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Nvc3RvbjIudGVzdG5ldC5mbGFyZXNjYW4uY29tL2Jsb2NrY2hhaW4vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTQnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGM1ZDdhM2I0YzQ5MGM2MjQyZmIyOGYyMGU1ZmUzM2NkOTgzMzcyYTMnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cbmNsYXNzIFNvbmdiaXJkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZ2JpcmRjaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0dCO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NvbmdiaXJkLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZ2JpcmQtZXhwbG9yZXIuZmxhcmUubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTknO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgU29uZ2JpcmRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZ2JpcmRjaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNHQjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTYnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgQmFzZUNoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICAvL0Jhc2VFVEggdGVzdG5ldFxuICBuYW1lID0gJ0Jhc2VDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJBU0VFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5iYXNlc2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5iYXNlc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODQ1MzI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMyLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhkZDQ5ODcwMmY0NGM0ZGEwOGViOWUwOGQzZjAxNWVlZmU1Y2I3MWZjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YmU2OWNhZTMxMTE5MWZiNDVlNjQ4ZWQyMDg0N2YwNmZhZDJkYmFiNCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEJhc2VDaGFpbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICAvL0Jhc2VFVEhcbiAgbmFtZSA9ICdCYXNlQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJBU0VFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmFzZXNjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Jhc2VzY2FuLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4NDUzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4NDUzJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGRkNDk4NzAyZjQ0YzRkYTA4ZWI5ZTA4ZDNmMDE1ZWVmZTVjYjcxZmMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhiZTY5Y2FlMzExMTkxZmI0NWU2NDhlZDIwODQ3ZjA2ZmFkMmRiYWI0JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg0NTUwZTFlNzYxNmQzMzY0ODc3ZmM2YzkzMjQ5MzhkYWI2Nzg2MjFhJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTJkYjI3NTlkMWRjYTEyOWEwZDlkNDY4NzdmMzYxYmU4MTkxODRjNCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgUG9seW1lc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgUG9seXhOZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5bWVzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUE9MWVg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seW1lc2guc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAncG9seW1lc2hfbWFpbm5ldCcgYXMgU3Vic3RyYXRlU3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDZmYmQ3NGU1ZTFkMGE2MWQ1MmNjZmU5ZDRhZGFlZDE2ZGQzYTdjYWEzN2M2YmM0ZDBjMmZhMTJlOGIyZjQwNjMnO1xuICBzcGVjVmVyc2lvbiA9IDcwMDIwMDA7XG4gIGNoYWluTmFtZSA9ICdQb2x5bWVzaCBNYWlubmV0JztcbiAgdHhWZXJzaW9uID0gNztcbiAgdjhTcGVjVmVyc2lvbiA9IDgwMDAwMDA7XG4gIHY4VHhWZXJzaW9uID0gODtcbn1cblxuY2xhc3MgUG9seW1lc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFBvbHl4TmV0d29yayB7XG4gIG5hbWUgPSAnUG9seW1lc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wb2x5bWVzaC10ZXN0bmV0LnN1YnNjYW4uaW8vZXh0cmluc2ljLyc7XG4gIHNwZWNOYW1lID0gJ3BvbHltZXNoX3Rlc3RuZXQnIGFzIFN1YnN0cmF0ZVNwZWNOYW1lVHlwZTtcbiAgZ2VuZXNpc0hhc2ggPSAnMHgyYWNlMDVlNzAzYWE1MGI0OGMwY2NjY2ZjOGI0MjRmN2FhYjlhMWUyYzQyNGVkMTJlNDVkMjBiMWU4ZmZkMGQ2JztcbiAgc3BlY1ZlcnNpb24gPSA3MDAyMDAwO1xuICBjaGFpbk5hbWUgPSAnUG9seW1lc2ggVGVzdG5ldCc7XG4gIHR4VmVyc2lvbiA9IDc7XG4gIHY4U3BlY1ZlcnNpb24gPSA4MDAwMDAwO1xuICB2OFR4VmVyc2lvbiA9IDg7XG59XG5cbmNsYXNzIFZldCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1ZlQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlZFVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3JlLnZlY2hhaW4ub3JnL3RyYW5zYWN0aW9ucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3JlLnZlY2hhaW4ub3JnL2FjY291bnRzLyc7XG4gIGNoYWluSWQgPSAxMDAwMDk7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4NjUzNDNlMThjMzc2ZDJmYzhjM2NmMTBjZDE0NmQ2M2UyZTBkYzllZic7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDYyZGUzNGM4N2Y4NDdkMzg1YWYwN2Y2YzI1ZGJkOTdiMWZmZmVmYzAnO1xufVxuXG5jbGFzcyBWZXRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVmVDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlZFVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3JlLXRlc3RuZXQudmVjaGFpbi5vcmcvdHJhbnNhY3Rpb25zLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUtdGVzdG5ldC52ZWNoYWluLm9yZy9hY2NvdW50cy8nO1xuICBjaGFpbklkID0gMTAwMDEwO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDY1MzQzZTE4YzM3NmQyZmM4YzNjZjEwY2QxNDZkNjNlMmUwZGM5ZWYnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg2MmRlMzRjODdmODQ3ZDM4NWFmMDdmNmMyNWRiZDk3YjFmZmZlZmMwJztcbn1cblxuY2xhc3MgSW90YSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSW90YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU9UQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5pb3RhLm9yZy90eGJsb2NrLz9uZXR3b3JrPW1haW5uZXQnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5pb3RhLm9yZy9hZGRyZXNzLz9uZXR3b3JrPW1haW5uZXQnO1xufVxuXG5jbGFzcyBJb3RhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBJb3RhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JT1RBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmlvdGEub3JnL3R4YmxvY2svP25ldHdvcms9dGVzdG5ldCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmlvdGEub3JnL2FkZHJlc3MvP25ldHdvcms9dGVzdG5ldCc7XG59XG5cbmNsYXNzIEZsb3cgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdGbG93JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTE9XO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V2bS5mbG93c2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldm0uZmxvd3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNzQ3O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc3NDcnO1xufVxuXG5jbGFzcyBGbG93VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0Zsb3dUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTE9XO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V2bS10ZXN0bmV0LmZsb3dzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V2bS10ZXN0bmV0LmZsb3dzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU0NTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTQ1Jztcbn1cblxuY2xhc3MgR2FzRXZtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTmVvIFgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkdBU0VWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9uZW94c2Nhbi5uZ2QubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9uZW94c2Nhbi5uZ2QubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0Nzc2MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDc3NjMnO1xufVxuXG5jbGFzcyBHYXNFdm1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBOZW8gWCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuR0FTRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL25lb3h0NHNjYW4ubmdkLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbmVveHQ0c2Nhbi5uZ2QubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMjIyNzMzMjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTIyMjczMzInO1xufVxuXG5jbGFzcyBNZWdhRVRIIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTWVnYUVUSCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTUVHQUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZWdhZXRoLmJsb2Nrc2NvdXQuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL21lZ2FldGguYmxvY2tzY291dC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDMyNjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDMyNic7XG59XG5cbmNsYXNzIE1lZ2FFVEhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTWVnYUVUSFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1FR0FFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1lZ2FleHBsb3Jlci54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1lZ2FleHBsb3Jlci54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNjM0MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNjM0Myc7XG59XG5cbmNsYXNzIFBsdW1lIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUGx1bWUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBMVU1FO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnBsdW1lLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTg4NjY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk4ODY2Jztcbn1cblxuY2xhc3MgSGVkZXJhRVZNVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSGVkZXJhIEVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUkVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oYXNoc2Nhbi5pby90ZXN0bmV0L3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hhc2hzY2FuLmlvL3Rlc3RuZXQvYWNjb3VudC8nO1xuICBjaGFpbklkID0gMjk2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyOTYnO1xufVxuXG5jbGFzcyBIZWRlcmFFVk0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIZWRlcmEgRVZNJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQkFSRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hhc2hzY2FuLmlvL21haW5uZXQvdHJhbnNhY3Rpb24vJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaGFzaHNjYW4uaW8vbWFpbm5ldC9hY2NvdW50Lyc7XG4gIGNoYWluSWQgPSAyOTU7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI5NSc7XG59XG5cbmNsYXNzIEhlbWlFdGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIZW1pIEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IRU1JRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhlbWkueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhlbWkueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTExO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MzExMSc7XG59XG5cbmNsYXNzIEhlbWlFdGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBIZW1pIEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IRU1JRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuZXhwbG9yZXIuaGVtaS54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5oZW1pLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA3NDMxMTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzc0MzExMSc7XG59XG5jbGFzcyBLYXRhbmFFdGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXRhbmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVEFOQUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYXRhbmFzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYXRhbmFzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA3NDc0NzQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzc0NzQ3NCc7XG59XG5cbmNsYXNzIEthdGFuYUV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEthdGFuYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FUQU5BRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLWJva3V0by5rYXRhbmFycGMuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLWJva3V0by5rYXRhbmFycGMuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDczNzM3MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNzM3MzczJztcbn1cblxuY2xhc3MgUHJpdmlkaXVtRVRIIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUHJpdmlkaXVtIEV0aGVyZXVtIE1haW5uZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBSSVZJRElVTUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wcml2aWRpdW0uemtzeW5jLmRldi90eC8nOyAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IFVSTCB3aGVuIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wcml2aWRpdW0uemtzeW5jLmRldi9hZGRyZXNzLyc7IC8vIFRPRE86IHVwZGF0ZSB3aXRoIG1haW5uZXQgVVJMIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSA5OTk5OTk5OyAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IGNoYWluIElEIHdoZW4gYXZhaWxhYmxlXG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk5OTk5OTknO1xufVxuXG5jbGFzcyBQcml2aWRpdW1FVEhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUHJpdmlkaXVtIEV0aGVyZXVtIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBSSVZJRElVTUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LXByaXZpZGl1bS56a3N5bmMuZGV2L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQtcHJpdmlkaXVtLnprc3luYy5kZXYvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODAyMjgzNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODAyMjgzNCc7XG59XG5cbmNsYXNzIElua0V0aCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0lOSyBNYWlubmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTktFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaW5rb25jaGFpbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaW5rb25jaGFpbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTcwNzM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU3MDczJztcbn1cblxuY2xhc3MgSW5rRXRoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0lOSyBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTktFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItc2Vwb2xpYS5pbmtvbmNoYWluLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1zZXBvbGlhLmlua29uY2hhaW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDc2MzM3MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNzYzMzczJztcbn1cblxuY2xhc3MgUGx1bWVUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUGx1bWVUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QTFVNRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWV4cGxvcmVyLnBsdW1lLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWV4cGxvcmVyLnBsdW1lLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5ODg2NztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTg4NjcnO1xufVxuXG5jbGFzcyBDYW50b24gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQmFzZU5ldHdvcmsge1xuICBuYW1lID0gJ0NhbnRvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0FOVE9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpZ2h0aG91c2UuY2FudG9ubG9vcC5jb20vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIENhbnRvblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQmFzZU5ldHdvcmsge1xuICBuYW1lID0gJ0NhbnRvblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNBTlRPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saWdodGhvdXNlLnRlc3RuZXQuY2FudG9ubG9vcC5jb20vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIERvZ2VvcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2UgT1MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0VPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbS90eC8nOyAvL1RPRE86IFdJTi04MDgyID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSBcIidodHRwczovL2Jsb2Nrc2NvdXQudGVzdG5ldC5kb2dlb3MuY29tL2FkZHJlc3MvXCI7IC8vVE9ETzogV0lOLTgwODIgPT4gYWRkIG1haW5uZXQgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSAxMjM0NTY3OyAvLy8vVE9ETzogV0lOLTgwODIgPT4gYWRkIG1haW5uZXQgY2hhaW5JZCB3aGVuIGF2YWlsYWJsZVxuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMjM0NTY3JzsgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgd2hlbiBtYWlubmV0IGRldGFpbHMgYXZhaWxhYmxlXG59XG5cbmNsYXNzIERvZ2Vvc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdEb2dlIE9TIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0VPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA2MjgxOTcxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc2MjgxOTcxJztcbn1cblxuY2xhc3MgQXJjVVNEQ1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdVU0RDIChBUkMpIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQ1VTREM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5hcmNzY2FuLmFwcC90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmFyY3NjYW4uYXBwL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUwNDIwMDI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwNDIwMDInO1xufVxuXG5jbGFzcyBBcmNVU0RDIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVVNEQyAoQVJDKSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVJDVVNEQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcmMuaW8vdHgvJzsgLy8gV0lOLTg4NDQgY2hhbmdlIHRvIHByb2QgZXhwbG9yZXIgdXJsXG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFyYy5pby9hZGRyZXNzLyc7IC8vIGNoYW5nZSB0byBwcm9kIGV4cGxvcmVyIHVybCB3aGVuIGF2YWlsYWJsZVxuICBjaGFpbklkID0gNTA0MjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTA0Mic7XG59XG5cbmNsYXNzIFRlbXBvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVtcG8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRFTVBPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUubWFpbm5ldC50ZW1wby54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS5tYWlubmV0LnRlbXBvLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjE3O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdURU1QTyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdURU1QTy1USVAyMCc7XG59XG5cbmNsYXNzIFRlbXBvVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1RlbXBvIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRFTVBPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudGVzdG5ldC50ZW1wby54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS50ZXN0bmV0LnRlbXBvLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjQzMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDI0MzEnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDI0MzEnO1xufVxuXG5jbGFzcyBCb2JhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQm9iYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQk9CQUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ib2Jhc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYm9iYXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI4ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjg4JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI4OC1FUkMyMCc7XG59XG5cbmNsYXNzIEJvYmFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQm9iYSBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CT0JBRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYm9iYXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYm9iYXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI4ODgyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODg4Mic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODg4Mi1FUkMyMCc7XG59XG5cbi8qKlxuICogQ29uc3RydWN0b3Igb3B0aW9ucyBmb3Ige0BsaW5rIER5bmFtaWNOZXR3b3JrfS5cbiAqIEFjY2VwdHMgc3RyaW5nLXR5cGVkIGB0eXBlYCBhbmQgYGZhbWlseWAgc28gQU1TIEpTT04gY2FuIGJlIHBhc3NlZCBkaXJlY3RseS5cbiAqIEZpZWxkcyBtaXJyb3IgQmFzZU5ldHdvcmsgKyBBY2NvdW50TmV0d29yayArIEV0aGVyZXVtTmV0d29yay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljTmV0d29ya09wdGlvbnMge1xuICAvLyBCYXNlTmV0d29ya1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgZmFtaWx5OiBzdHJpbmc7XG4gIGV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICAvLyBBY2NvdW50TmV0d29ya1xuICBhY2NvdW50RXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJsb2NrRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIC8vIEV0aGVyZXVtTmV0d29ya1xuICBjaGFpbklkPzogbnVtYmVyO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWMkZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgd2FsbGV0VjRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgd2FsbGV0VjRJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHdhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHdhbGxldFYyRm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25jcmV0ZSBuZXR3b3JrIGNsYXNzIGZvciBBTVMtZGlzY292ZXJlZCBjaGFpbnMgbm90IHlldCByZWdpc3RlcmVkIGluIGxvY2FsIHN0YXRpY3MuXG4gKiBBY2NlcHRzIHN0cmluZy10eXBlZCB0eXBlL2ZhbWlseSBhbmQgY2FzdHMgdG8gZW51bXMgaW50ZXJuYWxseSAoc2FmZSBzaW5jZSBib3RoIGFyZSBzdHJpbmcgZW51bXMpLlxuICogQ3VycmVudGx5IGNvdmVycyBCYXNlTmV0d29yayArIEFjY291bnROZXR3b3JrICsgRXRoZXJldW1OZXR3b3JrIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGNsYXNzIER5bmFtaWNOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogTmV0d29ya1R5cGU7XG4gIHB1YmxpYyByZWFkb25seSBmYW1pbHk6IENvaW5GYW1pbHk7XG4gIHB1YmxpYyByZWFkb25seSBleHBsb3JlclVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudEV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tFeHBsb3JlclVybD86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNoYWluSWQ/OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBiYXRjaGVyQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFYyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFY0RmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWNEltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWMkZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IER5bmFtaWNOZXR3b3JrT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5uYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSBhcyBOZXR3b3JrVHlwZTtcbiAgICB0aGlzLmZhbWlseSA9IG9wdGlvbnMuZmFtaWx5IGFzIENvaW5GYW1pbHk7XG4gICAgdGhpcy5leHBsb3JlclVybCA9IG9wdGlvbnMuZXhwbG9yZXJVcmw7XG4gICAgdGhpcy5hY2NvdW50RXhwbG9yZXJVcmwgPSBvcHRpb25zLmFjY291bnRFeHBsb3JlclVybDtcbiAgICB0aGlzLmJsb2NrRXhwbG9yZXJVcmwgPSBvcHRpb25zLmJsb2NrRXhwbG9yZXJVcmw7XG4gICAgdGhpcy5jaGFpbklkID0gb3B0aW9ucy5jaGFpbklkO1xuICAgIHRoaXMuYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9IG9wdGlvbnMuYmF0Y2hlckNvbnRyYWN0QWRkcmVzcztcbiAgICB0aGlzLmZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gb3B0aW9ucy5mb3J3YXJkZXJGYWN0b3J5QWRkcmVzcztcbiAgICB0aGlzLmZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9IG9wdGlvbnMuZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0RmFjdG9yeUFkZHJlc3MgPSBvcHRpb25zLndhbGxldEZhY3RvcnlBZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gb3B0aW9ucy53YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3M7XG4gICAgdGhpcy53YWxsZXRWMkZhY3RvcnlBZGRyZXNzID0gb3B0aW9ucy53YWxsZXRWMkZhY3RvcnlBZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0VjJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSBvcHRpb25zLndhbGxldFYySW1wbGVtZW50YXRpb25BZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0VjRGYWN0b3J5QWRkcmVzcyA9IG9wdGlvbnMud2FsbGV0VjRGYWN0b3J5QWRkcmVzcztcbiAgICB0aGlzLndhbGxldFY0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gb3B0aW9ucy53YWxsZXRWNEltcGxlbWVudGF0aW9uQWRkcmVzcztcbiAgICB0aGlzLndhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSBvcHRpb25zLndhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M7XG4gICAgdGhpcy53YWxsZXRWMkZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9IG9wdGlvbnMud2FsbGV0VjJGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M7XG4gICAgdGhpcy53YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gb3B0aW9ucy53YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSBvcHRpb25zLndhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzO1xuICAgIHRoaXMubmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSBvcHRpb25zLm5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4O1xuICAgIHRoaXMudG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gb3B0aW9ucy50b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXg7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5ldHdvcmtzID0ge1xuICBtYWluOiB7XG4gICAgYWJzdHJhY3RldGg6IE9iamVjdC5mcmVlemUobmV3IEFic3RyYWN0RXRoKCkpLFxuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhKCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZCgpKSxcbiAgICBhcGVjaGFpbjogT2JqZWN0LmZyZWV6ZShuZXcgQXBlQ2hhaW4oKSksXG4gICAgYXB0OiBPYmplY3QuZnJlZXplKG5ldyBBcHQoKSksXG4gICAgYXJiaXRydW06IE9iamVjdC5mcmVlemUobmV3IEFyYml0cnVtKCkpLFxuICAgIGFyY3VzZGM6IE9iamVjdC5mcmVlemUobmV3IEFyY1VTREMoKSksXG4gICAgYXNpOiBPYmplY3QuZnJlZXplKG5ldyBBc2koKSksXG4gICAgYXRvbTogT2JqZWN0LmZyZWV6ZShuZXcgQXRvbSgpKSxcbiAgICBhdmFsYW5jaGVDOiBPYmplY3QuZnJlZXplKG5ldyBBdmFsYW5jaGVDKCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVAoKSksXG4gICAgYmFieTogT2JqZWN0LmZyZWV6ZShuZXcgQmFieSgpKSxcbiAgICBiYXNlY2hhaW46IE9iamVjdC5mcmVlemUobmV3IEJhc2VDaGFpbigpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luKCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGQoKSksXG4gICAgYml0Y29pblNWOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU1YoKSksXG4gICAgYmVyYTogT2JqZWN0LmZyZWV6ZShuZXcgQmVyYWNoYWluKCkpLFxuICAgIGJsZDogT2JqZWN0LmZyZWV6ZShuZXcgQmxkKCkpLFxuICAgIGJzYzogT2JqZWN0LmZyZWV6ZShuZXcgQmluYW5jZVNtYXJ0Q2hhaW4oKSksXG4gICAgY2FudG9uOiBPYmplY3QuZnJlZXplKG5ldyBDYW50b24oKSksXG4gICAgY2FzcGVyOiBPYmplY3QuZnJlZXplKG5ldyBDYXNwZXIoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2VsbygpKSxcbiAgICBjaGlsaXo6IE9iamVjdC5mcmVlemUobmV3IENoaWxpeigpKSxcbiAgICBjb2RleGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgQ29kZXhFdGgoKSksXG4gICAgY29yZWRhbzogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZWRhbygpKSxcbiAgICBjb3JldW06IE9iamVjdC5mcmVlemUobmV3IENvcmV1bSgpKSxcbiAgICBjcm9ub3M6IE9iamVjdC5mcmVlemUobmV3IENyb25vcygpKSxcbiAgICBkYXNoOiBPYmplY3QuZnJlZXplKG5ldyBEYXNoKCkpLFxuICAgIGRvZ2Vjb2luOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlY29pbigpKSxcbiAgICBkb2dlb3M6IE9iamVjdC5mcmVlemUobmV3IERvZ2VvcygpKSxcbiAgICBkb3Q6IE9iamVjdC5mcmVlemUobmV3IFBvbGthZG90QXNzZXRIdWIoKSksXG4gICAgZHlkeDogT2JqZWN0LmZyZWV6ZShuZXcgRHlkeCgpKSxcbiAgICBlQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgRUNhc2goKSksXG4gICAgZW9zOiBPYmplY3QuZnJlZXplKG5ldyBFb3MoKSksXG4gICAgZXRoZXJldW06IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtKCkpLFxuICAgIGV0aGVyZXVtMjogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW0yKCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpYzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1DbGFzc2ljKCkpLFxuICAgIGV0aGVyZXVtVzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1XKCkpLFxuICAgIGZpYXQ6IE9iamVjdC5mcmVlemUobmV3IEZpYXQoKSksXG4gICAgZmV0Y2hhaTogT2JqZWN0LmZyZWV6ZShuZXcgRmV0Y2hBaSgpKSxcbiAgICBmbG93OiBPYmplY3QuZnJlZXplKG5ldyBGbG93KCkpLFxuICAgIGdhc2V2bTogT2JqZWN0LmZyZWV6ZShuZXcgR2FzRXZtKCkpLFxuICAgIGZscjogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmUoKSksXG4gICAgZmxyUDogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmVQKCkpLFxuICAgIGZsdWVudGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgRmx1ZW50RVRIKCkpLFxuICAgIGg6IE9iamVjdC5mcmVlemUobmV3IEh1bWFuaXR5UHJvdG9jb2woKSksXG4gICAgaGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgSGFzaCgpKSxcbiAgICBob29kZXRoOiBPYmplY3QuZnJlZXplKG5ldyBIb29kZXRoKCkpLFxuICAgIGhlZGVyYTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhKCkpLFxuICAgIGhlZGVyYUVWTTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhRVZNKCkpLFxuICAgIGhlbWlldGg6IE9iamVjdC5mcmVlemUobmV3IEhlbWlFdGgoKSksXG4gICAgaW5rZXRoOiBPYmplY3QuZnJlZXplKG5ldyBJbmtFdGgoKSksXG4gICAgaHBwZXRoOiBPYmplY3QuZnJlZXplKG5ldyBIcHBldGgoKSksXG4gICAgcHJpdmlkaXVtZXRoOiBPYmplY3QuZnJlZXplKG5ldyBQcml2aWRpdW1FVEgoKSksXG4gICAgaWNwOiBPYmplY3QuZnJlZXplKG5ldyBJY3AoKSksXG4gICAgaXA6IE9iamVjdC5mcmVlemUobmV3IElQKCkpLFxuICAgIGluaXRpYTogT2JqZWN0LmZyZWV6ZShuZXcgSW5pdGlhKCkpLFxuICAgIGlvdGE6IE9iamVjdC5mcmVlemUobmV3IElvdGEoKSksXG4gICAgaW5qZWN0aXZlOiBPYmplY3QuZnJlZXplKG5ldyBJbmplY3RpdmUoKSksXG4gICAgaXJ5czogT2JqZWN0LmZyZWV6ZShuZXcgSXJ5cygpKSxcbiAgICBpc2xtOiBPYmplY3QuZnJlZXplKG5ldyBJc2xtKCkpLFxuICAgIGpvdmF5ZXRoOiBPYmplY3QuZnJlZXplKG5ldyBKb3ZheUVUSCgpKSxcbiAgICBrYWlhOiBPYmplY3QuZnJlZXplKG5ldyBLYWlhKCkpLFxuICAgIGthc3BhOiBPYmplY3QuZnJlZXplKG5ldyBLYXNwYU1haW5uZXQoKSksXG4gICAga2F0YW5hZXRoOiBPYmplY3QuZnJlZXplKG5ldyBLYXRhbmFFdGgoKSksXG4gICAga2F2YWNvc21vczogT2JqZWN0LmZyZWV6ZShuZXcgS2F2YUNvc21vcygpKSxcbiAgICBrYXZhZXZtOiBPYmplY3QuZnJlZXplKG5ldyBLYXZhRVZNKCkpLFxuICAgIGxuYnRjOiBPYmplY3QuZnJlZXplKG5ldyBMaWdodG5pbmdCaXRjb2luKCkpLFxuICAgIGxpdGVjb2luOiBPYmplY3QuZnJlZXplKG5ldyBMaXRlY29pbigpKSxcbiAgICBtZWdhZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNZWdhRVRIKCkpLFxuICAgIG1vbjogT2JqZWN0LmZyZWV6ZShuZXcgTW9uYWQoKSksXG4gICAgbWFudGxlOiBPYmplY3QuZnJlZXplKG5ldyBNYW50bGUoKSksXG4gICAgbWFudHJhOiBPYmplY3QuZnJlZXplKG5ldyBNYW50cmEoKSksXG4gICAgcGx1bWU6IE9iamVjdC5mcmVlemUobmV3IFBsdW1lKCkpLFxuICAgIHBvbHlnb246IE9iamVjdC5mcmVlemUobmV3IFBvbHlnb24oKSksXG4gICAgcG9seXg6IE9iamVjdC5mcmVlemUobmV3IFBvbHltZXNoKCkpLFxuICAgIHBlYXJsOiBPYmplY3QuZnJlZXplKG5ldyBQZWFybCgpKSxcbiAgICBwaHJzOiBPYmplY3QuZnJlZXplKG5ldyBQaGFyb3MoKSksXG4gICAgY3RjOiBPYmplY3QuZnJlZXplKG5ldyBDcmVkaXRjb2luKCkpLFxuICAgIGh5cGVldm06IE9iamVjdC5mcmVlemUobmV3IEh5cGVFVk0oKSksXG4gICAgaHlwZXJsaXF1aWQ6IE9iamVjdC5mcmVlemUobmV3IEh5cGVybGlxdWlkKCkpLFxuICAgIGxpbmVhZXRoOiBPYmplY3QuZnJlZXplKG5ldyBMaW5lYUVUSCgpKSxcbiAgICBvYXM6IE9iamVjdC5mcmVlemUobmV3IE9hcygpKSxcbiAgICBvZzogT2JqZWN0LmZyZWV6ZShuZXcgT2coKSksXG4gICAgb2ZjOiBPYmplY3QuZnJlZXplKG5ldyBPZmMoKSksXG4gICAgb2tieGxheWVyOiBPYmplY3QuZnJlZXplKG5ldyBYbGF5ZXIoKSksXG4gICAgb3BibmI6IE9iamVjdC5mcmVlemUobmV3IE9wQk5CKCkpLFxuICAgIGZhbnRvbTogT2JqZWN0LmZyZWV6ZShuZXcgRmFudG9tKCkpLFxuICAgIGNvdGlldGg6IE9iamVjdC5mcmVlemUobmV3IENvdGlldGgoKSksXG4gICAgbW9ycGg6IE9iamVjdC5mcmVlemUobmV3IE1vcnBoKCkpLFxuICAgIG1vcnBoZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNb3JwaEVUSCgpKSxcbiAgICBvcHRpbWlzbTogT2JqZWN0LmZyZWV6ZShuZXcgT3B0aW1pc20oKSksXG4gICAgb3NtbzogT2JqZWN0LmZyZWV6ZShuZXcgT3NtbygpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjKCkpLFxuICAgIHJ1bmU6IE9iamVjdC5mcmVlemUobmV3IFJ1bmUoKSksXG4gICAgc3RlbGxhcjogT2JqZWN0LmZyZWV6ZShuZXcgU3RlbGxhcigpKSxcbiAgICBzY3JvbGxldGg6IE9iamVjdC5mcmVlemUobmV3IFNjcm9sbEV0aCgpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaSgpKSxcbiAgICBzZWlldm06IE9iamVjdC5mcmVlemUobmV3IFNlaUV2bSgpKSxcbiAgICBzZ2I6IE9iamVjdC5mcmVlemUobmV3IFNvbmdiaXJkKCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sKCkpLFxuICAgIHNvbmljOiBPYmplY3QuZnJlZXplKG5ldyBTb25pYygpKSxcbiAgICBzdGFya25ldDogT2JqZWN0LmZyZWV6ZShuZXcgU3RhcmtuZXRNYWlubmV0KCkpLFxuICAgIHN1aTogT2JqZWN0LmZyZWV6ZShuZXcgU3VpKCkpLFxuICAgIG5lYXI6IE9iamVjdC5mcmVlemUobmV3IE5lYXIoKSksXG4gICAgc3R4OiBPYmplY3QuZnJlZXplKG5ldyBTdHgoKSksXG4gICAgc29taTogT2JqZWN0LmZyZWV6ZShuZXcgU29taSgpKSxcbiAgICBzb25laXVtOiBPYmplY3QuZnJlZXplKG5ldyBTb25laXVtKCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0QoKSksXG4gICAgdGFvOiBPYmplY3QuZnJlZXplKG5ldyBCaXR0ZW5zb3IoKSksXG4gICAgdGVtcG86IE9iamVjdC5mcmVlemUobmV3IFRlbXBvKCkpLFxuICAgIHRpYTogT2JqZWN0LmZyZWV6ZShuZXcgVGlhKCkpLFxuICAgIHRvbjogT2JqZWN0LmZyZWV6ZShuZXcgVG9uKCkpLFxuICAgIHRyeDogT2JqZWN0LmZyZWV6ZShuZXcgVHJ4KCkpLFxuICAgIHVzZHQwOiBPYmplY3QuZnJlZXplKG5ldyBVc2R0MCgpKSxcbiAgICB2ZXQ6IE9iamVjdC5mcmVlemUobmV3IFZldCgpKSxcbiAgICB3ZW1peDogT2JqZWN0LmZyZWV6ZShuZXcgV2VtaXgoKSksXG4gICAgd29ybGQ6IE9iamVjdC5mcmVlemUobmV3IFdvcmxkKCkpLFxuICAgIHhkYzogT2JqZWN0LmZyZWV6ZShuZXcgWGRjKCkpLFxuICAgIHhwbDogT2JqZWN0LmZyZWV6ZShuZXcgUGxhc21hKCkpLFxuICAgIHhycDogT2JqZWN0LmZyZWV6ZShuZXcgWHJwKCkpLFxuICAgIHh0ejogT2JqZWN0LmZyZWV6ZShuZXcgWHR6KCkpLFxuICAgIHh0emV2bTogT2JqZWN0LmZyZWV6ZShuZXcgWHR6RXZtKCkpLFxuICAgIHpDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBaQ2FzaCgpKSxcbiAgICB6ZXRhOiBPYmplY3QuZnJlZXplKG5ldyBaZXRhKCkpLFxuICAgIHprU3luYzogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jKCkpLFxuICAgIHprU3luY0VyYTogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jRXJhKCkpLFxuICAgIHVuaWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgVW5pZXRoKCkpLFxuICAgIGJvYmE6IE9iamVjdC5mcmVlemUobmV3IEJvYmEoKSksXG4gIH0sXG4gIHRlc3Q6IHtcbiAgICBhYnN0cmFjdGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgQWJzdHJhY3RFdGhUZXN0bmV0KCkpLFxuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhVGVzdG5ldCgpKSxcbiAgICBhbGdvcmFuZDogT2JqZWN0LmZyZWV6ZShuZXcgQWxnb3JhbmRUZXN0bmV0KCkpLFxuICAgIGFwZWNoYWluOiBPYmplY3QuZnJlZXplKG5ldyBBcGVDaGFpblRlc3RuZXQoKSksXG4gICAgYXB0OiBPYmplY3QuZnJlZXplKG5ldyBBcHRUZXN0bmV0KCkpLFxuICAgIGFyYml0cnVtOiBPYmplY3QuZnJlZXplKG5ldyBBcmJpdHJ1bVRlc3RuZXQoKSksXG4gICAgYXJjdXNkYzogT2JqZWN0LmZyZWV6ZShuZXcgQXJjVVNEQ1Rlc3RuZXQoKSksXG4gICAgYXNpOiBPYmplY3QuZnJlZXplKG5ldyBBc2lUZXN0bmV0KCkpLFxuICAgIGF0b206IE9iamVjdC5mcmVlemUobmV3IEF0b21UZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZUM6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZUNUZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVBUZXN0bmV0KCkpLFxuICAgIGJhYnk6IE9iamVjdC5mcmVlemUobmV3IEJhYnlUZXN0bmV0KCkpLFxuICAgIGJhc2VjaGFpbjogT2JqZWN0LmZyZWV6ZShuZXcgQmFzZUNoYWluVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luUHVibGljU2lnbmV0OiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luUHVibGljU2lnbmV0KCkpLFxuICAgIGJpdGNvaW5UZXN0bmV0NDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblRlc3RuZXQ0KCkpLFxuICAgIGJpdGNvaW5CaXRHb1NpZ25ldDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkJpdEdvU2lnbmV0KCkpLFxuICAgIGJpdGNvaW5TdHg6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5TdHgoKSksXG4gICAgYml0Y29pblN0eFByaXZhdGUxOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU3R4UHJpdmF0ZTEoKSksXG4gICAgYml0Y29pblN0eFNpZ25ldDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblN0eFNpZ25ldCgpKSxcbiAgICBiaXRjb2luQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkNhc2hUZXN0bmV0KCkpLFxuICAgIGJpdGNvaW5Hb2xkOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luR29sZFRlc3RuZXQoKSksXG4gICAgYml0Y29pblNWOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU1ZUZXN0bmV0KCkpLFxuICAgIGJlcmE6IE9iamVjdC5mcmVlemUobmV3IEJlcmFjaGFpblRlc3RuZXQoKSksXG4gICAgYmxkOiBPYmplY3QuZnJlZXplKG5ldyBCbGRUZXN0bmV0KCkpLFxuICAgIGJzYzogT2JqZWN0LmZyZWV6ZShuZXcgQmluYW5jZVNtYXJ0Q2hhaW5UZXN0bmV0KCkpLFxuICAgIGNhbnRvbjogT2JqZWN0LmZyZWV6ZShuZXcgQ2FudG9uVGVzdG5ldCgpKSxcbiAgICBjYXNwZXI6IE9iamVjdC5mcmVlemUobmV3IENhc3BlclRlc3RuZXQoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2Vsb1Rlc3RuZXQoKSksXG4gICAgY2hpbGl6OiBPYmplY3QuZnJlZXplKG5ldyBDaGlsaXpUZXN0bmV0KCkpLFxuICAgIGNvZGV4ZXRoOiBPYmplY3QuZnJlZXplKG5ldyBDb2RleEV0aFRlc3RuZXQoKSksXG4gICAgY29yZWRhbzogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZWRhb1Rlc3RuZXQoKSksXG4gICAgY3Jvbm9zOiBPYmplY3QuZnJlZXplKG5ldyBDcm9ub3NUZXN0bmV0KCkpLFxuICAgIGRhc2g6IE9iamVjdC5mcmVlemUobmV3IERhc2hUZXN0bmV0KCkpLFxuICAgIGRvZ2Vjb2luOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlY29pblRlc3RuZXQoKSksXG4gICAgZG9nZW9zOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlb3NUZXN0bmV0KCkpLFxuICAgIGRvdDogT2JqZWN0LmZyZWV6ZShuZXcgV2VzdGVuZEFzc2V0SHViKCkpLFxuICAgIGR5ZHg6IE9iamVjdC5mcmVlemUobmV3IER5ZHhUZXN0bmV0KCkpLFxuICAgIGVDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBFQ2FzaFRlc3RuZXQoKSksXG4gICAgZW9zOiBPYmplY3QuZnJlZXplKG5ldyBFb3NUZXN0bmV0KCkpLFxuICAgIGZpYXQ6IE9iamVjdC5mcmVlemUobmV3IEZpYXRUZXN0bmV0KCkpLFxuICAgIGZldGNoYWk6IE9iamVjdC5mcmVlemUobmV3IEZldGNoQWlUZXN0bmV0KCkpLFxuICAgIGZsb3c6IE9iamVjdC5mcmVlemUobmV3IEZsb3dUZXN0bmV0KCkpLFxuICAgIHRnYXNldm06IE9iamVjdC5mcmVlemUobmV3IEdhc0V2bVRlc3RuZXQoKSksXG4gICAgZmxyOiBPYmplY3QuZnJlZXplKG5ldyBGbGFyZVRlc3RuZXQoKSksXG4gICAgZmxyUDogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmVQVGVzdG5ldCgpKSxcbiAgICBmbHVlbnRldGg6IE9iamVjdC5mcmVlemUobmV3IEZsdWVudEVUSFRlc3RuZXQoKSksXG4gICAgaDogT2JqZWN0LmZyZWV6ZShuZXcgSHVtYW5pdHlQcm90b2NvbFRlc3RuZXQoKSksXG4gICAgbW9uOiBPYmplY3QuZnJlZXplKG5ldyBNb25hZFRlc3RuZXQoKSksXG4gICAgbWVnYWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgTWVnYUVUSFRlc3RuZXQoKSksXG4gICAgcHlybW9udDogT2JqZWN0LmZyZWV6ZShuZXcgUHlybW9udCgpKSxcbiAgICBwbHVtZTogT2JqZWN0LmZyZWV6ZShuZXcgUGx1bWVUZXN0bmV0KCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQ6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQoKSksXG4gICAgaGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgSGFzaFRlc3RuZXQoKSksXG4gICAgaGVkZXJhOiBPYmplY3QuZnJlZXplKG5ldyBIZWRlcmFUZXN0bmV0KCkpLFxuICAgIGhvb2RldGg6IE9iamVjdC5mcmVlemUobmV3IEhvb2RldGhUZXN0bmV0KCkpLFxuICAgIGhwcGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgSHBwZXRoVGVzdG5ldCgpKSxcbiAgICBwcml2aWRpdW1ldGg6IE9iamVjdC5mcmVlemUobmV3IFByaXZpZGl1bUVUSFRlc3RuZXQoKSksXG4gICAgaGVkZXJhRVZNOiBPYmplY3QuZnJlZXplKG5ldyBIZWRlcmFFVk1UZXN0bmV0KCkpLFxuICAgIGhlbWlldGg6IE9iamVjdC5mcmVlemUobmV3IEhlbWlFdGhUZXN0bmV0KCkpLFxuICAgIGlua2V0aDogT2JqZWN0LmZyZWV6ZShuZXcgSW5rRXRoVGVzdG5ldCgpKSxcbiAgICBpY3A6IE9iamVjdC5mcmVlemUobmV3IEljcFRlc3RuZXQoKSksXG4gICAgaXA6IE9iamVjdC5mcmVlemUobmV3IElQVGVzdG5ldCgpKSxcbiAgICBpbml0aWE6IE9iamVjdC5mcmVlemUobmV3IEluaXRpYVRlc3RuZXQoKSksXG4gICAgaW5qZWN0aXZlOiBPYmplY3QuZnJlZXplKG5ldyBJbmplY3RpdmVUZXN0bmV0KCkpLFxuICAgIGlvdGE6IE9iamVjdC5mcmVlemUobmV3IElvdGFUZXN0bmV0KCkpLFxuICAgIGlyeXM6IE9iamVjdC5mcmVlemUobmV3IElyeXNUZXN0bmV0KCkpLFxuICAgIGlzbG06IE9iamVjdC5mcmVlemUobmV3IElzbG1UZXN0bmV0KCkpLFxuICAgIGpvdmF5ZXRoOiBPYmplY3QuZnJlZXplKG5ldyBKb3ZheUVUSFRlc3RuZXQoKSksXG4gICAga2FzcGE6IE9iamVjdC5mcmVlemUobmV3IEthc3BhVGVzdG5ldCgpKSxcbiAgICBrYXRhbmFldGg6IE9iamVjdC5mcmVlemUobmV3IEthdGFuYUV0aFRlc3RuZXQoKSksXG4gICAga2F2YWNvc21vczogT2JqZWN0LmZyZWV6ZShuZXcgS2F2YUNvc21vc1Rlc3RuZXQoKSksXG4gICAga2F2YWV2bTogT2JqZWN0LmZyZWV6ZShuZXcgS2F2YUVWTVRlc3RuZXQoKSksXG4gICAga292YW46IE9iamVjdC5mcmVlemUobmV3IEtvdmFuKCkpLFxuICAgIGdvZXJsaTogT2JqZWN0LmZyZWV6ZShuZXcgR29lcmxpKCkpLFxuICAgIGhvbGVza3k6IE9iamVjdC5mcmVlemUobmV3IEhvbGVza3koKSksXG4gICAgaG9vZGk6IE9iamVjdC5mcmVlemUobmV3IEhvb2RpKCkpLFxuICAgIHNlcG9saWE6IE9iamVjdC5mcmVlemUobmV3IFNlcG9saWEoKSksXG4gICAgbG5idGM6IE9iamVjdC5mcmVlemUobmV3IExpZ2h0bmluZ0JpdGNvaW5UZXN0bmV0KCkpLFxuICAgIGxpdGVjb2luOiBPYmplY3QuZnJlZXplKG5ldyBMaXRlY29pblRlc3RuZXQoKSksXG4gICAgbWFudGxlOiBPYmplY3QuZnJlZXplKG5ldyBNYW50bGVUZXN0bmV0KCkpLFxuICAgIG1hbnRyYTogT2JqZWN0LmZyZWV6ZShuZXcgTWFudHJhVGVzdG5ldCgpKSxcbiAgICBwb2x5Z29uOiBPYmplY3QuZnJlZXplKG5ldyBQb2x5Z29uVGVzdG5ldCgpKSxcbiAgICBwb2x5eDogT2JqZWN0LmZyZWV6ZShuZXcgUG9seW1lc2hUZXN0bmV0KCkpLFxuICAgIHBlYXJsOiBPYmplY3QuZnJlZXplKG5ldyBQZWFybFRlc3RuZXQoKSksXG4gICAgcGhyczogT2JqZWN0LmZyZWV6ZShuZXcgUGhhcm9zVGVzdG5ldCgpKSxcbiAgICBjdGM6IE9iamVjdC5mcmVlemUobmV3IENyZWRpdGNvaW5UZXN0bmV0KCkpLFxuICAgIGh5cGVldm06IE9iamVjdC5mcmVlemUobmV3IEh5cGVFVk1UZXN0bmV0KCkpLFxuICAgIGh5cGVybGlxdWlkOiBPYmplY3QuZnJlZXplKG5ldyBIeXBlcmxpcXVpZFRlc3RuZXQoKSksXG4gICAgbGluZWFldGg6IE9iamVjdC5mcmVlemUobmV3IExpbmVhRVRIVGVzdG5ldCgpKSxcbiAgICBvYXM6IE9iamVjdC5mcmVlemUobmV3IE9hc1Rlc3RuZXQoKSksXG4gICAgb2c6IE9iamVjdC5mcmVlemUobmV3IE9nVGVzdG5ldCgpKSxcbiAgICBvZmM6IE9iamVjdC5mcmVlemUobmV3IE9mY1Rlc3RuZXQoKSksXG4gICAgb2tieGxheWVyOiBPYmplY3QuZnJlZXplKG5ldyBYbGF5ZXJUZXN0bmV0KCkpLFxuICAgIG9wYm5iOiBPYmplY3QuZnJlZXplKG5ldyBPcEJOQlRlc3RuZXQoKSksXG4gICAgZmFudG9tOiBPYmplY3QuZnJlZXplKG5ldyBGYW50b21UZXN0bmV0KCkpLFxuICAgIGNvdGlldGg6IE9iamVjdC5mcmVlemUobmV3IENvdGlldGhUZXN0bmV0KCkpLFxuICAgIG1vcnBoOiBPYmplY3QuZnJlZXplKG5ldyBNb3JwaFRlc3RuZXQoKSksXG4gICAgbW9ycGhldGg6IE9iamVjdC5mcmVlemUobmV3IE1vcnBoRVRIVGVzdG5ldCgpKSxcbiAgICBvcHRpbWlzbTogT2JqZWN0LmZyZWV6ZShuZXcgT3B0aW1pc21UZXN0bmV0KCkpLFxuICAgIG9zbW86IE9iamVjdC5mcmVlemUobmV3IE9zbW9UZXN0bmV0KCkpLFxuICAgIHJidGM6IE9iamVjdC5mcmVlemUobmV3IFJidGNUZXN0bmV0KCkpLFxuICAgIHJ1bmU6IE9iamVjdC5mcmVlemUobmV3IFJ1bmVUZXN0TmV0KCkpLFxuICAgIHNnYjogT2JqZWN0LmZyZWV6ZShuZXcgU29uZ2JpcmRUZXN0bmV0KCkpLFxuICAgIHN0ZWxsYXI6IE9iamVjdC5mcmVlemUobmV3IFN0ZWxsYXJUZXN0bmV0KCkpLFxuICAgIHNlaTogT2JqZWN0LmZyZWV6ZShuZXcgU2VpVGVzdG5ldCgpKSxcbiAgICBzZWlldm06IE9iamVjdC5mcmVlemUobmV3IFNlaUV2bVRlc3RuZXQoKSksXG4gICAgc29sOiBPYmplY3QuZnJlZXplKG5ldyBTb2xUZXN0bmV0KCkpLFxuICAgIHN0YXJrbmV0OiBPYmplY3QuZnJlZXplKG5ldyBTdGFya25ldFRlc3RuZXQoKSksXG4gICAgc3VpOiBPYmplY3QuZnJlZXplKG5ldyBTdWlUZXN0bmV0KCkpLFxuICAgIG5lYXI6IE9iamVjdC5mcmVlemUobmV3IE5lYXJUZXN0bmV0KCkpLFxuICAgIHN0eDogT2JqZWN0LmZyZWV6ZShuZXcgU3R4VGVzdG5ldCgpKSxcbiAgICBzdHQ6IE9iamVjdC5mcmVlemUobmV3IFNvbW5pYVRlc3RuZXQoKSksXG4gICAgc2Nyb2xsZXRoOiBPYmplY3QuZnJlZXplKG5ldyBTY3JvbGxFdGhUZXN0bmV0KCkpLFxuICAgIHNvbmVpdW06IE9iamVjdC5mcmVlemUobmV3IFNvbmVpdW1UZXN0bmV0KCkpLFxuICAgIHNvbmljOiBPYmplY3QuZnJlZXplKG5ldyBTb25pY1Rlc3RuZXQoKSksXG4gICAga2FpYTogT2JqZWN0LmZyZWV6ZShuZXcgS2FpYVRlc3RuZXQoKSksXG4gICAgc3VzZDogT2JqZWN0LmZyZWV6ZShuZXcgU1VTRFRlc3RuZXQoKSksXG4gICAgY29yZXVtOiBPYmplY3QuZnJlZXplKG5ldyBDb3JldW1UZXN0bmV0KCkpLFxuICAgIHRhbzogT2JqZWN0LmZyZWV6ZShuZXcgQml0dGVuc29yVGVzdG5ldCgpKSxcbiAgICB0ZW1wbzogT2JqZWN0LmZyZWV6ZShuZXcgVGVtcG9UZXN0bmV0KCkpLFxuICAgIHRpYTogT2JqZWN0LmZyZWV6ZShuZXcgVGlhVGVzdG5ldCgpKSxcbiAgICB0b246IE9iamVjdC5mcmVlemUobmV3IFRvblRlc3RuZXQoKSksXG4gICAgdHJ4OiBPYmplY3QuZnJlZXplKG5ldyBUcnhUZXN0bmV0KCkpLFxuICAgIHVzZHQwOiBPYmplY3QuZnJlZXplKG5ldyBVc2R0MFRlc3RuZXQoKSksXG4gICAgdmV0OiBPYmplY3QuZnJlZXplKG5ldyBWZXRUZXN0bmV0KCkpLFxuICAgIHdlbWl4OiBPYmplY3QuZnJlZXplKG5ldyBXZW1peFRlc3RuZXQoKSksXG4gICAgd29ybGQ6IE9iamVjdC5mcmVlemUobmV3IFdvcmxkVGVzdG5ldCgpKSxcbiAgICB4ZGM6IE9iamVjdC5mcmVlemUobmV3IFhkY1Rlc3RuZXQoKSksXG4gICAgeHBsOiBPYmplY3QuZnJlZXplKG5ldyBQbGFzbWFUZXN0bmV0KCkpLFxuICAgIHhycDogT2JqZWN0LmZyZWV6ZShuZXcgWHJwVGVzdG5ldCgpKSxcbiAgICB4dHo6IE9iamVjdC5mcmVlemUobmV3IFh0elRlc3RuZXQoKSksXG4gICAgeHR6ZXZtOiBPYmplY3QuZnJlZXplKG5ldyBYdHpFdm1UZXN0bmV0KCkpLFxuICAgIHpDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBaQ2FzaFRlc3RuZXQoKSksXG4gICAgemV0YTogT2JqZWN0LmZyZWV6ZShuZXcgWmV0YVRlc3RuZXQoKSksXG4gICAgemtTeW5jOiBPYmplY3QuZnJlZXplKG5ldyBaa1N5bmNUZXN0bmV0KCkpLFxuICAgIHprU3luY0VyYTogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jRXJhVGVzdG5ldCgpKSxcbiAgICB1bmlldGg6IE9iamVjdC5mcmVlemUobmV3IFVuaWV0aFRlc3RuZXQoKSksXG4gICAgYm9iYTogT2JqZWN0LmZyZWV6ZShuZXcgQm9iYVRlc3RuZXQoKSksXG4gIH0sXG59O1xuXG5jb25zdCBuZXR3b3JrQnlOYW1lOiBNYXA8c3RyaW5nLCBCYXNlTmV0d29yaz4gPSBuZXcgTWFwKFxuICBPYmplY3QudmFsdWVzKE5ldHdvcmtzKS5mbGF0TWFwKChjYXRlZ29yeSkgPT4gT2JqZWN0LnZhbHVlcyhjYXRlZ29yeSkubWFwKChuZXR3b3JrKSA9PiBbbmV0d29yay5uYW1lLCBuZXR3b3JrXSkpXG4pO1xuXG4vKipcbiAqIExvb2sgdXAgYSByZWdpc3RlcmVkIG5ldHdvcmsgYnkgaXRzIGRpc3BsYXkgbmFtZSAoZS5nLiBcIkV0aGVyZXVtXCIsIFwiQml0Y29pblwiKS5cbiAqIFJldHVybnMgdW5kZWZpbmVkIGZvciBuYW1lcyBub3QgcmVnaXN0ZXJlZCBpbiBsb2NhbCBzdGF0aWNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya0J5TmFtZShuYW1lOiBzdHJpbmcpOiBCYXNlTmV0d29yayB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBuZXR3b3JrQnlOYW1lLmdldChuYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtzTWFwKCk6IE1hcDxzdHJpbmcsIEJhc2VOZXR3b3JrPiB7XG4gIHJldHVybiBuZXcgTWFwKG5ldHdvcmtCeU5hbWUpO1xufVxuXG4vKipcbiAqIER5bmFtaWNhbGx5IHJlZ2lzdGVyIGEgbmV3IG5ldHdvcmsgaW4gdGhlIGxvb2t1cCBtYXAuXG4gKiBUaHJvd3MgaWYgYSBuZXR3b3JrIHdpdGggdGhlIHNhbWUgbmFtZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck5ldHdvcmsobmV0d29yazogQmFzZU5ldHdvcmspOiB2b2lkIHtcbiAgaWYgKG5ldHdvcmtCeU5hbWUuaGFzKG5ldHdvcmsubmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5ldHdvcmsgJyR7bmV0d29yay5uYW1lfScgaXMgYWxyZWFkeSByZWdpc3RlcmVkYCk7XG4gIH1cbiAgbmV0d29ya0J5TmFtZS5zZXQobmV0d29yay5uYW1lLCBuZXR3b3JrKTtcbn1cblxuLyoqXG4gKiBMb29rIHVwIGEgbmV0d29yayBieSBpdHMgZGlzcGxheSBuYW1lIG9yIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKlxuICogUmVzb2x1dGlvbiBvcmRlcjpcbiAqICAgMS4gSWYgYG5ldHdvcmtgIGlzIGEgSlNPTiBzdHJpbmcgcmVwcmVzZW50aW5nIGEgRHluYW1pY05ldHdvcmtPcHRpb25zIG9iamVjdFxuICogICAgICAobXVzdCBoYXZlIGBuYW1lYCwgYHR5cGVgLCBhbmQgYGZhbWlseWAgZmllbGRzKSwgY29uc3RydWN0IGFuZFxuICogICAgICByZXR1cm4gYSBuZXcgRHluYW1pY05ldHdvcmsgaW5zdGFuY2UuXG4gKiAgIDIuIExvY2FsIHN0YXRpY3MgY2FjaGUgdmlhIGdldE5ldHdvcmtCeU5hbWUoKS5cbiAqXG4gKiBAcGFyYW0gbmV0d29yayAtIEEgbmV0d29yayBkaXNwbGF5IG5hbWUgKGUuZy4gXCJiaXRjb2luXCIpIG9yIGEgSlNPTi1lbmNvZGVkXG4gKiAgIER5bmFtaWNOZXR3b3JrT3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgQmFzZU5ldHdvcmsgKG9yIER5bmFtaWNOZXR3b3JrKSBpbnN0YW5jZS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgbmV0d29yayBpcyBub3QgZm91bmQgaW4gbG9jYWwgc3RhdGljcyBhbmQgdGhlIGlucHV0XG4gKiAgIGlzIG5vdCBhIHZhbGlkIER5bmFtaWNOZXR3b3JrT3B0aW9ucyBKU09OIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmsobmV0d29yazogc3RyaW5nKTogQmFzZU5ldHdvcmsge1xuICAvLyBDaGVjayBpZiB0aGUgaW5wdXQgaXMgYSBKU09OLWVuY29kZWQgRHluYW1pY05ldHdvcmtPcHRpb25zIG9iamVjdC5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG5ldHdvcmspO1xuICAgIGlmIChcbiAgICAgIHBhcnNlZCAhPT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIHBhcnNlZCA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHR5cGVvZiBwYXJzZWQubmFtZSA9PT0gJ3N0cmluZycgJiZcbiAgICAgIHR5cGVvZiBwYXJzZWQudHlwZSA9PT0gJ3N0cmluZycgJiZcbiAgICAgIHR5cGVvZiBwYXJzZWQuZmFtaWx5ID09PSAnc3RyaW5nJ1xuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBEeW5hbWljTmV0d29yayhwYXJzZWQgYXMgRHluYW1pY05ldHdvcmtPcHRpb25zKTtcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIC8vIE5vdCB2YWxpZCBKU09OIOKAlCBmYWxsIHRocm91Z2ggdG8gbG9jYWwgbG9va3VwIGJ5IG5hbWUuXG4gIH1cblxuICBjb25zdCBuZXR3b3JrT2JqID0gZ2V0TmV0d29ya0J5TmFtZShuZXR3b3JrKTtcbiAgaWYgKCFuZXR3b3JrT2JqKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBOZXR3b3JrICR7bmV0d29ya30gbm90IGZvdW5kYCk7XG4gIH1cbiAgcmV0dXJuIG5ldHdvcmtPYmo7XG59XG4iXX0=
|