@mainsail/evm-contracts 0.0.1-evm.7 → 0.0.1-evm.9
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/distribution/abis/ConsensusV1.json +838 -0
- package/distribution/abis/ERC1967Proxy.json +181 -0
- package/distribution/function-sigs.d.ts +7 -2
- package/distribution/function-sigs.d.ts.map +1 -1
- package/distribution/function-sigs.js +7 -2
- package/distribution/function-sigs.js.map +1 -1
- package/distribution/index.d.ts +2 -1
- package/distribution/index.d.ts.map +1 -1
- package/distribution/index.js +2 -1
- package/distribution/index.js.map +1 -1
- package/package.json +1 -1
- package/distribution/abis/Consensus.json +0 -594
@@ -0,0 +1,838 @@
|
|
1
|
+
{
|
2
|
+
"abi": [
|
3
|
+
{
|
4
|
+
"type": "function",
|
5
|
+
"name": "UPGRADE_INTERFACE_VERSION",
|
6
|
+
"inputs": [],
|
7
|
+
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
|
8
|
+
"stateMutability": "view"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"type": "function",
|
12
|
+
"name": "activeValidatorsCount",
|
13
|
+
"inputs": [],
|
14
|
+
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
|
15
|
+
"stateMutability": "view"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"type": "function",
|
19
|
+
"name": "calculateActiveValidators",
|
20
|
+
"inputs": [{ "name": "n", "type": "uint8", "internalType": "uint8" }],
|
21
|
+
"outputs": [],
|
22
|
+
"stateMutability": "nonpayable"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"type": "function",
|
26
|
+
"name": "getActiveValidators",
|
27
|
+
"inputs": [],
|
28
|
+
"outputs": [
|
29
|
+
{
|
30
|
+
"name": "",
|
31
|
+
"type": "tuple[]",
|
32
|
+
"internalType": "struct Validator[]",
|
33
|
+
"components": [
|
34
|
+
{ "name": "addr", "type": "address", "internalType": "address" },
|
35
|
+
{
|
36
|
+
"name": "data",
|
37
|
+
"type": "tuple",
|
38
|
+
"internalType": "struct ValidatorData",
|
39
|
+
"components": [
|
40
|
+
{ "name": "votersCount", "type": "uint256", "internalType": "uint256" },
|
41
|
+
{ "name": "voteBalance", "type": "uint256", "internalType": "uint256" },
|
42
|
+
{ "name": "isResigned", "type": "bool", "internalType": "bool" },
|
43
|
+
{ "name": "blsPublicKey", "type": "bytes", "internalType": "bytes" }
|
44
|
+
]
|
45
|
+
}
|
46
|
+
]
|
47
|
+
}
|
48
|
+
],
|
49
|
+
"stateMutability": "view"
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"type": "function",
|
53
|
+
"name": "getAllValidators",
|
54
|
+
"inputs": [],
|
55
|
+
"outputs": [
|
56
|
+
{
|
57
|
+
"name": "",
|
58
|
+
"type": "tuple[]",
|
59
|
+
"internalType": "struct Validator[]",
|
60
|
+
"components": [
|
61
|
+
{ "name": "addr", "type": "address", "internalType": "address" },
|
62
|
+
{
|
63
|
+
"name": "data",
|
64
|
+
"type": "tuple",
|
65
|
+
"internalType": "struct ValidatorData",
|
66
|
+
"components": [
|
67
|
+
{ "name": "votersCount", "type": "uint256", "internalType": "uint256" },
|
68
|
+
{ "name": "voteBalance", "type": "uint256", "internalType": "uint256" },
|
69
|
+
{ "name": "isResigned", "type": "bool", "internalType": "bool" },
|
70
|
+
{ "name": "blsPublicKey", "type": "bytes", "internalType": "bytes" }
|
71
|
+
]
|
72
|
+
}
|
73
|
+
]
|
74
|
+
}
|
75
|
+
],
|
76
|
+
"stateMutability": "view"
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"type": "function",
|
80
|
+
"name": "getRounds",
|
81
|
+
"inputs": [
|
82
|
+
{ "name": "offset", "type": "uint256", "internalType": "uint256" },
|
83
|
+
{ "name": "count", "type": "uint256", "internalType": "uint256" }
|
84
|
+
],
|
85
|
+
"outputs": [
|
86
|
+
{
|
87
|
+
"name": "",
|
88
|
+
"type": "tuple[]",
|
89
|
+
"internalType": "struct Round[]",
|
90
|
+
"components": [
|
91
|
+
{ "name": "round", "type": "uint256", "internalType": "uint256" },
|
92
|
+
{
|
93
|
+
"name": "validators",
|
94
|
+
"type": "tuple[]",
|
95
|
+
"internalType": "struct RoundValidator[]",
|
96
|
+
"components": [
|
97
|
+
{ "name": "addr", "type": "address", "internalType": "address" },
|
98
|
+
{ "name": "voteBalance", "type": "uint256", "internalType": "uint256" }
|
99
|
+
]
|
100
|
+
}
|
101
|
+
]
|
102
|
+
}
|
103
|
+
],
|
104
|
+
"stateMutability": "view"
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"type": "function",
|
108
|
+
"name": "getRoundsCount",
|
109
|
+
"inputs": [],
|
110
|
+
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
|
111
|
+
"stateMutability": "view"
|
112
|
+
},
|
113
|
+
{
|
114
|
+
"type": "function",
|
115
|
+
"name": "getValidator",
|
116
|
+
"inputs": [{ "name": "addr", "type": "address", "internalType": "address" }],
|
117
|
+
"outputs": [
|
118
|
+
{
|
119
|
+
"name": "",
|
120
|
+
"type": "tuple",
|
121
|
+
"internalType": "struct Validator",
|
122
|
+
"components": [
|
123
|
+
{ "name": "addr", "type": "address", "internalType": "address" },
|
124
|
+
{
|
125
|
+
"name": "data",
|
126
|
+
"type": "tuple",
|
127
|
+
"internalType": "struct ValidatorData",
|
128
|
+
"components": [
|
129
|
+
{ "name": "votersCount", "type": "uint256", "internalType": "uint256" },
|
130
|
+
{ "name": "voteBalance", "type": "uint256", "internalType": "uint256" },
|
131
|
+
{ "name": "isResigned", "type": "bool", "internalType": "bool" },
|
132
|
+
{ "name": "blsPublicKey", "type": "bytes", "internalType": "bytes" }
|
133
|
+
]
|
134
|
+
}
|
135
|
+
]
|
136
|
+
}
|
137
|
+
],
|
138
|
+
"stateMutability": "view"
|
139
|
+
},
|
140
|
+
{
|
141
|
+
"type": "function",
|
142
|
+
"name": "getVotes",
|
143
|
+
"inputs": [
|
144
|
+
{ "name": "addr", "type": "address", "internalType": "address" },
|
145
|
+
{ "name": "count", "type": "uint256", "internalType": "uint256" }
|
146
|
+
],
|
147
|
+
"outputs": [
|
148
|
+
{
|
149
|
+
"name": "",
|
150
|
+
"type": "tuple[]",
|
151
|
+
"internalType": "struct VoteResult[]",
|
152
|
+
"components": [
|
153
|
+
{ "name": "voter", "type": "address", "internalType": "address" },
|
154
|
+
{ "name": "validator", "type": "address", "internalType": "address" }
|
155
|
+
]
|
156
|
+
}
|
157
|
+
],
|
158
|
+
"stateMutability": "view"
|
159
|
+
},
|
160
|
+
{
|
161
|
+
"type": "function",
|
162
|
+
"name": "getVotesCount",
|
163
|
+
"inputs": [],
|
164
|
+
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
|
165
|
+
"stateMutability": "view"
|
166
|
+
},
|
167
|
+
{ "type": "function", "name": "initialize", "inputs": [], "outputs": [], "stateMutability": "nonpayable" },
|
168
|
+
{
|
169
|
+
"type": "function",
|
170
|
+
"name": "isValidatorRegistered",
|
171
|
+
"inputs": [{ "name": "addr", "type": "address", "internalType": "address" }],
|
172
|
+
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
|
173
|
+
"stateMutability": "view"
|
174
|
+
},
|
175
|
+
{
|
176
|
+
"type": "function",
|
177
|
+
"name": "proxiableUUID",
|
178
|
+
"inputs": [],
|
179
|
+
"outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
|
180
|
+
"stateMutability": "view"
|
181
|
+
},
|
182
|
+
{
|
183
|
+
"type": "function",
|
184
|
+
"name": "registerValidator",
|
185
|
+
"inputs": [{ "name": "blsPublicKey", "type": "bytes", "internalType": "bytes" }],
|
186
|
+
"outputs": [],
|
187
|
+
"stateMutability": "nonpayable"
|
188
|
+
},
|
189
|
+
{
|
190
|
+
"type": "function",
|
191
|
+
"name": "registeredValidatorsCount",
|
192
|
+
"inputs": [],
|
193
|
+
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
|
194
|
+
"stateMutability": "view"
|
195
|
+
},
|
196
|
+
{ "type": "function", "name": "resignValidator", "inputs": [], "outputs": [], "stateMutability": "nonpayable" },
|
197
|
+
{
|
198
|
+
"type": "function",
|
199
|
+
"name": "resignedValidatorsCount",
|
200
|
+
"inputs": [],
|
201
|
+
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
|
202
|
+
"stateMutability": "view"
|
203
|
+
},
|
204
|
+
{ "type": "function", "name": "unvote", "inputs": [], "outputs": [], "stateMutability": "nonpayable" },
|
205
|
+
{
|
206
|
+
"type": "function",
|
207
|
+
"name": "updateValidator",
|
208
|
+
"inputs": [{ "name": "blsPublicKey", "type": "bytes", "internalType": "bytes" }],
|
209
|
+
"outputs": [],
|
210
|
+
"stateMutability": "nonpayable"
|
211
|
+
},
|
212
|
+
{
|
213
|
+
"type": "function",
|
214
|
+
"name": "updateVoters",
|
215
|
+
"inputs": [{ "name": "voters", "type": "address[]", "internalType": "address[]" }],
|
216
|
+
"outputs": [],
|
217
|
+
"stateMutability": "nonpayable"
|
218
|
+
},
|
219
|
+
{
|
220
|
+
"type": "function",
|
221
|
+
"name": "upgradeToAndCall",
|
222
|
+
"inputs": [
|
223
|
+
{ "name": "newImplementation", "type": "address", "internalType": "address" },
|
224
|
+
{ "name": "data", "type": "bytes", "internalType": "bytes" }
|
225
|
+
],
|
226
|
+
"outputs": [],
|
227
|
+
"stateMutability": "payable"
|
228
|
+
},
|
229
|
+
{
|
230
|
+
"type": "function",
|
231
|
+
"name": "version",
|
232
|
+
"inputs": [],
|
233
|
+
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
|
234
|
+
"stateMutability": "pure"
|
235
|
+
},
|
236
|
+
{
|
237
|
+
"type": "function",
|
238
|
+
"name": "vote",
|
239
|
+
"inputs": [{ "name": "addr", "type": "address", "internalType": "address" }],
|
240
|
+
"outputs": [],
|
241
|
+
"stateMutability": "nonpayable"
|
242
|
+
},
|
243
|
+
{
|
244
|
+
"type": "event",
|
245
|
+
"name": "Initialized",
|
246
|
+
"inputs": [{ "name": "version", "type": "uint64", "indexed": false, "internalType": "uint64" }],
|
247
|
+
"anonymous": false
|
248
|
+
},
|
249
|
+
{
|
250
|
+
"type": "event",
|
251
|
+
"name": "Unvoted",
|
252
|
+
"inputs": [
|
253
|
+
{ "name": "voter", "type": "address", "indexed": false, "internalType": "address" },
|
254
|
+
{ "name": "validator", "type": "address", "indexed": false, "internalType": "address" }
|
255
|
+
],
|
256
|
+
"anonymous": false
|
257
|
+
},
|
258
|
+
{
|
259
|
+
"type": "event",
|
260
|
+
"name": "Upgraded",
|
261
|
+
"inputs": [{ "name": "implementation", "type": "address", "indexed": true, "internalType": "address" }],
|
262
|
+
"anonymous": false
|
263
|
+
},
|
264
|
+
{
|
265
|
+
"type": "event",
|
266
|
+
"name": "ValidatorRegistered",
|
267
|
+
"inputs": [
|
268
|
+
{ "name": "addr", "type": "address", "indexed": false, "internalType": "address" },
|
269
|
+
{ "name": "blsPublicKey", "type": "bytes", "indexed": false, "internalType": "bytes" }
|
270
|
+
],
|
271
|
+
"anonymous": false
|
272
|
+
},
|
273
|
+
{
|
274
|
+
"type": "event",
|
275
|
+
"name": "ValidatorResigned",
|
276
|
+
"inputs": [{ "name": "addr", "type": "address", "indexed": false, "internalType": "address" }],
|
277
|
+
"anonymous": false
|
278
|
+
},
|
279
|
+
{
|
280
|
+
"type": "event",
|
281
|
+
"name": "ValidatorUpdated",
|
282
|
+
"inputs": [
|
283
|
+
{ "name": "addr", "type": "address", "indexed": false, "internalType": "address" },
|
284
|
+
{ "name": "blsPublicKey", "type": "bytes", "indexed": false, "internalType": "bytes" }
|
285
|
+
],
|
286
|
+
"anonymous": false
|
287
|
+
},
|
288
|
+
{
|
289
|
+
"type": "event",
|
290
|
+
"name": "Voted",
|
291
|
+
"inputs": [
|
292
|
+
{ "name": "voter", "type": "address", "indexed": false, "internalType": "address" },
|
293
|
+
{ "name": "validator", "type": "address", "indexed": false, "internalType": "address" }
|
294
|
+
],
|
295
|
+
"anonymous": false
|
296
|
+
},
|
297
|
+
{
|
298
|
+
"type": "error",
|
299
|
+
"name": "AddressEmptyCode",
|
300
|
+
"inputs": [{ "name": "target", "type": "address", "internalType": "address" }]
|
301
|
+
},
|
302
|
+
{ "type": "error", "name": "BellowMinValidators", "inputs": [] },
|
303
|
+
{ "type": "error", "name": "BlsKeyAlreadyRegistered", "inputs": [] },
|
304
|
+
{ "type": "error", "name": "BlsKeyIsInvalid", "inputs": [] },
|
305
|
+
{ "type": "error", "name": "CallerIsNotOwner", "inputs": [] },
|
306
|
+
{ "type": "error", "name": "CallerIsNotValidator", "inputs": [] },
|
307
|
+
{ "type": "error", "name": "CallerIsOwner", "inputs": [] },
|
308
|
+
{
|
309
|
+
"type": "error",
|
310
|
+
"name": "ERC1967InvalidImplementation",
|
311
|
+
"inputs": [{ "name": "implementation", "type": "address", "internalType": "address" }]
|
312
|
+
},
|
313
|
+
{ "type": "error", "name": "ERC1967NonPayable", "inputs": [] },
|
314
|
+
{ "type": "error", "name": "FailedCall", "inputs": [] },
|
315
|
+
{ "type": "error", "name": "InvalidInitialization", "inputs": [] },
|
316
|
+
{
|
317
|
+
"type": "error",
|
318
|
+
"name": "InvalidRange",
|
319
|
+
"inputs": [
|
320
|
+
{ "name": "min", "type": "uint256", "internalType": "uint256" },
|
321
|
+
{ "name": "max", "type": "uint256", "internalType": "uint256" }
|
322
|
+
]
|
323
|
+
},
|
324
|
+
{ "type": "error", "name": "MissingVote", "inputs": [] },
|
325
|
+
{ "type": "error", "name": "NotInitializing", "inputs": [] },
|
326
|
+
{ "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] },
|
327
|
+
{
|
328
|
+
"type": "error",
|
329
|
+
"name": "UUPSUnsupportedProxiableUUID",
|
330
|
+
"inputs": [{ "name": "slot", "type": "bytes32", "internalType": "bytes32" }]
|
331
|
+
},
|
332
|
+
{ "type": "error", "name": "ValidatorAlreadyRegistered", "inputs": [] },
|
333
|
+
{ "type": "error", "name": "ValidatorAlreadyResigned", "inputs": [] },
|
334
|
+
{ "type": "error", "name": "ValidatorNotRegistered", "inputs": [] },
|
335
|
+
{ "type": "error", "name": "VoteResignedValidator", "inputs": [] },
|
336
|
+
{ "type": "error", "name": "VoteSameValidator", "inputs": [] }
|
337
|
+
],
|
338
|
+
"bytecode": {
|
339
|
+
"object": "0x60a0604052306080523480156012575f5ffd5b5060805161313a6100395f395f8181611ca101528181611cca0152611e32015261313a5ff3fe60806040526004361061013c575f3560e01c8063602a9eee116100b3578063ad3cb1cc1161006d578063ad3cb1cc14610317578063b85f5da214610354578063d04a68c714610368578063eb9019d4146103af578063f1bd0b37146103db578063f3513a37146103ef575f5ffd5b8063602a9eee146102715780636dd7d8ea146102905780638129fc1c146102af578063857861db146102c35780639de70258146102e2578063a09686c414610303575f5ffd5b80633174b689116101045780633174b689146101d857806340f74f47146101ec5780634f1ef2861461021857806352d1902d1461022b57806354fd4d501461023f5780635a8eed7314610252575f5ffd5b80630777cbef146101405780630d2bd909146101635780631904bb2e146101775780631b605b86146101a35780632bdf6d43146101b7575b5f5ffd5b34801561014b575f5ffd5b506006545b6040519081526020015b60405180910390f35b34801561016e575f5ffd5b50600e54610150565b348015610182575f5ffd5b5061019661019136600461298c565b610403565b60405161015a9190612a4b565b3480156101ae575f5ffd5b50600a54610150565b3480156101c2575f5ffd5b506101d66101d1366004612a5d565b610534565b005b3480156101e3575f5ffd5b506101d66105a4565b3480156101f7575f5ffd5b5061020b610206366004612acc565b6105f3565b60405161015a9190612aec565b6101d6610226366004612bb9565b6107a9565b348015610236575f5ffd5b506101506107c8565b34801561024a575f5ffd5b506001610150565b34801561025d575f5ffd5b506101d661026c366004612c7a565b6107e3565b34801561027c575f5ffd5b506101d661028b366004612c7a565b6108a2565b34801561029b575f5ffd5b506101d66102aa36600461298c565b610a5a565b3480156102ba575f5ffd5b506101d6610ce4565b3480156102ce575f5ffd5b506101d66102dd366004612cd6565b610dfc565b3480156102ed575f5ffd5b506102f6611344565b60405161015a9190612cf6565b34801561030e575f5ffd5b50601054610150565b348015610322575f5ffd5b50610347604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015a9190612d4d565b34801561035f575f5ffd5b506101d66114e1565b348015610373575f5ffd5b5061039f61038236600461298c565b6001600160a01b03165f9081526002602052604090205460ff1690565b604051901515815260200161015a565b3480156103ba575f5ffd5b506103ce6103c9366004612d5f565b6115d3565b60405161015a9190612d87565b3480156103e6575f5ffd5b50600554610150565b3480156103fa575f5ffd5b506102f66117f7565b61040b612896565b6001600160a01b0382165f9081526002602052604090205460ff166104435760405163510b8aad60e11b815260040160405180910390fd5b6040805180820182526001600160a01b0384168082525f90815260016020818152918490208451608081018652815481529181015482840152600281015460ff161515948201949094526003840180549394928501939192916060840191906104ab90612de1565b80601f01602080910402602001604051908101604052809291908181526020018280546104d790612de1565b80156105225780601f106104f957610100808354040283529160200191610522565b820191905f5260205f20905b81548152906001019060200180831161050557829003601f168201915b50505091909252505050905292915050565b5f546001600160a01b0316331461055e57604051636db2465f60e01b815260040160405180910390fd5b5f5b8181101561059f5761059783838381811061057d5761057d612e13565b9050602002016020810190610592919061298c565b61198e565b600101610560565b505050565b7f6572af8bf9a0a86efb88dcc30011626a15c9c4603503aa4466a3f87a1867deef336105ce611a6e565b604080516001600160a01b0393841681529290911660208301520160405180910390a1565b5f546060906001600160a01b0316331461062057604051636db2465f60e01b815260040160405180910390fd5b6010548290841061063257505f610656565b60105461063f8486612e3b565b111561065657601054610653908590612e4e565b90505b5f816001600160401b0381111561066f5761066f612ba5565b6040519080825280602002602001820160405280156106b457816020015b604080518082019091525f81526060602082015281526020019060019003908161068d5790505b5090505f5b8281101561079e57604051806040016040528082886106d89190612e3b565b6106e3906001612e3b565b815260200160106106f4848a612e3b565b8154811061070457610704612e13565b905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b82821015610772575f848152602090819020604080518082019091526002850290910180546001600160a01b0316825260019081015482840152908352909201910161072b565b5050505081525082828151811061078b5761078b612e13565b60209081029190910101526001016106b9565b509150505b92915050565b6107b1611c96565b6107ba82611d3c565b6107c48282611d66565b5050565b5f6107d1611e27565b505f5160206130e55f395f51905f5290565b5f546001600160a01b0316330361080d57604051630c148c4960e31b815260040160405180910390fd5b335f9081526002602052604090205460ff1661083c5760405163510b8aad60e11b815260040160405180910390fd5b6108468282611e70565b335f908152600160205260409020600301610862828483612ea5565b507f4af0b5984c9f88659d661fb64dcb63a5b946809cf1c78a8c6e0f6ef93c91703233838360405161089693929190612f5e565b60405180910390a15050565b5f546001600160a01b031633036108cc57604051630c148c4960e31b815260040160405180910390fd5b335f9081526002602052604090205460ff16156108fc5760405163132e7efb60e31b815260040160405180910390fd5b6109068282611e70565b5f60405180608001604052805f81526020015f81526020015f1515815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093909452505060058054939450915061096f83612f9d565b9091555050335f9081526002602081815260408084208054600160ff19918216811790925581845294829020865181559286015190830155840151918101805490931691151591909117909155606082015182919060038201906109d39082612fb5565b5050600480546001810182555f919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916339081179091556040517f61809fa303a3a57f4d70552f533f3e0b003173d424590cd4bb22a2afe000990c9250610a4d919086908690612f5e565b60405180910390a1505050565b5f546001600160a01b03163303610a8457604051630c148c4960e31b815260040160405180910390fd5b6001600160a01b0381165f9081526002602052604090205460ff16610abc5760405163510b8aad60e11b815260040160405180910390fd5b6001600160a01b0381165f908152600160205260409020600281015460ff1615610af95760405163510ae2bd60e11b815260040160405180910390fd5b335f90815260076020526040902080546001600160a01b03848116911603610b3457604051630d41c52760e01b815260040160405180910390fd5b80546001600160a01b031615610b4e57610b4c611a6e565b505b604080516080810182526001600160a01b03808616825233803160208085019182525f85870181815260608701828152948252600790925295909520935184549084166001600160a01b03199182161785559051600185015593516002840180549184169186169190911790555160039092018054928216929093169190911790915560085416610c005760088054336001600160a01b03199182168117909255600980549091169091179055610c57565b600980546001600160a01b039081165f9081526007602052604080822060030180546001600160a01b0319908116339081179092558554828552929093206002018054841692909416919091179092558254161790555b600a8054905f610c6683612f9d565b9190505550336001600160a01b031631826001015f828254610c889190612e3b565b9091555050815460019083905f90610ca1908490612e3b565b9091555050604080513381526001600160a01b03851660208201527fce0c7a2a940807f7dc2ce7a615c2532e915e6c0ac9a08bc4ed9d515a710a53e29101610a4d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610d285750825b90505f826001600160401b03166001148015610d435750303b155b905081158015610d51575080155b15610d6f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d9957845460ff60401b1916600160401b1785555b5f80546001600160a01b031916331790556001600f558315610df557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b5f546001600160a01b03163314610e2657604051636db2465f60e01b815260040160405180910390fd5b60ff8116600f55610e376004611ee4565b610e3f612028565b600d80546001600160a01b03191690556006546005545f91610e719160ff8516918491610e6c9190612e4e565b612079565b90508060ff165f03610e81575050565b5f5b60045481101561112c575f60048281548110610ea157610ea1612e13565b5f9182526020808320909101546001600160a01b03168083526001909152604090912060028101549192509060ff1615610edc575050611124565b600d546001600160a01b0316610f175750600d80546001600160a01b0319166001600160a01b03929092169190911790556001600e55611124565b8360ff16600e541015610f3557610f2e82856120cd565b5050611124565b600d546001600160a01b039081165f908152600160208181526040928390208351808501855294871685528351608081018552865481529286015483830152600286015460ff16151593830193909352600385018054939461111194909392840192918791606084019190610fa990612de1565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd590612de1565b80156110205780601f10610ff757610100808354040283529160200191611020565b820191905f5260205f20905b81548152906001019060200180831161100357829003601f168201915b505050919092525050509052604080518082018252600d546001600160a01b031681528151608081018352855481526001860154602082810191909152600287015460ff1615159382019390935260038601805492938401928791606084019161108990612de1565b80601f01602080910402602001604051908101604052809291908181526020018280546110b590612de1565b80156111005780601f106110d757610100808354040283529160200191611100565b820191905f5260205f20905b8154815290600101906020018083116110e357829003601f168201915b5050505050815250508152506124a9565b156111205761112083866120cd565b5050505b600101610e83565b50600d546001600160a01b03165f60ff83166001600160401b0381111561115557611155612ba5565b60405190808252806020026020018201604052801561117e578160200160208202803683370190505b5090505f5b8360ff168110156111d957828282815181106111a1576111a1612e13565b6001600160a01b039283166020918202929092018101919091529381165f908152600b90945260409093205490921691600101611183565b506111e3816124ed565b601080546001810182555f9182527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672019061122090600c906128df565b600f546001600160401b0381111561123a5761123a612ba5565b604051908082528060200260200182016040528015611263578160200160208202803683370190505b50805161127891600c916020909101906128fa565b505f5b600f5481101561133b575f8361129460ff88168461306f565b815181106112a4576112a4612e13565b6020026020010151905080600c83815481106112c2576112c2612e13565b5f918252602080832090910180546001600160a01b039485166001600160a01b0319918216179091556040805180820182529585168087528452600180845290842081015486840190815288548083018a558986529390942095516002909302909501805492909416911617825551908201550161127b565b50505050505b50565b600c546060905f906001600160401b0381111561136357611363612ba5565b60405190808252806020026020018201604052801561139c57816020015b611389612896565b8152602001906001900390816113815790505b5090505f5b600c548110156114db575f600c82815481106113bf576113bf612e13565b5f9182526020808320909101546001600160a01b03168083526001808352604093849020845180860186528381528551608081018752825481529282015483860152600282015460ff161515958301959095526003810180549396509094938401928591606084019161143190612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461145d90612de1565b80156114a85780601f1061147f576101008083540402835291602001916114a8565b820191905f5260205f20905b81548152906001019060200180831161148b57829003601f168201915b5050505050815250508152508484815181106114c6576114c6612e13565b602090810291909101015250506001016113a1565b50919050565b335f9081526002602052604090205460ff166115105760405163668191af60e11b815260040160405180910390fd5b335f908152600160205260409020600281015460ff161561154457604051632d8b5c9760e21b815260040160405180910390fd5b600f546006546005546115579190612e4e565b1161157557604051633b15f1f760e21b815260040160405180910390fd5b60028101805460ff19166001908117909155600680545f90611598908490612e3b565b90915550506040513381527f24250fc1ec78a1405ddd4cc8b75964858af228d05faa8d4bc1302966d8a541179060200160405180910390a150565b5f546060906001600160a01b0316331461160057604051636db2465f60e01b815260040160405180910390fd5b5f61160e835f600a54612079565b6001600160401b0381111561162557611625612ba5565b60405190808252806020026020018201604052801561166957816020015b604080518082019091525f80825260208201528152602001906001900390816116435790505b506008549091506001600160a01b03908116908516156116a257506001600160a01b038085165f90815260076020526040902060030154165b5f5b6001600160a01b038216158015906116bb57508481105b15611730576001600160a01b038083165f8181526007602090815260409182902082518084019093529282528254909316928101929092529084836116ff81612f9d565b94508151811061171157611711612e13565b6020908102919091010152600301546001600160a01b031691506116a4565b80835103611743578293505050506107a3565b5f816001600160401b0381111561175c5761175c612ba5565b6040519080825280602002602001820160405280156117a057816020015b604080518082019091525f808252602082015281526020019060019003908161177a5790505b5090505f5b828110156117ec578481815181106117bf576117bf612e13565b60200260200101518282815181106117d9576117d9612e13565b60209081029190910101526001016117a5565b509695505050505050565b6004546060905f906001600160401b0381111561181657611816612ba5565b60405190808252806020026020018201604052801561184f57816020015b61183c612896565b8152602001906001900390816118345790505b5090505f5b6004548110156114db575f6004828154811061187257611872612e13565b5f9182526020808320909101546001600160a01b03168083526001808352604093849020845180860186528381528551608081018752825481529282015483860152600282015460ff16151595830195909552600381018054939650909493840192859160608401916118e490612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461191090612de1565b801561195b5780601f106119325761010080835404028352916020019161195b565b820191905f5260205f20905b81548152906001019060200180831161193e57829003601f168201915b50505050508152505081525084848151811061197957611979612e13565b60209081029190910101525050600101611854565b6001600160a01b038082165f90815260076020526040902080549091166119b3575050565b60018101546001600160a01b03831631811015611a14576119de816001600160a01b03851631612e4e565b82546001600160a01b03165f9081526001602081905260408220018054909190611a09908490612e3b565b90915550611a599050565b611a286001600160a01b0384163182612e4e565b82546001600160a01b03165f9081526001602081905260408220018054909190611a53908490612e4e565b90915550505b506001600160a01b0390911631600190910155565b335f90815260076020526040812080546001600160a01b0316611aa45760405163498ea63d60e01b815260040160405180910390fd5b6009546008546001600160a01b03918216911603611add57600880546001600160a01b0319908116909155600980549091169055611bf0565b600954336001600160a01b0390911603611b36576002810180546001600160a01b039081165f90815260076020526040902060030180546001600160a01b03199081169091559154600980549093169116179055611bf0565b600854336001600160a01b0390911603611b9a576009546001600160a01b039081165f9081526007602052604080822060020180546001600160a01b0319908116909155600880548086168552929093206003015491169216919091179055611bf0565b60038181018054600280850180546001600160a01b039081165f9081526007602052604080822090970180549583166001600160a01b031996871617905591549454811682529490200180549290931691161790555b80546001600160a01b03165f818152600160208190526040822081850154918101805491939091611c22908490612e4e565b9091555050805460019082905f90611c3b908490612e4e565b9091555050335f90815260076020526040812080546001600160a01b031990811682556001820183905560028201805482169055600390910180549091169055600a805491611c898361308e565b9091555091949350505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611d1c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d105f5160206130e55f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15611d3a5760405163703e46dd60e11b815260040160405180910390fd5b565b5f546001600160a01b0316331461134157604051636db2465f60e01b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611dc0575060408051601f3d908101601f19168201909252611dbd918101906130a3565b60015b611ded57604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f5160206130e55f395f51905f528114611e1d57604051632a87526960e21b815260048101829052602401611de4565b61059f83836125f8565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611d3a5760405163703e46dd60e11b815260040160405180910390fd5b5f8282604051611e819291906130ba565b60408051918290039091205f8181526003602052919091205490915060ff1615611ebe57604051637e4c066f60e01b815260040160405180910390fd5b611ec8838361264d565b5f908152600360205260409020805460ff191660011790555050565b80545f611ef2600183612e4e565b90505b801561059f575f611f07826001612e3b565b60408051426020820152908101849052606001604051602081830303815290604052805190602001205f1c611f3c919061306f565b90505f848381548110611f5157611f51612e13565b5f9182526020909120015485546001600160a01b039091169150859083908110611f7d57611f7d612e13565b905f5260205f20015f9054906101000a90046001600160a01b0316858481548110611faa57611faa612e13565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080858381548110611fe857611fe8612e13565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505080806120209061308e565b915050611ef5565b600d546001600160a01b03165b6001600160a01b03811615612072576001600160a01b039081165f908152600b6020526040902080546001600160a01b0319811690915516612035565b505f600e55565b5f818311156120a557604051632457cde760e01b81526004810184905260248101839052604401611de4565b828410156120b45750816120c6565b818411156120c35750806120c6565b50825b9392505050565b6001600160a01b0382165f9081526001602081815260408084208151608081018352815481529381015492840192909252600282015460ff1615159083015260038101805460608401919061212190612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461214d90612de1565b80156121985780601f1061216f57610100808354040283529160200191612198565b820191905f5260205f20905b81548152906001019060200180831161217b57829003601f168201915b505050919092525050604080518082018252600d546001600160a01b03168082525f90815260016020818152918490208451608081018652815481529181015482840152600281015460ff161515948201949094526003840180549697506122b9969395509185019390929091606084019161221390612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461223f90612de1565b801561228a5780601f106122615761010080835404028352916020019161228a565b820191905f5260205f20905b81548152906001019060200180831161226d57829003601f168201915b5050505050815250508152506040518060400160405280866001600160a01b03168152602001848152506124a9565b156122cc576122c78361266e565b61244a565b600d546001600160a01b039081165f818152600b6020526040902054909116905b6001600160a01b03821661230a5761230581866126bf565b612447565b6040805180820182526001600160a01b0384168082525f90815260016020818152918490208451608081018652815481529181015482840152600281015460ff16151594820194909452600384018054612417959385019391606084019161237190612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461239d90612de1565b80156123e85780601f106123bf576101008083540402835291602001916123e8565b820191905f5260205f20905b8154815290600101906020018083116123cb57829003601f168201915b5050505050815250508152506040518060400160405280886001600160a01b03168152602001868152506124a9565b156124265761230581866126bf565b506001600160a01b038082165f908152600b602052604090205416906122ed565b50505b8160ff16600e54111561059f57600d80546001600160a01b039081165f908152600b6020526040812080546001600160a01b03198082169092558454931692168217909255600e8054919261249e8361308e565b919050555050505050565b5f816020015160200151836020015160200151036124d95750805182516001600160a01b039182169116116107a3565b506020908101518101519181015101511190565b80515f6124fb600183612e4e565b90505b801561059f575f612510826001612e3b565b60408051426020820152908101849052606001604051602081830303815290604052805190602001205f1c612545919061306f565b90505f84838151811061255a5761255a612e13565b6020026020010151905084828151811061257657612576612e13565b602002602001015185848151811061259057612590612e13565b60200260200101906001600160a01b031690816001600160a01b031681525050808583815181106125c3576125c3612e13565b60200260200101906001600160a01b031690816001600160a01b031681525050505080806125f09061308e565b9150506124fe565b6126018261271d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156126455761059f8282612780565b6107c46127f2565b603081146107c4576040516305db9dbd60e01b815260040160405180910390fd5b600d80546001600160a01b038381165f818152600b602052604081208054939094166001600160a01b031993841617909355835490911617909155600e8054916126b783612f9d565b919050555050565b6001600160a01b038281165f818152600b602052604080822080548686168085529284208054919096166001600160a01b03199182161790955592825282549093169092179055600e80549161271483612f9d565b91905055505050565b806001600160a01b03163b5f0361275257604051634c9c8ce360e01b81526001600160a01b0382166004820152602401611de4565b5f5160206130e55f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161279c91906130c9565b5f60405180830381855af49150503d805f81146127d4576040519150601f19603f3d011682016040523d82523d5f602084013e6127d9565b606091505b50915091506127e9858383612811565b95945050505050565b3415611d3a5760405163b398979f60e01b815260040160405180910390fd5b606082612826576128218261286d565b6120c6565b815115801561283d57506001600160a01b0384163b155b1561286657604051639996b31560e01b81526001600160a01b0385166004820152602401611de4565b50806120c6565b80511561287d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180604001604052805f6001600160a01b031681526020016128da60405180608001604052805f81526020015f81526020015f15158152602001606081525090565b905290565b5080545f8255905f5260205f2090810190611341919061295d565b828054828255905f5260205f2090810192821561294d579160200282015b8281111561294d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612918565b5061295992915061295d565b5090565b5b80821115612959575f815560010161295e565b80356001600160a01b0381168114612987575f5ffd5b919050565b5f6020828403121561299c575f5ffd5b6120c682612971565b5f5b838110156129bf5781810151838201526020016129a7565b50505f910152565b5f81518084526129de8160208601602086016129a5565b601f01601f19169290920160200192915050565b60018060a01b0381511682525f602082015160406020850152805160408501526020810151606085015260408101511515608085015260608101519050608060a0850152612a4360c08501826129c7565b949350505050565b602081525f6120c660208301846129f2565b5f5f60208385031215612a6e575f5ffd5b82356001600160401b03811115612a83575f5ffd5b8301601f81018513612a93575f5ffd5b80356001600160401b03811115612aa8575f5ffd5b8560208260051b8401011115612abc575f5ffd5b6020919091019590945092505050565b5f5f60408385031215612add575f5ffd5b50508035926020909101359150565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612b9957868503603f19018452815180518652602090810151604082880181905281519088018190529101905f9060608801905b80831015612b8157835180516001600160a01b03168352602090810151818401529093019260019290920191604090910190612b4a565b50965050506020938401939190910190600101612b12565b50929695505050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612bca575f5ffd5b612bd383612971565b915060208301356001600160401b03811115612bed575f5ffd5b8301601f81018513612bfd575f5ffd5b80356001600160401b03811115612c1657612c16612ba5565b604051601f8201601f19908116603f011681016001600160401b0381118282101715612c4457612c44612ba5565b604052818152828201602001871015612c5b575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f60208385031215612c8b575f5ffd5b82356001600160401b03811115612ca0575f5ffd5b8301601f81018513612cb0575f5ffd5b80356001600160401b03811115612cc5575f5ffd5b856020828401011115612abc575f5ffd5b5f60208284031215612ce6575f5ffd5b813560ff811681146120c6575f5ffd5b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612b9957603f19878603018452612d388583516129f2565b94506020938401939190910190600101612d1c565b602081525f6120c660208301846129c7565b5f5f60408385031215612d70575f5ffd5b612d7983612971565b946020939093013593505050565b602080825282518282018190525f918401906040840190835b81811015612dd657835180516001600160a01b039081168552602091820151168185015290930192604090920191600101612da0565b509095945050505050565b600181811c90821680612df557607f821691505b6020821081036114db57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156107a3576107a3612e27565b818103818111156107a3576107a3612e27565b601f82111561059f57805f5260205f20601f840160051c81016020851015612e865750805b601f840160051c820191505b81811015610df5575f8155600101612e92565b6001600160401b03831115612ebc57612ebc612ba5565b612ed083612eca8354612de1565b83612e61565b5f601f841160018114612f01575f8515612eea5750838201355b5f19600387901b1c1916600186901b178355610df5565b5f83815260208120601f198716915b82811015612f305786850135825560209485019460019092019101612f10565b5086821015612f4c575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60018201612fae57612fae612e27565b5060010190565b81516001600160401b03811115612fce57612fce612ba5565b612fe281612fdc8454612de1565b84612e61565b6020601f821160018114613014575f8315612ffd5750848201515b5f19600385901b1c1916600184901b178455610df5565b5f84815260208120601f198516915b828110156130435787850151825560209485019460019092019101613023565b508482101561306057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f8261308957634e487b7160e01b5f52601260045260245ffd5b500690565b5f8161309c5761309c612e27565b505f190190565b5f602082840312156130b3575f5ffd5b5051919050565b818382375f9101908152919050565b5f82516130da8184602087016129a5565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208c47d03fa1593ed63612f581f11b1afcbddb0bbd3c642439ad3d51aaea98388e64736f6c634300081b0033",
|
340
|
+
"sourceMap": "2337:15634:34:-:0;;;1060:4:30;1017:48;;2337:15634:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
341
|
+
"linkReferences": {}
|
342
|
+
},
|
343
|
+
"deployedBytecode": {
|
344
|
+
"object": "0x60806040526004361061013c575f3560e01c8063602a9eee116100b3578063ad3cb1cc1161006d578063ad3cb1cc14610317578063b85f5da214610354578063d04a68c714610368578063eb9019d4146103af578063f1bd0b37146103db578063f3513a37146103ef575f5ffd5b8063602a9eee146102715780636dd7d8ea146102905780638129fc1c146102af578063857861db146102c35780639de70258146102e2578063a09686c414610303575f5ffd5b80633174b689116101045780633174b689146101d857806340f74f47146101ec5780634f1ef2861461021857806352d1902d1461022b57806354fd4d501461023f5780635a8eed7314610252575f5ffd5b80630777cbef146101405780630d2bd909146101635780631904bb2e146101775780631b605b86146101a35780632bdf6d43146101b7575b5f5ffd5b34801561014b575f5ffd5b506006545b6040519081526020015b60405180910390f35b34801561016e575f5ffd5b50600e54610150565b348015610182575f5ffd5b5061019661019136600461298c565b610403565b60405161015a9190612a4b565b3480156101ae575f5ffd5b50600a54610150565b3480156101c2575f5ffd5b506101d66101d1366004612a5d565b610534565b005b3480156101e3575f5ffd5b506101d66105a4565b3480156101f7575f5ffd5b5061020b610206366004612acc565b6105f3565b60405161015a9190612aec565b6101d6610226366004612bb9565b6107a9565b348015610236575f5ffd5b506101506107c8565b34801561024a575f5ffd5b506001610150565b34801561025d575f5ffd5b506101d661026c366004612c7a565b6107e3565b34801561027c575f5ffd5b506101d661028b366004612c7a565b6108a2565b34801561029b575f5ffd5b506101d66102aa36600461298c565b610a5a565b3480156102ba575f5ffd5b506101d6610ce4565b3480156102ce575f5ffd5b506101d66102dd366004612cd6565b610dfc565b3480156102ed575f5ffd5b506102f6611344565b60405161015a9190612cf6565b34801561030e575f5ffd5b50601054610150565b348015610322575f5ffd5b50610347604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015a9190612d4d565b34801561035f575f5ffd5b506101d66114e1565b348015610373575f5ffd5b5061039f61038236600461298c565b6001600160a01b03165f9081526002602052604090205460ff1690565b604051901515815260200161015a565b3480156103ba575f5ffd5b506103ce6103c9366004612d5f565b6115d3565b60405161015a9190612d87565b3480156103e6575f5ffd5b50600554610150565b3480156103fa575f5ffd5b506102f66117f7565b61040b612896565b6001600160a01b0382165f9081526002602052604090205460ff166104435760405163510b8aad60e11b815260040160405180910390fd5b6040805180820182526001600160a01b0384168082525f90815260016020818152918490208451608081018652815481529181015482840152600281015460ff161515948201949094526003840180549394928501939192916060840191906104ab90612de1565b80601f01602080910402602001604051908101604052809291908181526020018280546104d790612de1565b80156105225780601f106104f957610100808354040283529160200191610522565b820191905f5260205f20905b81548152906001019060200180831161050557829003601f168201915b50505091909252505050905292915050565b5f546001600160a01b0316331461055e57604051636db2465f60e01b815260040160405180910390fd5b5f5b8181101561059f5761059783838381811061057d5761057d612e13565b9050602002016020810190610592919061298c565b61198e565b600101610560565b505050565b7f6572af8bf9a0a86efb88dcc30011626a15c9c4603503aa4466a3f87a1867deef336105ce611a6e565b604080516001600160a01b0393841681529290911660208301520160405180910390a1565b5f546060906001600160a01b0316331461062057604051636db2465f60e01b815260040160405180910390fd5b6010548290841061063257505f610656565b60105461063f8486612e3b565b111561065657601054610653908590612e4e565b90505b5f816001600160401b0381111561066f5761066f612ba5565b6040519080825280602002602001820160405280156106b457816020015b604080518082019091525f81526060602082015281526020019060019003908161068d5790505b5090505f5b8281101561079e57604051806040016040528082886106d89190612e3b565b6106e3906001612e3b565b815260200160106106f4848a612e3b565b8154811061070457610704612e13565b905f5260205f2001805480602002602001604051908101604052809291908181526020015f905b82821015610772575f848152602090819020604080518082019091526002850290910180546001600160a01b0316825260019081015482840152908352909201910161072b565b5050505081525082828151811061078b5761078b612e13565b60209081029190910101526001016106b9565b509150505b92915050565b6107b1611c96565b6107ba82611d3c565b6107c48282611d66565b5050565b5f6107d1611e27565b505f5160206130e55f395f51905f5290565b5f546001600160a01b0316330361080d57604051630c148c4960e31b815260040160405180910390fd5b335f9081526002602052604090205460ff1661083c5760405163510b8aad60e11b815260040160405180910390fd5b6108468282611e70565b335f908152600160205260409020600301610862828483612ea5565b507f4af0b5984c9f88659d661fb64dcb63a5b946809cf1c78a8c6e0f6ef93c91703233838360405161089693929190612f5e565b60405180910390a15050565b5f546001600160a01b031633036108cc57604051630c148c4960e31b815260040160405180910390fd5b335f9081526002602052604090205460ff16156108fc5760405163132e7efb60e31b815260040160405180910390fd5b6109068282611e70565b5f60405180608001604052805f81526020015f81526020015f1515815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093909452505060058054939450915061096f83612f9d565b9091555050335f9081526002602081815260408084208054600160ff19918216811790925581845294829020865181559286015190830155840151918101805490931691151591909117909155606082015182919060038201906109d39082612fb5565b5050600480546001810182555f919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916339081179091556040517f61809fa303a3a57f4d70552f533f3e0b003173d424590cd4bb22a2afe000990c9250610a4d919086908690612f5e565b60405180910390a1505050565b5f546001600160a01b03163303610a8457604051630c148c4960e31b815260040160405180910390fd5b6001600160a01b0381165f9081526002602052604090205460ff16610abc5760405163510b8aad60e11b815260040160405180910390fd5b6001600160a01b0381165f908152600160205260409020600281015460ff1615610af95760405163510ae2bd60e11b815260040160405180910390fd5b335f90815260076020526040902080546001600160a01b03848116911603610b3457604051630d41c52760e01b815260040160405180910390fd5b80546001600160a01b031615610b4e57610b4c611a6e565b505b604080516080810182526001600160a01b03808616825233803160208085019182525f85870181815260608701828152948252600790925295909520935184549084166001600160a01b03199182161785559051600185015593516002840180549184169186169190911790555160039092018054928216929093169190911790915560085416610c005760088054336001600160a01b03199182168117909255600980549091169091179055610c57565b600980546001600160a01b039081165f9081526007602052604080822060030180546001600160a01b0319908116339081179092558554828552929093206002018054841692909416919091179092558254161790555b600a8054905f610c6683612f9d565b9190505550336001600160a01b031631826001015f828254610c889190612e3b565b9091555050815460019083905f90610ca1908490612e3b565b9091555050604080513381526001600160a01b03851660208201527fce0c7a2a940807f7dc2ce7a615c2532e915e6c0ac9a08bc4ed9d515a710a53e29101610a4d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610d285750825b90505f826001600160401b03166001148015610d435750303b155b905081158015610d51575080155b15610d6f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d9957845460ff60401b1916600160401b1785555b5f80546001600160a01b031916331790556001600f558315610df557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b5f546001600160a01b03163314610e2657604051636db2465f60e01b815260040160405180910390fd5b60ff8116600f55610e376004611ee4565b610e3f612028565b600d80546001600160a01b03191690556006546005545f91610e719160ff8516918491610e6c9190612e4e565b612079565b90508060ff165f03610e81575050565b5f5b60045481101561112c575f60048281548110610ea157610ea1612e13565b5f9182526020808320909101546001600160a01b03168083526001909152604090912060028101549192509060ff1615610edc575050611124565b600d546001600160a01b0316610f175750600d80546001600160a01b0319166001600160a01b03929092169190911790556001600e55611124565b8360ff16600e541015610f3557610f2e82856120cd565b5050611124565b600d546001600160a01b039081165f908152600160208181526040928390208351808501855294871685528351608081018552865481529286015483830152600286015460ff16151593830193909352600385018054939461111194909392840192918791606084019190610fa990612de1565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd590612de1565b80156110205780601f10610ff757610100808354040283529160200191611020565b820191905f5260205f20905b81548152906001019060200180831161100357829003601f168201915b505050919092525050509052604080518082018252600d546001600160a01b031681528151608081018352855481526001860154602082810191909152600287015460ff1615159382019390935260038601805492938401928791606084019161108990612de1565b80601f01602080910402602001604051908101604052809291908181526020018280546110b590612de1565b80156111005780601f106110d757610100808354040283529160200191611100565b820191905f5260205f20905b8154815290600101906020018083116110e357829003601f168201915b5050505050815250508152506124a9565b156111205761112083866120cd565b5050505b600101610e83565b50600d546001600160a01b03165f60ff83166001600160401b0381111561115557611155612ba5565b60405190808252806020026020018201604052801561117e578160200160208202803683370190505b5090505f5b8360ff168110156111d957828282815181106111a1576111a1612e13565b6001600160a01b039283166020918202929092018101919091529381165f908152600b90945260409093205490921691600101611183565b506111e3816124ed565b601080546001810182555f9182527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672019061122090600c906128df565b600f546001600160401b0381111561123a5761123a612ba5565b604051908082528060200260200182016040528015611263578160200160208202803683370190505b50805161127891600c916020909101906128fa565b505f5b600f5481101561133b575f8361129460ff88168461306f565b815181106112a4576112a4612e13565b6020026020010151905080600c83815481106112c2576112c2612e13565b5f918252602080832090910180546001600160a01b039485166001600160a01b0319918216179091556040805180820182529585168087528452600180845290842081015486840190815288548083018a558986529390942095516002909302909501805492909416911617825551908201550161127b565b50505050505b50565b600c546060905f906001600160401b0381111561136357611363612ba5565b60405190808252806020026020018201604052801561139c57816020015b611389612896565b8152602001906001900390816113815790505b5090505f5b600c548110156114db575f600c82815481106113bf576113bf612e13565b5f9182526020808320909101546001600160a01b03168083526001808352604093849020845180860186528381528551608081018752825481529282015483860152600282015460ff161515958301959095526003810180549396509094938401928591606084019161143190612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461145d90612de1565b80156114a85780601f1061147f576101008083540402835291602001916114a8565b820191905f5260205f20905b81548152906001019060200180831161148b57829003601f168201915b5050505050815250508152508484815181106114c6576114c6612e13565b602090810291909101015250506001016113a1565b50919050565b335f9081526002602052604090205460ff166115105760405163668191af60e11b815260040160405180910390fd5b335f908152600160205260409020600281015460ff161561154457604051632d8b5c9760e21b815260040160405180910390fd5b600f546006546005546115579190612e4e565b1161157557604051633b15f1f760e21b815260040160405180910390fd5b60028101805460ff19166001908117909155600680545f90611598908490612e3b565b90915550506040513381527f24250fc1ec78a1405ddd4cc8b75964858af228d05faa8d4bc1302966d8a541179060200160405180910390a150565b5f546060906001600160a01b0316331461160057604051636db2465f60e01b815260040160405180910390fd5b5f61160e835f600a54612079565b6001600160401b0381111561162557611625612ba5565b60405190808252806020026020018201604052801561166957816020015b604080518082019091525f80825260208201528152602001906001900390816116435790505b506008549091506001600160a01b03908116908516156116a257506001600160a01b038085165f90815260076020526040902060030154165b5f5b6001600160a01b038216158015906116bb57508481105b15611730576001600160a01b038083165f8181526007602090815260409182902082518084019093529282528254909316928101929092529084836116ff81612f9d565b94508151811061171157611711612e13565b6020908102919091010152600301546001600160a01b031691506116a4565b80835103611743578293505050506107a3565b5f816001600160401b0381111561175c5761175c612ba5565b6040519080825280602002602001820160405280156117a057816020015b604080518082019091525f808252602082015281526020019060019003908161177a5790505b5090505f5b828110156117ec578481815181106117bf576117bf612e13565b60200260200101518282815181106117d9576117d9612e13565b60209081029190910101526001016117a5565b509695505050505050565b6004546060905f906001600160401b0381111561181657611816612ba5565b60405190808252806020026020018201604052801561184f57816020015b61183c612896565b8152602001906001900390816118345790505b5090505f5b6004548110156114db575f6004828154811061187257611872612e13565b5f9182526020808320909101546001600160a01b03168083526001808352604093849020845180860186528381528551608081018752825481529282015483860152600282015460ff16151595830195909552600381018054939650909493840192859160608401916118e490612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461191090612de1565b801561195b5780601f106119325761010080835404028352916020019161195b565b820191905f5260205f20905b81548152906001019060200180831161193e57829003601f168201915b50505050508152505081525084848151811061197957611979612e13565b60209081029190910101525050600101611854565b6001600160a01b038082165f90815260076020526040902080549091166119b3575050565b60018101546001600160a01b03831631811015611a14576119de816001600160a01b03851631612e4e565b82546001600160a01b03165f9081526001602081905260408220018054909190611a09908490612e3b565b90915550611a599050565b611a286001600160a01b0384163182612e4e565b82546001600160a01b03165f9081526001602081905260408220018054909190611a53908490612e4e565b90915550505b506001600160a01b0390911631600190910155565b335f90815260076020526040812080546001600160a01b0316611aa45760405163498ea63d60e01b815260040160405180910390fd5b6009546008546001600160a01b03918216911603611add57600880546001600160a01b0319908116909155600980549091169055611bf0565b600954336001600160a01b0390911603611b36576002810180546001600160a01b039081165f90815260076020526040902060030180546001600160a01b03199081169091559154600980549093169116179055611bf0565b600854336001600160a01b0390911603611b9a576009546001600160a01b039081165f9081526007602052604080822060020180546001600160a01b0319908116909155600880548086168552929093206003015491169216919091179055611bf0565b60038181018054600280850180546001600160a01b039081165f9081526007602052604080822090970180549583166001600160a01b031996871617905591549454811682529490200180549290931691161790555b80546001600160a01b03165f818152600160208190526040822081850154918101805491939091611c22908490612e4e565b9091555050805460019082905f90611c3b908490612e4e565b9091555050335f90815260076020526040812080546001600160a01b031990811682556001820183905560028201805482169055600390910180549091169055600a805491611c898361308e565b9091555091949350505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611d1c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d105f5160206130e55f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15611d3a5760405163703e46dd60e11b815260040160405180910390fd5b565b5f546001600160a01b0316331461134157604051636db2465f60e01b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611dc0575060408051601f3d908101601f19168201909252611dbd918101906130a3565b60015b611ded57604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f5160206130e55f395f51905f528114611e1d57604051632a87526960e21b815260048101829052602401611de4565b61059f83836125f8565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611d3a5760405163703e46dd60e11b815260040160405180910390fd5b5f8282604051611e819291906130ba565b60408051918290039091205f8181526003602052919091205490915060ff1615611ebe57604051637e4c066f60e01b815260040160405180910390fd5b611ec8838361264d565b5f908152600360205260409020805460ff191660011790555050565b80545f611ef2600183612e4e565b90505b801561059f575f611f07826001612e3b565b60408051426020820152908101849052606001604051602081830303815290604052805190602001205f1c611f3c919061306f565b90505f848381548110611f5157611f51612e13565b5f9182526020909120015485546001600160a01b039091169150859083908110611f7d57611f7d612e13565b905f5260205f20015f9054906101000a90046001600160a01b0316858481548110611faa57611faa612e13565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080858381548110611fe857611fe8612e13565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505080806120209061308e565b915050611ef5565b600d546001600160a01b03165b6001600160a01b03811615612072576001600160a01b039081165f908152600b6020526040902080546001600160a01b0319811690915516612035565b505f600e55565b5f818311156120a557604051632457cde760e01b81526004810184905260248101839052604401611de4565b828410156120b45750816120c6565b818411156120c35750806120c6565b50825b9392505050565b6001600160a01b0382165f9081526001602081815260408084208151608081018352815481529381015492840192909252600282015460ff1615159083015260038101805460608401919061212190612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461214d90612de1565b80156121985780601f1061216f57610100808354040283529160200191612198565b820191905f5260205f20905b81548152906001019060200180831161217b57829003601f168201915b505050919092525050604080518082018252600d546001600160a01b03168082525f90815260016020818152918490208451608081018652815481529181015482840152600281015460ff161515948201949094526003840180549697506122b9969395509185019390929091606084019161221390612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461223f90612de1565b801561228a5780601f106122615761010080835404028352916020019161228a565b820191905f5260205f20905b81548152906001019060200180831161226d57829003601f168201915b5050505050815250508152506040518060400160405280866001600160a01b03168152602001848152506124a9565b156122cc576122c78361266e565b61244a565b600d546001600160a01b039081165f818152600b6020526040902054909116905b6001600160a01b03821661230a5761230581866126bf565b612447565b6040805180820182526001600160a01b0384168082525f90815260016020818152918490208451608081018652815481529181015482840152600281015460ff16151594820194909452600384018054612417959385019391606084019161237190612de1565b80601f016020809104026020016040519081016040528092919081815260200182805461239d90612de1565b80156123e85780601f106123bf576101008083540402835291602001916123e8565b820191905f5260205f20905b8154815290600101906020018083116123cb57829003601f168201915b5050505050815250508152506040518060400160405280886001600160a01b03168152602001868152506124a9565b156124265761230581866126bf565b506001600160a01b038082165f908152600b602052604090205416906122ed565b50505b8160ff16600e54111561059f57600d80546001600160a01b039081165f908152600b6020526040812080546001600160a01b03198082169092558454931692168217909255600e8054919261249e8361308e565b919050555050505050565b5f816020015160200151836020015160200151036124d95750805182516001600160a01b039182169116116107a3565b506020908101518101519181015101511190565b80515f6124fb600183612e4e565b90505b801561059f575f612510826001612e3b565b60408051426020820152908101849052606001604051602081830303815290604052805190602001205f1c612545919061306f565b90505f84838151811061255a5761255a612e13565b6020026020010151905084828151811061257657612576612e13565b602002602001015185848151811061259057612590612e13565b60200260200101906001600160a01b031690816001600160a01b031681525050808583815181106125c3576125c3612e13565b60200260200101906001600160a01b031690816001600160a01b031681525050505080806125f09061308e565b9150506124fe565b6126018261271d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156126455761059f8282612780565b6107c46127f2565b603081146107c4576040516305db9dbd60e01b815260040160405180910390fd5b600d80546001600160a01b038381165f818152600b602052604081208054939094166001600160a01b031993841617909355835490911617909155600e8054916126b783612f9d565b919050555050565b6001600160a01b038281165f818152600b602052604080822080548686168085529284208054919096166001600160a01b03199182161790955592825282549093169092179055600e80549161271483612f9d565b91905055505050565b806001600160a01b03163b5f0361275257604051634c9c8ce360e01b81526001600160a01b0382166004820152602401611de4565b5f5160206130e55f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161279c91906130c9565b5f60405180830381855af49150503d805f81146127d4576040519150601f19603f3d011682016040523d82523d5f602084013e6127d9565b606091505b50915091506127e9858383612811565b95945050505050565b3415611d3a5760405163b398979f60e01b815260040160405180910390fd5b606082612826576128218261286d565b6120c6565b815115801561283d57506001600160a01b0384163b155b1561286657604051639996b31560e01b81526001600160a01b0385166004820152602401611de4565b50806120c6565b80511561287d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180604001604052805f6001600160a01b031681526020016128da60405180608001604052805f81526020015f81526020015f15158152602001606081525090565b905290565b5080545f8255905f5260205f2090810190611341919061295d565b828054828255905f5260205f2090810192821561294d579160200282015b8281111561294d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612918565b5061295992915061295d565b5090565b5b80821115612959575f815560010161295e565b80356001600160a01b0381168114612987575f5ffd5b919050565b5f6020828403121561299c575f5ffd5b6120c682612971565b5f5b838110156129bf5781810151838201526020016129a7565b50505f910152565b5f81518084526129de8160208601602086016129a5565b601f01601f19169290920160200192915050565b60018060a01b0381511682525f602082015160406020850152805160408501526020810151606085015260408101511515608085015260608101519050608060a0850152612a4360c08501826129c7565b949350505050565b602081525f6120c660208301846129f2565b5f5f60208385031215612a6e575f5ffd5b82356001600160401b03811115612a83575f5ffd5b8301601f81018513612a93575f5ffd5b80356001600160401b03811115612aa8575f5ffd5b8560208260051b8401011115612abc575f5ffd5b6020919091019590945092505050565b5f5f60408385031215612add575f5ffd5b50508035926020909101359150565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612b9957868503603f19018452815180518652602090810151604082880181905281519088018190529101905f9060608801905b80831015612b8157835180516001600160a01b03168352602090810151818401529093019260019290920191604090910190612b4a565b50965050506020938401939190910190600101612b12565b50929695505050505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612bca575f5ffd5b612bd383612971565b915060208301356001600160401b03811115612bed575f5ffd5b8301601f81018513612bfd575f5ffd5b80356001600160401b03811115612c1657612c16612ba5565b604051601f8201601f19908116603f011681016001600160401b0381118282101715612c4457612c44612ba5565b604052818152828201602001871015612c5b575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f60208385031215612c8b575f5ffd5b82356001600160401b03811115612ca0575f5ffd5b8301601f81018513612cb0575f5ffd5b80356001600160401b03811115612cc5575f5ffd5b856020828401011115612abc575f5ffd5b5f60208284031215612ce6575f5ffd5b813560ff811681146120c6575f5ffd5b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612b9957603f19878603018452612d388583516129f2565b94506020938401939190910190600101612d1c565b602081525f6120c660208301846129c7565b5f5f60408385031215612d70575f5ffd5b612d7983612971565b946020939093013593505050565b602080825282518282018190525f918401906040840190835b81811015612dd657835180516001600160a01b039081168552602091820151168185015290930192604090920191600101612da0565b509095945050505050565b600181811c90821680612df557607f821691505b6020821081036114db57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156107a3576107a3612e27565b818103818111156107a3576107a3612e27565b601f82111561059f57805f5260205f20601f840160051c81016020851015612e865750805b601f840160051c820191505b81811015610df5575f8155600101612e92565b6001600160401b03831115612ebc57612ebc612ba5565b612ed083612eca8354612de1565b83612e61565b5f601f841160018114612f01575f8515612eea5750838201355b5f19600387901b1c1916600186901b178355610df5565b5f83815260208120601f198716915b82811015612f305786850135825560209485019460019092019101612f10565b5086821015612f4c575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60018201612fae57612fae612e27565b5060010190565b81516001600160401b03811115612fce57612fce612ba5565b612fe281612fdc8454612de1565b84612e61565b6020601f821160018114613014575f8315612ffd5750848201515b5f19600385901b1c1916600184901b178455610df5565b5f84815260208120601f198516915b828110156130435787850151825560209485019460019092019101613023565b508482101561306057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f8261308957634e487b7160e01b5f52601260045260245ffd5b500690565b5f8161309c5761309c612e27565b505f190190565b5f602082840312156130b3575f5ffd5b5051919050565b818382375f9101908152919050565b5f82516130da8184602087016129a5565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208c47d03fa1593ed63612f581f11b1afcbddb0bbd3c642439ad3d51aaea98388e64736f6c634300081b0033",
|
345
|
+
"sourceMap": "2337:15634:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9044:115;;;;;;;;;;-1:-1:-1;9128:24:34;;9044:115;;;160:25:45;;;148:2;133:18;9044:115:34;;;;;;;;9165:111;;;;;;;;;;-1:-1:-1;9247:22:34;;9165:111;;9403:253;;;;;;;;;;-1:-1:-1;9403:253:34;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10519:93::-;;;;;;;;;;-1:-1:-1;10593:12:34;;10519:93;;6558:176;;;;;;;;;;-1:-1:-1;6558:176:34;;;;;:::i;:::-;;:::i;:::-;;6473:79;;;;;;;;;;;;;:::i;11573:531::-;;;;;;;;;;-1:-1:-1;11573:531:34;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3895:214:30:-;;;;;;:::i;:::-;;:::i;3442:134::-;;;;;;;;;;;;;:::i;8847:76:34:-;;;;;;;;;;-1:-1:-1;8915:1:34;8847:76;;4417:367;;;;;;;;;;-1:-1:-1;4417:367:34;;;;;:::i;:::-;;:::i;3802:609::-;;;;;;;;;;-1:-1:-1;3802:609:34;;;;;:::i;:::-;;:::i;5359:1108::-;;;;;;;;;;-1:-1:-1;5359:1108:34;;;;;:::i;:::-;;:::i;3558:105::-;;;;;;;;;;;;;:::i;6740:2061::-;;;;;;;;;;-1:-1:-1;6740:2061:34;;;;;:::i;:::-;;:::i;9662:433::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11471:96::-;;;;;;;;;;-1:-1:-1;11546:7:34;:14;11471:96;;1708:58:30;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1708:58:30;;;;;;;;;;;;:::i;4790:563:34:-;;;;;;;;;;;;;:::i;9282:115::-;;;;;;;;;;-1:-1:-1;9282:115:34;;;;;:::i;:::-;-1:-1:-1;;;;;9371:19:34;9348:4;9371:19;;;:13;:19;;;;;;;;;9282:115;;;;7886:14:45;;7879:22;7861:41;;7849:2;7834:18;9282:115:34;7721:187:45;10618:847:34;;;;;;;;;;-1:-1:-1;10618:847:34;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8929:109::-;;;;;;;;;;-1:-1:-1;9015:16:34;;8929:109;;10101:412;;;;;;;;;;;;;:::i;9403:253::-;9462:16;;:::i;:::-;-1:-1:-1;;;;;9371:19:34;;9348:4;9371:19;;;:13;:19;;;;;;;;9490:90;;9545:24;;-1:-1:-1;;;9545:24:34;;;;;;;;;;;9490:90;9597:52;;;;;;;;-1:-1:-1;;;;;9597:52:34;;;;;-1:-1:-1;9626:21:34;;;:15;9597:52;9626:21;;;;;;;9597:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9626:21;9597:52;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9597:52:34;;;;-1:-1:-1;;;9597:52:34;;9590:59;9403:253;-1:-1:-1;;9403:253:34:o;6558:176::-;3327:6;;-1:-1:-1;;;;;3327:6:34;3313:10;:20;3309:76;;3356:18;;-1:-1:-1;;;3356:18:34;;;;;;;;;;;3309:76;6641:9:::1;6636:92;6656:17:::0;;::::1;6636:92;;;6694:23;6707:6;;6714:1;6707:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6694:12;:23::i;:::-;6675:3;;6636:92;;;;6558:176:::0;;:::o;6473:79::-;6515:30;6523:10;6535:9;:7;:9::i;:::-;6515:30;;;-1:-1:-1;;;;;9738:32:45;;;9720:51;;9807:32;;;;9802:2;9787:18;;9780:60;9693:18;6515:30:34;;;;;;;6473:79::o;11573:531::-;3327:6;;11656:14;;-1:-1:-1;;;;;3327:6:34;3313:10;:20;3309:76;;3356:18;;-1:-1:-1;;;3356:18:34;;;;;;;;;;;3309:76;11727:7:::1;:14:::0;11698:5;;11717:24;::::1;11713:163;;-1:-1:-1::0;11765:1:34::1;11713:163;;;11804:7;:14:::0;11787::::1;11796:5:::0;11787:6;:14:::1;:::i;:::-;:31;11783:93;;;11842:7;:14:::0;:23:::1;::::0;11859:6;;11842:23:::1;:::i;:::-;11834:31;;11783:93;11886:21;11922:5;-1:-1:-1::0;;;;;11910:18:34::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;;;;;11910:18:34::1;;;;;;;;;;;;;;;-1:-1:-1::0;11886:42:34;-1:-1:-1;11943:9:34::1;11938:136;11962:5;11958:1;:9;11938:136;;;12000:63;;;;;;;;12023:1;12014:6;:10;;;;:::i;:::-;:14;::::0;12027:1:::1;12014:14;:::i;:::-;12000:63:::0;;::::1;;12042:7;12050:10;12059:1:::0;12050:6;:10:::1;:::i;:::-;12042:19;;;;;;;;:::i;:::-;;;;;;;;12000:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;12000:63:34::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;;;;::::1;::::0;::::1;;;;;;;;;;::::0;11988:6:::1;11995:1;11988:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:75;11969:3:::1;;11938:136;;;-1:-1:-1::0;12091:6:34;-1:-1:-1;;3394:1:34::1;11573:531:::0;;;;:::o;3895:214:30:-;2544:13;:11;:13::i;:::-;4010:36:::1;4028:17;4010;:36::i;:::-;4056:46;4078:17;4097:4;4056:21;:46::i;:::-;3895:214:::0;;:::o;3442:134::-;3511:7;2815:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3442:134:30;:::o;4417:367:34:-;3460:6;;-1:-1:-1;;;;;3460:6:34;3446:10;:20;3442:73;;3489:15;;-1:-1:-1;;;3489:15:34;;;;;;;;;;;3442:73;4530:10:::1;9348:4:::0;9371:19;;;:13;:19;;;;;;;;4503:96:::1;;4564:24;;-1:-1:-1::0;;;4564:24:34::1;;;;;;;;;;;4503:96;4609:44;4640:12;;4609:30;:44::i;:::-;4680:10;4664:27;::::0;;;:15:::1;:27;::::0;;;;:40:::1;;:55;4707:12:::0;;4664:40;:55:::1;:::i;:::-;;4735:42;4752:10;4764:12;;4735:42;;;;;;;;:::i;:::-;;;;;;;;4417:367:::0;;:::o;3802:609::-;3460:6;;-1:-1:-1;;;;;3460:6:34;3446:10;:20;3442:73;;3489:15;;-1:-1:-1;;;3489:15:34;;;;;;;;;;;3442:73;3908:10:::1;3894:25;::::0;;;:13:::1;:25;::::0;;;;;::::1;;3890:91;;;3942:28;;-1:-1:-1::0;;;3942:28:34::1;;;;;;;;;;;3890:91;3991:44;4022:12;;3991:30;:44::i;:::-;4046:30;4091:94;;;;;;;;4119:1;4091:94;;;;4135:1;4091:94;;;;4150:5;4091:94;;;;;;4171:12;;4091:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;4091:94:34;;;;-1:-1:-1;;4196:16:34::1;:18:::0;;4046:139;;-1:-1:-1;4196:16:34;-1:-1:-1;4196:18:34::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;4238:10:34::1;4224:25;::::0;;;:13:::1;:25;::::0;;;;;;;:32;;4252:4:::1;-1:-1:-1::0;;4224:32:34;;::::1;::::0;::::1;::::0;;;4266:27;;;;;;;:39;;;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;:27;:39:::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;4315:11:34::1;:28:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;4315:28:34;;;;;::::1;::::0;;-1:-1:-1;;;;;;4315:28:34::1;4332:10;4315:28:::0;;::::1;::::0;;;4359:45:::1;::::0;::::1;::::0;-1:-1:-1;4359:45:34::1;::::0;4332:10;4391:12;;;;4359:45:::1;:::i;:::-;;;;;;;;3880:531;3802:609:::0;;:::o;5359:1108::-;3460:6;;-1:-1:-1;;;;;3460:6:34;3446:10;:20;3442:73;;3489:15;;-1:-1:-1;;;3489:15:34;;;;;;;;;;;3442:73;-1:-1:-1;;;;;9371:19:34;;9348:4;9371:19;;;:13;:19;;;;;;;;5419:90:::1;;5474:24;;-1:-1:-1::0;;;5474:24:34::1;;;;;;;;;;;5419:90;-1:-1:-1::0;;;;;5557:21:34;::::1;5519:35;5557:21:::0;;;:15:::1;:21;::::0;;;;5592:24:::1;::::0;::::1;::::0;::::1;;5588:85;;;5639:23;;-1:-1:-1::0;;;5639:23:34::1;;;;;;;;;;;5588:85;5712:10;5683:18;5704:19:::0;;;:7:::1;:19;::::0;;;;5737:15;;-1:-1:-1;;;;;5737:23:34;;::::1;:15:::0;::::1;:23:::0;5733:80:::1;;5783:19;;-1:-1:-1::0;;;5783:19:34::1;;;;;;;;;;;5733:80;5827:15:::0;;-1:-1:-1;;;;;5827:15:34::1;:29:::0;5823:69:::1;;5872:9;:7;:9::i;:::-;;5823:69;5924:88;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5924:88:34;;::::1;::::0;;5956:10:::1;:18:::0;::::1;5924:88;::::0;;::::1;::::0;;;-1:-1:-1;5924:88:34;;;;;;;;;;;;5902:19;;;:7:::1;:19:::0;;;;;;;:110;;;;;;::::1;-1:-1:-1::0;;;;;;5902:110:34;;::::1;;::::0;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;6027:11:::1;::::0;::::1;6023:277;;6068:11;:24:::0;;6082:10:::1;-1:-1:-1::0;;;;;;6068:24:34;;::::1;::::0;::::1;::::0;;;6106:11:::1;:24:::0;;;;::::1;::::0;;::::1;::::0;;6023:277:::1;;;6169:11;::::0;;-1:-1:-1;;;;;6169:11:34;;::::1;6161:20;::::0;;;:7:::1;:20;::::0;;;;;:25:::1;;:38:::0;;-1:-1:-1;;;;;;6161:38:34;;::::1;6189:10;6161:38:::0;;::::1;::::0;;;6240:11;;6213:19;;;;;;;:24:::1;;:38:::0;;;::::1;6240:11:::0;;;::::1;6213:38:::0;;;::::1;::::0;;;6265:24;;::::1;;::::0;;6023:277:::1;6309:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;;;;;;6363:10;-1:-1:-1::0;;;;;6363:18:34::1;;6334:13;:25;;;:47;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6391:30:34;;6420:1:::1;::::0;6391:13;;:25:::1;::::0;:30:::1;::::0;6420:1;;6391:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;6437:23:34::1;::::0;;6443:10:::1;9720:51:45::0;;-1:-1:-1;;;;;9807:32:45;;9802:2;9787:18;;9780:60;6437:23:34::1;::::0;9693:18:45;6437:23:34::1;9546:300:45::0;3558:105:34;8870:21:29;4302:15;;-1:-1:-1;;;4302:15:29;;;;4301:16;;-1:-1:-1;;;;;4348:14:29;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:29;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:29;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:29;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:29;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:29;-1:-1:-1;;;5013:22:29;;;4979:67;3609:6:34::1;:19:::0;;-1:-1:-1;;;;;;3609:19:34::1;3618:10;3609:19;::::0;;;3638:14:::1;:18:::0;5066:101:29;;;;5100:23;;-1:-1:-1;;;;5100:23:29;;;5142:14;;-1:-1:-1;14346:50:45;;5142:14:29;;14334:2:45;14319:18;5142:14:29;;;;;;;5066:101;4092:1081;;;;;3558:105:34:o;6740:2061::-;3327:6;;-1:-1:-1;;;;;3327:6:34;3313:10;:20;3309:76;;3356:18;;-1:-1:-1;;;3356:18:34;;;;;;;;;;;3309:76;6813:18:::1;::::0;::::1;:14;:18:::0;6842:21:::1;6851:11;6842:8;:21::i;:::-;6873:25;:23;:25::i;:::-;6909:21;:34:::0;;-1:-1:-1;;;;;;6909:34:34::1;::::0;;7004:24:::1;::::0;6985:16:::1;::::0;6941:1:::1;::::0;6972:57:::1;::::0;::::1;::::0;::::1;::::0;6941:1;;6985:43:::1;::::0;7004:24;6985:43:::1;:::i;:::-;6972:6;:57::i;:::-;6954:76;;7044:3;:8;;7051:1;7044:8:::0;7040:45:::1;;7068:7;6740:2061:::0;:::o;7040:45::-:1;7100:9;7095:902;7119:11;:18:::0;7115:22;::::1;7095:902;;;7158:12;7173:11;7185:1;7173:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;7173:14:34::1;7231:21:::0;;;7173:14;7231:21;;;;;;;7270:15:::1;::::0;::::1;::::0;7173:14;;-1:-1:-1;7231:21:34;7270:15:::1;;7266:62;;;7305:8;;;;7266:62;7346:21;::::0;-1:-1:-1;;;;;7346:21:34::1;7342:172;;-1:-1:-1::0;7401:21:34::1;:28:::0;;-1:-1:-1;;;;;;7401:28:34::1;-1:-1:-1::0;;;;;7401:28:34;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7447:22:34::1;:26:::0;7491:8:::1;;7342:172;7557:3;7532:28;;:22;;:28;7528:120;;;7580:27;7597:4;7603:3;7580:16;:27::i;:::-;7625:8;;;;7528:120;7711:21;::::0;-1:-1:-1;;;;;7711:21:34;;::::1;7662:30;7695:38:::0;;;:15:::1;:38;::::0;;;;;;;;7801:35;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;;;;::::1;::::0;::::1;::::0;;7695:38;;7769:143:::1;::::0;7801:35;;;;::::1;::::0;;7830:4;;7801:35;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7801:35:34;;;;-1:-1:-1;;;7801:35:34;;7838:56:::1;::::0;;;;::::1;::::0;;7855:21:::1;::::0;-1:-1:-1;;;;;7855:21:34::1;7838:56:::0;;;;::::1;::::0;::::1;::::0;;;;;;7855:21;7838:56;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;7884:8;;7838:56;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;::::0;7769:10:::1;:143::i;:::-;7748:239;;;7945:27;7962:4;7968:3;7945:16;:27::i;:::-;7144:853;;;7095:902;7139:3;;7095:902;;;-1:-1:-1::0;8084:21:34::1;::::0;-1:-1:-1;;;;;8084:21:34::1;8069:12;8148:18;::::0;::::1;-1:-1:-1::0;;;;;8148:18:34;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;8148:18:34::1;-1:-1:-1::0;8115:51:34;-1:-1:-1;8182:9:34::1;8177:129;8201:3;8197:7;;:1;:7;8177:129;;;8244:4;8225:13;8239:1;8225:16;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8225:23:34;;::::1;:16;::::0;;::::1;::::0;;;;;;:23;;;;8269:26;;::::1;;::::0;;;:20:::1;:26:::0;;;;;;;;;;::::1;::::0;;8206:3:::1;8177:129;;;;8315:26;8327:13;8315:11;:26::i;:::-;8427:7;:14:::0;;::::1;::::0;::::1;::::0;;8394:30:::1;8427:14:::0;;;;::::1;::::0;8451:24:::1;::::0;8458:17:::1;::::0;8451:24:::1;:::i;:::-;8519:14;;-1:-1:-1::0;;;;;8505:29:34::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;8505:29:34::1;-1:-1:-1::0;8485:49:34;;::::1;::::0;:17:::1;::::0;:49:::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;8550:9:34::1;8545:250;8569:14;;8565:1;:18;8545:250;;;8604:12;8619:13:::0;8633:7:::1;;::::0;::::1;:1:::0;:7:::1;:::i;:::-;8619:22;;;;;;;;:::i;:::-;;;;;;;8604:37;;8678:4;8655:17;8673:1;8655:20;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;:27:::0;;-1:-1:-1;;;;;8655:27:34;;::::1;-1:-1:-1::0;;;;;;8655:27:34;;::::1;;::::0;;;8707:76:::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;8748:21;;8655:27;8748:21;;;;;;:33;::::1;::::0;8707:76;;::::1;::::0;;;8696:88;;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;::::1;;::::0;;;;;::::1;::::0;8585:3:::1;8545:250;;;;6803:1998;;;;3394:1;6740:2061:::0;:::o;9662:433::-;9790:17;:24;9716:18;;9746:25;;-1:-1:-1;;;;;9774:41:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;9746:69:34;-1:-1:-1;9830:9:34;9825:240;9849:17;:24;9845:28;;9825:240;;;9894:12;9909:17;9927:1;9909:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9909:20:34;9972:21;;;9909:20;9972:21;;;;;;;;10019:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9909:20;;-1:-1:-1;9972:21:34;;10019:35;;;;9972:21;;10019:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10007:6;10014:1;10007:9;;;;;;;;:::i;:::-;;;;;;;;;;:47;-1:-1:-1;;9875:3:34;;9825:240;;;-1:-1:-1;10082:6:34;9662:433;-1:-1:-1;9662:433:34:o;4790:563::-;4863:10;9348:4;9371:19;;;:13;:19;;;;;;;;4836:94;;4897:22;;-1:-1:-1;;;4897:22:34;;;;;;;;;;;4836:94;4990:10;4940:31;4974:27;;;:15;:27;;;;;5015:20;;;;;;5011:84;;;5058:26;;-1:-1:-1;;;5058:26:34;;;;;;;;;;;5011:84;5156:14;;5128:24;;5109:16;;:43;;;;:::i;:::-;:61;5105:120;;5193:21;;-1:-1:-1;;;5193:21:34;;;;;;;;;;;5105:120;5235:20;;;:27;;-1:-1:-1;;5235:27:34;5258:4;5235:27;;;;;;5272:24;:29;;5235:20;;5272:29;;5258:4;;5272:29;:::i;:::-;;;;-1:-1:-1;;5317:29:34;;5335:10;14767:51:45;;5317:29:34;;14755:2:45;14740:18;5317:29:34;;;;;;;4826:527;4790:563::o;10618:847::-;3327:6;;10698:19;;-1:-1:-1;;;;;3327:6:34;3313:10;:20;3309:76;;3356:18;;-1:-1:-1;;;3356:18:34;;;;;;;;;;;3309:76;10729:26:::1;10775:30;10782:5;10789:1;10792:12;;10775:6;:30::i;:::-;-1:-1:-1::0;;;;;10758:48:34::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;;;;;10758:48:34::1;;;;;;;;;;;;;;;-1:-1:-1::0;10832:11:34::1;::::0;10729:77;;-1:-1:-1;;;;;;10832:11:34;;::::1;::::0;10858:18;::::1;::::0;10854:74:::1;;-1:-1:-1::0;;;;;;10899:13:34;;::::1;;::::0;;;:7:::1;:13;::::0;;;;:18:::1;;::::0;::::1;10854:74;10938:9;10961:211;-1:-1:-1::0;;;;;10968:18:34;::::1;::::0;;::::1;::::0;:31:::1;;;10994:5;10990:1;:9;10968:31;10961:211;;;-1:-1:-1::0;;;;;11036:13:34;;::::1;11015:18;11036:13:::0;;;:7:::1;:13;::::0;;;;;;;;11077:53;;;;::::1;::::0;;;;;;11113:15;;;;::::1;11077:53:::0;;::::1;::::0;;;;11036:13;11063:6;11070:3;::::1;::::0;::::1;:::i;:::-;;;11063:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:67;11151:10:::1;;::::0;-1:-1:-1;;;;;11151:10:34::1;::::0;-1:-1:-1;10961:211:34::1;;;11203:1;11186:6;:13;:18:::0;11182:62:::1;;11227:6;11220:13;;;;;;;11182:62;11302:25;11347:1;-1:-1:-1::0;;;;;11330:19:34::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;;;;;11330:19:34::1;;;;;;;;;;;;;;;-1:-1:-1::0;11302:47:34;-1:-1:-1;11364:9:34::1;11359:77;11383:1;11379;:5;11359:77;;;11416:6;11423:1;11416:9;;;;;;;;:::i;:::-;;;;;;;11405:5;11411:1;11405:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:20;11386:3:::1;;11359:77;;;-1:-1:-1::0;11453:5:34;10618:847;-1:-1:-1;;;;;;10618:847:34:o;10101:412::-;10226:11;:18;10152;;10182:25;;-1:-1:-1;;;;;10210:35:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;10182:63:34;-1:-1:-1;10260:9:34;10255:228;10279:11;:18;10275:22;;10255:228;;;10318:12;10333:11;10345:1;10333:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;10333:14:34;10390:21;;;10333:14;10390:21;;;;;;;;10437:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10333:14;;-1:-1:-1;10390:21:34;;10437:35;;;;10390:21;;10437:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10425:6;10432:1;10425:9;;;;;;;;:::i;:::-;;;;;;;;;;:47;-1:-1:-1;;10299:3:34;;10255:228;;16229:506;-1:-1:-1;;;;;16305:13:34;;;16284:18;16305:13;;;:7;:13;;;;;16332:15;;16305:13;;16332:15;16328:66;;16377:7;16229:506;:::o;16328:66::-;16427:13;;;;-1:-1:-1;;;;;16470:12:34;;;16455:27;;16451:239;;;16546:27;16561:12;-1:-1:-1;;;;;16546:12:34;;;:27;:::i;:::-;16514:15;;-1:-1:-1;;;;;16514:15:34;16498:32;;;;:15;:32;;;;;;;:44;:75;;:44;;:32;:75;;;;;:::i;:::-;;;;-1:-1:-1;16451:239:34;;-1:-1:-1;16451:239:34;;16652:27;-1:-1:-1;;;;;16667:12:34;;;16652;:27;:::i;:::-;16620:15;;-1:-1:-1;;;;;16620:15:34;16604:32;;;;:15;:32;;;;;;;:44;:75;;:44;;:32;:75;;;;;:::i;:::-;;;;-1:-1:-1;;16451:239:34;-1:-1:-1;;;;;;16716:12:34;;;;16700:13;;;;:28;16229:506::o;15176:1047::-;15261:10;15213:7;15253:19;;;:7;:19;;;;;15286:15;;-1:-1:-1;;;;;15286:15:34;15282:80;;15338:13;;-1:-1:-1;;;15338:13:34;;;;;;;;;;;15282:80;15391:11;;15376;;-1:-1:-1;;;;;15391:11:34;;;15376;;:26;15372:528;;15418:11;:24;;-1:-1:-1;;;;;;15418:24:34;;;;;;15456:11;:24;;;;;;;15372:528;;;15501:11;;15516:10;-1:-1:-1;;;;;15501:11:34;;;:25;15497:403;;15550:10;;;;;-1:-1:-1;;;;;15550:10:34;;;15577:1;15542:19;;;:7;:19;;;;;:24;;:37;;-1:-1:-1;;;;;;15542:37:34;;;;;;15607:10;;15593:11;:24;;;;;15607:10;;15593:24;;;15497:403;;;15638:11;;15653:10;-1:-1:-1;;;;;15638:11:34;;;:25;15634:266;;15687:11;;-1:-1:-1;;;;;15687:11:34;;;15715:1;15679:20;;;:7;:20;;;;;;:25;;:38;;-1:-1:-1;;;;;;15679:38:34;;;;;;15753:11;;;;;;15745:20;;;;;;:25;;;15731:39;;15745:25;;15731:39;;;;;;15634:266;;;15828:10;;;;;;15809;;;;;;-1:-1:-1;;;;;15809:10:34;;;15828;15801:19;;;:7;:19;;;;;;:24;;;:37;;15828:10;;;-1:-1:-1;;;;;;15801:37:34;;;;;;15879:10;;15860;;;;15852:19;;;;;:24;:37;;15879:10;;;;15852:37;;;;;15634:266;15934:15;;-1:-1:-1;;;;;15934:15:34;15910:21;15998:32;;;15934:15;15998:32;;;;;;;16070:13;;;;16041:25;;;:42;;15998:32;;16041:25;;:42;;16070:13;;16041:42;:::i;:::-;;;;-1:-1:-1;;16093:30:34;;16122:1;;16093:13;;:25;;:30;;16122:1;;16093:30;:::i;:::-;;;;-1:-1:-1;;16149:10:34;16141:19;;;;:7;:19;;;;;16134:26;;-1:-1:-1;;;;;;16134:26:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16171:12;:14;;;;;;:::i;:::-;;;;-1:-1:-1;16203:13:34;;15176:1047;-1:-1:-1;;;;15176:1047:34:o;4337:312:30:-;4417:4;-1:-1:-1;;;;;4426:6:30;4409:23;;;:120;;;4523:6;-1:-1:-1;;;;;4487:42:30;:32;-1:-1:-1;;;;;;;;;;;1519:53:26;-1:-1:-1;;;;;1519:53:26;;1441:138;4487:32:30;-1:-1:-1;;;;;4487:42:30;;;4409:120;4392:251;;;4603:29;;-1:-1:-1;;;4603:29:30;;;;;;;;;;;4392:251;4337:312::o;3686:84:34:-;3327:6;;-1:-1:-1;;;;;3327:6:34;3313:10;:20;3309:76;;3356:18;;-1:-1:-1;;;3356:18:34;;;;;;;;;;;5791:538:30;5908:17;-1:-1:-1;;;;;5890:50:30;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5890:52:30;;;;;;;;-1:-1:-1;;5890:52:30;;;;;;;;;;;;:::i;:::-;;;5886:437;;6252:60;;-1:-1:-1;;;6252:60:30;;-1:-1:-1;;;;;14785:32:45;;6252:60:30;;;14767:51:45;14740:18;;6252:60:30;;;;;;;;5886:437;-1:-1:-1;;;;;;;;;;;5984:40:30;;5980:120;;6051:34;;-1:-1:-1;;;6051:34:30;;;;;160:25:45;;;133:18;;6051:34:30;14:177:45;5980:120:30;6113:54;6143:17;6162:4;6113:29;:54::i;4766:213::-;4840:4;-1:-1:-1;;;;;4849:6:30;4832:23;;4828:145;;4933:29;;-1:-1:-1;;;4933:29:30;;;;;;;;;;;16741:348:34;16829:24;16866:12;;16856:23;;;;;;;:::i;:::-;;;;;;;;;;;16893:32;;;;:14;:32;;;;;;;16856:23;;-1:-1:-1;16893:32:34;;16889:95;;;16948:25;;-1:-1:-1;;;16948:25:34;;;;;;;;;;;16889:95;16994:38;17019:12;;16994:24;:38::i;:::-;17043:32;;;;:14;:32;;;;;:39;;-1:-1:-1;;17043:39:34;17078:4;17043:39;;;-1:-1:-1;;16741:348:34:o;12136:449::-;12210:12;;12198:9;12249:5;12253:1;12210:12;12249:5;:::i;:::-;12237:17;;12232:347;12256:5;;12232:347;;12344:9;12416:5;:1;12420;12416:5;:::i;:::-;12374:36;;;12391:15;12374:36;;;15592:19:45;15627:12;;;15620:28;;;15664:12;;12374:36:34;;;;;;;;;;;;12364:47;;;;;;12356:56;;:66;;;;:::i;:::-;12344:78;;12483:12;12498:5;12504:1;12498:8;;;;;;;;:::i;:::-;;;;;;;;;;;12531;;-1:-1:-1;;;;;12498:8:34;;;;-1:-1:-1;12531:5:34;;12537:1;;12531:8;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12531:8:34;12520:5;12526:1;12520:8;;;;;;;;:::i;:::-;;;;;;;;;:19;;;;;-1:-1:-1;;;;;12520:19:34;;;;;-1:-1:-1;;;;;12520:19:34;;;;;;12564:4;12553:5;12559:1;12553:8;;;;;;;;:::i;:::-;;;;;;;;;:15;;;;;-1:-1:-1;;;;;12553:15:34;;;;;-1:-1:-1;;;;;12553:15:34;;;;;;12268:311;;12263:3;;;;;:::i;:::-;;;;12232:347;;13053:317;13122:21;;-1:-1:-1;;;;;13122:21:34;13154:174;-1:-1:-1;;;;;13161:18:34;;;13154:174;;-1:-1:-1;;;;;13238:29:34;;;13195:15;13238:29;;;:20;:29;;;;;;;-1:-1:-1;;;;;;13281:36:34;;;;;13238:29;13154:174;;;-1:-1:-1;13362:1:34;13337:22;:26;13053:317::o;17632:337::-;17712:7;17741:3;17735;:9;17731:69;;;17767:22;;-1:-1:-1;;;17767:22:34;;;;;15861:25:45;;;15902:18;;;15895:34;;;15834:18;;17767:22:34;15687:248:45;17731:69:34;17822:3;17814:5;:11;17810:153;;;-1:-1:-1;17848:3:34;17841:10;;17810:153;17880:3;17872:5;:11;17868:95;;;-1:-1:-1;17906:3:34;17899:10;;17868:95;-1:-1:-1;17947:5:34;17868:95;17632:337;;;;;:::o;13376:1391::-;-1:-1:-1;;;;;13474:21:34;;13446:25;13474:21;;;:15;:21;;;;;;;;13446:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13446:49:34;;;;-1:-1:-1;;13551:86:34;;;;;;;;13568:21;;-1:-1:-1;;;;;13568:21:34;13551:86;;;-1:-1:-1;13597:38:34;;;13568:21;13551:86;13597:38;;;;;;;13551:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13446:49;;-1:-1:-1;13523:181:34;;13551:86;;-1:-1:-1;13551:86:34;;;;;;13597:38;;13551:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13655:35;;;;;;;;13672:4;-1:-1:-1;;;;;13655:35:34;;;;;13684:4;13655:35;;;13523:10;:181::i;:::-;13506:984;;;13729:17;13741:4;13729:11;:17::i;:::-;13506:984;;;13816:21;;-1:-1:-1;;;;;13816:21:34;;;13777:15;13795:43;;;:20;:43;;;;;;;;;;13907:573;-1:-1:-1;;;;;13942:21:34;;13938:123;;13987:28;14000:8;14010:4;13987:12;:28::i;:::-;14037:5;;13938:123;14140:58;;;;;;;;-1:-1:-1;;;;;14140:58:34;;;;;-1:-1:-1;14172:24:34;;;:15;14140:58;14172:24;;;;;;;14140:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14104:153;;14140:58;;;;14172:24;14140:58;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14200:35;;;;;;;;14217:4;-1:-1:-1;;;;;14200:35:34;;;;;14229:4;14200:35;;;14104:10;:153::i;:::-;14079:293;;;14298:28;14311:8;14321:4;14298:12;:28::i;14079:293::-;-1:-1:-1;;;;;;14436:29:34;;;;;;;:20;:29;;;;;;;;13907:573;;;13763:727;;13506:984;14529:3;14504:28;;:22;;:28;14500:261;;;14584:21;;;-1:-1:-1;;;;;14584:21:34;;;14548:12;14563:43;;;:20;:43;;;;;;;-1:-1:-1;;;;;;14620:50:34;;;;;;14684:28;;14563:43;;14684:28;;;;;;;14726:22;:24;;14563:43;;14726:24;;;:::i;:::-;;;;;;14534:227;13436:1331;13376:1391;;:::o;17299:327::-;17400:4;17451:10;:15;;;:27;;;17420:10;:15;;;:27;;;:58;17416:129;;-1:-1:-1;17519:15:34;;17501;;-1:-1:-1;;;;;17501:33:34;;;;;;17494:40;;17416:129;-1:-1:-1;17592:15:34;;;;;:27;;;17562:15;;;;:27;;:57;;17299:327::o;12591:456::-;12672:12;;12660:9;12711:5;12715:1;12672:12;12711:5;:::i;:::-;12699:17;;12694:347;12718:5;;12694:347;;12806:9;12878:5;:1;12882;12878:5;:::i;:::-;12836:36;;;12853:15;12836:36;;;15592:19:45;15627:12;;;15620:28;;;15664:12;;12836:36:34;;;;;;;;;;;;12826:47;;;;;;12818:56;;:66;;;;:::i;:::-;12806:78;;12945:12;12960:5;12966:1;12960:8;;;;;;;;:::i;:::-;;;;;;;12945:23;;12993:5;12999:1;12993:8;;;;;;;;:::i;:::-;;;;;;;12982:5;12988:1;12982:8;;;;;;;;:::i;:::-;;;;;;:19;-1:-1:-1;;;;;12982:19:34;;;-1:-1:-1;;;;;12982:19:34;;;;;13026:4;13015:5;13021:1;13015:8;;;;;;;;:::i;:::-;;;;;;:15;-1:-1:-1;;;;;13015:15:34;;;-1:-1:-1;;;;;13015:15:34;;;;;12730:311;;12725:3;;;;;:::i;:::-;;;;12694:347;;2264:344:26;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:26;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;17126:167:34:-;17234:2;17214:22;;17210:77;;17259:17;;-1:-1:-1;;;17259:17:34;;;;;;;;;;;14773:183;14856:21;;;-1:-1:-1;;;;;14827:26:34;;;14856:21;14827:26;;;:20;:26;;;;;:50;;14856:21;;;;-1:-1:-1;;;;;;14827:50:34;;;;;;;14887:28;;;;;;;;;14925:22;:24;;;;;;:::i;:::-;;;;;;14773:183;:::o;14962:208::-;-1:-1:-1;;;;;15060:26:34;;;;;;;:20;:26;;;;;;;;15031;;;;;;;;;:55;;15060:26;;;;-1:-1:-1;;;;;;15031:55:34;;;;;;;15096:26;;;:33;;;;;;;;;;15139:22;:24;;;;;;:::i;:::-;;;;;;14962:208;;:::o;1671:281:26:-;1748:17;-1:-1:-1;;;;;1748:29:26;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:26;;-1:-1:-1;;;;;14785:32:45;;1805:47:26;;;14767:51:45;14740:18;;1805:47:26;14621:203:45;1744:119:26;-1:-1:-1;;;;;;;;;;;1872:73:26;;-1:-1:-1;;;;;;1872:73:26;-1:-1:-1;;;;;1872:73:26;;;;;;;;;;1671:281::o;3900:253:31:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:31;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:31:o;6113:122:26:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:26;;;;;;;;;;;4421:582:31;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:31;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:31;;-1:-1:-1;;;;;14785:32:45;;4917:24:31;;;14767:51:45;14740:18;;4917:24:31;14621:203:45;4837:119:31;-1:-1:-1;4976:10:31;4969:17;;5543:487;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:31;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;196:173:45;264:20;;-1:-1:-1;;;;;313:31:45;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:186::-;433:6;486:2;474:9;465:7;461:23;457:32;454:52;;;502:1;499;492:12;454:52;525:29;544:9;525:29;:::i;565:250::-;650:1;660:113;674:6;671:1;668:13;660:113;;;750:11;;;744:18;731:11;;;724:39;696:2;689:10;660:113;;;-1:-1:-1;;807:1:45;789:16;;782:27;565:250::o;820:270::-;861:3;899:5;893:12;926:6;921:3;914:19;942:76;1011:6;1004:4;999:3;995:14;988:4;981:5;977:16;942:76;:::i;:::-;1072:2;1051:15;-1:-1:-1;;1047:29:45;1038:39;;;;1079:4;1034:50;;820:270;-1:-1:-1;;820:270:45:o;1095:566::-;1212:1;1208;1203:3;1199:11;1195:19;1187:5;1181:12;1177:38;1172:3;1165:51;1147:3;1262:4;1255:5;1251:16;1245:23;1300:4;1293;1288:3;1284:14;1277:28;1343:12;1337:19;1330:4;1325:3;1321:14;1314:43;1411:4;1397:12;1393:23;1387:30;1382:2;1377:3;1373:12;1366:52;1488:4;1474:12;1470:23;1464:30;1457:38;1450:46;1443:4;1438:3;1434:14;1427:70;1552:2;1538:12;1534:21;1528:28;1506:50;;1587:4;1581:3;1576;1572:13;1565:27;1608:47;1650:3;1645;1641:13;1625:14;1608:47;:::i;:::-;1601:54;1095:566;-1:-1:-1;;;;1095:566:45:o;1666:266::-;1851:2;1840:9;1833:21;1814:4;1871:55;1922:2;1911:9;1907:18;1899:6;1871:55;:::i;1937:610::-;2023:6;2031;2084:2;2072:9;2063:7;2059:23;2055:32;2052:52;;;2100:1;2097;2090:12;2052:52;2140:9;2127:23;-1:-1:-1;;;;;2165:6:45;2162:30;2159:50;;;2205:1;2202;2195:12;2159:50;2228:22;;2281:4;2273:13;;2269:27;-1:-1:-1;2259:55:45;;2310:1;2307;2300:12;2259:55;2350:2;2337:16;-1:-1:-1;;;;;2368:6:45;2365:30;2362:50;;;2408:1;2405;2398:12;2362:50;2461:7;2456:2;2446:6;2443:1;2439:14;2435:2;2431:23;2427:32;2424:45;2421:65;;;2482:1;2479;2472:12;2421:65;2513:2;2505:11;;;;;2535:6;;-1:-1:-1;1937:610:45;-1:-1:-1;;;1937:610:45:o;2552:346::-;2620:6;2628;2681:2;2669:9;2660:7;2656:23;2652:32;2649:52;;;2697:1;2694;2687:12;2649:52;-1:-1:-1;;2742:23:45;;;2862:2;2847:18;;;2834:32;;-1:-1:-1;2552:346:45:o;2903:1554::-;3093:4;3141:2;3130:9;3126:18;3171:2;3160:9;3153:21;3194:6;3229;3223:13;3260:6;3252;3245:22;3298:2;3287:9;3283:18;3276:25;;3360:2;3350:6;3347:1;3343:14;3332:9;3328:30;3324:39;3310:53;;3398:2;3390:6;3386:15;3419:1;3429:999;3443:6;3440:1;3437:13;3429:999;;;3508:22;;;-1:-1:-1;;3504:36:45;3492:49;;3564:13;;3647:9;;3632:25;;3704:2;3696:11;;;3690:18;3616:2;3728:15;;;3721:27;;;3809:19;;3604:15;;;3841:24;;;3931:21;;;-1:-1:-1;;3899:2:45;3887:15;;;3990:330;4006:8;4001:3;3998:17;3990:330;;;4079:15;;4129:9;;-1:-1:-1;;;;;4125:35:45;4111:50;;4215:2;4207:11;;;4201:18;4185:14;;;4178:42;4289:17;;;;4157:1;4025:11;;;;;4257:2;4246:14;;;;3990:330;;;-1:-1:-1;4343:5:45;-1:-1:-1;;;4383:2:45;4406:12;;;;4371:15;;;;;3465:1;3458:9;3429:999;;;-1:-1:-1;4445:6:45;;2903:1554;-1:-1:-1;;;;;;2903:1554:45:o;4462:127::-;4523:10;4518:3;4514:20;4511:1;4504:31;4554:4;4551:1;4544:15;4578:4;4575:1;4568:15;4594:1018;4671:6;4679;4732:2;4720:9;4711:7;4707:23;4703:32;4700:52;;;4748:1;4745;4738:12;4700:52;4771:29;4790:9;4771:29;:::i;:::-;4761:39;;4851:2;4840:9;4836:18;4823:32;-1:-1:-1;;;;;4870:6:45;4867:30;4864:50;;;4910:1;4907;4900:12;4864:50;4933:22;;4986:4;4978:13;;4974:27;-1:-1:-1;4964:55:45;;5015:1;5012;5005:12;4964:55;5055:2;5042:16;-1:-1:-1;;;;;5073:6:45;5070:30;5067:56;;;5103:18;;:::i;:::-;5152:2;5146:9;5244:2;5206:17;;-1:-1:-1;;5202:31:45;;;5235:2;5198:40;5194:54;5182:67;;-1:-1:-1;;;;;5264:34:45;;5300:22;;;5261:62;5258:88;;;5326:18;;:::i;:::-;5362:2;5355:22;5386;;;5427:15;;;5444:2;5423:24;5420:37;-1:-1:-1;5417:57:45;;;5470:1;5467;5460:12;5417:57;5526:6;5521:2;5517;5513:11;5508:2;5500:6;5496:15;5483:50;5579:1;5574:2;5565:6;5557;5553:19;5549:28;5542:39;5600:6;5590:16;;;;;4594:1018;;;;;:::o;5799:586::-;5869:6;5877;5930:2;5918:9;5909:7;5905:23;5901:32;5898:52;;;5946:1;5943;5936:12;5898:52;5986:9;5973:23;-1:-1:-1;;;;;6011:6:45;6008:30;6005:50;;;6051:1;6048;6041:12;6005:50;6074:22;;6127:4;6119:13;;6115:27;-1:-1:-1;6105:55:45;;6156:1;6153;6146:12;6105:55;6196:2;6183:16;-1:-1:-1;;;;;6214:6:45;6211:30;6208:50;;;6254:1;6251;6244:12;6208:50;6299:7;6294:2;6285:6;6281:2;6277:15;6273:24;6270:37;6267:57;;;6320:1;6317;6310:12;6390:269;6447:6;6500:2;6488:9;6479:7;6475:23;6471:32;6468:52;;;6516:1;6513;6506:12;6468:52;6555:9;6542:23;6605:4;6598:5;6594:16;6587:5;6584:27;6574:55;;6625:1;6622;6615:12;6664:828;6862:4;6910:2;6899:9;6895:18;6940:2;6929:9;6922:21;6963:6;6998;6992:13;7029:6;7021;7014:22;7067:2;7056:9;7052:18;7045:25;;7129:2;7119:6;7116:1;7112:14;7101:9;7097:30;7093:39;7079:53;;7167:2;7159:6;7155:15;7188:1;7198:265;7212:6;7209:1;7206:13;7198:265;;;7305:2;7301:7;7289:9;7281:6;7277:22;7273:36;7268:3;7261:49;7333:50;7376:6;7367;7361:13;7333:50;:::i;:::-;7323:60;-1:-1:-1;7418:2:45;7441:12;;;;7406:15;;;;;7234:1;7227:9;7198:265;;7497:219;7646:2;7635:9;7628:21;7609:4;7666:44;7706:2;7695:9;7691:18;7683:6;7666:44;:::i;7913:300::-;7981:6;7989;8042:2;8030:9;8021:7;8017:23;8013:32;8010:52;;;8058:1;8055;8048:12;8010:52;8081:29;8100:9;8081:29;:::i;:::-;8071:39;8179:2;8164:18;;;;8151:32;;-1:-1:-1;;;7913:300:45:o;8218:806::-;8466:2;8478:21;;;8548:13;;8451:18;;;8570:22;;;8418:4;;8649:15;;;8623:2;8608:18;;;8418:4;8692:306;8706:6;8703:1;8700:13;8692:306;;;8765:13;;8807:9;;-1:-1:-1;;;;;8803:35:45;;;8791:48;;8891:2;8883:11;;;8877:18;8873:44;8859:12;;;8852:66;8973:15;;;;8947:2;8938:12;;;;8835:1;8721:9;8692:306;;;-1:-1:-1;9015:3:45;;8218:806;-1:-1:-1;;;;;8218:806:45:o;9029:380::-;9108:1;9104:12;;;;9151;;;9172:61;;9226:4;9218:6;9214:17;9204:27;;9172:61;9279:2;9271:6;9268:14;9248:18;9245:38;9242:161;;9325:10;9320:3;9316:20;9313:1;9306:31;9360:4;9357:1;9350:15;9388:4;9385:1;9378:15;9414:127;9475:10;9470:3;9466:20;9463:1;9456:31;9506:4;9503:1;9496:15;9530:4;9527:1;9520:15;9851:127;9912:10;9907:3;9903:20;9900:1;9893:31;9943:4;9940:1;9933:15;9967:4;9964:1;9957:15;9983:125;10048:9;;;10069:10;;;10066:36;;;10082:18;;:::i;10113:128::-;10180:9;;;10201:11;;;10198:37;;;10215:18;;:::i;10371:517::-;10472:2;10467:3;10464:11;10461:421;;;10508:5;10505:1;10498:16;10552:4;10549:1;10539:18;10622:2;10610:10;10606:19;10603:1;10599:27;10593:4;10589:38;10658:4;10646:10;10643:20;10640:47;;;-1:-1:-1;10681:4:45;10640:47;10736:2;10731:3;10727:12;10724:1;10720:20;10714:4;10710:31;10700:41;;10791:81;10809:2;10802:5;10799:13;10791:81;;;10868:1;10854:16;;10835:1;10824:13;10791:81;;11064:1194;-1:-1:-1;;;;;11181:3:45;11178:27;11175:53;;;11208:18;;:::i;:::-;11237:93;11326:3;11286:38;11318:4;11312:11;11286:38;:::i;:::-;11280:4;11237:93;:::i;:::-;11356:1;11381:2;11376:3;11373:11;11398:1;11393:607;;;;12044:1;12061:3;12058:93;;;-1:-1:-1;12117:19:45;;;12104:33;12058:93;-1:-1:-1;;11021:1:45;11017:11;;;11013:24;11009:29;10999:40;11045:1;11041:11;;;10996:57;12164:78;;11366:886;;11393:607;10318:1;10311:14;;;10355:4;10342:18;;-1:-1:-1;;11429:17:45;;;11543:229;11557:7;11554:1;11551:14;11543:229;;;11646:19;;;11633:33;11618:49;;11753:4;11738:20;;;;11706:1;11694:14;;;;11573:12;11543:229;;;11547:3;11800;11791:7;11788:16;11785:159;;;11924:1;11920:6;11914:3;11908;11905:1;11901:11;11897:21;11893:34;11889:39;11876:9;11871:3;11867:19;11854:33;11850:79;11842:6;11835:95;11785:159;;;11987:1;11981:3;11978:1;11974:11;11970:19;11964:4;11957:33;11366:886;;11064:1194;;;:::o;12263:485::-;-1:-1:-1;;;;;12448:32:45;;12430:51;;12517:2;12512;12497:18;;12490:30;;;12536:18;;12529:34;;;12556:6;12605;12600:2;12585:18;;12572:48;12669:1;12640:22;;;12664:2;12636:31;;;12629:42;;;;12732:2;12711:15;;;-1:-1:-1;;12707:29:45;12692:45;12688:54;;12263:485;-1:-1:-1;;12263:485:45:o;12753:135::-;12792:3;12813:17;;;12810:43;;12833:18;;:::i;:::-;-1:-1:-1;12880:1:45;12869:13;;12753:135::o;12893:1295::-;13017:3;13011:10;-1:-1:-1;;;;;13036:6:45;13033:30;13030:56;;;13066:18;;:::i;:::-;13095:96;13184:6;13144:38;13176:4;13170:11;13144:38;:::i;:::-;13138:4;13095:96;:::i;:::-;13240:4;13271:2;13260:14;;13288:1;13283:648;;;;13975:1;13992:6;13989:89;;;-1:-1:-1;14044:19:45;;;14038:26;13989:89;-1:-1:-1;;11021:1:45;11017:11;;;11013:24;11009:29;10999:40;11045:1;11041:11;;;10996:57;14091:81;;13253:929;;13283:648;10318:1;10311:14;;;10355:4;10342:18;;-1:-1:-1;;13319:20:45;;;13436:222;13450:7;13447:1;13444:14;13436:222;;;13532:19;;;13526:26;13511:42;;13639:4;13624:20;;;;13592:1;13580:14;;;;13466:12;13436:222;;;13440:3;13686:6;13677:7;13674:19;13671:201;;;13747:19;;;13741:26;-1:-1:-1;;13830:1:45;13826:14;;;13842:3;13822:24;13818:37;13814:42;13799:58;13784:74;;13671:201;-1:-1:-1;;;;13918:1:45;13902:14;;;13898:22;13885:36;;-1:-1:-1;12893:1295:45:o;14407:209::-;14439:1;14465;14455:132;;14509:10;14504:3;14500:20;14497:1;14490:31;14544:4;14541:1;14534:15;14572:4;14569:1;14562:15;14455:132;-1:-1:-1;14601:9:45;;14407:209::o;14829:136::-;14868:3;14896:5;14886:39;;14905:18;;:::i;:::-;-1:-1:-1;;;14941:18:45;;14829:136::o;14970:184::-;15040:6;15093:2;15081:9;15072:7;15068:23;15064:32;15061:52;;;15109:1;15106;15099:12;15061:52;-1:-1:-1;15132:16:45;;14970:184;-1:-1:-1;14970:184:45:o;15159:271::-;15342:6;15334;15329:3;15316:33;15298:3;15368:16;;15393:13;;;15368:16;15159:271;-1:-1:-1;15159:271:45:o;15940:287::-;16069:3;16107:6;16101:13;16123:66;16182:6;16177:3;16170:4;16162:6;16158:17;16123:66;:::i;:::-;16205:16;;;;;15940:287;-1:-1:-1;;15940:287:45:o",
|
346
|
+
"linkReferences": {},
|
347
|
+
"immutableReferences": {
|
348
|
+
"40777": [
|
349
|
+
{ "start": 7329, "length": 32 },
|
350
|
+
{ "start": 7370, "length": 32 },
|
351
|
+
{ "start": 7730, "length": 32 }
|
352
|
+
]
|
353
|
+
}
|
354
|
+
},
|
355
|
+
"methodIdentifiers": {
|
356
|
+
"UPGRADE_INTERFACE_VERSION()": "ad3cb1cc",
|
357
|
+
"activeValidatorsCount()": "0d2bd909",
|
358
|
+
"calculateActiveValidators(uint8)": "857861db",
|
359
|
+
"getActiveValidators()": "9de70258",
|
360
|
+
"getAllValidators()": "f3513a37",
|
361
|
+
"getRounds(uint256,uint256)": "40f74f47",
|
362
|
+
"getRoundsCount()": "a09686c4",
|
363
|
+
"getValidator(address)": "1904bb2e",
|
364
|
+
"getVotes(address,uint256)": "eb9019d4",
|
365
|
+
"getVotesCount()": "1b605b86",
|
366
|
+
"initialize()": "8129fc1c",
|
367
|
+
"isValidatorRegistered(address)": "d04a68c7",
|
368
|
+
"proxiableUUID()": "52d1902d",
|
369
|
+
"registerValidator(bytes)": "602a9eee",
|
370
|
+
"registeredValidatorsCount()": "f1bd0b37",
|
371
|
+
"resignValidator()": "b85f5da2",
|
372
|
+
"resignedValidatorsCount()": "0777cbef",
|
373
|
+
"unvote()": "3174b689",
|
374
|
+
"updateValidator(bytes)": "5a8eed73",
|
375
|
+
"updateVoters(address[])": "2bdf6d43",
|
376
|
+
"upgradeToAndCall(address,bytes)": "4f1ef286",
|
377
|
+
"version()": "54fd4d50",
|
378
|
+
"vote(address)": "6dd7d8ea"
|
379
|
+
},
|
380
|
+
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BellowMinValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlsKeyAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlsKeyIsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerIsNotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerIsNotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerIsOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"InvalidRange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingVote\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyResigned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorNotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VoteResignedValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VoteSameValidator\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"Unvoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"}],\"name\":\"ValidatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"ValidatorResigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"}],\"name\":\"ValidatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeValidatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"}],\"name\":\"calculateActiveValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"votersCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"voteBalance\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isResigned\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"votersCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"voteBalance\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isResigned\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getRounds\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"round\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"voteBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct RoundValidator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Round[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRoundsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"votersCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"voteBalance\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isResigned\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct Validator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"internalType\":\"struct VoteResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVotesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isValidatorRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"}],\"name\":\"registerValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registeredValidatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resignValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resignedValidatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unvote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"}],\"name\":\"updateValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"voters\",\"type\":\"address[]\"}],\"name\":\"updateVoters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/consensus/ConsensusV1.sol\":\"ConsensusV1\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@contracts/=src/\",\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xb3f8fb5dc1c423373e346c4eccd6dc74ed858d70d58fb35cb721d1c56ca19bdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4d5d1267b6d314f4796418618fc5a685ac7b765306263814bf663dbf2e44373\",\"dweb:/ipfs/QmQsEM4ffPrg1zuyHAuWooYzqggynSjG2yRT1w1c9p1i42\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"src/consensus/ConsensusV1.sol\":{\"keccak256\":\"0x619ff2dd548b9cfb910b947dd385db725b0cb58ac9b153b6b0871944c315e150\",\"urls\":[\"bzz-raw://d2a80f3209dce39f49f245714f7e22c176125d582a2c063d15f87ee0f3e69731\",\"dweb:/ipfs/QmY31G6rPZi1kCjhUKYLQEs5uwzKa8QUabRUHrV24Lq1FQ\"]}},\"version\":1}",
|
381
|
+
"metadata": {
|
382
|
+
"compiler": { "version": "0.8.27+commit.40a35a09" },
|
383
|
+
"language": "Solidity",
|
384
|
+
"output": {
|
385
|
+
"abi": [
|
386
|
+
{
|
387
|
+
"inputs": [{ "internalType": "address", "name": "target", "type": "address" }],
|
388
|
+
"type": "error",
|
389
|
+
"name": "AddressEmptyCode"
|
390
|
+
},
|
391
|
+
{ "inputs": [], "type": "error", "name": "BellowMinValidators" },
|
392
|
+
{ "inputs": [], "type": "error", "name": "BlsKeyAlreadyRegistered" },
|
393
|
+
{ "inputs": [], "type": "error", "name": "BlsKeyIsInvalid" },
|
394
|
+
{ "inputs": [], "type": "error", "name": "CallerIsNotOwner" },
|
395
|
+
{ "inputs": [], "type": "error", "name": "CallerIsNotValidator" },
|
396
|
+
{ "inputs": [], "type": "error", "name": "CallerIsOwner" },
|
397
|
+
{
|
398
|
+
"inputs": [{ "internalType": "address", "name": "implementation", "type": "address" }],
|
399
|
+
"type": "error",
|
400
|
+
"name": "ERC1967InvalidImplementation"
|
401
|
+
},
|
402
|
+
{ "inputs": [], "type": "error", "name": "ERC1967NonPayable" },
|
403
|
+
{ "inputs": [], "type": "error", "name": "FailedCall" },
|
404
|
+
{ "inputs": [], "type": "error", "name": "InvalidInitialization" },
|
405
|
+
{
|
406
|
+
"inputs": [
|
407
|
+
{ "internalType": "uint256", "name": "min", "type": "uint256" },
|
408
|
+
{ "internalType": "uint256", "name": "max", "type": "uint256" }
|
409
|
+
],
|
410
|
+
"type": "error",
|
411
|
+
"name": "InvalidRange"
|
412
|
+
},
|
413
|
+
{ "inputs": [], "type": "error", "name": "MissingVote" },
|
414
|
+
{ "inputs": [], "type": "error", "name": "NotInitializing" },
|
415
|
+
{ "inputs": [], "type": "error", "name": "UUPSUnauthorizedCallContext" },
|
416
|
+
{
|
417
|
+
"inputs": [{ "internalType": "bytes32", "name": "slot", "type": "bytes32" }],
|
418
|
+
"type": "error",
|
419
|
+
"name": "UUPSUnsupportedProxiableUUID"
|
420
|
+
},
|
421
|
+
{ "inputs": [], "type": "error", "name": "ValidatorAlreadyRegistered" },
|
422
|
+
{ "inputs": [], "type": "error", "name": "ValidatorAlreadyResigned" },
|
423
|
+
{ "inputs": [], "type": "error", "name": "ValidatorNotRegistered" },
|
424
|
+
{ "inputs": [], "type": "error", "name": "VoteResignedValidator" },
|
425
|
+
{ "inputs": [], "type": "error", "name": "VoteSameValidator" },
|
426
|
+
{
|
427
|
+
"inputs": [{ "internalType": "uint64", "name": "version", "type": "uint64", "indexed": false }],
|
428
|
+
"type": "event",
|
429
|
+
"name": "Initialized",
|
430
|
+
"anonymous": false
|
431
|
+
},
|
432
|
+
{
|
433
|
+
"inputs": [
|
434
|
+
{ "internalType": "address", "name": "voter", "type": "address", "indexed": false },
|
435
|
+
{ "internalType": "address", "name": "validator", "type": "address", "indexed": false }
|
436
|
+
],
|
437
|
+
"type": "event",
|
438
|
+
"name": "Unvoted",
|
439
|
+
"anonymous": false
|
440
|
+
},
|
441
|
+
{
|
442
|
+
"inputs": [
|
443
|
+
{ "internalType": "address", "name": "implementation", "type": "address", "indexed": true }
|
444
|
+
],
|
445
|
+
"type": "event",
|
446
|
+
"name": "Upgraded",
|
447
|
+
"anonymous": false
|
448
|
+
},
|
449
|
+
{
|
450
|
+
"inputs": [
|
451
|
+
{ "internalType": "address", "name": "addr", "type": "address", "indexed": false },
|
452
|
+
{ "internalType": "bytes", "name": "blsPublicKey", "type": "bytes", "indexed": false }
|
453
|
+
],
|
454
|
+
"type": "event",
|
455
|
+
"name": "ValidatorRegistered",
|
456
|
+
"anonymous": false
|
457
|
+
},
|
458
|
+
{
|
459
|
+
"inputs": [{ "internalType": "address", "name": "addr", "type": "address", "indexed": false }],
|
460
|
+
"type": "event",
|
461
|
+
"name": "ValidatorResigned",
|
462
|
+
"anonymous": false
|
463
|
+
},
|
464
|
+
{
|
465
|
+
"inputs": [
|
466
|
+
{ "internalType": "address", "name": "addr", "type": "address", "indexed": false },
|
467
|
+
{ "internalType": "bytes", "name": "blsPublicKey", "type": "bytes", "indexed": false }
|
468
|
+
],
|
469
|
+
"type": "event",
|
470
|
+
"name": "ValidatorUpdated",
|
471
|
+
"anonymous": false
|
472
|
+
},
|
473
|
+
{
|
474
|
+
"inputs": [
|
475
|
+
{ "internalType": "address", "name": "voter", "type": "address", "indexed": false },
|
476
|
+
{ "internalType": "address", "name": "validator", "type": "address", "indexed": false }
|
477
|
+
],
|
478
|
+
"type": "event",
|
479
|
+
"name": "Voted",
|
480
|
+
"anonymous": false
|
481
|
+
},
|
482
|
+
{
|
483
|
+
"inputs": [],
|
484
|
+
"stateMutability": "view",
|
485
|
+
"type": "function",
|
486
|
+
"name": "UPGRADE_INTERFACE_VERSION",
|
487
|
+
"outputs": [{ "internalType": "string", "name": "", "type": "string" }]
|
488
|
+
},
|
489
|
+
{
|
490
|
+
"inputs": [],
|
491
|
+
"stateMutability": "view",
|
492
|
+
"type": "function",
|
493
|
+
"name": "activeValidatorsCount",
|
494
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
|
495
|
+
},
|
496
|
+
{
|
497
|
+
"inputs": [{ "internalType": "uint8", "name": "n", "type": "uint8" }],
|
498
|
+
"stateMutability": "nonpayable",
|
499
|
+
"type": "function",
|
500
|
+
"name": "calculateActiveValidators"
|
501
|
+
},
|
502
|
+
{
|
503
|
+
"inputs": [],
|
504
|
+
"stateMutability": "view",
|
505
|
+
"type": "function",
|
506
|
+
"name": "getActiveValidators",
|
507
|
+
"outputs": [
|
508
|
+
{
|
509
|
+
"internalType": "struct Validator[]",
|
510
|
+
"name": "",
|
511
|
+
"type": "tuple[]",
|
512
|
+
"components": [
|
513
|
+
{ "internalType": "address", "name": "addr", "type": "address" },
|
514
|
+
{
|
515
|
+
"internalType": "struct ValidatorData",
|
516
|
+
"name": "data",
|
517
|
+
"type": "tuple",
|
518
|
+
"components": [
|
519
|
+
{ "internalType": "uint256", "name": "votersCount", "type": "uint256" },
|
520
|
+
{ "internalType": "uint256", "name": "voteBalance", "type": "uint256" },
|
521
|
+
{ "internalType": "bool", "name": "isResigned", "type": "bool" },
|
522
|
+
{ "internalType": "bytes", "name": "blsPublicKey", "type": "bytes" }
|
523
|
+
]
|
524
|
+
}
|
525
|
+
]
|
526
|
+
}
|
527
|
+
]
|
528
|
+
},
|
529
|
+
{
|
530
|
+
"inputs": [],
|
531
|
+
"stateMutability": "view",
|
532
|
+
"type": "function",
|
533
|
+
"name": "getAllValidators",
|
534
|
+
"outputs": [
|
535
|
+
{
|
536
|
+
"internalType": "struct Validator[]",
|
537
|
+
"name": "",
|
538
|
+
"type": "tuple[]",
|
539
|
+
"components": [
|
540
|
+
{ "internalType": "address", "name": "addr", "type": "address" },
|
541
|
+
{
|
542
|
+
"internalType": "struct ValidatorData",
|
543
|
+
"name": "data",
|
544
|
+
"type": "tuple",
|
545
|
+
"components": [
|
546
|
+
{ "internalType": "uint256", "name": "votersCount", "type": "uint256" },
|
547
|
+
{ "internalType": "uint256", "name": "voteBalance", "type": "uint256" },
|
548
|
+
{ "internalType": "bool", "name": "isResigned", "type": "bool" },
|
549
|
+
{ "internalType": "bytes", "name": "blsPublicKey", "type": "bytes" }
|
550
|
+
]
|
551
|
+
}
|
552
|
+
]
|
553
|
+
}
|
554
|
+
]
|
555
|
+
},
|
556
|
+
{
|
557
|
+
"inputs": [
|
558
|
+
{ "internalType": "uint256", "name": "offset", "type": "uint256" },
|
559
|
+
{ "internalType": "uint256", "name": "count", "type": "uint256" }
|
560
|
+
],
|
561
|
+
"stateMutability": "view",
|
562
|
+
"type": "function",
|
563
|
+
"name": "getRounds",
|
564
|
+
"outputs": [
|
565
|
+
{
|
566
|
+
"internalType": "struct Round[]",
|
567
|
+
"name": "",
|
568
|
+
"type": "tuple[]",
|
569
|
+
"components": [
|
570
|
+
{ "internalType": "uint256", "name": "round", "type": "uint256" },
|
571
|
+
{
|
572
|
+
"internalType": "struct RoundValidator[]",
|
573
|
+
"name": "validators",
|
574
|
+
"type": "tuple[]",
|
575
|
+
"components": [
|
576
|
+
{ "internalType": "address", "name": "addr", "type": "address" },
|
577
|
+
{ "internalType": "uint256", "name": "voteBalance", "type": "uint256" }
|
578
|
+
]
|
579
|
+
}
|
580
|
+
]
|
581
|
+
}
|
582
|
+
]
|
583
|
+
},
|
584
|
+
{
|
585
|
+
"inputs": [],
|
586
|
+
"stateMutability": "view",
|
587
|
+
"type": "function",
|
588
|
+
"name": "getRoundsCount",
|
589
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
|
590
|
+
},
|
591
|
+
{
|
592
|
+
"inputs": [{ "internalType": "address", "name": "addr", "type": "address" }],
|
593
|
+
"stateMutability": "view",
|
594
|
+
"type": "function",
|
595
|
+
"name": "getValidator",
|
596
|
+
"outputs": [
|
597
|
+
{
|
598
|
+
"internalType": "struct Validator",
|
599
|
+
"name": "",
|
600
|
+
"type": "tuple",
|
601
|
+
"components": [
|
602
|
+
{ "internalType": "address", "name": "addr", "type": "address" },
|
603
|
+
{
|
604
|
+
"internalType": "struct ValidatorData",
|
605
|
+
"name": "data",
|
606
|
+
"type": "tuple",
|
607
|
+
"components": [
|
608
|
+
{ "internalType": "uint256", "name": "votersCount", "type": "uint256" },
|
609
|
+
{ "internalType": "uint256", "name": "voteBalance", "type": "uint256" },
|
610
|
+
{ "internalType": "bool", "name": "isResigned", "type": "bool" },
|
611
|
+
{ "internalType": "bytes", "name": "blsPublicKey", "type": "bytes" }
|
612
|
+
]
|
613
|
+
}
|
614
|
+
]
|
615
|
+
}
|
616
|
+
]
|
617
|
+
},
|
618
|
+
{
|
619
|
+
"inputs": [
|
620
|
+
{ "internalType": "address", "name": "addr", "type": "address" },
|
621
|
+
{ "internalType": "uint256", "name": "count", "type": "uint256" }
|
622
|
+
],
|
623
|
+
"stateMutability": "view",
|
624
|
+
"type": "function",
|
625
|
+
"name": "getVotes",
|
626
|
+
"outputs": [
|
627
|
+
{
|
628
|
+
"internalType": "struct VoteResult[]",
|
629
|
+
"name": "",
|
630
|
+
"type": "tuple[]",
|
631
|
+
"components": [
|
632
|
+
{ "internalType": "address", "name": "voter", "type": "address" },
|
633
|
+
{ "internalType": "address", "name": "validator", "type": "address" }
|
634
|
+
]
|
635
|
+
}
|
636
|
+
]
|
637
|
+
},
|
638
|
+
{
|
639
|
+
"inputs": [],
|
640
|
+
"stateMutability": "view",
|
641
|
+
"type": "function",
|
642
|
+
"name": "getVotesCount",
|
643
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
|
644
|
+
},
|
645
|
+
{ "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "initialize" },
|
646
|
+
{
|
647
|
+
"inputs": [{ "internalType": "address", "name": "addr", "type": "address" }],
|
648
|
+
"stateMutability": "view",
|
649
|
+
"type": "function",
|
650
|
+
"name": "isValidatorRegistered",
|
651
|
+
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }]
|
652
|
+
},
|
653
|
+
{
|
654
|
+
"inputs": [],
|
655
|
+
"stateMutability": "view",
|
656
|
+
"type": "function",
|
657
|
+
"name": "proxiableUUID",
|
658
|
+
"outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }]
|
659
|
+
},
|
660
|
+
{
|
661
|
+
"inputs": [{ "internalType": "bytes", "name": "blsPublicKey", "type": "bytes" }],
|
662
|
+
"stateMutability": "nonpayable",
|
663
|
+
"type": "function",
|
664
|
+
"name": "registerValidator"
|
665
|
+
},
|
666
|
+
{
|
667
|
+
"inputs": [],
|
668
|
+
"stateMutability": "view",
|
669
|
+
"type": "function",
|
670
|
+
"name": "registeredValidatorsCount",
|
671
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
|
672
|
+
},
|
673
|
+
{ "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "resignValidator" },
|
674
|
+
{
|
675
|
+
"inputs": [],
|
676
|
+
"stateMutability": "view",
|
677
|
+
"type": "function",
|
678
|
+
"name": "resignedValidatorsCount",
|
679
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
|
680
|
+
},
|
681
|
+
{ "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "unvote" },
|
682
|
+
{
|
683
|
+
"inputs": [{ "internalType": "bytes", "name": "blsPublicKey", "type": "bytes" }],
|
684
|
+
"stateMutability": "nonpayable",
|
685
|
+
"type": "function",
|
686
|
+
"name": "updateValidator"
|
687
|
+
},
|
688
|
+
{
|
689
|
+
"inputs": [{ "internalType": "address[]", "name": "voters", "type": "address[]" }],
|
690
|
+
"stateMutability": "nonpayable",
|
691
|
+
"type": "function",
|
692
|
+
"name": "updateVoters"
|
693
|
+
},
|
694
|
+
{
|
695
|
+
"inputs": [
|
696
|
+
{ "internalType": "address", "name": "newImplementation", "type": "address" },
|
697
|
+
{ "internalType": "bytes", "name": "data", "type": "bytes" }
|
698
|
+
],
|
699
|
+
"stateMutability": "payable",
|
700
|
+
"type": "function",
|
701
|
+
"name": "upgradeToAndCall"
|
702
|
+
},
|
703
|
+
{
|
704
|
+
"inputs": [],
|
705
|
+
"stateMutability": "pure",
|
706
|
+
"type": "function",
|
707
|
+
"name": "version",
|
708
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
|
709
|
+
},
|
710
|
+
{
|
711
|
+
"inputs": [{ "internalType": "address", "name": "addr", "type": "address" }],
|
712
|
+
"stateMutability": "nonpayable",
|
713
|
+
"type": "function",
|
714
|
+
"name": "vote"
|
715
|
+
}
|
716
|
+
],
|
717
|
+
"devdoc": {
|
718
|
+
"kind": "dev",
|
719
|
+
"methods": {
|
720
|
+
"proxiableUUID()": {
|
721
|
+
"details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."
|
722
|
+
},
|
723
|
+
"upgradeToAndCall(address,bytes)": {
|
724
|
+
"custom:oz-upgrades-unsafe-allow-reachable": "delegatecall",
|
725
|
+
"details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
|
726
|
+
}
|
727
|
+
},
|
728
|
+
"version": 1
|
729
|
+
},
|
730
|
+
"userdoc": { "kind": "user", "methods": {}, "version": 1 }
|
731
|
+
},
|
732
|
+
"settings": {
|
733
|
+
"remappings": [
|
734
|
+
"@contracts/=src/",
|
735
|
+
"@forge-std/=lib/forge-std/src/",
|
736
|
+
"@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
|
737
|
+
"@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/",
|
738
|
+
"ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/",
|
739
|
+
"erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
|
740
|
+
"forge-std/=lib/forge-std/src/",
|
741
|
+
"halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/",
|
742
|
+
"openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
|
743
|
+
"openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/",
|
744
|
+
"openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/",
|
745
|
+
"solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"
|
746
|
+
],
|
747
|
+
"optimizer": { "enabled": true, "runs": 200 },
|
748
|
+
"metadata": { "bytecodeHash": "ipfs" },
|
749
|
+
"compilationTarget": { "src/consensus/ConsensusV1.sol": "ConsensusV1" },
|
750
|
+
"evmVersion": "shanghai",
|
751
|
+
"libraries": {}
|
752
|
+
},
|
753
|
+
"sources": {
|
754
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol": {
|
755
|
+
"keccak256": "0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486",
|
756
|
+
"urls": [
|
757
|
+
"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d",
|
758
|
+
"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"
|
759
|
+
],
|
760
|
+
"license": "MIT"
|
761
|
+
},
|
762
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol": {
|
763
|
+
"keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d",
|
764
|
+
"urls": [
|
765
|
+
"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196",
|
766
|
+
"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"
|
767
|
+
],
|
768
|
+
"license": "MIT"
|
769
|
+
},
|
770
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol": {
|
771
|
+
"keccak256": "0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06",
|
772
|
+
"urls": [
|
773
|
+
"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c",
|
774
|
+
"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"
|
775
|
+
],
|
776
|
+
"license": "MIT"
|
777
|
+
},
|
778
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": {
|
779
|
+
"keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c",
|
780
|
+
"urls": [
|
781
|
+
"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa",
|
782
|
+
"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"
|
783
|
+
],
|
784
|
+
"license": "MIT"
|
785
|
+
},
|
786
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol": {
|
787
|
+
"keccak256": "0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b",
|
788
|
+
"urls": [
|
789
|
+
"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609",
|
790
|
+
"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"
|
791
|
+
],
|
792
|
+
"license": "MIT"
|
793
|
+
},
|
794
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol": {
|
795
|
+
"keccak256": "0xb3f8fb5dc1c423373e346c4eccd6dc74ed858d70d58fb35cb721d1c56ca19bdf",
|
796
|
+
"urls": [
|
797
|
+
"bzz-raw://c4d5d1267b6d314f4796418618fc5a685ac7b765306263814bf663dbf2e44373",
|
798
|
+
"dweb:/ipfs/QmQsEM4ffPrg1zuyHAuWooYzqggynSjG2yRT1w1c9p1i42"
|
799
|
+
],
|
800
|
+
"license": "MIT"
|
801
|
+
},
|
802
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol": {
|
803
|
+
"keccak256": "0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5",
|
804
|
+
"urls": [
|
805
|
+
"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23",
|
806
|
+
"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"
|
807
|
+
],
|
808
|
+
"license": "MIT"
|
809
|
+
},
|
810
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Errors.sol": {
|
811
|
+
"keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123",
|
812
|
+
"urls": [
|
813
|
+
"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf",
|
814
|
+
"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"
|
815
|
+
],
|
816
|
+
"license": "MIT"
|
817
|
+
},
|
818
|
+
"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol": {
|
819
|
+
"keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97",
|
820
|
+
"urls": [
|
821
|
+
"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b",
|
822
|
+
"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"
|
823
|
+
],
|
824
|
+
"license": "MIT"
|
825
|
+
},
|
826
|
+
"src/consensus/ConsensusV1.sol": {
|
827
|
+
"keccak256": "0x619ff2dd548b9cfb910b947dd385db725b0cb58ac9b153b6b0871944c315e150",
|
828
|
+
"urls": [
|
829
|
+
"bzz-raw://d2a80f3209dce39f49f245714f7e22c176125d582a2c063d15f87ee0f3e69731",
|
830
|
+
"dweb:/ipfs/QmY31G6rPZi1kCjhUKYLQEs5uwzKa8QUabRUHrV24Lq1FQ"
|
831
|
+
],
|
832
|
+
"license": null
|
833
|
+
}
|
834
|
+
},
|
835
|
+
"version": 1
|
836
|
+
},
|
837
|
+
"id": 34
|
838
|
+
}
|