@venusprotocol/governance-contracts 1.0.1-dev.2 → 1.0.1-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +4 -0
  2. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +215 -0
  3. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
  4. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  5. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  6. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  7. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  8. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  9. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
  10. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
  11. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
  12. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
  13. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +4 -0
  14. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +10 -0
  15. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
  16. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
  17. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  18. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
  19. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  20. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
  21. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  22. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  23. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  24. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
  25. package/artifacts/@venusprotocol/venus-protocol/contracts/Governance/XVS.sol/Owned.dbg.json +4 -0
  26. package/artifacts/@venusprotocol/venus-protocol/contracts/Governance/XVS.sol/Owned.json +66 -0
  27. package/artifacts/@venusprotocol/venus-protocol/contracts/Governance/XVS.sol/Tokenlock.dbg.json +4 -0
  28. package/artifacts/@venusprotocol/venus-protocol/contracts/Governance/XVS.sol/Tokenlock.json +90 -0
  29. package/artifacts/@venusprotocol/venus-protocol/contracts/Governance/XVS.sol/XVS.dbg.json +4 -0
  30. package/artifacts/@venusprotocol/venus-protocol/contracts/Governance/XVS.sol/XVS.json +618 -0
  31. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/Address.sol/Address.dbg.json +4 -0
  32. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/Address.sol/Address.json +10 -0
  33. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/ECDSA.sol/ECDSA.dbg.json +4 -0
  34. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/ECDSA.sol/ECDSA.json +10 -0
  35. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/IBEP20.sol/IBEP20.dbg.json +4 -0
  36. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/IBEP20.sol/IBEP20.json +206 -0
  37. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/SafeBEP20.sol/SafeBEP20.dbg.json +4 -0
  38. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/SafeBEP20.sol/SafeBEP20.json +10 -0
  39. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/SafeMath.sol/SafeMath.dbg.json +4 -0
  40. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/SafeMath.sol/SafeMath.json +10 -0
  41. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSStore.sol/XVSStore.dbg.json +4 -0
  42. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSStore.sol/XVSStore.json +244 -0
  43. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVault.sol/IXVSStore.dbg.json +4 -0
  44. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVault.sol/IXVSStore.json +56 -0
  45. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVault.sol/XVSVault.dbg.json +4 -0
  46. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVault.sol/XVSVault.json +1211 -0
  47. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultErrorReporter.sol/XVSVaultErrorReporter.dbg.json +4 -0
  48. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultErrorReporter.sol/XVSVaultErrorReporter.json +36 -0
  49. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultProxy.sol/XVSVaultProxy.dbg.json +4 -0
  50. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultProxy.sol/XVSVaultProxy.json +255 -0
  51. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultAdminStorage.dbg.json +4 -0
  52. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultAdminStorage.json +71 -0
  53. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorage.dbg.json +4 -0
  54. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorage.json +313 -0
  55. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorageV1.dbg.json +4 -0
  56. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorageV1.json +240 -0
  57. package/artifacts/build-info/0e028ff5062f0f59a7ffef92b702c074.json +1 -0
  58. package/artifacts/build-info/56323f6708e82b6f7b159248c3c1268a.json +1 -0
  59. package/artifacts/build-info/60a7730a05f99cbf38891be24e3a5c77.json +1 -0
  60. package/artifacts/build-info/bb792d434e41d4003eeb48354b3a6c5c.json +1 -0
  61. package/artifacts/build-info/e5638231ea42ec29d0230b1b013f1a57.json +1 -0
  62. package/artifacts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +4 -0
  63. package/artifacts/contracts/Governance/AccessControlManager.sol/AccessControlManager.json +369 -0
  64. package/artifacts/contracts/Governance/AccessControlledV5.sol/AccessControlledV5.dbg.json +4 -0
  65. package/artifacts/contracts/Governance/AccessControlledV5.sol/AccessControlledV5.json +45 -0
  66. package/artifacts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  67. package/artifacts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  68. package/artifacts/contracts/Governance/GovernorBravoDelegate.sol/GovernorBravoDelegate.dbg.json +4 -0
  69. package/artifacts/contracts/Governance/GovernorBravoDelegate.sol/GovernorBravoDelegate.json +1173 -0
  70. package/artifacts/contracts/Governance/GovernorBravoDelegator.sol/GovernorBravoDelegator.dbg.json +4 -0
  71. package/artifacts/contracts/Governance/GovernorBravoDelegator.sol/GovernorBravoDelegator.json +424 -0
  72. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorAlphaInterface.dbg.json +4 -0
  73. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorAlphaInterface.json +26 -0
  74. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoDelegateStorageV1.dbg.json +4 -0
  75. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoDelegateStorageV1.json +283 -0
  76. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoDelegateStorageV2.dbg.json +4 -0
  77. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoDelegateStorageV2.json +335 -0
  78. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoDelegatorStorage.dbg.json +4 -0
  79. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoDelegatorStorage.json +56 -0
  80. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoEvents.dbg.json +4 -0
  81. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/GovernorBravoEvents.json +312 -0
  82. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/TimelockInterface.dbg.json +4 -0
  83. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/TimelockInterface.json +188 -0
  84. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/XvsVaultInterface.dbg.json +4 -0
  85. package/artifacts/contracts/Governance/GovernorBravoInterfaces.sol/XvsVaultInterface.json +37 -0
  86. package/artifacts/contracts/Governance/IAccessControlManagerV5.sol/IAccessControlManagerV5.dbg.json +4 -0
  87. package/artifacts/contracts/Governance/IAccessControlManagerV5.sol/IAccessControlManagerV5.json +300 -0
  88. package/artifacts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  89. package/artifacts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  90. package/artifacts/contracts/Governance/Timelock.sol/Timelock.dbg.json +4 -0
  91. package/artifacts/contracts/Governance/Timelock.sol/Timelock.json +468 -0
  92. package/artifacts/contracts/Utils/SafeMath.sol/SafeMath.dbg.json +4 -0
  93. package/artifacts/contracts/Utils/SafeMath.sol/SafeMath.json +10 -0
  94. package/artifacts/contracts/test/MockAccessTest.sol/MockAccessTest.dbg.json +4 -0
  95. package/artifacts/contracts/test/MockAccessTest.sol/MockAccessTest.json +194 -0
  96. package/contracts/Governance/Timelock.sol +58 -1
  97. package/package.json +1 -1
@@ -0,0 +1,1211 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "XVSVault",
4
+ "sourceName": "@venusprotocol/venus-protocol/contracts/XVSVault/XVSVault.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "payable": false,
9
+ "stateMutability": "nonpayable",
10
+ "type": "constructor"
11
+ },
12
+ {
13
+ "anonymous": false,
14
+ "inputs": [
15
+ {
16
+ "indexed": true,
17
+ "internalType": "address",
18
+ "name": "oldAdmin",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "indexed": true,
23
+ "internalType": "address",
24
+ "name": "newAdmin",
25
+ "type": "address"
26
+ }
27
+ ],
28
+ "name": "AdminTransferred",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "delegator",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": true,
42
+ "internalType": "address",
43
+ "name": "fromDelegate",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "indexed": true,
48
+ "internalType": "address",
49
+ "name": "toDelegate",
50
+ "type": "address"
51
+ }
52
+ ],
53
+ "name": "DelegateChangedV2",
54
+ "type": "event"
55
+ },
56
+ {
57
+ "anonymous": false,
58
+ "inputs": [
59
+ {
60
+ "indexed": true,
61
+ "internalType": "address",
62
+ "name": "delegate",
63
+ "type": "address"
64
+ },
65
+ {
66
+ "indexed": false,
67
+ "internalType": "uint256",
68
+ "name": "previousBalance",
69
+ "type": "uint256"
70
+ },
71
+ {
72
+ "indexed": false,
73
+ "internalType": "uint256",
74
+ "name": "newBalance",
75
+ "type": "uint256"
76
+ }
77
+ ],
78
+ "name": "DelegateVotesChangedV2",
79
+ "type": "event"
80
+ },
81
+ {
82
+ "anonymous": false,
83
+ "inputs": [
84
+ {
85
+ "indexed": true,
86
+ "internalType": "address",
87
+ "name": "user",
88
+ "type": "address"
89
+ },
90
+ {
91
+ "indexed": true,
92
+ "internalType": "address",
93
+ "name": "rewardToken",
94
+ "type": "address"
95
+ },
96
+ {
97
+ "indexed": true,
98
+ "internalType": "uint256",
99
+ "name": "pid",
100
+ "type": "uint256"
101
+ },
102
+ {
103
+ "indexed": false,
104
+ "internalType": "uint256",
105
+ "name": "amount",
106
+ "type": "uint256"
107
+ }
108
+ ],
109
+ "name": "Deposit",
110
+ "type": "event"
111
+ },
112
+ {
113
+ "anonymous": false,
114
+ "inputs": [
115
+ {
116
+ "indexed": true,
117
+ "internalType": "address",
118
+ "name": "user",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "indexed": true,
123
+ "internalType": "address",
124
+ "name": "rewardToken",
125
+ "type": "address"
126
+ },
127
+ {
128
+ "indexed": true,
129
+ "internalType": "uint256",
130
+ "name": "pid",
131
+ "type": "uint256"
132
+ },
133
+ {
134
+ "indexed": false,
135
+ "internalType": "uint256",
136
+ "name": "amount",
137
+ "type": "uint256"
138
+ }
139
+ ],
140
+ "name": "ExecutedWithdrawal",
141
+ "type": "event"
142
+ },
143
+ {
144
+ "anonymous": false,
145
+ "inputs": [
146
+ {
147
+ "indexed": true,
148
+ "internalType": "address",
149
+ "name": "rewardToken",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "indexed": true,
154
+ "internalType": "uint256",
155
+ "name": "pid",
156
+ "type": "uint256"
157
+ },
158
+ {
159
+ "indexed": true,
160
+ "internalType": "address",
161
+ "name": "token",
162
+ "type": "address"
163
+ },
164
+ {
165
+ "indexed": false,
166
+ "internalType": "uint256",
167
+ "name": "allocPoints",
168
+ "type": "uint256"
169
+ },
170
+ {
171
+ "indexed": false,
172
+ "internalType": "uint256",
173
+ "name": "rewardPerBlock",
174
+ "type": "uint256"
175
+ },
176
+ {
177
+ "indexed": false,
178
+ "internalType": "uint256",
179
+ "name": "lockPeriod",
180
+ "type": "uint256"
181
+ }
182
+ ],
183
+ "name": "PoolAdded",
184
+ "type": "event"
185
+ },
186
+ {
187
+ "anonymous": false,
188
+ "inputs": [
189
+ {
190
+ "indexed": true,
191
+ "internalType": "address",
192
+ "name": "rewardToken",
193
+ "type": "address"
194
+ },
195
+ {
196
+ "indexed": true,
197
+ "internalType": "uint256",
198
+ "name": "pid",
199
+ "type": "uint256"
200
+ },
201
+ {
202
+ "indexed": false,
203
+ "internalType": "uint256",
204
+ "name": "oldAllocPoints",
205
+ "type": "uint256"
206
+ },
207
+ {
208
+ "indexed": false,
209
+ "internalType": "uint256",
210
+ "name": "newAllocPoints",
211
+ "type": "uint256"
212
+ }
213
+ ],
214
+ "name": "PoolUpdated",
215
+ "type": "event"
216
+ },
217
+ {
218
+ "anonymous": false,
219
+ "inputs": [
220
+ {
221
+ "indexed": true,
222
+ "internalType": "address",
223
+ "name": "user",
224
+ "type": "address"
225
+ },
226
+ {
227
+ "indexed": true,
228
+ "internalType": "address",
229
+ "name": "rewardToken",
230
+ "type": "address"
231
+ },
232
+ {
233
+ "indexed": true,
234
+ "internalType": "uint256",
235
+ "name": "pid",
236
+ "type": "uint256"
237
+ },
238
+ {
239
+ "indexed": false,
240
+ "internalType": "uint256",
241
+ "name": "amount",
242
+ "type": "uint256"
243
+ }
244
+ ],
245
+ "name": "ReqestedWithdrawal",
246
+ "type": "event"
247
+ },
248
+ {
249
+ "anonymous": false,
250
+ "inputs": [
251
+ {
252
+ "indexed": true,
253
+ "internalType": "address",
254
+ "name": "rewardToken",
255
+ "type": "address"
256
+ },
257
+ {
258
+ "indexed": false,
259
+ "internalType": "uint256",
260
+ "name": "oldReward",
261
+ "type": "uint256"
262
+ },
263
+ {
264
+ "indexed": false,
265
+ "internalType": "uint256",
266
+ "name": "newReward",
267
+ "type": "uint256"
268
+ }
269
+ ],
270
+ "name": "RewardAmountUpdated",
271
+ "type": "event"
272
+ },
273
+ {
274
+ "anonymous": false,
275
+ "inputs": [
276
+ {
277
+ "indexed": false,
278
+ "internalType": "address",
279
+ "name": "oldXvs",
280
+ "type": "address"
281
+ },
282
+ {
283
+ "indexed": false,
284
+ "internalType": "address",
285
+ "name": "oldStore",
286
+ "type": "address"
287
+ },
288
+ {
289
+ "indexed": false,
290
+ "internalType": "address",
291
+ "name": "newXvs",
292
+ "type": "address"
293
+ },
294
+ {
295
+ "indexed": false,
296
+ "internalType": "address",
297
+ "name": "newStore",
298
+ "type": "address"
299
+ }
300
+ ],
301
+ "name": "StoreUpdated",
302
+ "type": "event"
303
+ },
304
+ {
305
+ "anonymous": false,
306
+ "inputs": [
307
+ {
308
+ "indexed": true,
309
+ "internalType": "address",
310
+ "name": "rewardToken",
311
+ "type": "address"
312
+ },
313
+ {
314
+ "indexed": true,
315
+ "internalType": "uint256",
316
+ "name": "pid",
317
+ "type": "uint256"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "uint256",
322
+ "name": "oldPeriod",
323
+ "type": "uint256"
324
+ },
325
+ {
326
+ "indexed": false,
327
+ "internalType": "uint256",
328
+ "name": "newPeriod",
329
+ "type": "uint256"
330
+ }
331
+ ],
332
+ "name": "WithdrawalLockingPeriodUpdated",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "constant": true,
337
+ "inputs": [],
338
+ "name": "DELEGATION_TYPEHASH",
339
+ "outputs": [
340
+ {
341
+ "internalType": "bytes32",
342
+ "name": "",
343
+ "type": "bytes32"
344
+ }
345
+ ],
346
+ "payable": false,
347
+ "stateMutability": "view",
348
+ "type": "function"
349
+ },
350
+ {
351
+ "constant": true,
352
+ "inputs": [],
353
+ "name": "DOMAIN_TYPEHASH",
354
+ "outputs": [
355
+ {
356
+ "internalType": "bytes32",
357
+ "name": "",
358
+ "type": "bytes32"
359
+ }
360
+ ],
361
+ "payable": false,
362
+ "stateMutability": "view",
363
+ "type": "function"
364
+ },
365
+ {
366
+ "constant": false,
367
+ "inputs": [
368
+ {
369
+ "internalType": "contract XVSVaultProxy",
370
+ "name": "xvsVaultProxy",
371
+ "type": "address"
372
+ }
373
+ ],
374
+ "name": "_become",
375
+ "outputs": [],
376
+ "payable": false,
377
+ "stateMutability": "nonpayable",
378
+ "type": "function"
379
+ },
380
+ {
381
+ "constant": false,
382
+ "inputs": [
383
+ {
384
+ "internalType": "address",
385
+ "name": "_rewardToken",
386
+ "type": "address"
387
+ },
388
+ {
389
+ "internalType": "uint256",
390
+ "name": "_allocPoint",
391
+ "type": "uint256"
392
+ },
393
+ {
394
+ "internalType": "contract IBEP20",
395
+ "name": "_token",
396
+ "type": "address"
397
+ },
398
+ {
399
+ "internalType": "uint256",
400
+ "name": "_rewardPerBlock",
401
+ "type": "uint256"
402
+ },
403
+ {
404
+ "internalType": "uint256",
405
+ "name": "_lockPeriod",
406
+ "type": "uint256"
407
+ }
408
+ ],
409
+ "name": "add",
410
+ "outputs": [],
411
+ "payable": false,
412
+ "stateMutability": "nonpayable",
413
+ "type": "function"
414
+ },
415
+ {
416
+ "constant": true,
417
+ "inputs": [],
418
+ "name": "admin",
419
+ "outputs": [
420
+ {
421
+ "internalType": "address",
422
+ "name": "",
423
+ "type": "address"
424
+ }
425
+ ],
426
+ "payable": false,
427
+ "stateMutability": "view",
428
+ "type": "function"
429
+ },
430
+ {
431
+ "constant": false,
432
+ "inputs": [],
433
+ "name": "burnAdmin",
434
+ "outputs": [],
435
+ "payable": false,
436
+ "stateMutability": "nonpayable",
437
+ "type": "function"
438
+ },
439
+ {
440
+ "constant": true,
441
+ "inputs": [
442
+ {
443
+ "internalType": "address",
444
+ "name": "",
445
+ "type": "address"
446
+ },
447
+ {
448
+ "internalType": "uint32",
449
+ "name": "",
450
+ "type": "uint32"
451
+ }
452
+ ],
453
+ "name": "checkpoints",
454
+ "outputs": [
455
+ {
456
+ "internalType": "uint32",
457
+ "name": "fromBlock",
458
+ "type": "uint32"
459
+ },
460
+ {
461
+ "internalType": "uint96",
462
+ "name": "votes",
463
+ "type": "uint96"
464
+ }
465
+ ],
466
+ "payable": false,
467
+ "stateMutability": "view",
468
+ "type": "function"
469
+ },
470
+ {
471
+ "constant": false,
472
+ "inputs": [
473
+ {
474
+ "internalType": "address",
475
+ "name": "delegatee",
476
+ "type": "address"
477
+ }
478
+ ],
479
+ "name": "delegate",
480
+ "outputs": [],
481
+ "payable": false,
482
+ "stateMutability": "nonpayable",
483
+ "type": "function"
484
+ },
485
+ {
486
+ "constant": false,
487
+ "inputs": [
488
+ {
489
+ "internalType": "address",
490
+ "name": "delegatee",
491
+ "type": "address"
492
+ },
493
+ {
494
+ "internalType": "uint256",
495
+ "name": "nonce",
496
+ "type": "uint256"
497
+ },
498
+ {
499
+ "internalType": "uint256",
500
+ "name": "expiry",
501
+ "type": "uint256"
502
+ },
503
+ {
504
+ "internalType": "uint8",
505
+ "name": "v",
506
+ "type": "uint8"
507
+ },
508
+ {
509
+ "internalType": "bytes32",
510
+ "name": "r",
511
+ "type": "bytes32"
512
+ },
513
+ {
514
+ "internalType": "bytes32",
515
+ "name": "s",
516
+ "type": "bytes32"
517
+ }
518
+ ],
519
+ "name": "delegateBySig",
520
+ "outputs": [],
521
+ "payable": false,
522
+ "stateMutability": "nonpayable",
523
+ "type": "function"
524
+ },
525
+ {
526
+ "constant": true,
527
+ "inputs": [
528
+ {
529
+ "internalType": "address",
530
+ "name": "",
531
+ "type": "address"
532
+ }
533
+ ],
534
+ "name": "delegates",
535
+ "outputs": [
536
+ {
537
+ "internalType": "address",
538
+ "name": "",
539
+ "type": "address"
540
+ }
541
+ ],
542
+ "payable": false,
543
+ "stateMutability": "view",
544
+ "type": "function"
545
+ },
546
+ {
547
+ "constant": false,
548
+ "inputs": [
549
+ {
550
+ "internalType": "address",
551
+ "name": "_rewardToken",
552
+ "type": "address"
553
+ },
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "_pid",
557
+ "type": "uint256"
558
+ },
559
+ {
560
+ "internalType": "uint256",
561
+ "name": "_amount",
562
+ "type": "uint256"
563
+ }
564
+ ],
565
+ "name": "deposit",
566
+ "outputs": [],
567
+ "payable": false,
568
+ "stateMutability": "nonpayable",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "constant": false,
573
+ "inputs": [
574
+ {
575
+ "internalType": "address",
576
+ "name": "_rewardToken",
577
+ "type": "address"
578
+ },
579
+ {
580
+ "internalType": "uint256",
581
+ "name": "_pid",
582
+ "type": "uint256"
583
+ }
584
+ ],
585
+ "name": "executeWithdrawal",
586
+ "outputs": [],
587
+ "payable": false,
588
+ "stateMutability": "nonpayable",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "constant": true,
593
+ "inputs": [],
594
+ "name": "getAdmin",
595
+ "outputs": [
596
+ {
597
+ "internalType": "address",
598
+ "name": "",
599
+ "type": "address"
600
+ }
601
+ ],
602
+ "payable": false,
603
+ "stateMutability": "view",
604
+ "type": "function"
605
+ },
606
+ {
607
+ "constant": true,
608
+ "inputs": [
609
+ {
610
+ "internalType": "address",
611
+ "name": "account",
612
+ "type": "address"
613
+ }
614
+ ],
615
+ "name": "getCurrentVotes",
616
+ "outputs": [
617
+ {
618
+ "internalType": "uint96",
619
+ "name": "",
620
+ "type": "uint96"
621
+ }
622
+ ],
623
+ "payable": false,
624
+ "stateMutability": "view",
625
+ "type": "function"
626
+ },
627
+ {
628
+ "constant": true,
629
+ "inputs": [
630
+ {
631
+ "internalType": "address",
632
+ "name": "_rewardToken",
633
+ "type": "address"
634
+ },
635
+ {
636
+ "internalType": "uint256",
637
+ "name": "_pid",
638
+ "type": "uint256"
639
+ },
640
+ {
641
+ "internalType": "address",
642
+ "name": "_user",
643
+ "type": "address"
644
+ }
645
+ ],
646
+ "name": "getEligibleWithdrawalAmount",
647
+ "outputs": [
648
+ {
649
+ "internalType": "uint256",
650
+ "name": "withdrawalAmount",
651
+ "type": "uint256"
652
+ }
653
+ ],
654
+ "payable": false,
655
+ "stateMutability": "view",
656
+ "type": "function"
657
+ },
658
+ {
659
+ "constant": true,
660
+ "inputs": [
661
+ {
662
+ "internalType": "address",
663
+ "name": "account",
664
+ "type": "address"
665
+ },
666
+ {
667
+ "internalType": "uint256",
668
+ "name": "blockNumber",
669
+ "type": "uint256"
670
+ }
671
+ ],
672
+ "name": "getPriorVotes",
673
+ "outputs": [
674
+ {
675
+ "internalType": "uint96",
676
+ "name": "",
677
+ "type": "uint96"
678
+ }
679
+ ],
680
+ "payable": false,
681
+ "stateMutability": "view",
682
+ "type": "function"
683
+ },
684
+ {
685
+ "constant": true,
686
+ "inputs": [
687
+ {
688
+ "internalType": "address",
689
+ "name": "_rewardToken",
690
+ "type": "address"
691
+ },
692
+ {
693
+ "internalType": "uint256",
694
+ "name": "_pid",
695
+ "type": "uint256"
696
+ },
697
+ {
698
+ "internalType": "address",
699
+ "name": "_user",
700
+ "type": "address"
701
+ }
702
+ ],
703
+ "name": "getRequestedAmount",
704
+ "outputs": [
705
+ {
706
+ "internalType": "uint256",
707
+ "name": "",
708
+ "type": "uint256"
709
+ }
710
+ ],
711
+ "payable": false,
712
+ "stateMutability": "view",
713
+ "type": "function"
714
+ },
715
+ {
716
+ "constant": true,
717
+ "inputs": [
718
+ {
719
+ "internalType": "address",
720
+ "name": "_rewardToken",
721
+ "type": "address"
722
+ },
723
+ {
724
+ "internalType": "uint256",
725
+ "name": "_pid",
726
+ "type": "uint256"
727
+ },
728
+ {
729
+ "internalType": "address",
730
+ "name": "_user",
731
+ "type": "address"
732
+ }
733
+ ],
734
+ "name": "getUserInfo",
735
+ "outputs": [
736
+ {
737
+ "internalType": "uint256",
738
+ "name": "amount",
739
+ "type": "uint256"
740
+ },
741
+ {
742
+ "internalType": "uint256",
743
+ "name": "rewardDebt",
744
+ "type": "uint256"
745
+ },
746
+ {
747
+ "internalType": "uint256",
748
+ "name": "pendingWithdrawals",
749
+ "type": "uint256"
750
+ }
751
+ ],
752
+ "payable": false,
753
+ "stateMutability": "view",
754
+ "type": "function"
755
+ },
756
+ {
757
+ "constant": true,
758
+ "inputs": [
759
+ {
760
+ "internalType": "address",
761
+ "name": "_rewardToken",
762
+ "type": "address"
763
+ },
764
+ {
765
+ "internalType": "uint256",
766
+ "name": "_pid",
767
+ "type": "uint256"
768
+ },
769
+ {
770
+ "internalType": "address",
771
+ "name": "_user",
772
+ "type": "address"
773
+ }
774
+ ],
775
+ "name": "getWithdrawalRequests",
776
+ "outputs": [
777
+ {
778
+ "components": [
779
+ {
780
+ "internalType": "uint256",
781
+ "name": "amount",
782
+ "type": "uint256"
783
+ },
784
+ {
785
+ "internalType": "uint256",
786
+ "name": "lockedUntil",
787
+ "type": "uint256"
788
+ }
789
+ ],
790
+ "internalType": "struct XVSVaultStorageV1.WithdrawalRequest[]",
791
+ "name": "",
792
+ "type": "tuple[]"
793
+ }
794
+ ],
795
+ "payable": false,
796
+ "stateMutability": "view",
797
+ "type": "function"
798
+ },
799
+ {
800
+ "constant": true,
801
+ "inputs": [],
802
+ "name": "implementation",
803
+ "outputs": [
804
+ {
805
+ "internalType": "address",
806
+ "name": "",
807
+ "type": "address"
808
+ }
809
+ ],
810
+ "payable": false,
811
+ "stateMutability": "view",
812
+ "type": "function"
813
+ },
814
+ {
815
+ "constant": false,
816
+ "inputs": [
817
+ {
818
+ "internalType": "address",
819
+ "name": "_rewardToken",
820
+ "type": "address"
821
+ }
822
+ ],
823
+ "name": "massUpdatePools",
824
+ "outputs": [],
825
+ "payable": false,
826
+ "stateMutability": "nonpayable",
827
+ "type": "function"
828
+ },
829
+ {
830
+ "constant": true,
831
+ "inputs": [
832
+ {
833
+ "internalType": "address",
834
+ "name": "",
835
+ "type": "address"
836
+ }
837
+ ],
838
+ "name": "nonces",
839
+ "outputs": [
840
+ {
841
+ "internalType": "uint256",
842
+ "name": "",
843
+ "type": "uint256"
844
+ }
845
+ ],
846
+ "payable": false,
847
+ "stateMutability": "view",
848
+ "type": "function"
849
+ },
850
+ {
851
+ "constant": true,
852
+ "inputs": [
853
+ {
854
+ "internalType": "address",
855
+ "name": "",
856
+ "type": "address"
857
+ }
858
+ ],
859
+ "name": "numCheckpoints",
860
+ "outputs": [
861
+ {
862
+ "internalType": "uint32",
863
+ "name": "",
864
+ "type": "uint32"
865
+ }
866
+ ],
867
+ "payable": false,
868
+ "stateMutability": "view",
869
+ "type": "function"
870
+ },
871
+ {
872
+ "constant": true,
873
+ "inputs": [],
874
+ "name": "pendingAdmin",
875
+ "outputs": [
876
+ {
877
+ "internalType": "address",
878
+ "name": "",
879
+ "type": "address"
880
+ }
881
+ ],
882
+ "payable": false,
883
+ "stateMutability": "view",
884
+ "type": "function"
885
+ },
886
+ {
887
+ "constant": true,
888
+ "inputs": [
889
+ {
890
+ "internalType": "address",
891
+ "name": "_rewardToken",
892
+ "type": "address"
893
+ },
894
+ {
895
+ "internalType": "uint256",
896
+ "name": "_pid",
897
+ "type": "uint256"
898
+ },
899
+ {
900
+ "internalType": "address",
901
+ "name": "_user",
902
+ "type": "address"
903
+ }
904
+ ],
905
+ "name": "pendingReward",
906
+ "outputs": [
907
+ {
908
+ "internalType": "uint256",
909
+ "name": "",
910
+ "type": "uint256"
911
+ }
912
+ ],
913
+ "payable": false,
914
+ "stateMutability": "view",
915
+ "type": "function"
916
+ },
917
+ {
918
+ "constant": true,
919
+ "inputs": [],
920
+ "name": "pendingXVSVaultImplementation",
921
+ "outputs": [
922
+ {
923
+ "internalType": "address",
924
+ "name": "",
925
+ "type": "address"
926
+ }
927
+ ],
928
+ "payable": false,
929
+ "stateMutability": "view",
930
+ "type": "function"
931
+ },
932
+ {
933
+ "constant": true,
934
+ "inputs": [
935
+ {
936
+ "internalType": "address",
937
+ "name": "",
938
+ "type": "address"
939
+ },
940
+ {
941
+ "internalType": "uint256",
942
+ "name": "",
943
+ "type": "uint256"
944
+ }
945
+ ],
946
+ "name": "poolInfos",
947
+ "outputs": [
948
+ {
949
+ "internalType": "contract IBEP20",
950
+ "name": "token",
951
+ "type": "address"
952
+ },
953
+ {
954
+ "internalType": "uint256",
955
+ "name": "allocPoint",
956
+ "type": "uint256"
957
+ },
958
+ {
959
+ "internalType": "uint256",
960
+ "name": "lastRewardBlock",
961
+ "type": "uint256"
962
+ },
963
+ {
964
+ "internalType": "uint256",
965
+ "name": "accRewardPerShare",
966
+ "type": "uint256"
967
+ },
968
+ {
969
+ "internalType": "uint256",
970
+ "name": "lockPeriod",
971
+ "type": "uint256"
972
+ }
973
+ ],
974
+ "payable": false,
975
+ "stateMutability": "view",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "constant": true,
980
+ "inputs": [
981
+ {
982
+ "internalType": "address",
983
+ "name": "rewardToken",
984
+ "type": "address"
985
+ }
986
+ ],
987
+ "name": "poolLength",
988
+ "outputs": [
989
+ {
990
+ "internalType": "uint256",
991
+ "name": "",
992
+ "type": "uint256"
993
+ }
994
+ ],
995
+ "payable": false,
996
+ "stateMutability": "view",
997
+ "type": "function"
998
+ },
999
+ {
1000
+ "constant": false,
1001
+ "inputs": [
1002
+ {
1003
+ "internalType": "address",
1004
+ "name": "_rewardToken",
1005
+ "type": "address"
1006
+ },
1007
+ {
1008
+ "internalType": "uint256",
1009
+ "name": "_pid",
1010
+ "type": "uint256"
1011
+ },
1012
+ {
1013
+ "internalType": "uint256",
1014
+ "name": "_amount",
1015
+ "type": "uint256"
1016
+ }
1017
+ ],
1018
+ "name": "requestWithdrawal",
1019
+ "outputs": [],
1020
+ "payable": false,
1021
+ "stateMutability": "nonpayable",
1022
+ "type": "function"
1023
+ },
1024
+ {
1025
+ "constant": true,
1026
+ "inputs": [
1027
+ {
1028
+ "internalType": "address",
1029
+ "name": "",
1030
+ "type": "address"
1031
+ }
1032
+ ],
1033
+ "name": "rewardTokenAmountsPerBlock",
1034
+ "outputs": [
1035
+ {
1036
+ "internalType": "uint256",
1037
+ "name": "",
1038
+ "type": "uint256"
1039
+ }
1040
+ ],
1041
+ "payable": false,
1042
+ "stateMutability": "view",
1043
+ "type": "function"
1044
+ },
1045
+ {
1046
+ "constant": false,
1047
+ "inputs": [
1048
+ {
1049
+ "internalType": "address",
1050
+ "name": "_rewardToken",
1051
+ "type": "address"
1052
+ },
1053
+ {
1054
+ "internalType": "uint256",
1055
+ "name": "_pid",
1056
+ "type": "uint256"
1057
+ },
1058
+ {
1059
+ "internalType": "uint256",
1060
+ "name": "_allocPoint",
1061
+ "type": "uint256"
1062
+ }
1063
+ ],
1064
+ "name": "set",
1065
+ "outputs": [],
1066
+ "payable": false,
1067
+ "stateMutability": "nonpayable",
1068
+ "type": "function"
1069
+ },
1070
+ {
1071
+ "constant": false,
1072
+ "inputs": [
1073
+ {
1074
+ "internalType": "address",
1075
+ "name": "_rewardToken",
1076
+ "type": "address"
1077
+ },
1078
+ {
1079
+ "internalType": "uint256",
1080
+ "name": "_rewardAmount",
1081
+ "type": "uint256"
1082
+ }
1083
+ ],
1084
+ "name": "setRewardAmountPerBlock",
1085
+ "outputs": [],
1086
+ "payable": false,
1087
+ "stateMutability": "nonpayable",
1088
+ "type": "function"
1089
+ },
1090
+ {
1091
+ "constant": false,
1092
+ "inputs": [
1093
+ {
1094
+ "internalType": "address",
1095
+ "name": "_rewardToken",
1096
+ "type": "address"
1097
+ },
1098
+ {
1099
+ "internalType": "uint256",
1100
+ "name": "_pid",
1101
+ "type": "uint256"
1102
+ },
1103
+ {
1104
+ "internalType": "uint256",
1105
+ "name": "_newPeriod",
1106
+ "type": "uint256"
1107
+ }
1108
+ ],
1109
+ "name": "setWithdrawalLockingPeriod",
1110
+ "outputs": [],
1111
+ "payable": false,
1112
+ "stateMutability": "nonpayable",
1113
+ "type": "function"
1114
+ },
1115
+ {
1116
+ "constant": false,
1117
+ "inputs": [
1118
+ {
1119
+ "internalType": "address",
1120
+ "name": "_xvs",
1121
+ "type": "address"
1122
+ },
1123
+ {
1124
+ "internalType": "address",
1125
+ "name": "_xvsStore",
1126
+ "type": "address"
1127
+ }
1128
+ ],
1129
+ "name": "setXvsStore",
1130
+ "outputs": [],
1131
+ "payable": false,
1132
+ "stateMutability": "nonpayable",
1133
+ "type": "function"
1134
+ },
1135
+ {
1136
+ "constant": true,
1137
+ "inputs": [
1138
+ {
1139
+ "internalType": "address",
1140
+ "name": "",
1141
+ "type": "address"
1142
+ }
1143
+ ],
1144
+ "name": "totalAllocPoints",
1145
+ "outputs": [
1146
+ {
1147
+ "internalType": "uint256",
1148
+ "name": "",
1149
+ "type": "uint256"
1150
+ }
1151
+ ],
1152
+ "payable": false,
1153
+ "stateMutability": "view",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "constant": false,
1158
+ "inputs": [
1159
+ {
1160
+ "internalType": "address",
1161
+ "name": "_rewardToken",
1162
+ "type": "address"
1163
+ },
1164
+ {
1165
+ "internalType": "uint256",
1166
+ "name": "_pid",
1167
+ "type": "uint256"
1168
+ }
1169
+ ],
1170
+ "name": "updatePool",
1171
+ "outputs": [],
1172
+ "payable": false,
1173
+ "stateMutability": "nonpayable",
1174
+ "type": "function"
1175
+ },
1176
+ {
1177
+ "constant": true,
1178
+ "inputs": [],
1179
+ "name": "xvsAddress",
1180
+ "outputs": [
1181
+ {
1182
+ "internalType": "address",
1183
+ "name": "",
1184
+ "type": "address"
1185
+ }
1186
+ ],
1187
+ "payable": false,
1188
+ "stateMutability": "view",
1189
+ "type": "function"
1190
+ },
1191
+ {
1192
+ "constant": true,
1193
+ "inputs": [],
1194
+ "name": "xvsStore",
1195
+ "outputs": [
1196
+ {
1197
+ "internalType": "address",
1198
+ "name": "",
1199
+ "type": "address"
1200
+ }
1201
+ ],
1202
+ "payable": false,
1203
+ "stateMutability": "view",
1204
+ "type": "function"
1205
+ }
1206
+ ],
1207
+ "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055613b5f806100326000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637ac9245611610130578063a09eab7a116100b8578063de0368b21161007c578063de0368b2146104c9578063e7a324dc146104d1578063f1127ed8146104d9578063f851a440146104fa578063fba1b1f91461050257610232565b8063a09eab7a1461045d578063b4b5ea5714610470578063c210259614610483578063c3cda520146104a3578063d7ae45e2146104b657610232565b80638ed7333d116100ff5780638ed7333d146103de57806392e35000146103f157806393c7c4d11461041557806398e1b31b146104285780639e2b6c4d1461044a57610232565b80637ac924561461039d5780637ecebe00146103b057806381bdf98c146103c35780638308d7e9146103cb57610232565b80634298bdbd116101be5780635ff56315116101825780635ff563151461032f5780636dd77cbd146103425780636e9960c3146103555780636fcfff451461035d578063782d6fe11461037d57610232565b80634298bdbd146102db5780635362b503146102ee578063587cde1e146103015780635c19a95c146103145780635c60da1b1461032757610232565b806320606b701161020557806320606b701461029b57806324f52bbf146102a357806326782247146102b85780632eda5c6c146102c0578063358ae036146102d357610232565b80630af13728146102375780630efe6a8b14610260578063115b512f146102755780631d504dc614610288575b600080fd5b61024a610245366004612b9c565b610515565b60405161025791906136ca565b60405180910390f35b61027361026e366004612c5e565b61055b565b005b610273610283366004612c5e565b6107b9565b610273610296366004612d76565b61099b565b61024a610acf565b6102ab610ae6565b60405161025791906135f4565b6102ab610af5565b61024a6102ce366004612af6565b610b04565b6102ab610b16565b61024a6102e9366004612af6565b610b25565b6102736102fc366004612af6565b610b37565b6102ab61030f366004612af6565b610b71565b610273610322366004612af6565b610b8c565b6102ab610b96565b61027361033d366004612b32565b610ba5565b61024a610350366004612b9c565b610c5d565b6102ab610d12565b61037061036b366004612af6565b610d21565b6040516102579190613956565b61039061038b366004612b6c565b610d39565b604051610257919061397f565b6102736103ab366004612b6c565b610f48565b61024a6103be366004612af6565b611167565b610273611179565b6102736103d9366004612c5e565b6111ed565b6102736103ec366004612b6c565b61134b565b6104046103ff366004612b6c565b611363565b604051610257959493929190613750565b610273610423366004612b6c565b6113b8565b61043b610436366004612b9c565b61144c565b6040516102579392919061393b565b610273610458366004612c5e565b61149e565b61024a61046b366004612b9c565b611574565b61039061047e366004612af6565b61175d565b610496610491366004612b9c565b6117d0565b60405161025791906136b9565b6102736104b1366004612ca1565b611876565b61024a6104c4366004612af6565b6119f7565b6102ab611a12565b61024a611a21565b6104ec6104e7366004612d28565b611a2d565b604051610257929190613964565b6102ab611a62565b610273610510366004612be9565b611a71565b60006105218484611cc2565b506001600160a01b0380841660009081526007602090815260408083208684528252808320938516835292905220600201545b9392505050565b600354600160a01b900460ff1661058d5760405162461bcd60e51b81526004016105849061387d565b60405180910390fd5b6003805460ff60a01b191690556105a48383611cc2565b6001600160a01b03831660009081526008602052604081208054849081106105c857fe5b600091825260208083206001600160a01b0388168452600782526040808520888652835280852033865290925292206005909102909101915061060b8585611cf9565b8054156106c0576000610658826001015461064c64e8d4a5100061064087600301548760000154611e7c90919063ffffffff16565b9063ffffffff611eb616565b9063ffffffff611ef816565b6004805460405163135b33cd60e31b81529293506001600160a01b031691639ad99e689161068c918a913391879101613602565b600060405180830381600087803b1580156106a657600080fd5b505af11580156106ba573d6000803e3d6000fd5b50505050505b81546106dd906001600160a01b031633308663ffffffff611f3a16565b80546106ef908463ffffffff611f9b16565b80825560038301546107129164e8d4a5100091610640919063ffffffff611e7c16565b600182015560055482546001600160a01b039081169116141561075357336000908152600f602052604081205461075391906001600160a01b031685611fc0565b83856001600160a01b0316336001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78660405161079791906136ca565b60405180910390a450506003805460ff60a01b1916600160a01b179055505050565b600354600160a01b900460ff166107e25760405162461bcd60e51b81526004016105849061387d565b6003805460ff60a01b191690556107f98383611cc2565b600081116108195760405162461bcd60e51b81526004016105849061385d565b6001600160a01b0383166000908152600760209081526040808320858452825280832033845290915290206002810154610859908363ffffffff611f9b16565b815410156108795760405162461bcd60e51b81526004016105849061390d565b6001600160a01b038416600090815260086020526040812080548590811061089d57fe5b600091825260208083206001600160a01b0389168452600a8252604080852089865283528085203386529092529083206005929092020160048101549093509091906108e99042611f9b565b90506108f784838784612152565b6005546001600160a01b038881169116141561093357336000908152600f6020526040812054610933916001600160a01b039091169087611fc0565b85876001600160a01b0316336001600160a01b03167fc0863fcc3a3b119da683cc8d57bce56f78d0d373c023726dea2aaf6ce3f837ac8860405161097791906136ca565b60405180910390a450506003805460ff60a01b1916600160a01b1790555050505050565b806001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0c9190810190612b14565b6001600160a01b0316336001600160a01b031614610a3c5760405162461bcd60e51b81526004016105849061391d565b806001600160a01b031663c1e803346040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a7757600080fd5b505af1158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aaf9190810190612d94565b15610acc5760405162461bcd60e51b8152600401610584906138bd565b50565b604051610adb906135de565b604051809103902081565b6004546001600160a01b031681565b6001546001600160a01b031681565b60066020526000908152604090205481565b6005546001600160a01b031681565b60096020526000908152604090205481565b6001600160a01b038116600090815260086020526040812054905b81811015610b6c57610b648382611cf9565b600101610b52565b505050565b600f602052600090815260409020546001600160a01b031681565b610acc338261227c565b6002546001600160a01b031681565b6000546001600160a01b03163314610bcf5760405162461bcd60e51b81526004016105849061389d565b60058054600480546001600160a01b03198084166001600160a01b038881169190911790955581168585161790915560038054600160a01b60ff60a01b199091161790556040519183169216907f559f314bb90394a4a9ceb724f365b36a53587d894352c43d12901fd68010145690610c4f90849084908890889061362a565b60405180910390a150505050565b6000610c698484611cc2565b6001600160a01b038085166000908152600a60209081526040808320878452825280832093861683529290522080545b600081118015610cc95750610cc9826001830381548110610cb657fe5b906000526020600020906002020161230b565b15610d0957610cfe826001830381548110610ce057fe5b6000918252602090912060029091020154849063ffffffff611f9b16565b925060001901610c99565b50509392505050565b6000546001600160a01b031690565b60116020526000908152604090205463ffffffff1681565b6000438210610d5a5760405162461bcd60e51b81526004016105849061383d565b6001600160a01b03831660009081526011602052604090205463ffffffff1680610d88576000915050610f42565b6001600160a01b038416600090815260106020908152604080832063ffffffff600019860181168552925290912054168310610e04576001600160a01b03841660009081526010602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b03169050610f42565b6001600160a01b038416600090815260106020908152604080832083805290915290205463ffffffff16831015610e3f576000915050610f42565b600060001982015b8163ffffffff168163ffffffff161115610f0257600282820363ffffffff16048103610e71612a87565b506001600160a01b038716600090815260106020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b03169181019190915290871415610edd57602001519450610f429350505050565b805163ffffffff16871115610ef457819350610efb565b6001820392505b5050610e47565b506001600160a01b038516600090815260106020908152604080832063ffffffff909416835292905220546001600160601b03600160201b909104169150505b92915050565b600354600160a01b900460ff16610f715760405162461bcd60e51b81526004016105849061387d565b6003805460ff60a01b19169055610f888282611cc2565b6001600160a01b0382166000908152600860205260408120805483908110610fac57fe5b600091825260208083206001600160a01b038716808552600783526040808620888752845280862033808852908552818720928752600a8552818720898852855281872090875290935291842060059093020193509161100c8383612315565b90506000811161102e5760405162461bcd60e51b8152600401610584906138cd565b6110388686611cf9565b6000611066846001015461064c64e8d4a5100061064089600301548960000154611e7c90919063ffffffff16565b6004805460405163135b33cd60e31b81529293506001600160a01b031691639ad99e689161109a918b913391879101613602565b600060405180830381600087803b1580156110b457600080fd5b505af11580156110c8573d6000803e3d6000fd5b505085546110df925090508363ffffffff611ef816565b80855560038601546111029164e8d4a5100091610640919063ffffffff611e7c16565b60018501558454611123906001600160a01b0316338463ffffffff6123c316565b85876001600160a01b0316336001600160a01b03167fe31da05fae6db869f5ea51f4b638aa6884070b6c87f18f63bd2291a12cb2f5188560405161097791906136ca565b600e6020526000908152604090205481565b6000546001600160a01b031633146111a35760405162461bcd60e51b81526004016105849061389d565b600080546040516001600160a01b03909116907ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec6908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112175760405162461bcd60e51b81526004016105849061389d565b6112218383611cc2565b61122a83610b37565b6001600160a01b038316600090815260086020526040902080546112a09083906112949084908790811061125a57fe5b60009182526020808320600160059093020191909101546001600160a01b038a16835260099091526040909120549063ffffffff611ef816565b9063ffffffff611f9b16565b6001600160a01b03851660009081526009602052604081209190915581548290859081106112ca57fe5b9060005260206000209060050201600101549050828285815481106112eb57fe5b90600052602060002090600502016001018190555083856001600160a01b03167f6ee09c6cb801194690c195c69f465aaf7c80255cbeafaab9600f47ed79de2ca9838660405161133c92919061392d565b60405180910390a35050505050565b6113558282611cc2565b61135f8282611cf9565b5050565b6008602052816000526040600020818154811061137c57fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401546001600160a01b039093169550909350919085565b6000546001600160a01b031633146113e25760405162461bcd60e51b81526004016105849061389d565b6113eb82610b37565b6001600160a01b0382166000818152600660205260409081902080549084905590519091907fad96cee0d692f0250b98e085504f399da6733854908215f6203fe3c69366d9f59061143f908490869061392d565b60405180910390a2505050565b600080600061145b8686611cc2565b5050506001600160a01b03928316600090815260076020908152604080832094835293815283822092909416815292529020805460018201546002909201549092565b6000546001600160a01b031633146114c85760405162461bcd60e51b81526004016105849061389d565b6114d28383611cc2565b600081116114f25760405162461bcd60e51b8152600401610584906138dd565b6001600160a01b038316600090815260086020526040812080548490811061151657fe5b9060005260206000209060050201905060008160040154905082826004018190555083856001600160a01b03167f0bcf80c5060ccf99b7a993c57a94b232fc2c5c04bd74c7c7d174595fee6bc31f838660405161133c92919061392d565b60006115808484611cc2565b6001600160a01b03841660009081526008602052604081208054859081106115a457fe5b600091825260208083206001600160a01b0389811685526007835260408086208a8752845280862089831687529093528285206005949094029091016003810154815493516370a0823160e01b8152919650939492909116906370a08231906116119030906004016135f4565b60206040518083038186803b15801561162957600080fd5b505afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116619190810190612d94565b6001600160a01b038916600090815260066020526040902054600286015491925043918211801561169157508215155b156117275760006116af876002015484611ef890919063ffffffff16565b6001600160a01b038c1660009081526009602052604081205460018a015492935090916116f79190610640906116eb868863ffffffff611e7c16565b9063ffffffff611e7c16565b9050611722611715866106408464e8d4a5100063ffffffff611e7c16565b879063ffffffff611f9b16565b955050505b61174f856001015461064c64e8d4a51000610640888a60000154611e7c90919063ffffffff16565b9a9950505050505050505050565b6001600160a01b03811660009081526011602052604081205463ffffffff16806117885760006117c7565b6001600160a01b0383166000908152601060209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03165b9150505b919050565b60606117dc8484611cc2565b6001600160a01b038085166000908152600a602090815260408083208784528252808320938616835292815282822080548451818402810184019095528085529092909184015b8282101561186957838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611823565b5050505090509392505050565b6000604051611884906135de565b604080519182900382208282019091526008825267161594d5985d5b1d60c21b6020909201919091527fddfcc46608a8bd52ebf900f03a24cc97b73a6046cec8c5d0f74a211e376e967a6118d66123e5565b306040516020016118ea949392919061370d565b6040516020818303038152906040528051906020012090506000604051611910906135e9565b60405190819003812061192b918a908a908a906020016136d8565b604051602081830303815290604052805190602001209050600082826040516020016119589291906135ad565b604051602081830303815290604052805190602001209050600061197e828888886123e9565b6001600160a01b0381166000908152600e6020526040902080546001810190915590915089146119c05760405162461bcd60e51b81526004016105849061380d565b874211156119e05760405162461bcd60e51b8152600401610584906137fd565b6119ea818b61227c565b505050505b505050505050565b6001600160a01b031660009081526008602052604090205490565b6003546001600160a01b031681565b604051610adb906135e9565b601060209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b6000546001600160a01b031681565b6000546001600160a01b03163314611a9b5760405162461bcd60e51b81526004016105849061389d565b6004546001600160a01b0316611ac35760405162461bcd60e51b8152600401610584906138ad565b611acc85610b37565b6001600160a01b0385166000908152600860205260408120805490915b81811015611b4757856001600160a01b0316838281548110611b0757fe5b60009182526020909120600590910201546001600160a01b03161415611b3f5760405162461bcd60e51b81526004016105849061388d565b600101611ae9565b506001600160a01b038716600090815260096020526040902054611b71908763ffffffff611f9b16565b6001600160a01b0388811660009081526009602090815260408083209490945560068152838220889055835160a08101855289841681528082018b81524382870190815260608301858152608084018b81528a5460018082018d558c8952969097209451600590970290940180546001600160a01b031916968816969096178655915185850155516002850155516003840155516004928301558154935163fb66fb4d60e01b8152939092169263fb66fb4d92611c30928c9201613683565b600060405180830381600087803b158015611c4a57600080fd5b505af1158015611c5e573d6000803e3d6000fd5b50505050846001600160a01b03166001838054905003886001600160a01b03167fd7fa4bff1cd2253c0789c3291a786a6f6b1a3b4569a75af683a15d52abb6a0bf898888604051611cb19392919061393b565b60405180910390a450505050505050565b6001600160a01b038216600090815260086020526040902054811061135f5760405162461bcd60e51b8152600401610584906137bd565b6001600160a01b0382166000908152600860205260408120805483908110611d1d57fe5b9060005260206000209060050201905080600201544311611d3e575061135f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611d6e9030906004016135f4565b60206040518083038186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dbe9190810190612d94565b905080611dd257504360029091015561135f565b60028201544390600090611ded90839063ffffffff611ef816565b6001600160a01b03871660009081526009602090815260408083205460018901546006909352908320549394509192611e369291610640916116eb90879063ffffffff611e7c16565b9050611e65611e54856106408464e8d4a5100063ffffffff611e7c16565b60038701549063ffffffff611f9b16565b600386015550504360029093019290925550505050565b600082611e8b57506000610f42565b82820282848281611e9857fe5b04146105545760405162461bcd60e51b81526004016105849061386d565b600061055483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612413565b600061055483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061244a565b604051611f959085906323b872dd60e01b90611f5e90879087908790602401613668565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612476565b50505050565b6000828201838110156105545760405162461bcd60e51b81526004016105849061381d565b816001600160a01b0316836001600160a01b031614158015611feb57506000816001600160601b0316115b15610b6c576001600160a01b038316156120a3576001600160a01b03831660009081526011602052604081205463ffffffff16908161202b57600061206a565b6001600160a01b0385166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061209182856040518060600160405280602c8152602001613af1602c913961255b565b905061209f86848484612592565b5050505b6001600160a01b03821615610b6c576001600160a01b03821660009081526011602052604081205463ffffffff1690816120de57600061211d565b6001600160a01b0384166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061214482856040518060600160405280602b8152602001613a8e602b9139612747565b90506119ef85848484612592565b82546040805180820190915260008082526020808301828152600180860189558884529190922092516002850290930192835590519101555b6000811180156121bb5750818460018303815481106121a657fe5b90600052602060002090600202016001015411155b15612210578360018203815481106121cf57fe5b90600052602060002090600202018482815481106121e957fe5b6000918252602090912082546002909202019081556001918201549101556000190161218b565b60405180604001604052808481526020018381525084828154811061223157fe5b9060005260206000209060020201600082015181600001556020820151816001015590505061226d838660020154611f9b90919063ffffffff16565b85600201819055505050505050565b6001600160a01b038083166000908152600f6020526040812054909116906122a384612783565b6001600160a01b038581166000818152600f602052604080822080546001600160a01b031916898616908117909155905194955093928616927f0cc323ffec3ea49cbcddc0de1480978126d350c6a45dff33ad2f1cda6ae992619190a4611f95828483611fc0565b6001015442101590565b80546000905b6000811180156123385750612338836001830381548110610cb657fe5b156123a25761236d83600183038154811061234f57fe5b6000918252602090912060029091020154839063ffffffff611f9b16565b91508280548061237957fe5b60008281526020812060001992830160028102909101828155600101919091559091550161231b565b5060028301546123b8908263ffffffff611ef816565b600284015592915050565b604051610b6c90849063a9059cbb60e01b90611f5e908690869060240161369e565b4690565b60008060006123fa87878787612876565b9150915061240781612956565b5090505b949350505050565b600081836124345760405162461bcd60e51b8152600401610584919061379c565b50600083858161244057fe5b0495945050505050565b6000818484111561246e5760405162461bcd60e51b8152600401610584919061379c565b505050900390565b612488826001600160a01b0316612a1f565b6124a45760405162461bcd60e51b8152600401610584906138fd565b60006060836001600160a01b0316836040516124c091906135a1565b6000604051808303816000865af19150503d80600081146124fd576040519150601f19603f3d011682016040523d82523d6000602084013e612502565b606091505b5091509150816125245760405162461bcd60e51b8152600401610584906138ed565b805115611f95578080602001905161253f9190810190612d58565b611f955760405162461bcd60e51b8152600401610584906137ed565b6000836001600160601b0316836001600160601b03161115829061246e5760405162461bcd60e51b8152600401610584919061379c565b60006125b643604051806060016040528060388152602001613ab960389139612a58565b905060008463ffffffff161180156125ff57506001600160a01b038516600090815260106020908152604080832063ffffffff6000198901811685529252909120548282169116145b1561265e576001600160a01b0385166000908152601060209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b038516021790556126fd565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152601083528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252601190935292909220805460018801909316929091169190911790555b846001600160a01b03167f6adb589fed1e8542fb7a6b10f00a85e02265e77f9ae3ca8ff93b22983e1af9a0848460405161273892919061398d565b60405180910390a25050505050565b6000838301826001600160601b03808716908316101561277a5760405162461bcd60e51b8152600401610584919061379c565b50949350505050565b6005546000906001600160a01b03166127ae5760405162461bcd60e51b8152600401610584906137dd565b6005546001600160a01b03166000908152600860205260408120805490915b8181101561286b5760055483546001600160a01b03909116908490839081106127f257fe5b60009182526020909120600590910201546001600160a01b03161415612863576005546001600160a01b0390811660009081526007602090815260408083208584528252808320938916835292905220600281015481546128589163ffffffff611ef816565b9450505050506117cb565b6001016127cd565b506000949350505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156128ad575060009050600361294d565b8460ff16601b141580156128c557508460ff16601c14155b156128d6575060009050600461294d565b6000600187878787604051600081526020016040526040516128fb9493929190613735565b6020604051602081039080840390855afa15801561291d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166129465750600091506001905061294d565b9150600090505b94509492505050565b600081600481111561296457fe5b141561296f57610acc565b600181600481111561297d57fe5b141561299b5760405162461bcd60e51b8152600401610584906137ad565b60028160048111156129a957fe5b14156129c75760405162461bcd60e51b8152600401610584906137cd565b60038160048111156129d557fe5b14156129f35760405162461bcd60e51b81526004016105849061382d565b6004816004811115612a0157fe5b1415610acc5760405162461bcd60e51b81526004016105849061384d565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061240b575050151592915050565b600081600160201b8410612a7f5760405162461bcd60e51b8152600401610584919061379c565b509192915050565b604080518082019091526000808252602082015290565b8035610f4281613a4c565b8051610f4281613a4c565b8051610f4281613a60565b8035610f4281613a69565b8035610f4281613a72565b8051610f4281613a69565b8035610f4281613a7b565b8035610f4281613a84565b600060208284031215612b0857600080fd5b600061240b8484612a9e565b600060208284031215612b2657600080fd5b600061240b8484612aa9565b60008060408385031215612b4557600080fd5b6000612b518585612a9e565b9250506020612b6285828601612a9e565b9150509250929050565b60008060408385031215612b7f57600080fd5b6000612b8b8585612a9e565b9250506020612b6285828601612abf565b600080600060608486031215612bb157600080fd5b6000612bbd8686612a9e565b9350506020612bce86828701612abf565b9250506040612bdf86828701612a9e565b9150509250925092565b600080600080600060a08688031215612c0157600080fd5b6000612c0d8888612a9e565b9550506020612c1e88828901612abf565b9450506040612c2f88828901612aca565b9350506060612c4088828901612abf565b9250506080612c5188828901612abf565b9150509295509295909350565b600080600060608486031215612c7357600080fd5b6000612c7f8686612a9e565b9350506020612c9086828701612abf565b9250506040612bdf86828701612abf565b60008060008060008060c08789031215612cba57600080fd5b6000612cc68989612a9e565b9650506020612cd789828a01612abf565b9550506040612ce889828a01612abf565b9450506060612cf989828a01612aeb565b9350506080612d0a89828a01612abf565b92505060a0612d1b89828a01612abf565b9150509295509295509295565b60008060408385031215612d3b57600080fd5b6000612d478585612a9e565b9250506020612b6285828601612ae0565b600060208284031215612d6a57600080fd5b600061240b8484612ab4565b600060208284031215612d8857600080fd5b600061240b8484612aca565b600060208284031215612da657600080fd5b600061240b8484612ad5565b6000612dbe8383613559565b505060400190565b612dcf81613a00565b82525050565b612dcf816139bb565b6000612de9826139ae565b612df381856139b2565b9350612dfe836139a8565b8060005b83811015612e2c578151612e168882612db2565b9750612e21836139a8565b925050600101612e02565b509495945050505050565b612dcf816139c6565b612dcf816139cb565b612dcf612e55826139cb565b6139cb565b6000612e65826139ae565b612e6f81856117cb565b9350612e7f818560208601613a16565b9290920192915050565b612dcf816139ce565b6000612e9d826139ae565b612ea781856139b2565b9350612eb7818560208601613a16565b612ec081613a42565b9093019392505050565b6000612ed76018836139b2565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000815260200192915050565b6000612f106013836139b2565b727661756c743a20706f6f6c206578697374733f60681b815260200192915050565b6000612f3f601f836139b2565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800815260200192915050565b6000612f786030836139b2565b7f5856535661756c743a3a6765745374616b65416d6f756e743a2078767320616481526f191c995cdcc81a5cc81b9bdd081cd95d60821b602082015260400192915050565b6000612fca602a836139b2565b7f5361666542455032303a204245503230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000613016602a836139b2565b7f5856535661756c743a3a64656c656761746542795369673a207369676e6174758152691c9948195e1c1a5c995960b21b602082015260400192915050565b60006130626026836139b2565b7f5856535661756c743a3a64656c656761746542795369673a20696e76616c6964815265206e6f6e636560d01b602082015260400192915050565b60006130aa6002836117cb565b61190160f01b815260020192915050565b60006130c8601b836139b2565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006131016022836139b2565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c815261756560f01b602082015260400192915050565b6000613145602b836139b2565b7f5856535661756c743a3a6765745072696f72566f7465733a206e6f742079657481526a0819195d195c9b5a5b995960aa1b602082015260400192915050565b60006131926022836139b2565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c815261756560f01b602082015260400192915050565b60006131d66043836117cb565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000613241601f836139b2565b7f72657175657374656420616d6f756e742063616e6e6f74206265207a65726f00815260200192915050565b600061327a6021836139b2565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006132bd600a836139b2565b691c994b595b9d195c995960b21b815260200192915050565b60006132e36018836139b2565b7f4572726f7220706f6f6c20616c72656164792061646465640000000000000000815260200192915050565b600061331c600e836139b2565b6d37b7363c9030b236b4b71031b0b760911b815260200192915050565b6000613346601e836139b2565b7f53746f726520636f6e74726163742061646472657320697320656d7074790000815260200192915050565b600061337f6015836139b2565b7418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b815260200192915050565b60006133b06013836139b2565b726e6f7468696e6720746f20776974686472617760681b815260200192915050565b60006133df601a836139b2565b7f496e76616c6964206e6577206c6f636b696e6720706572696f64000000000000815260200192915050565b60006134186020836139b2565b7f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000613451603a836117cb565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b60006134b0601f836139b2565b7f5361666542455032303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b60006134e9601b836139b2565b7f72657175657374656420616d6f756e7420697320696e76616c69640000000000815260200192915050565b60006135226022836139b2565b7f6f6e6c792070726f78792061646d696e2063616e206368616e676520627261698152616e7360f01b602082015260400192915050565b8051604083019061356a8482612e40565b506020820151611f956020850182612e40565b612dcf816139e5565b612dcf816139ee565b612dcf81613a0b565b612dcf816139f4565b60006105548284612e5a565b60006135b88261309d565b91506135c48285612e49565b6020820191506135d48284612e49565b5060200192915050565b6000610f42826131c9565b6000610f4282613444565b60208101610f428284612dd5565b606081016136108286612dd5565b61361d6020830185612dc6565b61240b6040830184612e40565b608081016136388287612dd5565b6136456020830186612dd5565b6136526040830185612dd5565b61365f6060830184612dd5565b95945050505050565b606081016136768286612dd5565b61361d6020830185612dd5565b604081016136918285612dd5565b6105546020830184612e37565b604081016136ac8285612dd5565b6105546020830184612e40565b602080825281016105548184612dde565b60208101610f428284612e40565b608081016136e68287612e40565b6136f36020830186612dd5565b6137006040830185612e40565b61365f6060830184612e40565b6080810161371b8287612e40565b6137286020830186612e40565b6136526040830185612e40565b608081016137438287612e40565b6136f36020830186613586565b60a0810161375e8288612e89565b61376b6020830187612e40565b6137786040830186612e40565b6137856060830185612e40565b6137926080830184612e40565b9695505050505050565b602080825281016105548184612e92565b60208082528101610f4281612eca565b60208082528101610f4281612f03565b60208082528101610f4281612f32565b60208082528101610f4281612f6b565b60208082528101610f4281612fbd565b60208082528101610f4281613009565b60208082528101610f4281613055565b60208082528101610f42816130bb565b60208082528101610f42816130f4565b60208082528101610f4281613138565b60208082528101610f4281613185565b60208082528101610f4281613234565b60208082528101610f428161326d565b60208082528101610f42816132b0565b60208082528101610f42816132d6565b60208082528101610f428161330f565b60208082528101610f4281613339565b60208082528101610f4281613372565b60208082528101610f42816133a3565b60208082528101610f42816133d2565b60208082528101610f428161340b565b60208082528101610f42816134a3565b60208082528101610f42816134dc565b60208082528101610f4281613515565b604081016136ac8285612e40565b606081016139498286612e40565b61361d6020830185612e40565b60208101610f42828461357d565b60408101613972828561357d565b6105546020830184613598565b60208101610f428284613598565b6040810161399b828561358f565b610554602083018461358f565b60200190565b5190565b90815260200190565b6000610f42826139d9565b151590565b90565b6000610f42826139bb565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b6000610f42826139ce565b6000610f42826139f4565b60005b83811015613a31578181015183820152602001613a19565b83811115611f955750506000910152565b601f01601f191690565b613a55816139bb565b8114610acc57600080fd5b613a55816139c6565b613a55816139cb565b613a55816139ce565b613a55816139e5565b613a55816139ee56fe5856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735856535661756c743a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773a365627a7a72315820204c5a24c5bde456fd1d8aa1c93c28f19fc990c6e367cee72951fa6ec81a18ab6c6578706572696d656e74616cf564736f6c63430005100040",
1208
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102325760003560e01c80637ac9245611610130578063a09eab7a116100b8578063de0368b21161007c578063de0368b2146104c9578063e7a324dc146104d1578063f1127ed8146104d9578063f851a440146104fa578063fba1b1f91461050257610232565b8063a09eab7a1461045d578063b4b5ea5714610470578063c210259614610483578063c3cda520146104a3578063d7ae45e2146104b657610232565b80638ed7333d116100ff5780638ed7333d146103de57806392e35000146103f157806393c7c4d11461041557806398e1b31b146104285780639e2b6c4d1461044a57610232565b80637ac924561461039d5780637ecebe00146103b057806381bdf98c146103c35780638308d7e9146103cb57610232565b80634298bdbd116101be5780635ff56315116101825780635ff563151461032f5780636dd77cbd146103425780636e9960c3146103555780636fcfff451461035d578063782d6fe11461037d57610232565b80634298bdbd146102db5780635362b503146102ee578063587cde1e146103015780635c19a95c146103145780635c60da1b1461032757610232565b806320606b701161020557806320606b701461029b57806324f52bbf146102a357806326782247146102b85780632eda5c6c146102c0578063358ae036146102d357610232565b80630af13728146102375780630efe6a8b14610260578063115b512f146102755780631d504dc614610288575b600080fd5b61024a610245366004612b9c565b610515565b60405161025791906136ca565b60405180910390f35b61027361026e366004612c5e565b61055b565b005b610273610283366004612c5e565b6107b9565b610273610296366004612d76565b61099b565b61024a610acf565b6102ab610ae6565b60405161025791906135f4565b6102ab610af5565b61024a6102ce366004612af6565b610b04565b6102ab610b16565b61024a6102e9366004612af6565b610b25565b6102736102fc366004612af6565b610b37565b6102ab61030f366004612af6565b610b71565b610273610322366004612af6565b610b8c565b6102ab610b96565b61027361033d366004612b32565b610ba5565b61024a610350366004612b9c565b610c5d565b6102ab610d12565b61037061036b366004612af6565b610d21565b6040516102579190613956565b61039061038b366004612b6c565b610d39565b604051610257919061397f565b6102736103ab366004612b6c565b610f48565b61024a6103be366004612af6565b611167565b610273611179565b6102736103d9366004612c5e565b6111ed565b6102736103ec366004612b6c565b61134b565b6104046103ff366004612b6c565b611363565b604051610257959493929190613750565b610273610423366004612b6c565b6113b8565b61043b610436366004612b9c565b61144c565b6040516102579392919061393b565b610273610458366004612c5e565b61149e565b61024a61046b366004612b9c565b611574565b61039061047e366004612af6565b61175d565b610496610491366004612b9c565b6117d0565b60405161025791906136b9565b6102736104b1366004612ca1565b611876565b61024a6104c4366004612af6565b6119f7565b6102ab611a12565b61024a611a21565b6104ec6104e7366004612d28565b611a2d565b604051610257929190613964565b6102ab611a62565b610273610510366004612be9565b611a71565b60006105218484611cc2565b506001600160a01b0380841660009081526007602090815260408083208684528252808320938516835292905220600201545b9392505050565b600354600160a01b900460ff1661058d5760405162461bcd60e51b81526004016105849061387d565b60405180910390fd5b6003805460ff60a01b191690556105a48383611cc2565b6001600160a01b03831660009081526008602052604081208054849081106105c857fe5b600091825260208083206001600160a01b0388168452600782526040808520888652835280852033865290925292206005909102909101915061060b8585611cf9565b8054156106c0576000610658826001015461064c64e8d4a5100061064087600301548760000154611e7c90919063ffffffff16565b9063ffffffff611eb616565b9063ffffffff611ef816565b6004805460405163135b33cd60e31b81529293506001600160a01b031691639ad99e689161068c918a913391879101613602565b600060405180830381600087803b1580156106a657600080fd5b505af11580156106ba573d6000803e3d6000fd5b50505050505b81546106dd906001600160a01b031633308663ffffffff611f3a16565b80546106ef908463ffffffff611f9b16565b80825560038301546107129164e8d4a5100091610640919063ffffffff611e7c16565b600182015560055482546001600160a01b039081169116141561075357336000908152600f602052604081205461075391906001600160a01b031685611fc0565b83856001600160a01b0316336001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78660405161079791906136ca565b60405180910390a450506003805460ff60a01b1916600160a01b179055505050565b600354600160a01b900460ff166107e25760405162461bcd60e51b81526004016105849061387d565b6003805460ff60a01b191690556107f98383611cc2565b600081116108195760405162461bcd60e51b81526004016105849061385d565b6001600160a01b0383166000908152600760209081526040808320858452825280832033845290915290206002810154610859908363ffffffff611f9b16565b815410156108795760405162461bcd60e51b81526004016105849061390d565b6001600160a01b038416600090815260086020526040812080548590811061089d57fe5b600091825260208083206001600160a01b0389168452600a8252604080852089865283528085203386529092529083206005929092020160048101549093509091906108e99042611f9b565b90506108f784838784612152565b6005546001600160a01b038881169116141561093357336000908152600f6020526040812054610933916001600160a01b039091169087611fc0565b85876001600160a01b0316336001600160a01b03167fc0863fcc3a3b119da683cc8d57bce56f78d0d373c023726dea2aaf6ce3f837ac8860405161097791906136ca565b60405180910390a450506003805460ff60a01b1916600160a01b1790555050505050565b806001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0c9190810190612b14565b6001600160a01b0316336001600160a01b031614610a3c5760405162461bcd60e51b81526004016105849061391d565b806001600160a01b031663c1e803346040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a7757600080fd5b505af1158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aaf9190810190612d94565b15610acc5760405162461bcd60e51b8152600401610584906138bd565b50565b604051610adb906135de565b604051809103902081565b6004546001600160a01b031681565b6001546001600160a01b031681565b60066020526000908152604090205481565b6005546001600160a01b031681565b60096020526000908152604090205481565b6001600160a01b038116600090815260086020526040812054905b81811015610b6c57610b648382611cf9565b600101610b52565b505050565b600f602052600090815260409020546001600160a01b031681565b610acc338261227c565b6002546001600160a01b031681565b6000546001600160a01b03163314610bcf5760405162461bcd60e51b81526004016105849061389d565b60058054600480546001600160a01b03198084166001600160a01b038881169190911790955581168585161790915560038054600160a01b60ff60a01b199091161790556040519183169216907f559f314bb90394a4a9ceb724f365b36a53587d894352c43d12901fd68010145690610c4f90849084908890889061362a565b60405180910390a150505050565b6000610c698484611cc2565b6001600160a01b038085166000908152600a60209081526040808320878452825280832093861683529290522080545b600081118015610cc95750610cc9826001830381548110610cb657fe5b906000526020600020906002020161230b565b15610d0957610cfe826001830381548110610ce057fe5b6000918252602090912060029091020154849063ffffffff611f9b16565b925060001901610c99565b50509392505050565b6000546001600160a01b031690565b60116020526000908152604090205463ffffffff1681565b6000438210610d5a5760405162461bcd60e51b81526004016105849061383d565b6001600160a01b03831660009081526011602052604090205463ffffffff1680610d88576000915050610f42565b6001600160a01b038416600090815260106020908152604080832063ffffffff600019860181168552925290912054168310610e04576001600160a01b03841660009081526010602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b03169050610f42565b6001600160a01b038416600090815260106020908152604080832083805290915290205463ffffffff16831015610e3f576000915050610f42565b600060001982015b8163ffffffff168163ffffffff161115610f0257600282820363ffffffff16048103610e71612a87565b506001600160a01b038716600090815260106020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b03169181019190915290871415610edd57602001519450610f429350505050565b805163ffffffff16871115610ef457819350610efb565b6001820392505b5050610e47565b506001600160a01b038516600090815260106020908152604080832063ffffffff909416835292905220546001600160601b03600160201b909104169150505b92915050565b600354600160a01b900460ff16610f715760405162461bcd60e51b81526004016105849061387d565b6003805460ff60a01b19169055610f888282611cc2565b6001600160a01b0382166000908152600860205260408120805483908110610fac57fe5b600091825260208083206001600160a01b038716808552600783526040808620888752845280862033808852908552818720928752600a8552818720898852855281872090875290935291842060059093020193509161100c8383612315565b90506000811161102e5760405162461bcd60e51b8152600401610584906138cd565b6110388686611cf9565b6000611066846001015461064c64e8d4a5100061064089600301548960000154611e7c90919063ffffffff16565b6004805460405163135b33cd60e31b81529293506001600160a01b031691639ad99e689161109a918b913391879101613602565b600060405180830381600087803b1580156110b457600080fd5b505af11580156110c8573d6000803e3d6000fd5b505085546110df925090508363ffffffff611ef816565b80855560038601546111029164e8d4a5100091610640919063ffffffff611e7c16565b60018501558454611123906001600160a01b0316338463ffffffff6123c316565b85876001600160a01b0316336001600160a01b03167fe31da05fae6db869f5ea51f4b638aa6884070b6c87f18f63bd2291a12cb2f5188560405161097791906136ca565b600e6020526000908152604090205481565b6000546001600160a01b031633146111a35760405162461bcd60e51b81526004016105849061389d565b600080546040516001600160a01b03909116907ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec6908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112175760405162461bcd60e51b81526004016105849061389d565b6112218383611cc2565b61122a83610b37565b6001600160a01b038316600090815260086020526040902080546112a09083906112949084908790811061125a57fe5b60009182526020808320600160059093020191909101546001600160a01b038a16835260099091526040909120549063ffffffff611ef816565b9063ffffffff611f9b16565b6001600160a01b03851660009081526009602052604081209190915581548290859081106112ca57fe5b9060005260206000209060050201600101549050828285815481106112eb57fe5b90600052602060002090600502016001018190555083856001600160a01b03167f6ee09c6cb801194690c195c69f465aaf7c80255cbeafaab9600f47ed79de2ca9838660405161133c92919061392d565b60405180910390a35050505050565b6113558282611cc2565b61135f8282611cf9565b5050565b6008602052816000526040600020818154811061137c57fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401546001600160a01b039093169550909350919085565b6000546001600160a01b031633146113e25760405162461bcd60e51b81526004016105849061389d565b6113eb82610b37565b6001600160a01b0382166000818152600660205260409081902080549084905590519091907fad96cee0d692f0250b98e085504f399da6733854908215f6203fe3c69366d9f59061143f908490869061392d565b60405180910390a2505050565b600080600061145b8686611cc2565b5050506001600160a01b03928316600090815260076020908152604080832094835293815283822092909416815292529020805460018201546002909201549092565b6000546001600160a01b031633146114c85760405162461bcd60e51b81526004016105849061389d565b6114d28383611cc2565b600081116114f25760405162461bcd60e51b8152600401610584906138dd565b6001600160a01b038316600090815260086020526040812080548490811061151657fe5b9060005260206000209060050201905060008160040154905082826004018190555083856001600160a01b03167f0bcf80c5060ccf99b7a993c57a94b232fc2c5c04bd74c7c7d174595fee6bc31f838660405161133c92919061392d565b60006115808484611cc2565b6001600160a01b03841660009081526008602052604081208054859081106115a457fe5b600091825260208083206001600160a01b0389811685526007835260408086208a8752845280862089831687529093528285206005949094029091016003810154815493516370a0823160e01b8152919650939492909116906370a08231906116119030906004016135f4565b60206040518083038186803b15801561162957600080fd5b505afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116619190810190612d94565b6001600160a01b038916600090815260066020526040902054600286015491925043918211801561169157508215155b156117275760006116af876002015484611ef890919063ffffffff16565b6001600160a01b038c1660009081526009602052604081205460018a015492935090916116f79190610640906116eb868863ffffffff611e7c16565b9063ffffffff611e7c16565b9050611722611715866106408464e8d4a5100063ffffffff611e7c16565b879063ffffffff611f9b16565b955050505b61174f856001015461064c64e8d4a51000610640888a60000154611e7c90919063ffffffff16565b9a9950505050505050505050565b6001600160a01b03811660009081526011602052604081205463ffffffff16806117885760006117c7565b6001600160a01b0383166000908152601060209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03165b9150505b919050565b60606117dc8484611cc2565b6001600160a01b038085166000908152600a602090815260408083208784528252808320938616835292815282822080548451818402810184019095528085529092909184015b8282101561186957838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611823565b5050505090509392505050565b6000604051611884906135de565b604080519182900382208282019091526008825267161594d5985d5b1d60c21b6020909201919091527fddfcc46608a8bd52ebf900f03a24cc97b73a6046cec8c5d0f74a211e376e967a6118d66123e5565b306040516020016118ea949392919061370d565b6040516020818303038152906040528051906020012090506000604051611910906135e9565b60405190819003812061192b918a908a908a906020016136d8565b604051602081830303815290604052805190602001209050600082826040516020016119589291906135ad565b604051602081830303815290604052805190602001209050600061197e828888886123e9565b6001600160a01b0381166000908152600e6020526040902080546001810190915590915089146119c05760405162461bcd60e51b81526004016105849061380d565b874211156119e05760405162461bcd60e51b8152600401610584906137fd565b6119ea818b61227c565b505050505b505050505050565b6001600160a01b031660009081526008602052604090205490565b6003546001600160a01b031681565b604051610adb906135e9565b601060209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b6000546001600160a01b031681565b6000546001600160a01b03163314611a9b5760405162461bcd60e51b81526004016105849061389d565b6004546001600160a01b0316611ac35760405162461bcd60e51b8152600401610584906138ad565b611acc85610b37565b6001600160a01b0385166000908152600860205260408120805490915b81811015611b4757856001600160a01b0316838281548110611b0757fe5b60009182526020909120600590910201546001600160a01b03161415611b3f5760405162461bcd60e51b81526004016105849061388d565b600101611ae9565b506001600160a01b038716600090815260096020526040902054611b71908763ffffffff611f9b16565b6001600160a01b0388811660009081526009602090815260408083209490945560068152838220889055835160a08101855289841681528082018b81524382870190815260608301858152608084018b81528a5460018082018d558c8952969097209451600590970290940180546001600160a01b031916968816969096178655915185850155516002850155516003840155516004928301558154935163fb66fb4d60e01b8152939092169263fb66fb4d92611c30928c9201613683565b600060405180830381600087803b158015611c4a57600080fd5b505af1158015611c5e573d6000803e3d6000fd5b50505050846001600160a01b03166001838054905003886001600160a01b03167fd7fa4bff1cd2253c0789c3291a786a6f6b1a3b4569a75af683a15d52abb6a0bf898888604051611cb19392919061393b565b60405180910390a450505050505050565b6001600160a01b038216600090815260086020526040902054811061135f5760405162461bcd60e51b8152600401610584906137bd565b6001600160a01b0382166000908152600860205260408120805483908110611d1d57fe5b9060005260206000209060050201905080600201544311611d3e575061135f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611d6e9030906004016135f4565b60206040518083038186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dbe9190810190612d94565b905080611dd257504360029091015561135f565b60028201544390600090611ded90839063ffffffff611ef816565b6001600160a01b03871660009081526009602090815260408083205460018901546006909352908320549394509192611e369291610640916116eb90879063ffffffff611e7c16565b9050611e65611e54856106408464e8d4a5100063ffffffff611e7c16565b60038701549063ffffffff611f9b16565b600386015550504360029093019290925550505050565b600082611e8b57506000610f42565b82820282848281611e9857fe5b04146105545760405162461bcd60e51b81526004016105849061386d565b600061055483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612413565b600061055483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061244a565b604051611f959085906323b872dd60e01b90611f5e90879087908790602401613668565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612476565b50505050565b6000828201838110156105545760405162461bcd60e51b81526004016105849061381d565b816001600160a01b0316836001600160a01b031614158015611feb57506000816001600160601b0316115b15610b6c576001600160a01b038316156120a3576001600160a01b03831660009081526011602052604081205463ffffffff16908161202b57600061206a565b6001600160a01b0385166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061209182856040518060600160405280602c8152602001613af1602c913961255b565b905061209f86848484612592565b5050505b6001600160a01b03821615610b6c576001600160a01b03821660009081526011602052604081205463ffffffff1690816120de57600061211d565b6001600160a01b0384166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061214482856040518060600160405280602b8152602001613a8e602b9139612747565b90506119ef85848484612592565b82546040805180820190915260008082526020808301828152600180860189558884529190922092516002850290930192835590519101555b6000811180156121bb5750818460018303815481106121a657fe5b90600052602060002090600202016001015411155b15612210578360018203815481106121cf57fe5b90600052602060002090600202018482815481106121e957fe5b6000918252602090912082546002909202019081556001918201549101556000190161218b565b60405180604001604052808481526020018381525084828154811061223157fe5b9060005260206000209060020201600082015181600001556020820151816001015590505061226d838660020154611f9b90919063ffffffff16565b85600201819055505050505050565b6001600160a01b038083166000908152600f6020526040812054909116906122a384612783565b6001600160a01b038581166000818152600f602052604080822080546001600160a01b031916898616908117909155905194955093928616927f0cc323ffec3ea49cbcddc0de1480978126d350c6a45dff33ad2f1cda6ae992619190a4611f95828483611fc0565b6001015442101590565b80546000905b6000811180156123385750612338836001830381548110610cb657fe5b156123a25761236d83600183038154811061234f57fe5b6000918252602090912060029091020154839063ffffffff611f9b16565b91508280548061237957fe5b60008281526020812060001992830160028102909101828155600101919091559091550161231b565b5060028301546123b8908263ffffffff611ef816565b600284015592915050565b604051610b6c90849063a9059cbb60e01b90611f5e908690869060240161369e565b4690565b60008060006123fa87878787612876565b9150915061240781612956565b5090505b949350505050565b600081836124345760405162461bcd60e51b8152600401610584919061379c565b50600083858161244057fe5b0495945050505050565b6000818484111561246e5760405162461bcd60e51b8152600401610584919061379c565b505050900390565b612488826001600160a01b0316612a1f565b6124a45760405162461bcd60e51b8152600401610584906138fd565b60006060836001600160a01b0316836040516124c091906135a1565b6000604051808303816000865af19150503d80600081146124fd576040519150601f19603f3d011682016040523d82523d6000602084013e612502565b606091505b5091509150816125245760405162461bcd60e51b8152600401610584906138ed565b805115611f95578080602001905161253f9190810190612d58565b611f955760405162461bcd60e51b8152600401610584906137ed565b6000836001600160601b0316836001600160601b03161115829061246e5760405162461bcd60e51b8152600401610584919061379c565b60006125b643604051806060016040528060388152602001613ab960389139612a58565b905060008463ffffffff161180156125ff57506001600160a01b038516600090815260106020908152604080832063ffffffff6000198901811685529252909120548282169116145b1561265e576001600160a01b0385166000908152601060209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b038516021790556126fd565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152601083528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252601190935292909220805460018801909316929091169190911790555b846001600160a01b03167f6adb589fed1e8542fb7a6b10f00a85e02265e77f9ae3ca8ff93b22983e1af9a0848460405161273892919061398d565b60405180910390a25050505050565b6000838301826001600160601b03808716908316101561277a5760405162461bcd60e51b8152600401610584919061379c565b50949350505050565b6005546000906001600160a01b03166127ae5760405162461bcd60e51b8152600401610584906137dd565b6005546001600160a01b03166000908152600860205260408120805490915b8181101561286b5760055483546001600160a01b03909116908490839081106127f257fe5b60009182526020909120600590910201546001600160a01b03161415612863576005546001600160a01b0390811660009081526007602090815260408083208584528252808320938916835292905220600281015481546128589163ffffffff611ef816565b9450505050506117cb565b6001016127cd565b506000949350505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156128ad575060009050600361294d565b8460ff16601b141580156128c557508460ff16601c14155b156128d6575060009050600461294d565b6000600187878787604051600081526020016040526040516128fb9493929190613735565b6020604051602081039080840390855afa15801561291d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166129465750600091506001905061294d565b9150600090505b94509492505050565b600081600481111561296457fe5b141561296f57610acc565b600181600481111561297d57fe5b141561299b5760405162461bcd60e51b8152600401610584906137ad565b60028160048111156129a957fe5b14156129c75760405162461bcd60e51b8152600401610584906137cd565b60038160048111156129d557fe5b14156129f35760405162461bcd60e51b81526004016105849061382d565b6004816004811115612a0157fe5b1415610acc5760405162461bcd60e51b81526004016105849061384d565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061240b575050151592915050565b600081600160201b8410612a7f5760405162461bcd60e51b8152600401610584919061379c565b509192915050565b604080518082019091526000808252602082015290565b8035610f4281613a4c565b8051610f4281613a4c565b8051610f4281613a60565b8035610f4281613a69565b8035610f4281613a72565b8051610f4281613a69565b8035610f4281613a7b565b8035610f4281613a84565b600060208284031215612b0857600080fd5b600061240b8484612a9e565b600060208284031215612b2657600080fd5b600061240b8484612aa9565b60008060408385031215612b4557600080fd5b6000612b518585612a9e565b9250506020612b6285828601612a9e565b9150509250929050565b60008060408385031215612b7f57600080fd5b6000612b8b8585612a9e565b9250506020612b6285828601612abf565b600080600060608486031215612bb157600080fd5b6000612bbd8686612a9e565b9350506020612bce86828701612abf565b9250506040612bdf86828701612a9e565b9150509250925092565b600080600080600060a08688031215612c0157600080fd5b6000612c0d8888612a9e565b9550506020612c1e88828901612abf565b9450506040612c2f88828901612aca565b9350506060612c4088828901612abf565b9250506080612c5188828901612abf565b9150509295509295909350565b600080600060608486031215612c7357600080fd5b6000612c7f8686612a9e565b9350506020612c9086828701612abf565b9250506040612bdf86828701612abf565b60008060008060008060c08789031215612cba57600080fd5b6000612cc68989612a9e565b9650506020612cd789828a01612abf565b9550506040612ce889828a01612abf565b9450506060612cf989828a01612aeb565b9350506080612d0a89828a01612abf565b92505060a0612d1b89828a01612abf565b9150509295509295509295565b60008060408385031215612d3b57600080fd5b6000612d478585612a9e565b9250506020612b6285828601612ae0565b600060208284031215612d6a57600080fd5b600061240b8484612ab4565b600060208284031215612d8857600080fd5b600061240b8484612aca565b600060208284031215612da657600080fd5b600061240b8484612ad5565b6000612dbe8383613559565b505060400190565b612dcf81613a00565b82525050565b612dcf816139bb565b6000612de9826139ae565b612df381856139b2565b9350612dfe836139a8565b8060005b83811015612e2c578151612e168882612db2565b9750612e21836139a8565b925050600101612e02565b509495945050505050565b612dcf816139c6565b612dcf816139cb565b612dcf612e55826139cb565b6139cb565b6000612e65826139ae565b612e6f81856117cb565b9350612e7f818560208601613a16565b9290920192915050565b612dcf816139ce565b6000612e9d826139ae565b612ea781856139b2565b9350612eb7818560208601613a16565b612ec081613a42565b9093019392505050565b6000612ed76018836139b2565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000815260200192915050565b6000612f106013836139b2565b727661756c743a20706f6f6c206578697374733f60681b815260200192915050565b6000612f3f601f836139b2565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800815260200192915050565b6000612f786030836139b2565b7f5856535661756c743a3a6765745374616b65416d6f756e743a2078767320616481526f191c995cdcc81a5cc81b9bdd081cd95d60821b602082015260400192915050565b6000612fca602a836139b2565b7f5361666542455032303a204245503230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000613016602a836139b2565b7f5856535661756c743a3a64656c656761746542795369673a207369676e6174758152691c9948195e1c1a5c995960b21b602082015260400192915050565b60006130626026836139b2565b7f5856535661756c743a3a64656c656761746542795369673a20696e76616c6964815265206e6f6e636560d01b602082015260400192915050565b60006130aa6002836117cb565b61190160f01b815260020192915050565b60006130c8601b836139b2565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006131016022836139b2565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c815261756560f01b602082015260400192915050565b6000613145602b836139b2565b7f5856535661756c743a3a6765745072696f72566f7465733a206e6f742079657481526a0819195d195c9b5a5b995960aa1b602082015260400192915050565b60006131926022836139b2565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c815261756560f01b602082015260400192915050565b60006131d66043836117cb565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000613241601f836139b2565b7f72657175657374656420616d6f756e742063616e6e6f74206265207a65726f00815260200192915050565b600061327a6021836139b2565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006132bd600a836139b2565b691c994b595b9d195c995960b21b815260200192915050565b60006132e36018836139b2565b7f4572726f7220706f6f6c20616c72656164792061646465640000000000000000815260200192915050565b600061331c600e836139b2565b6d37b7363c9030b236b4b71031b0b760911b815260200192915050565b6000613346601e836139b2565b7f53746f726520636f6e74726163742061646472657320697320656d7074790000815260200192915050565b600061337f6015836139b2565b7418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b815260200192915050565b60006133b06013836139b2565b726e6f7468696e6720746f20776974686472617760681b815260200192915050565b60006133df601a836139b2565b7f496e76616c6964206e6577206c6f636b696e6720706572696f64000000000000815260200192915050565b60006134186020836139b2565b7f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000613451603a836117cb565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b60006134b0601f836139b2565b7f5361666542455032303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b60006134e9601b836139b2565b7f72657175657374656420616d6f756e7420697320696e76616c69640000000000815260200192915050565b60006135226022836139b2565b7f6f6e6c792070726f78792061646d696e2063616e206368616e676520627261698152616e7360f01b602082015260400192915050565b8051604083019061356a8482612e40565b506020820151611f956020850182612e40565b612dcf816139e5565b612dcf816139ee565b612dcf81613a0b565b612dcf816139f4565b60006105548284612e5a565b60006135b88261309d565b91506135c48285612e49565b6020820191506135d48284612e49565b5060200192915050565b6000610f42826131c9565b6000610f4282613444565b60208101610f428284612dd5565b606081016136108286612dd5565b61361d6020830185612dc6565b61240b6040830184612e40565b608081016136388287612dd5565b6136456020830186612dd5565b6136526040830185612dd5565b61365f6060830184612dd5565b95945050505050565b606081016136768286612dd5565b61361d6020830185612dd5565b604081016136918285612dd5565b6105546020830184612e37565b604081016136ac8285612dd5565b6105546020830184612e40565b602080825281016105548184612dde565b60208101610f428284612e40565b608081016136e68287612e40565b6136f36020830186612dd5565b6137006040830185612e40565b61365f6060830184612e40565b6080810161371b8287612e40565b6137286020830186612e40565b6136526040830185612e40565b608081016137438287612e40565b6136f36020830186613586565b60a0810161375e8288612e89565b61376b6020830187612e40565b6137786040830186612e40565b6137856060830185612e40565b6137926080830184612e40565b9695505050505050565b602080825281016105548184612e92565b60208082528101610f4281612eca565b60208082528101610f4281612f03565b60208082528101610f4281612f32565b60208082528101610f4281612f6b565b60208082528101610f4281612fbd565b60208082528101610f4281613009565b60208082528101610f4281613055565b60208082528101610f42816130bb565b60208082528101610f42816130f4565b60208082528101610f4281613138565b60208082528101610f4281613185565b60208082528101610f4281613234565b60208082528101610f428161326d565b60208082528101610f42816132b0565b60208082528101610f42816132d6565b60208082528101610f428161330f565b60208082528101610f4281613339565b60208082528101610f4281613372565b60208082528101610f42816133a3565b60208082528101610f42816133d2565b60208082528101610f428161340b565b60208082528101610f42816134a3565b60208082528101610f42816134dc565b60208082528101610f4281613515565b604081016136ac8285612e40565b606081016139498286612e40565b61361d6020830185612e40565b60208101610f42828461357d565b60408101613972828561357d565b6105546020830184613598565b60208101610f428284613598565b6040810161399b828561358f565b610554602083018461358f565b60200190565b5190565b90815260200190565b6000610f42826139d9565b151590565b90565b6000610f42826139bb565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b6000610f42826139ce565b6000610f42826139f4565b60005b83811015613a31578181015183820152602001613a19565b83811115611f955750506000910152565b601f01601f191690565b613a55816139bb565b8114610acc57600080fd5b613a55816139c6565b613a55816139cb565b613a55816139ce565b613a55816139e5565b613a55816139ee56fe5856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735856535661756c743a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773a365627a7a72315820204c5a24c5bde456fd1d8aa1c93c28f19fc990c6e367cee72951fa6ec81a18ab6c6578706572696d656e74616cf564736f6c63430005100040",
1209
+ "linkReferences": {},
1210
+ "deployedLinkReferences": {}
1211
+ }