@flarenetwork/flare-periphery-contract-artifacts 0.0.1 → 0.0.2

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 (123) hide show
  1. package/dist/coston/deploys/contractAddresses.d.ts +1 -0
  2. package/dist/coston/deploys/contractAddresses.d.ts.map +1 -1
  3. package/dist/coston/deploys/contractAddresses.js +1 -0
  4. package/dist/coston/deploys/contractAddresses.js.map +1 -1
  5. package/dist/coston/deploys/mapper.d.ts.map +1 -1
  6. package/dist/coston/deploys/mapper.js +6 -2
  7. package/dist/coston/deploys/mapper.js.map +1 -1
  8. package/dist/coston2/abis.coston2.d.ts.map +1 -1
  9. package/dist/coston2/abis.coston2.js +8 -2
  10. package/dist/coston2/abis.coston2.js.map +1 -1
  11. package/dist/coston2/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  12. package/dist/coston2/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  13. package/dist/coston2/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  14. package/dist/coston2/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  15. package/dist/coston2/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  16. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  17. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  18. package/dist/coston2/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  19. package/dist/coston2/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  20. package/dist/coston2/deploys/contractAddresses.d.ts +2 -1
  21. package/dist/coston2/deploys/contractAddresses.d.ts.map +1 -1
  22. package/dist/coston2/deploys/contractAddresses.js +5 -4
  23. package/dist/coston2/deploys/contractAddresses.js.map +1 -1
  24. package/dist/coston2/deploys/mapper.d.ts.map +1 -1
  25. package/dist/coston2/deploys/mapper.js +6 -2
  26. package/dist/coston2/deploys/mapper.js.map +1 -1
  27. package/dist/flare/abis.flare.d.ts.map +1 -1
  28. package/dist/flare/abis.flare.js +8 -2
  29. package/dist/flare/abis.flare.js.map +1 -1
  30. package/dist/flare/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  31. package/dist/flare/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  32. package/dist/flare/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  33. package/dist/flare/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  34. package/dist/flare/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  35. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  36. package/dist/flare/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  37. package/dist/flare/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  38. package/dist/flare/deploys/contractAddresses.d.ts +2 -1
  39. package/dist/flare/deploys/contractAddresses.d.ts.map +1 -1
  40. package/dist/flare/deploys/contractAddresses.js +5 -4
  41. package/dist/flare/deploys/contractAddresses.js.map +1 -1
  42. package/dist/flare/deploys/mapper.d.ts.map +1 -1
  43. package/dist/flare/deploys/mapper.js +6 -2
  44. package/dist/flare/deploys/mapper.js.map +1 -1
  45. package/dist/songbird/abis.songbird.d.ts.map +1 -1
  46. package/dist/songbird/abis.songbird.js +52 -4
  47. package/dist/songbird/abis.songbird.js.map +1 -1
  48. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdatable.sol/AddressUpdatable.json +42 -0
  49. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +381 -0
  50. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdatable.sol/IIAddressUpdatable.json +29 -0
  51. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  52. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +1151 -0
  53. package/dist/songbird/artifacts/contracts/claiming/implementation/CloneFactory.sol/CloneFactory.json +10 -0
  54. package/dist/songbird/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +346 -0
  55. package/dist/songbird/artifacts/contracts/claiming/interface/IIClaimSetupManager.sol/IIClaimSetupManager.json +795 -0
  56. package/dist/songbird/artifacts/contracts/claiming/interface/IIDelegationAccount.sol/IIDelegationAccount.json +316 -0
  57. package/dist/songbird/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +175 -26
  58. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +758 -146
  59. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtso.sol/IIFtso.json +162 -20
  60. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManager.sol/IIFtsoManager.json +321 -46
  61. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManagerV1.sol/IIFtsoManagerV1.json +102 -0
  62. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  63. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +43 -0
  64. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  65. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoMedian.sol/FtsoMedian.json +2 -2
  66. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +184 -3
  67. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  68. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  69. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +164 -22
  70. package/dist/songbird/artifacts/contracts/genesis/implementation/GovernanceSettings.sol/GovernanceSettings.json +224 -0
  71. package/dist/songbird/artifacts/contracts/genesis/implementation/PriceSubmitter.sol/PriceSubmitter.json +2 -2
  72. package/dist/songbird/artifacts/contracts/genesis/implementation/StateConnector.sol/StateConnector.json +106 -785
  73. package/dist/songbird/artifacts/contracts/genesis/interface/IFtsoManagerGenesis.sol/IFtsoManagerGenesis.json +24 -0
  74. package/dist/songbird/artifacts/contracts/{tokenPools/interface/IIDataAvailabilityRewardManager.sol/IIDataAvailabilityRewardManager.json → governance/implementation/GovernedBaseV2.sol/GovernedBaseV2.json} +97 -91
  75. package/dist/songbird/artifacts/contracts/governance/implementation/GovernedV2.sol/GovernedV2.json +220 -0
  76. package/dist/songbird/artifacts/contracts/governance/implementation/Governor.sol/Governor.json +22 -154
  77. package/dist/songbird/artifacts/contracts/governance/implementation/GovernorProposer.sol/GovernorProposer.json +126 -32
  78. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  79. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +161 -90
  80. package/dist/songbird/artifacts/contracts/governance/interface/IIPollingFoundation.sol/IIPollingFoundation.json +0 -31
  81. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  82. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  83. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  84. package/dist/songbird/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  85. package/dist/songbird/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  86. package/dist/songbird/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  87. package/dist/songbird/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  88. package/dist/songbird/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  89. package/dist/songbird/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +25 -2
  90. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  91. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +69 -0
  92. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +949 -0
  93. package/dist/songbird/artifacts/contracts/tokenPools/lib/DataProviderFee.sol/DataProviderFee.json +10 -0
  94. package/dist/songbird/artifacts/contracts/utils/implementation/AddressSet.sol/AddressSet.json +10 -0
  95. package/dist/songbird/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  96. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +327 -33
  97. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistryProxy.sol/FtsoRegistryProxy.json +272 -0
  98. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +440 -0
  99. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +238 -0
  100. package/dist/songbird/artifacts/contracts/utils/implementation/ProxyGoverned.sol/ProxyGoverned.json +256 -0
  101. package/dist/songbird/artifacts/contracts/utils/implementation/RevertErrorTracking.sol/RevertErrorTracking.json +2 -20
  102. package/dist/songbird/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  103. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistry.sol/IIFtsoRegistry.json +175 -13
  104. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistryV1.sol/IIFtsoRegistryV1.json +120 -0
  105. package/dist/songbird/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  106. package/dist/songbird/artifacts/contracts/utils/interface/IUpdateValidators.sol/IUpdateValidators.json +18 -0
  107. package/dist/songbird/deploys/contractAddresses.d.ts +3 -0
  108. package/dist/songbird/deploys/contractAddresses.d.ts.map +1 -1
  109. package/dist/songbird/deploys/contractAddresses.js +19 -16
  110. package/dist/songbird/deploys/contractAddresses.js.map +1 -1
  111. package/dist/songbird/deploys/mapper.d.ts.map +1 -1
  112. package/dist/songbird/deploys/mapper.js +6 -2
  113. package/dist/songbird/deploys/mapper.js.map +1 -1
  114. package/package.json +1 -1
  115. package/dist/README.md +0 -5
  116. package/dist/coston/deploys/coston.json +0 -142
  117. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  118. package/dist/coston2/deploys/coston2.json +0 -212
  119. package/dist/flare/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  120. package/dist/flare/deploys/flare.json +0 -207
  121. package/dist/package.json +0 -28
  122. package/dist/songbird/artifacts/contracts/tokenPools/implementation/DataAvailabilityRewardManager.sol/DataAvailabilityRewardManager.json +0 -566
  123. package/dist/songbird/deploys/songbird.json +0 -132
@@ -11,166 +11,54 @@
11
11
  {
12
12
  "anonymous": false,
13
13
  "inputs": [
14
- {
15
- "indexed": false,
16
- "internalType": "uint32",
17
- "name": "chainId",
18
- "type": "uint32"
19
- },
20
- {
21
- "indexed": false,
22
- "internalType": "uint64",
23
- "name": "ledger",
24
- "type": "uint64"
25
- },
26
- {
27
- "indexed": false,
28
- "internalType": "enum StateConnector.DataAvailabilityPeriodFinalityType",
29
- "name": "finType",
30
- "type": "uint8"
31
- },
32
14
  {
33
15
  "indexed": false,
34
16
  "internalType": "address",
35
17
  "name": "sender",
36
18
  "type": "address"
37
- }
38
- ],
39
- "name": "DataAvailabilityPeriodFinalityProved",
40
- "type": "event"
41
- },
42
- {
43
- "anonymous": false,
44
- "inputs": [
45
- {
46
- "indexed": false,
47
- "internalType": "uint32",
48
- "name": "chainId",
49
- "type": "uint32"
50
- },
51
- {
52
- "indexed": false,
53
- "internalType": "uint64",
54
- "name": "ledger",
55
- "type": "uint64"
56
- },
57
- {
58
- "indexed": false,
59
- "internalType": "string",
60
- "name": "txId",
61
- "type": "string"
62
19
  },
63
20
  {
64
21
  "indexed": false,
65
- "internalType": "bytes32",
66
- "name": "paymentHash",
67
- "type": "bytes32"
22
+ "internalType": "uint256",
23
+ "name": "timestamp",
24
+ "type": "uint256"
68
25
  },
69
26
  {
70
27
  "indexed": false,
71
- "internalType": "address",
72
- "name": "sender",
73
- "type": "address"
28
+ "internalType": "bytes",
29
+ "name": "data",
30
+ "type": "bytes"
74
31
  }
75
32
  ],
76
- "name": "PaymentFinalityDisproved",
33
+ "name": "AttestationRequest",
77
34
  "type": "event"
78
35
  },
79
36
  {
80
37
  "anonymous": false,
81
38
  "inputs": [
82
39
  {
83
- "indexed": false,
84
- "internalType": "uint32",
85
- "name": "chainId",
86
- "type": "uint32"
87
- },
88
- {
89
- "indexed": false,
90
- "internalType": "uint64",
91
- "name": "ledger",
92
- "type": "uint64"
93
- },
94
- {
95
- "indexed": false,
96
- "internalType": "string",
97
- "name": "txId",
98
- "type": "string"
40
+ "indexed": true,
41
+ "internalType": "uint256",
42
+ "name": "roundId",
43
+ "type": "uint256"
99
44
  },
100
45
  {
101
46
  "indexed": false,
102
47
  "internalType": "bytes32",
103
- "name": "paymentHash",
48
+ "name": "merkleRoot",
104
49
  "type": "bytes32"
105
- },
106
- {
107
- "indexed": false,
108
- "internalType": "address",
109
- "name": "sender",
110
- "type": "address"
111
50
  }
112
51
  ],
113
- "name": "PaymentFinalityProved",
52
+ "name": "RoundFinalised",
114
53
  "type": "event"
115
54
  },
116
55
  {
117
- "inputs": [
118
- {
119
- "internalType": "uint32",
120
- "name": "",
121
- "type": "uint32"
122
- }
123
- ],
124
- "name": "chains",
56
+ "inputs": [],
57
+ "name": "BUFFER_TIMESTAMP_OFFSET",
125
58
  "outputs": [
126
- {
127
- "internalType": "bool",
128
- "name": "exists",
129
- "type": "bool"
130
- },
131
- {
132
- "internalType": "uint64",
133
- "name": "genesisLedger",
134
- "type": "uint64"
135
- },
136
- {
137
- "internalType": "uint64",
138
- "name": "ledgerHistorySize",
139
- "type": "uint64"
140
- },
141
- {
142
- "internalType": "uint16",
143
- "name": "dataAvailabilityPeriodLength",
144
- "type": "uint16"
145
- },
146
- {
147
- "internalType": "uint16",
148
- "name": "numConfirmations",
149
- "type": "uint16"
150
- },
151
- {
152
- "internalType": "uint64",
153
- "name": "finalisedDataAvailabilityPeriodIndex",
154
- "type": "uint64"
155
- },
156
- {
157
- "internalType": "uint64",
158
- "name": "finalisedLedgerIndex",
159
- "type": "uint64"
160
- },
161
- {
162
- "internalType": "uint256",
163
- "name": "finalisedTimestamp",
164
- "type": "uint256"
165
- },
166
59
  {
167
60
  "internalType": "uint256",
168
- "name": "timeDiffExpected",
169
- "type": "uint256"
170
- },
171
- {
172
- "internalType": "uint256",
173
- "name": "timeDiffAvg",
61
+ "name": "",
174
62
  "type": "uint256"
175
63
  }
176
64
  ],
@@ -179,7 +67,7 @@
179
67
  },
180
68
  {
181
69
  "inputs": [],
182
- "name": "commitRevealLowerBound",
70
+ "name": "BUFFER_WINDOW",
183
71
  "outputs": [
184
72
  {
185
73
  "internalType": "uint256",
@@ -192,36 +80,38 @@
192
80
  },
193
81
  {
194
82
  "inputs": [],
195
- "name": "commitRevealUpperBound",
83
+ "name": "SIGNAL_COINBASE",
196
84
  "outputs": [
197
85
  {
198
- "internalType": "uint256",
86
+ "internalType": "address",
199
87
  "name": "",
200
- "type": "uint256"
88
+ "type": "address"
201
89
  }
202
90
  ],
203
91
  "stateMutability": "view",
204
92
  "type": "function"
205
93
  },
206
94
  {
207
- "inputs": [
208
- {
209
- "internalType": "address",
210
- "name": "",
211
- "type": "address"
212
- },
95
+ "inputs": [],
96
+ "name": "TOTAL_STORED_BUFFERS",
97
+ "outputs": [
213
98
  {
214
99
  "internalType": "uint256",
215
100
  "name": "",
216
101
  "type": "uint256"
217
102
  }
218
103
  ],
219
- "name": "dataAvailabilityPeriodsMined",
104
+ "stateMutability": "view",
105
+ "type": "function"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "TOTAL_STORED_PROOFS",
220
110
  "outputs": [
221
111
  {
222
- "internalType": "uint64",
112
+ "internalType": "uint256",
223
113
  "name": "",
224
- "type": "uint64"
114
+ "type": "uint256"
225
115
  }
226
116
  ],
227
117
  "stateMutability": "view",
@@ -230,180 +120,86 @@
230
120
  {
231
121
  "inputs": [
232
122
  {
233
- "internalType": "uint32",
234
- "name": "chainId",
235
- "type": "uint32"
236
- },
237
- {
238
- "internalType": "bytes32",
239
- "name": "paymentHash",
240
- "type": "bytes32"
241
- },
242
- {
243
- "internalType": "uint64",
244
- "name": "ledger",
245
- "type": "uint64"
246
- },
247
- {
248
- "internalType": "string",
249
- "name": "txId",
250
- "type": "string"
123
+ "internalType": "address",
124
+ "name": "",
125
+ "type": "address"
251
126
  }
252
127
  ],
253
- "name": "disprovePaymentFinality",
128
+ "name": "attestorAddressMapping",
254
129
  "outputs": [
255
130
  {
256
- "internalType": "uint32",
257
- "name": "_chainId",
258
- "type": "uint32"
259
- },
260
- {
261
- "internalType": "uint64",
262
- "name": "_ledger",
263
- "type": "uint64"
264
- },
265
- {
266
- "internalType": "uint64",
267
- "name": "_finalisedLedgerIndex",
268
- "type": "uint64"
269
- },
270
- {
271
- "internalType": "bytes32",
272
- "name": "_paymentHash",
273
- "type": "bytes32"
274
- },
275
- {
276
- "internalType": "string",
277
- "name": "_txId",
278
- "type": "string"
131
+ "internalType": "address",
132
+ "name": "",
133
+ "type": "address"
279
134
  }
280
135
  ],
281
- "stateMutability": "nonpayable",
136
+ "stateMutability": "view",
282
137
  "type": "function"
283
138
  },
284
139
  {
285
140
  "inputs": [
286
141
  {
287
- "internalType": "bytes32",
142
+ "internalType": "address",
288
143
  "name": "",
289
- "type": "bytes32"
144
+ "type": "address"
290
145
  }
291
146
  ],
292
- "name": "finalisedDataAvailabilityPeriods",
147
+ "name": "buffers",
293
148
  "outputs": [
294
- {
295
- "internalType": "bool",
296
- "name": "exists",
297
- "type": "bool"
298
- },
299
- {
300
- "internalType": "bytes32",
301
- "name": "dataAvailabilityPeriodHash",
302
- "type": "bytes32"
303
- },
304
- {
305
- "internalType": "bytes32",
306
- "name": "commitHash",
307
- "type": "bytes32"
308
- },
309
149
  {
310
150
  "internalType": "uint256",
311
- "name": "commitTime",
151
+ "name": "latestVote",
312
152
  "type": "uint256"
313
- },
153
+ }
154
+ ],
155
+ "stateMutability": "view",
156
+ "type": "function"
157
+ },
158
+ {
159
+ "inputs": [
314
160
  {
315
161
  "internalType": "uint256",
316
- "name": "permittedRevealTime",
162
+ "name": "_bufferNumber",
317
163
  "type": "uint256"
318
164
  },
319
165
  {
320
166
  "internalType": "bytes32",
321
- "name": "revealHash",
167
+ "name": "_merkleRoot",
322
168
  "type": "bytes32"
323
- },
324
- {
325
- "internalType": "uint64",
326
- "name": "index",
327
- "type": "uint64"
328
- },
329
- {
330
- "internalType": "uint64",
331
- "name": "indexSearchRegion",
332
- "type": "uint64"
333
- },
334
- {
335
- "internalType": "bool",
336
- "name": "proven",
337
- "type": "bool"
338
- },
339
- {
340
- "internalType": "address",
341
- "name": "provenBy",
342
- "type": "address"
343
169
  }
344
170
  ],
345
- "stateMutability": "view",
171
+ "name": "finaliseRound",
172
+ "outputs": [],
173
+ "stateMutability": "nonpayable",
346
174
  "type": "function"
347
175
  },
348
176
  {
349
177
  "inputs": [
350
178
  {
351
- "internalType": "bytes32",
352
- "name": "",
353
- "type": "bytes32"
179
+ "internalType": "uint256",
180
+ "name": "_bufferNumber",
181
+ "type": "uint256"
354
182
  }
355
183
  ],
356
- "name": "finalisedPayments",
184
+ "name": "getAttestation",
357
185
  "outputs": [
358
- {
359
- "internalType": "bool",
360
- "name": "exists",
361
- "type": "bool"
362
- },
363
- {
364
- "internalType": "bytes32",
365
- "name": "dataAvailabilityPeriodHash",
366
- "type": "bytes32"
367
- },
368
186
  {
369
187
  "internalType": "bytes32",
370
- "name": "commitHash",
188
+ "name": "_merkleRoot",
371
189
  "type": "bytes32"
372
- },
373
- {
374
- "internalType": "uint256",
375
- "name": "commitTime",
376
- "type": "uint256"
377
- },
190
+ }
191
+ ],
192
+ "stateMutability": "view",
193
+ "type": "function"
194
+ },
195
+ {
196
+ "inputs": [],
197
+ "name": "lastFinalizedRoundId",
198
+ "outputs": [
378
199
  {
379
200
  "internalType": "uint256",
380
- "name": "permittedRevealTime",
201
+ "name": "_roundId",
381
202
  "type": "uint256"
382
- },
383
- {
384
- "internalType": "bytes32",
385
- "name": "revealHash",
386
- "type": "bytes32"
387
- },
388
- {
389
- "internalType": "uint64",
390
- "name": "index",
391
- "type": "uint64"
392
- },
393
- {
394
- "internalType": "uint64",
395
- "name": "indexSearchRegion",
396
- "type": "uint64"
397
- },
398
- {
399
- "internalType": "bool",
400
- "name": "proven",
401
- "type": "bool"
402
- },
403
- {
404
- "internalType": "address",
405
- "name": "provenBy",
406
- "type": "address"
407
203
  }
408
204
  ],
409
205
  "stateMutability": "view",
@@ -412,22 +208,17 @@
412
208
  {
413
209
  "inputs": [
414
210
  {
415
- "internalType": "uint32",
416
- "name": "chainId",
417
- "type": "uint32"
418
- },
419
- {
420
- "internalType": "uint64",
421
- "name": "dataAvailabilityPeriodIndex",
422
- "type": "uint64"
211
+ "internalType": "uint256",
212
+ "name": "_roundId",
213
+ "type": "uint256"
423
214
  }
424
215
  ],
425
- "name": "getDataAvailabilityPeriodIndexFinality",
216
+ "name": "merkleRoot",
426
217
  "outputs": [
427
218
  {
428
- "internalType": "bool",
429
- "name": "finality",
430
- "type": "bool"
219
+ "internalType": "bytes32",
220
+ "name": "",
221
+ "type": "bytes32"
431
222
  }
432
223
  ],
433
224
  "stateMutability": "view",
@@ -435,23 +226,18 @@
435
226
  },
436
227
  {
437
228
  "inputs": [
438
- {
439
- "internalType": "address",
440
- "name": "miner",
441
- "type": "address"
442
- },
443
229
  {
444
230
  "internalType": "uint256",
445
- "name": "rewardSchedule",
231
+ "name": "",
446
232
  "type": "uint256"
447
233
  }
448
234
  ],
449
- "name": "getDataAvailabilityPeriodsMined",
235
+ "name": "merkleRoots",
450
236
  "outputs": [
451
237
  {
452
- "internalType": "uint64",
453
- "name": "numMined",
454
- "type": "uint64"
238
+ "internalType": "bytes32",
239
+ "name": "",
240
+ "type": "bytes32"
455
241
  }
456
242
  ],
457
243
  "stateMutability": "view",
@@ -460,103 +246,57 @@
460
246
  {
461
247
  "inputs": [
462
248
  {
463
- "internalType": "uint32",
464
- "name": "chainId",
465
- "type": "uint32"
466
- }
467
- ],
468
- "name": "getLatestIndex",
469
- "outputs": [
470
- {
471
- "internalType": "uint64",
472
- "name": "genesisLedger",
473
- "type": "uint64"
474
- },
475
- {
476
- "internalType": "uint64",
477
- "name": "finalisedDataAvailabilityPeriodIndex",
478
- "type": "uint64"
479
- },
480
- {
481
- "internalType": "uint16",
482
- "name": "dataAvailabilityPeriodLength",
483
- "type": "uint16"
484
- },
485
- {
486
- "internalType": "uint64",
487
- "name": "finalisedLedgerIndex",
488
- "type": "uint64"
489
- },
490
- {
491
- "internalType": "uint256",
492
- "name": "finalisedTimestamp",
493
- "type": "uint256"
494
- },
495
- {
496
- "internalType": "uint256",
497
- "name": "timeDiffAvg",
498
- "type": "uint256"
249
+ "internalType": "bytes",
250
+ "name": "_data",
251
+ "type": "bytes"
499
252
  }
500
253
  ],
501
- "stateMutability": "view",
254
+ "name": "requestAttestations",
255
+ "outputs": [],
256
+ "stateMutability": "nonpayable",
502
257
  "type": "function"
503
258
  },
504
259
  {
505
260
  "inputs": [
506
261
  {
507
- "internalType": "uint32",
508
- "name": "chainId",
509
- "type": "uint32"
262
+ "internalType": "uint256",
263
+ "name": "_bufferNumber",
264
+ "type": "uint256"
510
265
  },
511
266
  {
512
267
  "internalType": "bytes32",
513
- "name": "txId",
268
+ "name": "_commitHash",
514
269
  "type": "bytes32"
515
270
  },
516
271
  {
517
272
  "internalType": "bytes32",
518
- "name": "destinationHash",
273
+ "name": "_merkleRoot",
519
274
  "type": "bytes32"
520
275
  },
521
- {
522
- "internalType": "uint64",
523
- "name": "amount",
524
- "type": "uint64"
525
- },
526
276
  {
527
277
  "internalType": "bytes32",
528
- "name": "currencyHash",
278
+ "name": "_randomNumber",
529
279
  "type": "bytes32"
530
280
  }
531
281
  ],
532
- "name": "getPaymentFinality",
282
+ "name": "submitAttestation",
533
283
  "outputs": [
534
- {
535
- "internalType": "uint64",
536
- "name": "ledger",
537
- "type": "uint64"
538
- },
539
- {
540
- "internalType": "uint64",
541
- "name": "indexSearchRegion",
542
- "type": "uint64"
543
- },
544
284
  {
545
285
  "internalType": "bool",
546
- "name": "finality",
286
+ "name": "_isInitialBufferSlot",
547
287
  "type": "bool"
548
288
  }
549
289
  ],
550
- "stateMutability": "view",
290
+ "stateMutability": "nonpayable",
551
291
  "type": "function"
552
292
  },
553
293
  {
554
294
  "inputs": [],
555
- "name": "getRewardPeriod",
295
+ "name": "totalBuffers",
556
296
  "outputs": [
557
297
  {
558
298
  "internalType": "uint256",
559
- "name": "rewardSchedule",
299
+ "name": "",
560
300
  "type": "uint256"
561
301
  }
562
302
  ],
@@ -566,438 +306,19 @@
566
306
  {
567
307
  "inputs": [
568
308
  {
569
- "internalType": "uint256",
570
- "name": "rewardSchedule",
571
- "type": "uint256"
572
- }
573
- ],
574
- "name": "getTotalDataAvailabilityPeriodsMined",
575
- "outputs": [
576
- {
577
- "internalType": "uint64",
578
- "name": "numMined",
579
- "type": "uint64"
580
- }
581
- ],
582
- "stateMutability": "view",
583
- "type": "function"
584
- },
585
- {
586
- "inputs": [],
587
- "name": "initialiseChains",
588
- "outputs": [
589
- {
590
- "internalType": "bool",
591
- "name": "success",
592
- "type": "bool"
309
+ "internalType": "address",
310
+ "name": "_updatedAddress",
311
+ "type": "address"
593
312
  }
594
313
  ],
314
+ "name": "updateAttestorAddressMapping",
315
+ "outputs": [],
595
316
  "stateMutability": "nonpayable",
596
317
  "type": "function"
597
- },
598
- {
599
- "inputs": [],
600
- "name": "initialiseTime",
601
- "outputs": [
602
- {
603
- "internalType": "uint256",
604
- "name": "",
605
- "type": "uint256"
606
- }
607
- ],
608
- "stateMutability": "view",
609
- "type": "function"
610
- },
611
- {
612
- "inputs": [],
613
- "name": "initialised",
614
- "outputs": [
615
- {
616
- "internalType": "bool",
617
- "name": "",
618
- "type": "bool"
619
- }
620
- ],
621
- "stateMutability": "view",
622
- "type": "function"
623
- },
624
- {
625
- "inputs": [],
626
- "name": "numChains",
627
- "outputs": [
628
- {
629
- "internalType": "uint32",
630
- "name": "",
631
- "type": "uint32"
632
- }
633
- ],
634
- "stateMutability": "view",
635
- "type": "function"
636
- },
637
- {
638
- "inputs": [
639
- {
640
- "internalType": "address",
641
- "name": "",
642
- "type": "address"
643
- },
644
- {
645
- "internalType": "bytes32",
646
- "name": "",
647
- "type": "bytes32"
648
- }
649
- ],
650
- "name": "proposedDataAvailabilityProofs",
651
- "outputs": [
652
- {
653
- "internalType": "bool",
654
- "name": "exists",
655
- "type": "bool"
656
- },
657
- {
658
- "internalType": "bytes32",
659
- "name": "dataAvailabilityPeriodHash",
660
- "type": "bytes32"
661
- },
662
- {
663
- "internalType": "bytes32",
664
- "name": "commitHash",
665
- "type": "bytes32"
666
- },
667
- {
668
- "internalType": "uint256",
669
- "name": "commitTime",
670
- "type": "uint256"
671
- },
672
- {
673
- "internalType": "uint256",
674
- "name": "permittedRevealTime",
675
- "type": "uint256"
676
- },
677
- {
678
- "internalType": "bytes32",
679
- "name": "revealHash",
680
- "type": "bytes32"
681
- },
682
- {
683
- "internalType": "uint64",
684
- "name": "index",
685
- "type": "uint64"
686
- },
687
- {
688
- "internalType": "uint64",
689
- "name": "indexSearchRegion",
690
- "type": "uint64"
691
- },
692
- {
693
- "internalType": "bool",
694
- "name": "proven",
695
- "type": "bool"
696
- },
697
- {
698
- "internalType": "address",
699
- "name": "provenBy",
700
- "type": "address"
701
- }
702
- ],
703
- "stateMutability": "view",
704
- "type": "function"
705
- },
706
- {
707
- "inputs": [
708
- {
709
- "internalType": "bytes32",
710
- "name": "",
711
- "type": "bytes32"
712
- },
713
- {
714
- "internalType": "uint64",
715
- "name": "",
716
- "type": "uint64"
717
- }
718
- ],
719
- "name": "proposedNonPaymentProofs",
720
- "outputs": [
721
- {
722
- "internalType": "bool",
723
- "name": "exists",
724
- "type": "bool"
725
- },
726
- {
727
- "internalType": "bytes32",
728
- "name": "dataAvailabilityPeriodHash",
729
- "type": "bytes32"
730
- },
731
- {
732
- "internalType": "bytes32",
733
- "name": "commitHash",
734
- "type": "bytes32"
735
- },
736
- {
737
- "internalType": "uint256",
738
- "name": "commitTime",
739
- "type": "uint256"
740
- },
741
- {
742
- "internalType": "uint256",
743
- "name": "permittedRevealTime",
744
- "type": "uint256"
745
- },
746
- {
747
- "internalType": "bytes32",
748
- "name": "revealHash",
749
- "type": "bytes32"
750
- },
751
- {
752
- "internalType": "uint64",
753
- "name": "index",
754
- "type": "uint64"
755
- },
756
- {
757
- "internalType": "uint64",
758
- "name": "indexSearchRegion",
759
- "type": "uint64"
760
- },
761
- {
762
- "internalType": "bool",
763
- "name": "proven",
764
- "type": "bool"
765
- },
766
- {
767
- "internalType": "address",
768
- "name": "provenBy",
769
- "type": "address"
770
- }
771
- ],
772
- "stateMutability": "view",
773
- "type": "function"
774
- },
775
- {
776
- "inputs": [
777
- {
778
- "internalType": "bytes32",
779
- "name": "",
780
- "type": "bytes32"
781
- },
782
- {
783
- "internalType": "uint64",
784
- "name": "",
785
- "type": "uint64"
786
- }
787
- ],
788
- "name": "proposedPaymentProofs",
789
- "outputs": [
790
- {
791
- "internalType": "bool",
792
- "name": "exists",
793
- "type": "bool"
794
- },
795
- {
796
- "internalType": "bytes32",
797
- "name": "dataAvailabilityPeriodHash",
798
- "type": "bytes32"
799
- },
800
- {
801
- "internalType": "bytes32",
802
- "name": "commitHash",
803
- "type": "bytes32"
804
- },
805
- {
806
- "internalType": "uint256",
807
- "name": "commitTime",
808
- "type": "uint256"
809
- },
810
- {
811
- "internalType": "uint256",
812
- "name": "permittedRevealTime",
813
- "type": "uint256"
814
- },
815
- {
816
- "internalType": "bytes32",
817
- "name": "revealHash",
818
- "type": "bytes32"
819
- },
820
- {
821
- "internalType": "uint64",
822
- "name": "index",
823
- "type": "uint64"
824
- },
825
- {
826
- "internalType": "uint64",
827
- "name": "indexSearchRegion",
828
- "type": "uint64"
829
- },
830
- {
831
- "internalType": "bool",
832
- "name": "proven",
833
- "type": "bool"
834
- },
835
- {
836
- "internalType": "address",
837
- "name": "provenBy",
838
- "type": "address"
839
- }
840
- ],
841
- "stateMutability": "view",
842
- "type": "function"
843
- },
844
- {
845
- "inputs": [
846
- {
847
- "internalType": "uint32",
848
- "name": "chainId",
849
- "type": "uint32"
850
- },
851
- {
852
- "internalType": "uint64",
853
- "name": "ledger",
854
- "type": "uint64"
855
- },
856
- {
857
- "internalType": "bytes32",
858
- "name": "dataAvailabilityPeriodHash",
859
- "type": "bytes32"
860
- },
861
- {
862
- "internalType": "bytes32",
863
- "name": "chainTipHash",
864
- "type": "bytes32"
865
- }
866
- ],
867
- "name": "proveDataAvailabilityPeriodFinality",
868
- "outputs": [
869
- {
870
- "internalType": "uint32",
871
- "name": "_chainId",
872
- "type": "uint32"
873
- },
874
- {
875
- "internalType": "uint64",
876
- "name": "_ledger",
877
- "type": "uint64"
878
- },
879
- {
880
- "internalType": "uint16",
881
- "name": "_numConfirmations",
882
- "type": "uint16"
883
- },
884
- {
885
- "internalType": "bytes32",
886
- "name": "_dataAvailabilityPeriodHash",
887
- "type": "bytes32"
888
- }
889
- ],
890
- "stateMutability": "nonpayable",
891
- "type": "function"
892
- },
893
- {
894
- "inputs": [
895
- {
896
- "internalType": "uint32",
897
- "name": "chainId",
898
- "type": "uint32"
899
- },
900
- {
901
- "internalType": "bytes32",
902
- "name": "paymentHash",
903
- "type": "bytes32"
904
- },
905
- {
906
- "internalType": "uint64",
907
- "name": "ledger",
908
- "type": "uint64"
909
- },
910
- {
911
- "internalType": "string",
912
- "name": "txId",
913
- "type": "string"
914
- }
915
- ],
916
- "name": "provePaymentFinality",
917
- "outputs": [
918
- {
919
- "internalType": "uint32",
920
- "name": "_chainId",
921
- "type": "uint32"
922
- },
923
- {
924
- "internalType": "uint64",
925
- "name": "_ledger",
926
- "type": "uint64"
927
- },
928
- {
929
- "internalType": "uint64",
930
- "name": "_finalisedLedgerIndex",
931
- "type": "uint64"
932
- },
933
- {
934
- "internalType": "bytes32",
935
- "name": "_paymentHash",
936
- "type": "bytes32"
937
- },
938
- {
939
- "internalType": "string",
940
- "name": "_txId",
941
- "type": "string"
942
- }
943
- ],
944
- "stateMutability": "nonpayable",
945
- "type": "function"
946
- },
947
- {
948
- "inputs": [],
949
- "name": "rewardPeriodTimespan",
950
- "outputs": [
951
- {
952
- "internalType": "uint64",
953
- "name": "",
954
- "type": "uint64"
955
- }
956
- ],
957
- "stateMutability": "view",
958
- "type": "function"
959
- },
960
- {
961
- "inputs": [
962
- {
963
- "internalType": "address",
964
- "name": "",
965
- "type": "address"
966
- }
967
- ],
968
- "name": "senderBannedUntil",
969
- "outputs": [
970
- {
971
- "internalType": "uint256",
972
- "name": "",
973
- "type": "uint256"
974
- }
975
- ],
976
- "stateMutability": "view",
977
- "type": "function"
978
- },
979
- {
980
- "inputs": [
981
- {
982
- "internalType": "uint256",
983
- "name": "",
984
- "type": "uint256"
985
- }
986
- ],
987
- "name": "totalDataAvailabilityPeriodsMined",
988
- "outputs": [
989
- {
990
- "internalType": "uint64",
991
- "name": "",
992
- "type": "uint64"
993
- }
994
- ],
995
- "stateMutability": "view",
996
- "type": "function"
997
318
  }
998
319
  ],
999
- "bytecode": "0x608060405234801561001057600080fd5b5061462d806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637ec93e9f116100de578063c5d64cd111610097578063dccb2d3211610071578063dccb2d32146107f2578063ee2d87371461081e578063ef4c169e1461083b578063f9c490ee1461084357610173565b8063c5d64cd11461073e578063d3b92926146107b4578063d3fb3e9f146107d157610173565b80637ec93e9f146105a85780637f582432146105d45780638abd90ae1461069c5780638b203dd4146106a45780639c531f8c1461072e578063adc890321461073657610173565b806347453f371161013057806347453f37146104355780634bdc9c8f1461045257806355d14c15146104d857806371e8d61a14610504578063741d3cb41461057457806379fd4e1a1461057c57610173565b806307003bb41461017857806322ce7387146101945780632a2434a2146101cc5780632bec6f8714610247578063388492dd1461028f5780633f57987d14610403575b600080fd5b61018061084b565b604080519115158252519081900360200190f35b6101ba600480360360208110156101aa57600080fd5b50356001600160a01b0316610854565b60408051918252519081900360200190f35b6101ef600480360360208110156101e257600080fd5b503563ffffffff16610866565b60405180876001600160401b03168152602001866001600160401b031681526020018561ffff168152602001846001600160401b03168152602001838152602001828152602001965050505050505060405180910390f35b6102736004803603604081101561025d57600080fd5b506001600160a01b038135169060200135610a98565b604080516001600160401b039092168252519081900360200190f35b610357600480360360808110156102a557600080fd5b63ffffffff823516916020810135916001600160401b0360408301351691908101906080810160608201356401000000008111156102e257600080fd5b8201836020820111156102f457600080fd5b8035906020019184600183028401116401000000008311171561031657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610abe945050505050565b604051808663ffffffff168152602001856001600160401b03168152602001846001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b6101806004803603604081101561041957600080fd5b50803563ffffffff1690602001356001600160401b03166114cb565b6102736004803603602081101561044b57600080fd5b50356115c7565b61046f6004803603602081101561046857600080fd5b5035611625565b604080519a15158b5260208b0199909952898901979097526060890195909552608088019390935260a08701919091526001600160401b0390811660c08701521660e085015215156101008401526001600160a01b031661012083015251908190036101400190f35b61046f600480360360408110156104ee57600080fd5b50803590602001356001600160401b031661169a565b610548600480360360a081101561051a57600080fd5b5063ffffffff813516906020810135906040810135906001600160401b036060820135169060800135611718565b604080516001600160401b03948516815292909316602083015215158183015290519081900360600190f35b6101ba61194b565b61046f6004803603604081101561059257600080fd5b50803590602001356001600160401b0316611951565b61046f600480360360408110156105be57600080fd5b506001600160a01b0381351690602001356119cf565b610357600480360360808110156105ea57600080fd5b63ffffffff823516916020810135916001600160401b03604083013516919081019060808101606082013564010000000081111561062757600080fd5b82018360208201111561063957600080fd5b8035906020019184600183028401116401000000008311171561065b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a4c945050505050565b6101ba612460565b6106c7600480360360208110156106ba57600080fd5b503563ffffffff16612466565b604080519a15158b526001600160401b03998a1660208c01529789168a89015261ffff96871660608b015294909516608089015291861660a088015290941660c086015260e085019390935261010084015261012083019190915251908190036101400190f35b6102736124d6565b6101ba6124e5565b61077c6004803603608081101561075457600080fd5b5063ffffffff813516906001600160401b036020820135169060408101359060600135612588565b6040805163ffffffff90951685526001600160401b03909316602085015261ffff909116838301526060830152519081900360800190f35b610273600480360360208110156107ca57600080fd5b503561375d565b6107d9613778565b6040805163ffffffff9092168252519081900360200190f35b6102736004803603604081101561080857600080fd5b506001600160a01b038135169060200135613789565b61046f6004803603602081101561083457600080fd5b50356137fd565b610180613870565b6101ba614280565b60005460ff1681565b600d6020526000908152604090205481565b600080548190819081908190819060ff166108b25760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8716600090815260056020526040902054879060ff1661090c576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b600560008963ffffffff1663ffffffff168152602001908152602001600020600201549250600560008963ffffffff1663ffffffff168152602001908152602001600020600401549150600088600560008b63ffffffff1663ffffffff16815260200190815260200160002060000160159054906101000a90046001600160401b0316604051602001808363ffffffff1660e01b8152600401826001600160401b031660c01b81526008019250505060405160208183030381529060405280519060200120905060066000336001600160a01b03166001600160a01b03168152602001908152602001600020600082815260200190815260200160002060000160009054906101000a900460ff1615610a435733600090815260066020908152604080832084845290915281206004015490945092505b505063ffffffff969096166000908152600560205260409020805460019091015461010082046001600160401b0390811699600160a81b8404821699600160881b90940461ffff169850911695509193509150565b600b6020908152600092835260408084209091529082529020546001600160401b031681565b6000805481908190819060609060ff16610b095760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8916600090815260056020526040902054899060ff16610b63576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b88610baa576040805162461bcd60e51b815260206004820152601260248201527107061796d656e7448617368203d3d203078360741b604482015290519081900360640190fd5b63ffffffff8a166000908152600560205260409020600101546001600160401b0316610c075760405162461bcd60e51b81526004018080602001828103825260298152602001806144706029913960400191505060405180910390fd5b41331480610c18575041600160981b145b610c69576040805162461bcd60e51b815260206004820152601c60248201527f696e76616c696420626c6f636b2e636f696e626173652076616c756500000000604482015290519081900360640190fd5b6040805160e08c901b6001600160e01b03191660208083019190915260248083018d905283518084039091018152604490920183528151918101919091206000818152600a90925291902060060154600160801b900460ff1615610d0d576040805162461bcd60e51b81526020600482015260166024820152753830bcb6b2b73a1030b63932b0b23c90383937bb32b760511b604482015290519081900360640190fd5b63ffffffff8b166000908152600560205260409020600101546001600160401b03908116908a1610610d705760405162461bcd60e51b815260040180806020018281038252602e815260200180614442602e913960400191505060405180910390fd5b63ffffffff8b166000908152600560205260409020546001600160401b036101008204811691600160481b90041615610e515763ffffffff8c16600090815260056020526040902080546001909101546001600160401b03600160481b830481166101009093048116918116919091031611610e1d5760405162461bcd60e51b815260040180806020018281038252603981526020018061457e6039913960400191505060405180910390fd5b5063ffffffff8b16600090815260056020526040902080546001909101546001600160401b03600160481b90920482169116035b806001600160401b03168a6001600160401b03161015610eb8576040805162461bcd60e51b815260206004820152601a60248201527f6c6564676572203c20696e646578536561726368526567696f6e000000000000604482015290519081900360640190fd5b60008281526008602090815260408083206001600160401b038e16845290915281205460ff16156110415760008381526008602090815260408083206001600160401b038f168452909152902060040154421015610f475760405162461bcd60e51b81526004018080602001828103825260498152602001806143656049913960600191505060405180910390fd5b60008381526008602090815260408083206001600160401b038f1684529091529020600501548c14610fb6576040805162461bcd60e51b81526020600482015260136024820152720d2dcecc2d8d2c840e0c2f2dacadce890c2e6d606b1b604482015290519081900360640190fd5b426003546008600086815260200190815260200160002060008e6001600160401b03166001600160401b0316815260200190815260200160002060030154011161103c576040805162461bcd60e51b815260206004820152601260248201527172657665616c20697320746f6f206c61746560701b604482015290519081900360640190fd5b61107d565b413314801590611054575041600160981b145b1561107d575063ffffffff8c166000908152600560205260409020600101546001600160401b03165b4133148015611090575041600160981b14155b156114ba5760008381526008602090815260408083206001600160401b038f16845290915290205460ff16611269576040518061014001604052806001151581526020016000801b81526020016000801b8152602001428152602001600254420181526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600015158152602001336001600160a01b03168152506008600085815260200190815260200160002060008d6001600160401b03166001600160401b0316815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506114ba565b6040518061014001604052806001151581526020016000801b81526020016000801b8152602001600081526020014281526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600115158152602001336001600160a01b0316815250600a600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050507ff794f5b9b6791b3ab0eb97342cf2efbb7e710a478d4512a2505ea60c93fd85d38d8c8c8f33604051808663ffffffff168152602001856001600160401b0316815260200180602001848152602001836001600160a01b03168152602001828103825285818151815260200191508051906020019080838360005b8381101561147b578181015183820152602001611463565b50505050905090810190601f1680156114a85780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a15b9b9c999b9a99975050505050505050565b6000805460ff1661150d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8316600090815260056020526040902054839060ff16611567576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b50506040805160e09390931b6001600160e01b03191660208085019190915260c09290921b6001600160c01b03191660248401528051808403600c018152602c909301815282519282019290922060009081526007909152205460ff1690565b6000805460ff166116095760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b506000908152600c60205260409020546001600160401b031690565b60076020819052600091825260409091208054600182015460028301546003840154600485015460058601546006870154969097015460ff95861697949693959294919391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b60086020908152600092835260408084209091529082529020805460018201546002830154600384015460048501546005860154600687015460079097015460ff96871697959694959394929391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b600080548190819060ff1661175e5760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8816600090815260056020526040902054889060ff166117b8576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b604080516001600160401b0388166020808301919091528251808303820181528284018452805190820120606083018c9052608083018b905260a083015260c08083018990528351808403909101815260e08084018552815191830191909120908d901b6001600160e01b0319166101008401526101048084018290528451808503909101815261012490930184528251928201929092206000818152600a9092529290205490919060ff166118ae576040805162461bcd60e51b81526020600482015260166024820152751c185e5b595b9d08191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b6000818152600a60205260409020600501548214611909576040805162461bcd60e51b81526020600482015260136024820152720d2dcecc2d8d2c840e0c2f2dacadce890c2e6d606b1b604482015290519081900360640190fd5b6000908152600a60205260409020600601546001600160401b038082169c600160401b83049091169b50600160801b90910460ff169950975050505050505050565b60025481565b60096020908152600092835260408084209091529082529020805460018201546002830154600384015460048501546005860154600687015460079097015460ff96871697959694959394929391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b600660208181526000938452604080852090915291835291208054600182015460028301546003840154600485015460058601549686015460079096015460ff95861697949693959294919391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b6000805481908190819060609060ff16611a975760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8916600090815260056020526040902054899060ff16611af1576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b88611b38576040805162461bcd60e51b815260206004820152601260248201527107061796d656e7448617368203d3d203078360741b604482015290519081900360640190fd5b63ffffffff8a166000908152600560205260409020600101546001600160401b0316611b955760405162461bcd60e51b81526004018080602001828103825260298152602001806144706029913960400191505060405180910390fd5b41331480611ba6575041600160981b145b611bf7576040805162461bcd60e51b815260206004820152601c60248201527f696e76616c696420626c6f636b2e636f696e626173652076616c756500000000604482015290519081900360640190fd5b6040805160e08c901b6001600160e01b03191660208083019190915260248083018d905283518084039091018152604490920183528151918101919091206000818152600a90925291902060060154600160801b900460ff1615611c98576040805162461bcd60e51b81526020600482015260136024820152723a3c24b21030b63932b0b23c90383937bb32b760691b604482015290519081900360640190fd5b6000818152600a60205260409020600601546001600160401b03808b16911610611cf35760405162461bcd60e51b815260040180806020018281038252602f8152602001806143ae602f913960400191505060405180910390fd5b63ffffffff8b166000908152600560205260409020600101546001600160401b03908116908a1610611d565760405162461bcd60e51b815260040180806020018281038252602e815260200180614442602e913960400191505060405180910390fd5b63ffffffff8b166000908152600560205260409020546001600160401b036101008204811691600160481b90041615611e375763ffffffff8c16600090815260056020526040902080546001909101546001600160401b03600160481b830481166101009093048116918116919091031611611e035760405162461bcd60e51b815260040180806020018281038252603981526020018061457e6039913960400191505060405180910390fd5b5063ffffffff8b16600090815260056020526040902080546001909101546001600160401b03600160481b90920482169116035b806001600160401b03168a6001600160401b03161015611e9e576040805162461bcd60e51b815260206004820152601a60248201527f6c6564676572203c20696e646578536561726368526567696f6e000000000000604482015290519081900360640190fd5b60008281526009602090815260408083206001600160401b038e16845290915281205460ff16156120275760008381526009602090815260408083206001600160401b038f168452909152902060040154421015611f2d5760405162461bcd60e51b81526004018080602001828103825260548152602001806142876054913960600191505060405180910390fd5b60008381526009602090815260408083206001600160401b038f1684529091529020600501548c14611f9c576040805162461bcd60e51b81526020600482015260136024820152720d2dcecc2d8d2c840e0c2f2dacadce890c2e6d606b1b604482015290519081900360640190fd5b426003546009600086815260200190815260200160002060008e6001600160401b03166001600160401b03168152602001908152602001600020600301540111612022576040805162461bcd60e51b815260206004820152601260248201527172657665616c20697320746f6f206c61746560701b604482015290519081900360640190fd5b612063565b41331480159061203a575041600160981b145b15612063575063ffffffff8c166000908152600560205260409020600101546001600160401b03165b4133148015612076575041600160981b14155b156114ba5760008381526009602090815260408083206001600160401b038f16845290915290205460ff1661224f576040518061014001604052806001151581526020016000801b81526020016000801b8152602001428152602001600254420181526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600015158152602001336001600160a01b03168152506009600085815260200190815260200160002060008d6001600160401b03166001600160401b0316815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506114ba565b6040518061014001604052806001151581526020016000801b81526020016000801b8152602001600081526020014281526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600015158152602001336001600160a01b0316815250600a600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050507ff794f5b9b6791b3ab0eb97342cf2efbb7e710a478d4512a2505ea60c93fd85d38d8c8c8f33604051808663ffffffff168152602001856001600160401b0316815260200180602001848152602001836001600160a01b03168152602001828103825285818151815260200191508051906020019080838360008381101561147b578181015183820152602001611463565b60035481565b6005602052600090815260409020805460018201546002830154600384015460049094015460ff8416946001600160401b036101008604811695600160481b810482169561ffff600160881b8304811696600160981b840490911695600160a81b9093048416949190931692918a565b6004546001600160401b031681565b6000805460ff166125275760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b60015442116125675760405162461bcd60e51b81526004018080602001828103825260218152602001806145286021913960400191505060405180910390fd5b6004546001546001600160401b039091169042038161258257fe5b04905090565b6000805481908190819060ff166125d05760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8816600090815260056020526040902054889060ff1661262a576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b336000908152600d602052604090205442116126775760405162461bcd60e51b81526004018080602001828103825260458152602001806143dd6045913960600191505060405180910390fd5b866126b35760405162461bcd60e51b81526004018080602001828103825260218152602001806145d76021913960400191505060405180910390fd5b856126fb576040805162461bcd60e51b81526020600482015260136024820152720636861696e54697048617368203d3d2030783606c1b604482015290519081900360640190fd5b63ffffffff8916600090815260056020526040902054600160981b900461ffff166127575760405162461bcd60e51b81526004018080602001828103825260248152602001806144ca6024913960400191505060405180910390fd5b41331480612768575041600160981b145b6127b9576040805162461bcd60e51b815260206004820152601c60248201527f696e76616c696420626c6f636b2e636f696e626173652076616c756500000000604482015290519081900360640190fd5b63ffffffff891660009081526005602052604090208054600190910154600160881b90910461ffff166001600160401b0391821601811690891614612836576040805162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b2103632b233b2b960911b604482015290519081900360640190fd5b63ffffffff8916600090815260056020526040902060020154421161288c5760405162461bcd60e51b81526004018080602001828103825260358152602001806145496035913960400191505060405180910390fd5b63ffffffff89166000908152600560205260409020600381015460049091015460020210156129215763ffffffff89166000908152600560205260409020600481015460029182015491024291909103600302101561291c5760405162461bcd60e51b815260040180806020018281038252602c815260200180614339602c913960400191505060405180910390fd5b612983565b63ffffffff8916600090815260056020526040902060048101546002909101544203600f0110156129835760405162461bcd60e51b815260040180806020018281038252602c815260200180614339602c913960400191505060405180910390fd5b63ffffffff8916600090815260056020908152604080832054815160e08e901b6001600160e01b03191681850152600160a81b90910460c01b6001600160c01b03191660248201528151808203600c018152602c9091018252805190830120808452600790925290912060060154600160801b900460ff1615612a4d576040805162461bcd60e51b815260206004820152601e60248201527f6c6f636174696f6e4861736820616c72656164792066696e616c697365640000604482015290519081900360640190fd5b63ffffffff8a16600090815260056020526040902054600160a81b90046001600160401b031615612b595760008a6001600560008e63ffffffff1663ffffffff16815260200190815260200160002060000160159054906101000a90046001600160401b031603604051602001808363ffffffff1660e01b8152600401826001600160401b031660c01b8152600801925050506040516020818303038152906040528051906020012090506007600082815260200190815260200160002060060160109054906101000a900460ff16612b575760405162461bcd60e51b81526004018080602001828103825260318152602001806144996031913960400191505060405180910390fd5b505b33600090815260066020908152604080832084845290915281205460ff1615612ce157336000908152600660209081526040808320858452909152902060040154421015612bd85760405162461bcd60e51b815260040180806020018281038252605e8152602001806142db605e913960600191505060405180910390fd5b6040805133606081901b60208084019190915260348084018d90528451808503909101815260549093018452825192810192909220600091825260068352838220868352909252919091206002015414612c70576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840c6d0c2d2dca8d2e090c2e6d60631b604482015290519081900360640190fd5b6003805433600090815260066020908152604080832087845290915290209091015442910111612cdc576040805162461bcd60e51b815260206004820152601260248201527172657665616c20697320746f6f206c61746560701b604482015290519081900360640190fd5b612d1c565b413314801590612cf4575041600160981b145b15612d1c575063ffffffff8a16600090815260056020526040902054600160981b900461ffff165b4133148015612d2f575041600160981b14155b156137485733600090815260066020908152604080832085845290915290205460ff16612f8b5763ffffffff8b1660009081526005602052604090206004015460028054910490811015612d8257506002545b6040518061014001604052806001151581526020018b81526020018a815260200142815260200182420181526020016000801b81526020018c6001600160401b0316815260200160006001600160401b0316815260200160001515815260200160006001600160a01b031681525060066000336001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506000805160206144228339815191528c8c600033604051808563ffffffff168152602001846001600160401b03168152602001836003811115612f6357fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a150613748565b63ffffffff8b16600090815260056020526040902054600160981b810461ffff16600160a81b9091046001600160401b0316111561335c5760008b600560008e63ffffffff1663ffffffff16815260200190815260200160002060000160139054906101000a900461ffff1661ffff16600560008f63ffffffff1663ffffffff16815260200190815260200160002060000160159054906101000a90046001600160401b031603604051602001808363ffffffff1660e01b8152600401826001600160401b031660c01b815260080192505050604051602081830303815290604052805190602001209050896007600083815260200190815260200160002060050154141561321e57600061309e6124e5565b90506001600b60006007600086815260200190815260200160002060070160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008282829054906101000a90046001600160401b03160192506101000a8154816001600160401b0302191690836001600160401b031602179055506001600c600083815260200190815260200160002060008282829054906101000a90046001600160401b03160192506101000a8154816001600160401b0302191690836001600160401b031602179055506000805160206144228339815191528d8d60026007600087815260200190815260200160002060070160009054906101000a90046001600160a01b0316604051808563ffffffff168152602001846001600160401b031681526020018360038111156131f657fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a150613356565b600560008d63ffffffff1663ffffffff16815260200190815260200160002060030154600560008e63ffffffff1663ffffffff16815260200190815260200160002060000160139054906101000a900461ffff1661ffff16024201600d60006007600085815260200190815260200160002060070160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020819055506000805160206144228339815191528c8c60036007600086815260200190815260200160002060070160009054906101000a90046001600160a01b0316604051808563ffffffff168152602001846001600160401b0316815260200183600381111561333357fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a15b506133be565b6000805160206144228339815191528b8b600133604051808563ffffffff168152602001846001600160401b0316815260200183600381111561339b57fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a15b6040518061014001604052806001151581526020018a81526020016000801b815260200160066000336001600160a01b03166001600160a01b0316815260200190815260200160002060008581526020019081526020016000206003015481526020014281526020018981526020018b6001600160401b0316815260200160006001600160401b03168152602001600115158152602001336001600160a01b03168152506007600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506001600560008d63ffffffff1663ffffffff16815260200190815260200160002060000160158282829054906101000a90046001600160401b03160192506101000a8154816001600160401b0302191690836001600160401b0316021790555089600560008d63ffffffff1663ffffffff16815260200190815260200160002060010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060006002600560008e63ffffffff1663ffffffff16815260200190815260200160002060040154600560008f63ffffffff1663ffffffff1681526020019081526020016000206002015460066000336001600160a01b03166001600160a01b031681526020019081526020016000206000878152602001908152602001600020600301540301816136a757fe5b63ffffffff8e1660009081526005602052604090206003015491900491506002028111156136f75763ffffffff8c1660009081526005602052604090206003810154600202600490910155613713565b63ffffffff8c1660009081526005602052604090206004018190555b5033600090815260066020908152604080832085845282528083206003015463ffffffff8f1684526005909252909120600201555b999a6000199990990199989650505050505050565b600c602052600090815260409020546001600160401b031681565b600054610100900463ffffffff1681565b6000805460ff166137cb5760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b506001600160a01b03919091166000908152600b6020908152604080832093835292905220546001600160401b031690565b600a602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015460ff96871697959694959394929391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b6000805460ff16156138c0576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b604051806101400160405280600115158152602001620a84946001600160401b0316815260200160006001600160401b03168152602001600161ffff168152602001600461ffff16815260200160006001600160401b03168152602001620a84946001600160401b031681526020014281526020016103848152602001601e815250600560008063ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e0820151816002015561010082015181600301556101208201518160040155905050604051806101400160405280600115158152602001621fd4de6001600160401b0316815260200160006001600160401b03168152602001600161ffff168152602001600c61ffff16815260200160006001600160401b03168152602001621fd4de6001600160401b0316815260200142815260200160968152602001601e81525060056000600163ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e0820151816002015561010082015181600301556101208201518160040155905050604051806101400160405280600115158152602001623980b46001600160401b0316815260200160006001600160401b03168152602001600261ffff168152602001602861ffff16815260200160006001600160401b03168152602001623980b46001600160401b0316815260200142815260200160788152602001601e81525060056000600263ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160020155610100820151816003015561012082015181600401559050506040518061014001604052806001151581526020016303bf79006001600160401b0316815260200160006001600160401b03168152602001601e61ffff168152602001600161ffff16815260200160006001600160401b031681526020016303bf79006001600160401b0316815260200142815260200160788152602001601e81525060056000600363ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e082015181600201556101008201518160030155610120820151816004015590505060405180610140016040528060011515815260200162f6ba806001600160401b0316815260200160006001600160401b03168152602001601a61ffff168152602001600161ffff16815260200160006001600160401b0316815260200162f6ba806001600160401b0316815260200142815260200160788152602001601e81525060056000600463ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160020155610100820151816003015561012082015181600401559050506005600060016101000a81548163ffffffff021916908363ffffffff160217905550601e6002819055506201518060038190555062093a80600460006101000a8154816001600160401b0302191690836001600160401b031602179055504260018190555060016000806101000a81548160ff0219169083151502179055506001905090565b6001548156fe626c6f636b2e74696d657374616d70203c2070726f706f7365644e6f6e5061796d656e7450726f6f66735b6c6f636174696f6e486173685d5b6c65646765725d2e7065726d697474656452657665616c54696d65626c6f636b2e74696d657374616d70203c2070726f706f73656444617461417661696c6162696c69747950726f6f66735b6d73672e73656e6465725d5b6c6f636174696f6e486173685d2e7065726d697474656452657665616c54696d656e6f7420656e6f7567682074696d6520656c61707365642073696e6365207072696f722066696e616c697479626c6f636b2e74696d657374616d70203c2070726f706f7365645061796d656e7450726f6f66735b6c6f636174696f6e486173685d2e7065726d697474656452657665616c54696d6566696e616c697365645061796d656e74735b6c6f636174696f6e486173685d2e696e646578203e3d206c65646765726d73672e73656e6465722069732063757272656e746c792062616e6e656420666f722073656e64696e6720616e20756e616363657074656420636861696e546970486173685d63f7a167c8b58acdc7fe63a4a0972032b67a76b50a2d5fd8d64061f44952316c6564676572203e3d20636861696e735b636861696e49645d2e66696e616c697365644c6564676572496e646578636861696e735b636861696e49645d2e66696e616c697365644c6564676572496e646578203d3d203070726576696f75732064617461417661696c6162696c697479506572696f64206e6f74207965742066696e616c69736564636861696e735b636861696e49645d2e6e756d436f6e6669726d6174696f6e73203e2030737461746520636f6e6e6563746f72206973206e6f7420696e697469616c697365642c2072756e20696e697469616c697365436861696e732829626c6f636b2e74696d657374616d70203c3d20696e697469616c69736554696d65626c6f636b2e74696d657374616d70203c3d20636861696e735b636861696e49645d2e66696e616c6973656454696d657374616d7066696e616c697365644c6564676572496e646578202d2067656e657369734c6564676572203c3d206c6564676572486973746f727953697a65636861696e496420646f6573206e6f742065786973740000000000000000000064617461417661696c6162696c697479506572696f6448617368203d3d20307830a26469706673582212209aec6c293dc2b1ff65eed9d71736d7da7ca3d806bfbd209f092ee91d3612309464736f6c63430007060033",
1000
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c80637ec93e9f116100de578063c5d64cd111610097578063dccb2d3211610071578063dccb2d32146107f2578063ee2d87371461081e578063ef4c169e1461083b578063f9c490ee1461084357610173565b8063c5d64cd11461073e578063d3b92926146107b4578063d3fb3e9f146107d157610173565b80637ec93e9f146105a85780637f582432146105d45780638abd90ae1461069c5780638b203dd4146106a45780639c531f8c1461072e578063adc890321461073657610173565b806347453f371161013057806347453f37146104355780634bdc9c8f1461045257806355d14c15146104d857806371e8d61a14610504578063741d3cb41461057457806379fd4e1a1461057c57610173565b806307003bb41461017857806322ce7387146101945780632a2434a2146101cc5780632bec6f8714610247578063388492dd1461028f5780633f57987d14610403575b600080fd5b61018061084b565b604080519115158252519081900360200190f35b6101ba600480360360208110156101aa57600080fd5b50356001600160a01b0316610854565b60408051918252519081900360200190f35b6101ef600480360360208110156101e257600080fd5b503563ffffffff16610866565b60405180876001600160401b03168152602001866001600160401b031681526020018561ffff168152602001846001600160401b03168152602001838152602001828152602001965050505050505060405180910390f35b6102736004803603604081101561025d57600080fd5b506001600160a01b038135169060200135610a98565b604080516001600160401b039092168252519081900360200190f35b610357600480360360808110156102a557600080fd5b63ffffffff823516916020810135916001600160401b0360408301351691908101906080810160608201356401000000008111156102e257600080fd5b8201836020820111156102f457600080fd5b8035906020019184600183028401116401000000008311171561031657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610abe945050505050565b604051808663ffffffff168152602001856001600160401b03168152602001846001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b6101806004803603604081101561041957600080fd5b50803563ffffffff1690602001356001600160401b03166114cb565b6102736004803603602081101561044b57600080fd5b50356115c7565b61046f6004803603602081101561046857600080fd5b5035611625565b604080519a15158b5260208b0199909952898901979097526060890195909552608088019390935260a08701919091526001600160401b0390811660c08701521660e085015215156101008401526001600160a01b031661012083015251908190036101400190f35b61046f600480360360408110156104ee57600080fd5b50803590602001356001600160401b031661169a565b610548600480360360a081101561051a57600080fd5b5063ffffffff813516906020810135906040810135906001600160401b036060820135169060800135611718565b604080516001600160401b03948516815292909316602083015215158183015290519081900360600190f35b6101ba61194b565b61046f6004803603604081101561059257600080fd5b50803590602001356001600160401b0316611951565b61046f600480360360408110156105be57600080fd5b506001600160a01b0381351690602001356119cf565b610357600480360360808110156105ea57600080fd5b63ffffffff823516916020810135916001600160401b03604083013516919081019060808101606082013564010000000081111561062757600080fd5b82018360208201111561063957600080fd5b8035906020019184600183028401116401000000008311171561065b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a4c945050505050565b6101ba612460565b6106c7600480360360208110156106ba57600080fd5b503563ffffffff16612466565b604080519a15158b526001600160401b03998a1660208c01529789168a89015261ffff96871660608b015294909516608089015291861660a088015290941660c086015260e085019390935261010084015261012083019190915251908190036101400190f35b6102736124d6565b6101ba6124e5565b61077c6004803603608081101561075457600080fd5b5063ffffffff813516906001600160401b036020820135169060408101359060600135612588565b6040805163ffffffff90951685526001600160401b03909316602085015261ffff909116838301526060830152519081900360800190f35b610273600480360360208110156107ca57600080fd5b503561375d565b6107d9613778565b6040805163ffffffff9092168252519081900360200190f35b6102736004803603604081101561080857600080fd5b506001600160a01b038135169060200135613789565b61046f6004803603602081101561083457600080fd5b50356137fd565b610180613870565b6101ba614280565b60005460ff1681565b600d6020526000908152604090205481565b600080548190819081908190819060ff166108b25760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8716600090815260056020526040902054879060ff1661090c576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b600560008963ffffffff1663ffffffff168152602001908152602001600020600201549250600560008963ffffffff1663ffffffff168152602001908152602001600020600401549150600088600560008b63ffffffff1663ffffffff16815260200190815260200160002060000160159054906101000a90046001600160401b0316604051602001808363ffffffff1660e01b8152600401826001600160401b031660c01b81526008019250505060405160208183030381529060405280519060200120905060066000336001600160a01b03166001600160a01b03168152602001908152602001600020600082815260200190815260200160002060000160009054906101000a900460ff1615610a435733600090815260066020908152604080832084845290915281206004015490945092505b505063ffffffff969096166000908152600560205260409020805460019091015461010082046001600160401b0390811699600160a81b8404821699600160881b90940461ffff169850911695509193509150565b600b6020908152600092835260408084209091529082529020546001600160401b031681565b6000805481908190819060609060ff16610b095760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8916600090815260056020526040902054899060ff16610b63576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b88610baa576040805162461bcd60e51b815260206004820152601260248201527107061796d656e7448617368203d3d203078360741b604482015290519081900360640190fd5b63ffffffff8a166000908152600560205260409020600101546001600160401b0316610c075760405162461bcd60e51b81526004018080602001828103825260298152602001806144706029913960400191505060405180910390fd5b41331480610c18575041600160981b145b610c69576040805162461bcd60e51b815260206004820152601c60248201527f696e76616c696420626c6f636b2e636f696e626173652076616c756500000000604482015290519081900360640190fd5b6040805160e08c901b6001600160e01b03191660208083019190915260248083018d905283518084039091018152604490920183528151918101919091206000818152600a90925291902060060154600160801b900460ff1615610d0d576040805162461bcd60e51b81526020600482015260166024820152753830bcb6b2b73a1030b63932b0b23c90383937bb32b760511b604482015290519081900360640190fd5b63ffffffff8b166000908152600560205260409020600101546001600160401b03908116908a1610610d705760405162461bcd60e51b815260040180806020018281038252602e815260200180614442602e913960400191505060405180910390fd5b63ffffffff8b166000908152600560205260409020546001600160401b036101008204811691600160481b90041615610e515763ffffffff8c16600090815260056020526040902080546001909101546001600160401b03600160481b830481166101009093048116918116919091031611610e1d5760405162461bcd60e51b815260040180806020018281038252603981526020018061457e6039913960400191505060405180910390fd5b5063ffffffff8b16600090815260056020526040902080546001909101546001600160401b03600160481b90920482169116035b806001600160401b03168a6001600160401b03161015610eb8576040805162461bcd60e51b815260206004820152601a60248201527f6c6564676572203c20696e646578536561726368526567696f6e000000000000604482015290519081900360640190fd5b60008281526008602090815260408083206001600160401b038e16845290915281205460ff16156110415760008381526008602090815260408083206001600160401b038f168452909152902060040154421015610f475760405162461bcd60e51b81526004018080602001828103825260498152602001806143656049913960600191505060405180910390fd5b60008381526008602090815260408083206001600160401b038f1684529091529020600501548c14610fb6576040805162461bcd60e51b81526020600482015260136024820152720d2dcecc2d8d2c840e0c2f2dacadce890c2e6d606b1b604482015290519081900360640190fd5b426003546008600086815260200190815260200160002060008e6001600160401b03166001600160401b0316815260200190815260200160002060030154011161103c576040805162461bcd60e51b815260206004820152601260248201527172657665616c20697320746f6f206c61746560701b604482015290519081900360640190fd5b61107d565b413314801590611054575041600160981b145b1561107d575063ffffffff8c166000908152600560205260409020600101546001600160401b03165b4133148015611090575041600160981b14155b156114ba5760008381526008602090815260408083206001600160401b038f16845290915290205460ff16611269576040518061014001604052806001151581526020016000801b81526020016000801b8152602001428152602001600254420181526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600015158152602001336001600160a01b03168152506008600085815260200190815260200160002060008d6001600160401b03166001600160401b0316815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506114ba565b6040518061014001604052806001151581526020016000801b81526020016000801b8152602001600081526020014281526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600115158152602001336001600160a01b0316815250600a600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050507ff794f5b9b6791b3ab0eb97342cf2efbb7e710a478d4512a2505ea60c93fd85d38d8c8c8f33604051808663ffffffff168152602001856001600160401b0316815260200180602001848152602001836001600160a01b03168152602001828103825285818151815260200191508051906020019080838360005b8381101561147b578181015183820152602001611463565b50505050905090810190601f1680156114a85780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a15b9b9c999b9a99975050505050505050565b6000805460ff1661150d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8316600090815260056020526040902054839060ff16611567576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b50506040805160e09390931b6001600160e01b03191660208085019190915260c09290921b6001600160c01b03191660248401528051808403600c018152602c909301815282519282019290922060009081526007909152205460ff1690565b6000805460ff166116095760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b506000908152600c60205260409020546001600160401b031690565b60076020819052600091825260409091208054600182015460028301546003840154600485015460058601546006870154969097015460ff95861697949693959294919391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b60086020908152600092835260408084209091529082529020805460018201546002830154600384015460048501546005860154600687015460079097015460ff96871697959694959394929391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b600080548190819060ff1661175e5760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8816600090815260056020526040902054889060ff166117b8576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b604080516001600160401b0388166020808301919091528251808303820181528284018452805190820120606083018c9052608083018b905260a083015260c08083018990528351808403909101815260e08084018552815191830191909120908d901b6001600160e01b0319166101008401526101048084018290528451808503909101815261012490930184528251928201929092206000818152600a9092529290205490919060ff166118ae576040805162461bcd60e51b81526020600482015260166024820152751c185e5b595b9d08191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b6000818152600a60205260409020600501548214611909576040805162461bcd60e51b81526020600482015260136024820152720d2dcecc2d8d2c840e0c2f2dacadce890c2e6d606b1b604482015290519081900360640190fd5b6000908152600a60205260409020600601546001600160401b038082169c600160401b83049091169b50600160801b90910460ff169950975050505050505050565b60025481565b60096020908152600092835260408084209091529082529020805460018201546002830154600384015460048501546005860154600687015460079097015460ff96871697959694959394929391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b600660208181526000938452604080852090915291835291208054600182015460028301546003840154600485015460058601549686015460079096015460ff95861697949693959294919391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b6000805481908190819060609060ff16611a975760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8916600090815260056020526040902054899060ff16611af1576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b88611b38576040805162461bcd60e51b815260206004820152601260248201527107061796d656e7448617368203d3d203078360741b604482015290519081900360640190fd5b63ffffffff8a166000908152600560205260409020600101546001600160401b0316611b955760405162461bcd60e51b81526004018080602001828103825260298152602001806144706029913960400191505060405180910390fd5b41331480611ba6575041600160981b145b611bf7576040805162461bcd60e51b815260206004820152601c60248201527f696e76616c696420626c6f636b2e636f696e626173652076616c756500000000604482015290519081900360640190fd5b6040805160e08c901b6001600160e01b03191660208083019190915260248083018d905283518084039091018152604490920183528151918101919091206000818152600a90925291902060060154600160801b900460ff1615611c98576040805162461bcd60e51b81526020600482015260136024820152723a3c24b21030b63932b0b23c90383937bb32b760691b604482015290519081900360640190fd5b6000818152600a60205260409020600601546001600160401b03808b16911610611cf35760405162461bcd60e51b815260040180806020018281038252602f8152602001806143ae602f913960400191505060405180910390fd5b63ffffffff8b166000908152600560205260409020600101546001600160401b03908116908a1610611d565760405162461bcd60e51b815260040180806020018281038252602e815260200180614442602e913960400191505060405180910390fd5b63ffffffff8b166000908152600560205260409020546001600160401b036101008204811691600160481b90041615611e375763ffffffff8c16600090815260056020526040902080546001909101546001600160401b03600160481b830481166101009093048116918116919091031611611e035760405162461bcd60e51b815260040180806020018281038252603981526020018061457e6039913960400191505060405180910390fd5b5063ffffffff8b16600090815260056020526040902080546001909101546001600160401b03600160481b90920482169116035b806001600160401b03168a6001600160401b03161015611e9e576040805162461bcd60e51b815260206004820152601a60248201527f6c6564676572203c20696e646578536561726368526567696f6e000000000000604482015290519081900360640190fd5b60008281526009602090815260408083206001600160401b038e16845290915281205460ff16156120275760008381526009602090815260408083206001600160401b038f168452909152902060040154421015611f2d5760405162461bcd60e51b81526004018080602001828103825260548152602001806142876054913960600191505060405180910390fd5b60008381526009602090815260408083206001600160401b038f1684529091529020600501548c14611f9c576040805162461bcd60e51b81526020600482015260136024820152720d2dcecc2d8d2c840e0c2f2dacadce890c2e6d606b1b604482015290519081900360640190fd5b426003546009600086815260200190815260200160002060008e6001600160401b03166001600160401b03168152602001908152602001600020600301540111612022576040805162461bcd60e51b815260206004820152601260248201527172657665616c20697320746f6f206c61746560701b604482015290519081900360640190fd5b612063565b41331480159061203a575041600160981b145b15612063575063ffffffff8c166000908152600560205260409020600101546001600160401b03165b4133148015612076575041600160981b14155b156114ba5760008381526009602090815260408083206001600160401b038f16845290915290205460ff1661224f576040518061014001604052806001151581526020016000801b81526020016000801b8152602001428152602001600254420181526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600015158152602001336001600160a01b03168152506009600085815260200190815260200160002060008d6001600160401b03166001600160401b0316815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506114ba565b6040518061014001604052806001151581526020016000801b81526020016000801b8152602001600081526020014281526020018d81526020018c6001600160401b03168152602001836001600160401b03168152602001600015158152602001336001600160a01b0316815250600a600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050507ff794f5b9b6791b3ab0eb97342cf2efbb7e710a478d4512a2505ea60c93fd85d38d8c8c8f33604051808663ffffffff168152602001856001600160401b0316815260200180602001848152602001836001600160a01b03168152602001828103825285818151815260200191508051906020019080838360008381101561147b578181015183820152602001611463565b60035481565b6005602052600090815260409020805460018201546002830154600384015460049094015460ff8416946001600160401b036101008604811695600160481b810482169561ffff600160881b8304811696600160981b840490911695600160a81b9093048416949190931692918a565b6004546001600160401b031681565b6000805460ff166125275760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b60015442116125675760405162461bcd60e51b81526004018080602001828103825260218152602001806145286021913960400191505060405180910390fd5b6004546001546001600160401b039091169042038161258257fe5b04905090565b6000805481908190819060ff166125d05760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b63ffffffff8816600090815260056020526040902054889060ff1661262a576040805162461bcd60e51b815260206004820152601660248201526000805160206145b7833981519152604482015290519081900360640190fd5b336000908152600d602052604090205442116126775760405162461bcd60e51b81526004018080602001828103825260458152602001806143dd6045913960600191505060405180910390fd5b866126b35760405162461bcd60e51b81526004018080602001828103825260218152602001806145d76021913960400191505060405180910390fd5b856126fb576040805162461bcd60e51b81526020600482015260136024820152720636861696e54697048617368203d3d2030783606c1b604482015290519081900360640190fd5b63ffffffff8916600090815260056020526040902054600160981b900461ffff166127575760405162461bcd60e51b81526004018080602001828103825260248152602001806144ca6024913960400191505060405180910390fd5b41331480612768575041600160981b145b6127b9576040805162461bcd60e51b815260206004820152601c60248201527f696e76616c696420626c6f636b2e636f696e626173652076616c756500000000604482015290519081900360640190fd5b63ffffffff891660009081526005602052604090208054600190910154600160881b90910461ffff166001600160401b0391821601811690891614612836576040805162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b2103632b233b2b960911b604482015290519081900360640190fd5b63ffffffff8916600090815260056020526040902060020154421161288c5760405162461bcd60e51b81526004018080602001828103825260358152602001806145496035913960400191505060405180910390fd5b63ffffffff89166000908152600560205260409020600381015460049091015460020210156129215763ffffffff89166000908152600560205260409020600481015460029182015491024291909103600302101561291c5760405162461bcd60e51b815260040180806020018281038252602c815260200180614339602c913960400191505060405180910390fd5b612983565b63ffffffff8916600090815260056020526040902060048101546002909101544203600f0110156129835760405162461bcd60e51b815260040180806020018281038252602c815260200180614339602c913960400191505060405180910390fd5b63ffffffff8916600090815260056020908152604080832054815160e08e901b6001600160e01b03191681850152600160a81b90910460c01b6001600160c01b03191660248201528151808203600c018152602c9091018252805190830120808452600790925290912060060154600160801b900460ff1615612a4d576040805162461bcd60e51b815260206004820152601e60248201527f6c6f636174696f6e4861736820616c72656164792066696e616c697365640000604482015290519081900360640190fd5b63ffffffff8a16600090815260056020526040902054600160a81b90046001600160401b031615612b595760008a6001600560008e63ffffffff1663ffffffff16815260200190815260200160002060000160159054906101000a90046001600160401b031603604051602001808363ffffffff1660e01b8152600401826001600160401b031660c01b8152600801925050506040516020818303038152906040528051906020012090506007600082815260200190815260200160002060060160109054906101000a900460ff16612b575760405162461bcd60e51b81526004018080602001828103825260318152602001806144996031913960400191505060405180910390fd5b505b33600090815260066020908152604080832084845290915281205460ff1615612ce157336000908152600660209081526040808320858452909152902060040154421015612bd85760405162461bcd60e51b815260040180806020018281038252605e8152602001806142db605e913960600191505060405180910390fd5b6040805133606081901b60208084019190915260348084018d90528451808503909101815260549093018452825192810192909220600091825260068352838220868352909252919091206002015414612c70576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840c6d0c2d2dca8d2e090c2e6d60631b604482015290519081900360640190fd5b6003805433600090815260066020908152604080832087845290915290209091015442910111612cdc576040805162461bcd60e51b815260206004820152601260248201527172657665616c20697320746f6f206c61746560701b604482015290519081900360640190fd5b612d1c565b413314801590612cf4575041600160981b145b15612d1c575063ffffffff8a16600090815260056020526040902054600160981b900461ffff165b4133148015612d2f575041600160981b14155b156137485733600090815260066020908152604080832085845290915290205460ff16612f8b5763ffffffff8b1660009081526005602052604090206004015460028054910490811015612d8257506002545b6040518061014001604052806001151581526020018b81526020018a815260200142815260200182420181526020016000801b81526020018c6001600160401b0316815260200160006001600160401b0316815260200160001515815260200160006001600160a01b031681525060066000336001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506000805160206144228339815191528c8c600033604051808563ffffffff168152602001846001600160401b03168152602001836003811115612f6357fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a150613748565b63ffffffff8b16600090815260056020526040902054600160981b810461ffff16600160a81b9091046001600160401b0316111561335c5760008b600560008e63ffffffff1663ffffffff16815260200190815260200160002060000160139054906101000a900461ffff1661ffff16600560008f63ffffffff1663ffffffff16815260200190815260200160002060000160159054906101000a90046001600160401b031603604051602001808363ffffffff1660e01b8152600401826001600160401b031660c01b815260080192505050604051602081830303815290604052805190602001209050896007600083815260200190815260200160002060050154141561321e57600061309e6124e5565b90506001600b60006007600086815260200190815260200160002060070160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008282829054906101000a90046001600160401b03160192506101000a8154816001600160401b0302191690836001600160401b031602179055506001600c600083815260200190815260200160002060008282829054906101000a90046001600160401b03160192506101000a8154816001600160401b0302191690836001600160401b031602179055506000805160206144228339815191528d8d60026007600087815260200190815260200160002060070160009054906101000a90046001600160a01b0316604051808563ffffffff168152602001846001600160401b031681526020018360038111156131f657fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a150613356565b600560008d63ffffffff1663ffffffff16815260200190815260200160002060030154600560008e63ffffffff1663ffffffff16815260200190815260200160002060000160139054906101000a900461ffff1661ffff16024201600d60006007600085815260200190815260200160002060070160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020819055506000805160206144228339815191528c8c60036007600086815260200190815260200160002060070160009054906101000a90046001600160a01b0316604051808563ffffffff168152602001846001600160401b0316815260200183600381111561333357fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a15b506133be565b6000805160206144228339815191528b8b600133604051808563ffffffff168152602001846001600160401b0316815260200183600381111561339b57fe5b8152602001826001600160a01b0316815260200194505050505060405180910390a15b6040518061014001604052806001151581526020018a81526020016000801b815260200160066000336001600160a01b03166001600160a01b0316815260200190815260200160002060008581526020019081526020016000206003015481526020014281526020018981526020018b6001600160401b0316815260200160006001600160401b03168152602001600115158152602001336001600160a01b03168152506007600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160060160086101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160060160106101000a81548160ff0219169083151502179055506101208201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506001600560008d63ffffffff1663ffffffff16815260200190815260200160002060000160158282829054906101000a90046001600160401b03160192506101000a8154816001600160401b0302191690836001600160401b0316021790555089600560008d63ffffffff1663ffffffff16815260200190815260200160002060010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060006002600560008e63ffffffff1663ffffffff16815260200190815260200160002060040154600560008f63ffffffff1663ffffffff1681526020019081526020016000206002015460066000336001600160a01b03166001600160a01b031681526020019081526020016000206000878152602001908152602001600020600301540301816136a757fe5b63ffffffff8e1660009081526005602052604090206003015491900491506002028111156136f75763ffffffff8c1660009081526005602052604090206003810154600202600490910155613713565b63ffffffff8c1660009081526005602052604090206004018190555b5033600090815260066020908152604080832085845282528083206003015463ffffffff8f1684526005909252909120600201555b999a6000199990990199989650505050505050565b600c602052600090815260409020546001600160401b031681565b600054610100900463ffffffff1681565b6000805460ff166137cb5760405162461bcd60e51b815260040180806020018281038252603a8152602001806144ee603a913960400191505060405180910390fd5b506001600160a01b03919091166000908152600b6020908152604080832093835292905220546001600160401b031690565b600a602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015460ff96871697959694959394929391926001600160401b0380841693600160401b810490911692600160801b909104909116906001600160a01b03168a565b6000805460ff16156138c0576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b604051806101400160405280600115158152602001620a84946001600160401b0316815260200160006001600160401b03168152602001600161ffff168152602001600461ffff16815260200160006001600160401b03168152602001620a84946001600160401b031681526020014281526020016103848152602001601e815250600560008063ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e0820151816002015561010082015181600301556101208201518160040155905050604051806101400160405280600115158152602001621fd4de6001600160401b0316815260200160006001600160401b03168152602001600161ffff168152602001600c61ffff16815260200160006001600160401b03168152602001621fd4de6001600160401b0316815260200142815260200160968152602001601e81525060056000600163ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e0820151816002015561010082015181600301556101208201518160040155905050604051806101400160405280600115158152602001623980b46001600160401b0316815260200160006001600160401b03168152602001600261ffff168152602001602861ffff16815260200160006001600160401b03168152602001623980b46001600160401b0316815260200142815260200160788152602001601e81525060056000600263ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160020155610100820151816003015561012082015181600401559050506040518061014001604052806001151581526020016303bf79006001600160401b0316815260200160006001600160401b03168152602001601e61ffff168152602001600161ffff16815260200160006001600160401b031681526020016303bf79006001600160401b0316815260200142815260200160788152602001601e81525060056000600363ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e082015181600201556101008201518160030155610120820151816004015590505060405180610140016040528060011515815260200162f6ba806001600160401b0316815260200160006001600160401b03168152602001601a61ffff168152602001600161ffff16815260200160006001600160401b0316815260200162f6ba806001600160401b0316815260200142815260200160788152602001601e81525060056000600463ffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a81548161ffff021916908361ffff16021790555060808201518160000160136101000a81548161ffff021916908361ffff16021790555060a08201518160000160156101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160020155610100820151816003015561012082015181600401559050506005600060016101000a81548163ffffffff021916908363ffffffff160217905550601e6002819055506201518060038190555062093a80600460006101000a8154816001600160401b0302191690836001600160401b031602179055504260018190555060016000806101000a81548160ff0219169083151502179055506001905090565b6001548156fe626c6f636b2e74696d657374616d70203c2070726f706f7365644e6f6e5061796d656e7450726f6f66735b6c6f636174696f6e486173685d5b6c65646765725d2e7065726d697474656452657665616c54696d65626c6f636b2e74696d657374616d70203c2070726f706f73656444617461417661696c6162696c69747950726f6f66735b6d73672e73656e6465725d5b6c6f636174696f6e486173685d2e7065726d697474656452657665616c54696d656e6f7420656e6f7567682074696d6520656c61707365642073696e6365207072696f722066696e616c697479626c6f636b2e74696d657374616d70203c2070726f706f7365645061796d656e7450726f6f66735b6c6f636174696f6e486173685d2e7065726d697474656452657665616c54696d6566696e616c697365645061796d656e74735b6c6f636174696f6e486173685d2e696e646578203e3d206c65646765726d73672e73656e6465722069732063757272656e746c792062616e6e656420666f722073656e64696e6720616e20756e616363657074656420636861696e546970486173685d63f7a167c8b58acdc7fe63a4a0972032b67a76b50a2d5fd8d64061f44952316c6564676572203e3d20636861696e735b636861696e49645d2e66696e616c697365644c6564676572496e646578636861696e735b636861696e49645d2e66696e616c697365644c6564676572496e646578203d3d203070726576696f75732064617461417661696c6162696c697479506572696f64206e6f74207965742066696e616c69736564636861696e735b636861696e49645d2e6e756d436f6e6669726d6174696f6e73203e2030737461746520636f6e6e6563746f72206973206e6f7420696e697469616c697365642c2072756e20696e697469616c697365436861696e732829626c6f636b2e74696d657374616d70203c3d20696e697469616c69736554696d65626c6f636b2e74696d657374616d70203c3d20636861696e735b636861696e49645d2e66696e616c6973656454696d657374616d7066696e616c697365644c6564676572496e646578202d2067656e657369734c6564676572203c3d206c6564676572486973746f727953697a65636861696e496420646f6573206e6f742065786973740000000000000000000064617461417661696c6162696c697479506572696f6448617368203d3d20307830a26469706673582212209aec6c293dc2b1ff65eed9d71736d7da7ca3d806bfbd209f092ee91d3612309464736f6c63430007060033",
320
+ "bytecode": "0x608060405234801561001057600080fd5b50610894806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063c2f56d4c11610097578063ec7424a011610066578063ec7424a014610284578063f417c9d81461028c578063f5f59a4a14610294578063f64b6fda1461029c57610100565b8063c2f56d4c146101f0578063cfd1fdad14610216578063dd86215714610259578063eaebf6d31461026157610100565b80635f8c940d116100d35780635f8c940d1461018157806371c5ecb11461018957806371e24574146101a65780637ff6faa6146101cc57610100565b8063273c463b1461010557806329be4db21461012d5780633c70b3571461015c5780634b8a125f14610179575b600080fd5b61012b6004803603602081101561011b57600080fd5b50356001600160a01b031661030c565b005b61014a6004803603602081101561014357600080fd5b503561033b565b60408051918252519081900360200190f35b61014a6004803603602081101561017257600080fd5b503561049a565b61014a61059c565b61014a6105a4565b61014a6004803603602081101561019f57600080fd5b50356105a9565b61014a600480360360208110156101bc57600080fd5b50356001600160a01b03166105c1565b6101d46105d6565b604080516001600160a01b039092168252519081900360200190f35b6101d46004803603602081101561020657600080fd5b50356001600160a01b03166105dd565b6102456004803603608081101561022c57600080fd5b50803590602081013590604081013590606001356105f8565b604080519115158252519081900360200190f35b61014a6106d4565b61012b6004803603604081101561027757600080fd5b508035906020013561072c565b61014a6107d0565b61014a6107d6565b61014a6107dc565b61012b600480360360208110156102b257600080fd5b8101906020810181356401000000008111156102cd57600080fd5b8201836020820111156102df57600080fd5b8035906020019184600183028401116401000000008311171561030157600080fd5b5090925090506107e1565b33600090815260106020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601060205260408120546001600160a01b03168061035c5750335b6001831161036957600080fd5b6001600160a01b03811660009081526011602052604090206009015460001984019081111561039757600080fd5b6001600160a01b03821660009081526011602052604081206003600019840106600381106103c157fe5b600390810291909101546001600160a01b0385166000908152601160205260409020909250908306600381106103f357fe5b60030201600101549350600060116000856001600160a01b03166001600160a01b031681526020019081526020016000206000016003848161043157fe5b066003811061043c57fe5b6003020160020154905084818560405160200180848152602001838152602001826001600160a01b03168152602001935050505060405160208183030381529060405280519060200120821461049157600080fd5b50505050919050565b6000600360125410156104e7576040805162461bcd60e51b815260206004820152601060248201526f746f74616c42756666657273203c203360801b604482015290519081900360640190fd5b600360125403821115610531576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd08199a5b985b1a5e9959609a1b604482015290519081900360640190fd5b611a408210806105475750601254611a42190182115b610582576040805162461bcd60e51b8152602060048201526007602482015266195e1c1a5c995960ca1b604482015290519081900360640190fd5b6013611a408306611a40811061059457fe5b015492915050565b636184740081565b600381565b601381611a4081106105ba57600080fd5b0154905081565b60116020526000908152604090206009015481565b620dead181565b6010602052600090815260409020546001600160a01b031681565b6000605a63618473ff19420104851461064d576040805162461bcd60e51b81526020600482015260126024820152713bb937b73390313ab33332b9273ab6b132b960711b604482015290519081900360640190fd5b336000818152601160208181526040808420600981018b905581516060810183528a81528084018a9052918201889052949093525290600387066003811061069157fe5b600302016000820151816000015560208201518160010155604082015181600201559050506012548511156106c8575060016106cc565b5060005b949350505050565b600060036012541015610721576040805162461bcd60e51b815260206004820152601060248201526f746f74616c42756666657273203c203360801b604482015290519081900360640190fd5b506012546002190190565b6003821161073957600080fd5b605a63618473ff19420104821461074f57600080fd5b601254821161075d57600080fd5b334114801561076e575041620dead1145b156107cc576012829055806013611a40600219850106611a40811061078f57fe5b01556040805182815290516002198401917f8ffd19aa79a62d0764e560d21b1245698310783be781d7d80b38233d4d7d288c919081900360200190a25b5050565b60125481565b611a4081565b605a81565b7f7cbc6812801238dea8eb58356bb62b95dbce8dc28498aa30e7d2c6873ed36cc73342848460405180856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a1505056fea26469706673582212201835668a4aedf7b8dd6cb953219e7b126f41acff165aaa41023acd8f3dd8edf064736f6c63430007060033",
321
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063c2f56d4c11610097578063ec7424a011610066578063ec7424a014610284578063f417c9d81461028c578063f5f59a4a14610294578063f64b6fda1461029c57610100565b8063c2f56d4c146101f0578063cfd1fdad14610216578063dd86215714610259578063eaebf6d31461026157610100565b80635f8c940d116100d35780635f8c940d1461018157806371c5ecb11461018957806371e24574146101a65780637ff6faa6146101cc57610100565b8063273c463b1461010557806329be4db21461012d5780633c70b3571461015c5780634b8a125f14610179575b600080fd5b61012b6004803603602081101561011b57600080fd5b50356001600160a01b031661030c565b005b61014a6004803603602081101561014357600080fd5b503561033b565b60408051918252519081900360200190f35b61014a6004803603602081101561017257600080fd5b503561049a565b61014a61059c565b61014a6105a4565b61014a6004803603602081101561019f57600080fd5b50356105a9565b61014a600480360360208110156101bc57600080fd5b50356001600160a01b03166105c1565b6101d46105d6565b604080516001600160a01b039092168252519081900360200190f35b6101d46004803603602081101561020657600080fd5b50356001600160a01b03166105dd565b6102456004803603608081101561022c57600080fd5b50803590602081013590604081013590606001356105f8565b604080519115158252519081900360200190f35b61014a6106d4565b61012b6004803603604081101561027757600080fd5b508035906020013561072c565b61014a6107d0565b61014a6107d6565b61014a6107dc565b61012b600480360360208110156102b257600080fd5b8101906020810181356401000000008111156102cd57600080fd5b8201836020820111156102df57600080fd5b8035906020019184600183028401116401000000008311171561030157600080fd5b5090925090506107e1565b33600090815260106020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601060205260408120546001600160a01b03168061035c5750335b6001831161036957600080fd5b6001600160a01b03811660009081526011602052604090206009015460001984019081111561039757600080fd5b6001600160a01b03821660009081526011602052604081206003600019840106600381106103c157fe5b600390810291909101546001600160a01b0385166000908152601160205260409020909250908306600381106103f357fe5b60030201600101549350600060116000856001600160a01b03166001600160a01b031681526020019081526020016000206000016003848161043157fe5b066003811061043c57fe5b6003020160020154905084818560405160200180848152602001838152602001826001600160a01b03168152602001935050505060405160208183030381529060405280519060200120821461049157600080fd5b50505050919050565b6000600360125410156104e7576040805162461bcd60e51b815260206004820152601060248201526f746f74616c42756666657273203c203360801b604482015290519081900360640190fd5b600360125403821115610531576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd08199a5b985b1a5e9959609a1b604482015290519081900360640190fd5b611a408210806105475750601254611a42190182115b610582576040805162461bcd60e51b8152602060048201526007602482015266195e1c1a5c995960ca1b604482015290519081900360640190fd5b6013611a408306611a40811061059457fe5b015492915050565b636184740081565b600381565b601381611a4081106105ba57600080fd5b0154905081565b60116020526000908152604090206009015481565b620dead181565b6010602052600090815260409020546001600160a01b031681565b6000605a63618473ff19420104851461064d576040805162461bcd60e51b81526020600482015260126024820152713bb937b73390313ab33332b9273ab6b132b960711b604482015290519081900360640190fd5b336000818152601160208181526040808420600981018b905581516060810183528a81528084018a9052918201889052949093525290600387066003811061069157fe5b600302016000820151816000015560208201518160010155604082015181600201559050506012548511156106c8575060016106cc565b5060005b949350505050565b600060036012541015610721576040805162461bcd60e51b815260206004820152601060248201526f746f74616c42756666657273203c203360801b604482015290519081900360640190fd5b506012546002190190565b6003821161073957600080fd5b605a63618473ff19420104821461074f57600080fd5b601254821161075d57600080fd5b334114801561076e575041620dead1145b156107cc576012829055806013611a40600219850106611a40811061078f57fe5b01556040805182815290516002198401917f8ffd19aa79a62d0764e560d21b1245698310783be781d7d80b38233d4d7d288c919081900360200190a25b5050565b60125481565b611a4081565b605a81565b7f7cbc6812801238dea8eb58356bb62b95dbce8dc28498aa30e7d2c6873ed36cc73342848460405180856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a1505056fea26469706673582212201835668a4aedf7b8dd6cb953219e7b126f41acff165aaa41023acd8f3dd8edf064736f6c63430007060033",
1001
322
  "linkReferences": {},
1002
323
  "deployedLinkReferences": {}
1003
324
  }