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