@pendle/core-v2 5.1.1 → 5.2.0-beta-1

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 (77) hide show
  1. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +23 -67
  3. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +6 -19
  5. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseUpg.dbg.json +4 -0
  6. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/{SYBaseWithoutPermitUpg.json → SYBaseUpg.json} +1 -1
  7. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  8. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  9. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +4 -0
  10. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.json +122 -0
  11. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +4 -0
  12. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.json +91 -0
  13. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +4 -0
  14. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.json +262 -0
  15. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  16. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +2 -27
  17. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +4 -0
  18. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +274 -0
  19. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleBase.sol/PendleChainlinkOracleBase.dbg.json +4 -0
  20. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleBase.sol/PendleChainlinkOracleBase.json +253 -0
  21. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +4 -0
  22. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +289 -0
  23. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +4 -0
  24. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +305 -0
  25. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +6 -27
  26. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +2 -3
  27. package/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol +1 -1
  28. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +2 -1
  29. package/contracts/interfaces/IPChainlinkOracle.sol +15 -0
  30. package/contracts/interfaces/IPChainlinkOracleFactory.sol +22 -0
  31. package/contracts/interfaces/IPChainlinkOracleWithQuote.sol +8 -0
  32. package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +0 -5
  33. package/contracts/oracles/factory/PendleChainlinkOracle.sol +21 -0
  34. package/contracts/oracles/factory/PendleChainlinkOracleBase.sol +138 -0
  35. package/contracts/oracles/factory/PendleChainlinkOracleFactory.sol +99 -0
  36. package/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol +46 -0
  37. package/package.json +1 -1
  38. package/typechain-types/IPChainlinkOracle.ts +221 -0
  39. package/typechain-types/IPChainlinkOracleFactory.ts +123 -0
  40. package/typechain-types/IPChainlinkOracleWithQuote.ts +404 -0
  41. package/typechain-types/PendleChainlinkOracle.ts +299 -0
  42. package/typechain-types/PendleChainlinkOracleBase.ts +299 -0
  43. package/typechain-types/PendleChainlinkOracleFactory.ts +389 -0
  44. package/typechain-types/PendleChainlinkOracleWithQuote.ts +335 -0
  45. package/typechain-types/PendleVotingControllerUpg.ts +43 -135
  46. package/typechain-types/VotingControllerStorageUpg.ts +15 -34
  47. package/typechain-types/factories/IPChainlinkOracleFactory__factory.ts +110 -0
  48. package/typechain-types/factories/IPChainlinkOracleWithQuote__factory.ts +281 -0
  49. package/typechain-types/factories/IPChainlinkOracle__factory.ts +137 -0
  50. package/typechain-types/factories/PendleChainlinkOracleBase__factory.ts +272 -0
  51. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +351 -0
  52. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +389 -0
  53. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +354 -0
  54. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  55. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +22 -66
  56. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1 -26
  57. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +6 -19
  58. package/typechain-types/hardhat.d.ts +72 -0
  59. package/typechain-types/index.ts +14 -0
  60. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseWithoutPermitUpg.dbg.json +0 -4
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.dbg.json +0 -4
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.json +0 -1160
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.dbg.json +0 -4
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.json +0 -1049
  65. package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.dbg.json +0 -4
  66. package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.json +0 -116
  67. package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.dbg.json +0 -4
  68. package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.json +0 -39
  69. package/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol +0 -130
  70. package/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol +0 -82
  71. package/contracts/interfaces/AaveV3/IAaveStkGHO.sol +0 -17
  72. package/contracts/interfaces/Angle/IAngleDistributor.sol +0 -12
  73. package/deployments/1-markets/STKGHO-MAINNET-APR2025.json +0 -14
  74. package/deployments/42161-markets/DOLOMITE-USDC-ARBITRUM-JUN2025.json +0 -14
  75. package/deployments/42161-markets/DOLOMITE-WBTC-ARBITRUM-JUN2025.json +0 -14
  76. package/deployments/5000-markets/CMETH-MANTLE-FEB2025.json +0 -14
  77. package/deployments/56-markets/VENUS-BNB-BSC-JUN2025.json +0 -14
@@ -0,0 +1,354 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Signer,
6
+ utils,
7
+ Contract,
8
+ ContractFactory,
9
+ Overrides,
10
+ BigNumberish,
11
+ } from "ethers";
12
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
13
+ import type {
14
+ PendleChainlinkOracle,
15
+ PendleChainlinkOracleInterface,
16
+ } from "../PendleChainlinkOracle";
17
+
18
+ const _abi = [
19
+ {
20
+ inputs: [
21
+ {
22
+ internalType: "address",
23
+ name: "_market",
24
+ type: "address",
25
+ },
26
+ {
27
+ internalType: "uint16",
28
+ name: "_twapDuration",
29
+ type: "uint16",
30
+ },
31
+ {
32
+ internalType: "enum PendleOracleType",
33
+ name: "_baseOracleType",
34
+ type: "uint8",
35
+ },
36
+ ],
37
+ stateMutability: "nonpayable",
38
+ type: "constructor",
39
+ },
40
+ {
41
+ inputs: [],
42
+ name: "InvalidRoundId",
43
+ type: "error",
44
+ },
45
+ {
46
+ inputs: [
47
+ {
48
+ internalType: "int256",
49
+ name: "exchangeRate",
50
+ type: "int256",
51
+ },
52
+ ],
53
+ name: "MarketExchangeRateBelowOne",
54
+ type: "error",
55
+ },
56
+ {
57
+ inputs: [],
58
+ name: "MarketExpired",
59
+ type: "error",
60
+ },
61
+ {
62
+ inputs: [],
63
+ name: "MarketProportionMustNotEqualOne",
64
+ type: "error",
65
+ },
66
+ {
67
+ inputs: [
68
+ {
69
+ internalType: "int256",
70
+ name: "rateScalar",
71
+ type: "int256",
72
+ },
73
+ ],
74
+ name: "MarketRateScalarBelowZero",
75
+ type: "error",
76
+ },
77
+ {
78
+ inputs: [
79
+ {
80
+ internalType: "int256",
81
+ name: "totalPt",
82
+ type: "int256",
83
+ },
84
+ {
85
+ internalType: "int256",
86
+ name: "totalAsset",
87
+ type: "int256",
88
+ },
89
+ ],
90
+ name: "MarketZeroTotalPtOrTotalAsset",
91
+ type: "error",
92
+ },
93
+ {
94
+ inputs: [],
95
+ name: "baseOracleType",
96
+ outputs: [
97
+ {
98
+ internalType: "enum PendleOracleType",
99
+ name: "",
100
+ type: "uint8",
101
+ },
102
+ ],
103
+ stateMutability: "view",
104
+ type: "function",
105
+ },
106
+ {
107
+ inputs: [],
108
+ name: "decimals",
109
+ outputs: [
110
+ {
111
+ internalType: "uint8",
112
+ name: "",
113
+ type: "uint8",
114
+ },
115
+ ],
116
+ stateMutability: "pure",
117
+ type: "function",
118
+ },
119
+ {
120
+ inputs: [],
121
+ name: "description",
122
+ outputs: [
123
+ {
124
+ internalType: "string",
125
+ name: "",
126
+ type: "string",
127
+ },
128
+ ],
129
+ stateMutability: "pure",
130
+ type: "function",
131
+ },
132
+ {
133
+ inputs: [],
134
+ name: "factory",
135
+ outputs: [
136
+ {
137
+ internalType: "address",
138
+ name: "",
139
+ type: "address",
140
+ },
141
+ ],
142
+ stateMutability: "view",
143
+ type: "function",
144
+ },
145
+ {
146
+ inputs: [],
147
+ name: "fromTokenDecimals",
148
+ outputs: [
149
+ {
150
+ internalType: "uint8",
151
+ name: "",
152
+ type: "uint8",
153
+ },
154
+ ],
155
+ stateMutability: "view",
156
+ type: "function",
157
+ },
158
+ {
159
+ inputs: [
160
+ {
161
+ internalType: "uint80",
162
+ name: "roundId",
163
+ type: "uint80",
164
+ },
165
+ ],
166
+ name: "getRoundData",
167
+ outputs: [
168
+ {
169
+ internalType: "uint80",
170
+ name: "",
171
+ type: "uint80",
172
+ },
173
+ {
174
+ internalType: "int256",
175
+ name: "",
176
+ type: "int256",
177
+ },
178
+ {
179
+ internalType: "uint256",
180
+ name: "",
181
+ type: "uint256",
182
+ },
183
+ {
184
+ internalType: "uint256",
185
+ name: "",
186
+ type: "uint256",
187
+ },
188
+ {
189
+ internalType: "uint80",
190
+ name: "",
191
+ type: "uint80",
192
+ },
193
+ ],
194
+ stateMutability: "view",
195
+ type: "function",
196
+ },
197
+ {
198
+ inputs: [],
199
+ name: "latestRoundData",
200
+ outputs: [
201
+ {
202
+ internalType: "uint80",
203
+ name: "roundId",
204
+ type: "uint80",
205
+ },
206
+ {
207
+ internalType: "int256",
208
+ name: "answer",
209
+ type: "int256",
210
+ },
211
+ {
212
+ internalType: "uint256",
213
+ name: "startedAt",
214
+ type: "uint256",
215
+ },
216
+ {
217
+ internalType: "uint256",
218
+ name: "updatedAt",
219
+ type: "uint256",
220
+ },
221
+ {
222
+ internalType: "uint80",
223
+ name: "answeredInRound",
224
+ type: "uint80",
225
+ },
226
+ ],
227
+ stateMutability: "view",
228
+ type: "function",
229
+ },
230
+ {
231
+ inputs: [],
232
+ name: "market",
233
+ outputs: [
234
+ {
235
+ internalType: "address",
236
+ name: "",
237
+ type: "address",
238
+ },
239
+ ],
240
+ stateMutability: "view",
241
+ type: "function",
242
+ },
243
+ {
244
+ inputs: [],
245
+ name: "toTokenDecimals",
246
+ outputs: [
247
+ {
248
+ internalType: "uint8",
249
+ name: "",
250
+ type: "uint8",
251
+ },
252
+ ],
253
+ stateMutability: "view",
254
+ type: "function",
255
+ },
256
+ {
257
+ inputs: [],
258
+ name: "twapDuration",
259
+ outputs: [
260
+ {
261
+ internalType: "uint16",
262
+ name: "",
263
+ type: "uint16",
264
+ },
265
+ ],
266
+ stateMutability: "view",
267
+ type: "function",
268
+ },
269
+ {
270
+ inputs: [],
271
+ name: "version",
272
+ outputs: [
273
+ {
274
+ internalType: "uint256",
275
+ name: "",
276
+ type: "uint256",
277
+ },
278
+ ],
279
+ stateMutability: "pure",
280
+ type: "function",
281
+ },
282
+ ];
283
+
284
+ const _bytecode =
285
+ "0x6101606040523480156200001257600080fd5b5060405162003fbf38038062003fbf833981016040819052620000359162001ac0565b336080526001600160a01b03831660a05261ffff821660c05282828280600581111562000066576200006662001b1d565b6101208160058111156200007e576200007e62001b1d565b9052506200008d8382620000be565b60ff908116610100521660e052620000a462000301565b6001600160401b0316610140525062002033945050505050565b6000806000846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000102573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000128919062001b33565b505090506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000193919062001b8e565b90506000826001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc919062001bac565b9250600591506200020a9050565b8660058111156200021f576200021f62001b1d565b036200023457601294509250620002fa915050565b60048660058111156200024b576200024b62001b1d565b03620002605750601293509150620002fa9050565b600186600581111562000277576200027762001b1d565b1480620002985750600386600581111562000296576200029662001b1d565b145b15620002ac579350839250620002fa915050565b6000866005811115620002c357620002c362001b1d565b1480620002e457506002866005811115620002e257620002e262001b1d565b145b15620002f65793509150620002fa9050565b5050505b9250929050565b620018ab62001a8e60201b17600061012051600581111562000327576200032762001b1d565b036200033d5750620002ce6200046a60201b1790565b600161012051600581111562000357576200035762001b1d565b036200036d57506200031b620004c160201b1790565b600261012051600581111562000387576200038762001b1d565b036200039d57506200035e6200050e60201b1790565b6003610120516005811115620003b757620003b762001b1d565b03620003cd5750620003936200054b60201b1790565b6004610120516005811115620003e757620003e762001b1d565b03620003fd5750620003c26200058060201b1790565b600561012051600581111562000417576200041762001b1d565b036200042d575062000411620005d960201b1790565b60405162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b60448201526064015b60405180910390fd5b60008080620004798562000633565b91509150808210620004a7576200049d8262000496878762000877565b906200095c565b92505050620004bb565b6200049d8162000496878762000877565b50505b92915050565b60008080620004d08562000633565b91509150808210620004e8576200049d858562000877565b8082620004f6878762000877565b62000502919062001c14565b6200049d919062001c44565b600080806200051d8562000633565b915091508082106200053a576200049d8262000496878762000990565b6200049d8162000496878762000990565b600080806200055a8562000633565b9150915080821062000572576200049d858562000990565b8082620004f6878762000990565b60008080620005986001600160a01b03861662000633565b90925090506000620005ac868684620009b9565b9050818310620005cd57620005c281846200095c565b9350505050620004bb565b620005c281836200095c565b60008080620005f16001600160a01b03861662000633565b9092509050600062000605868684620009b9565b90508183106200061a579250620004bb915050565b8162000627848362001c14565b620005c2919062001c44565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000678573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200069e919062001b33565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000708919062001c5b565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200074b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000771919062001c5b565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007d8919062001c75565b801562000851575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000820573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000846919062001c99565b6001600160801b0316145b1562000860578093506200086f565b6200086c858262000b71565b93505b505050915091565b600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008df919062001c5b565b9050428111620008fb57670de0b6b3a7640000915050620004bb565b600062000909858562000b89565b9050600062000919428462001cc4565b90506000620009336200092d848462000cc2565b62000d07565b905062000949670de0b6b3a7640000826200095c565b945050505050620004bb565b5092915050565b60008062000973670de0b6b3a76400008562001c14565b905082818162000987576200098762001c2e565b04949350505050565b60006200099e838362000877565b620009b290670de0b6b3a764000062001cc4565b9392505050565b60405163794052f360e01b81526000600482018190529081906001600160a01b0386169063794052f39060240161012060405180830381865afa15801562000a05573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a2b919062001d4f565b90506000428260a001511162000a675762000a5184836020015162000d1b60201b60201c565b825162000a5f919062001dd6565b905062000b50565b600062000a7683864262000d61565b905060008062000a8889868a62000e6f565b91509150600062000ab762000ab185604001518562000aa8919062001df9565b86519062000ef0565b62000f15565b9050600062000b0662000acb838562001343565b62000adf90670de0b6b3a764000062001dd6565b8851602088015162000af390869062000ef0565b62000aff919062001df9565b9062001343565b905062000b1f8482896000015162000aff919062001dd6565b62000b2b828562001343565b866020015162000b3c919062001df9565b62000b48919062001dd6565b955050505050505b604082015162000b67906200092d90839062001343565b9695505050505050565b600081831162000b825781620009b2565b5090919050565b60408051600280825260608201835260009283929190602083019080368337019050509050828160008151811062000bc55762000bc562001e1c565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd9062000c0b90859060040162001e32565b600060405180830381865afa15801562000c29573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000c53919081019062001e7e565b90508363ffffffff168160008151811062000c725762000c7262001e1c565b60200260200101518260018151811062000c905762000c9062001e1c565b602002602001015162000ca4919062001f48565b62000cb0919062001f6b565b6001600160d81b031695945050505050565b60008062000cd66201518061016d62001c14565b62000ce2848662001c14565b62000cee919062001c44565b905062000cff62000ab1826200136e565b949350505050565b60008082121562000d1757600080fd5b5090565b6000806000831262000d2f57600162000d33565b6000195b905062000d5562000d4f8562000d498662001385565b6200139a565b6200136e565b62000cff908262001f94565b62000d8d6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a0840151821062000db25760405163b2094b5960e01b815260040160405180910390fd5b6000828560a0015162000dc6919062001cc4565b905062000dd48582620013bd565b8252602085015162000de890859062000d1b565b60208301528451158062000dfe57506020820151155b1562000e2e578451602083015160405163b1c4aefb60e01b81526004810192909252602482015260440162000461565b84516101008601516020840151845162000e4c939291908562001424565b604083015260c085015162000e62908262000cc2565b6060830152509392505050565b6000808062000e886001600160a01b0387168562000b89565b90506000428660a0015162000e9e919062001cc4565b905062000eac828262000cc2565b9350600062000ec78761010001518362000cc260201b60201c565b9050600262000ed7868362001dd6565b62000ee3919062001fca565b9350505050935093915050565b60008062000eff838562001f94565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff19821215801562000f3b575068070c1cc73b00c800008213155b62000f7c5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640162000461565b600082121562000fbc5762000f95600083900362000f15565b6ec097ce7bc90715b34b9f10000000008162000fb55762000fb562001c2e565b0592915050565b60006806f05b59d3b2000000831262000ffe57506806f05b59d3b1ffffff1990910190770195e54c5dd42177f53a27172fa9ec63026282700000000062001036565b6803782dace9d900000083126200103257506803782dace9d8ffffff19909101906b1425982cf597cd205cef738062001036565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412620010875768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412620010c4576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412620010ff57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126200113a576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126200117457680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412620011ae5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412620011e8576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412620012225768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000806200135a670de0b6b3a76400008562001f94565b905082818162000f0c5762000f0c62001c2e565b60006001600160ff1b0382111562000d1757600080fd5b600080821362000d1757620004bb8262001ffe565b6000670de0b6b3a7640000620013b1848462001c14565b620009b2919062001c44565b6000620013ca826200136e565b620013df62000d4f6201518061016d62001c14565b8460800151620013f0919062001f94565b620013fc919062001fca565b905060008113620004bb57604051630e520c3b60e11b81526004810182905260240162000461565b60008062001433868462000cc2565b9050670de0b6b3a7640000811215620014635760405163329e322960e21b81526004810182905260240162000461565b60006200147d62001475878a62001dd6565b899062001343565b905060006200148c82620014b3565b90506200149a818762001343565b620014a6908462001df9565b9998505050505050505050565b6000670de0b6b3a76400008203620014de5760405163a9c8b14d60e01b815260040160405180910390fd5b600062001500620014f884670de0b6b3a764000062001df9565b849062001343565b9050620009b28160008082136200154a5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015260640162000461565b670c7d713b49da000082138015620015695750670f43fc2c04ee000082125b156200159357670de0b6b3a76400006200158383620015a3565b8162000fb55762000fb562001c2e565b620004bb82620016ce565b919050565b670de0b6b3a7640000026000806ec097ce7bc90715b34b9f1000000000808401906ec097ce7bc90715b34b9f0fffffffff1985010281620015e857620015e862001c2e565b05905060006ec097ce7bc90715b34b9f100000000082800205905081806ec097ce7bc90715b34b9f100000000081840205915060038205016ec097ce7bc90715b34b9f100000000082840205915060058205016ec097ce7bc90715b34b9f100000000082840205915060078205016ec097ce7bc90715b34b9f100000000082840205915060098205016ec097ce7bc90715b34b9f1000000000828402059150600b8205016ec097ce7bc90715b34b9f1000000000828402059150600d8205016ec097ce7bc90715b34b9f1000000000828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121562001716576200170d826ec097ce7bc90715b34b9f10000000008162001706576200170662001c2e565b05620016ce565b60000392915050565b60007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c000000000000083126200176857770195e54c5dd42177f53a27172fa9ec630262827000000000830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e0000008312620017a1576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312620017ea576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831262001826576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf85083126200185e57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126200189657690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312620018cc5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312620018f857680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d83126200192e576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831262001964576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b286603831262001999576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312620019ce576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281620019fa57620019fa62001c2e565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b62001a986200201d565b565b6001600160a01b038116811462001ab057600080fd5b50565b80516200159e8162001a9a565b60008060006060848603121562001ad657600080fd5b835162001ae38162001a9a565b602085015190935061ffff8116811462001afc57600080fd5b60408501519092506006811062001b1257600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60008060006060848603121562001b4957600080fd5b835162001b568162001a9a565b602085015190935062001b698162001a9a565b604085015190925062001b128162001a9a565b805160ff811681146200159e57600080fd5b60006020828403121562001ba157600080fd5b620009b28262001b7c565b60008060006060848603121562001bc257600080fd5b83516002811062001bd257600080fd5b602085015190935062001be58162001a9a565b915062001bf56040850162001b7c565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620004bb57620004bb62001bfe565b634e487b7160e01b600052601260045260246000fd5b60008262001c565762001c5662001c2e565b500490565b60006020828403121562001c6e57600080fd5b5051919050565b60006020828403121562001c8857600080fd5b81518015158114620009b257600080fd5b60006020828403121562001cac57600080fd5b81516001600160801b0381168114620009b257600080fd5b81810381811115620004bb57620004bb62001bfe565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562001d165762001d1662001cda565b60405290565b604051601f8201601f191681016001600160401b038111828210171562001d475762001d4762001cda565b604052919050565b6000610120828403121562001d6357600080fd5b62001d6d62001cf0565b82518152602083015160208201526040830151604082015262001d936060840162001ab3565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b8082018281126000831280158216821582161715620004b857620004b862001bfe565b818103600083128015838313168383128216171562000955576200095562001bfe565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562001e7257835163ffffffff168352928401929184019160010162001e4e565b50909695505050505050565b6000602080838503121562001e9257600080fd5b82516001600160401b038082111562001eaa57600080fd5b818501915085601f83011262001ebf57600080fd5b81518181111562001ed45762001ed462001cda565b8060051b915062001ee784830162001d1c565b818152918301840191848101908884111562001f0257600080fd5b938501935b8385101562001f3c57845192506001600160d81b038316831462001f2b5760008081fd5b828252938501939085019062001f07565b98975050505050505050565b6001600160d81b0382811682821603908082111562000955576200095562001bfe565b60006001600160d81b038381168062001f885762001f8862001c2e565b92169190910492915050565b80820260008212600160ff1b8414161562001fb35762001fb362001bfe565b8181058314821517620004bb57620004bb62001bfe565b60008262001fdc5762001fdc62001c2e565b600160ff1b82146000198414161562001ff95762001ff962001bfe565b500590565b6000600160ff1b820162002016576200201662001bfe565b5060000390565b634e487b7160e01b600052605160045260246000fd5b60805160a05160c05160e051610100516101205161014051611f17620020a860003960006109ab0152600060a3015260008181610153015261117c0152600081816101f501526111a701526000818160e0015261098601526000818161017a01526109650152600061021c0152611f176000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c80630aa33a241461009e57806326d89545146100db578063313ce5671461011557806354fd4d501461012a5780637284e416146101395780637ae19f151461014e57806380f55605146101755780639a6fc8f5146101a9578063bafd4e38146101f0578063c45a015514610217578063feaf968c1461023e575b600080fd5b6100c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d291906118b5565b60405180910390f35b6101027f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff90911681526020016100d2565b60125b60405160ff90911681526020016100d2565b604051600181526020016100d2565b610141610246565b6040516100d291906118dd565b6101187f000000000000000000000000000000000000000000000000000000000000000081565b61019c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d2919061192c565b6101bc6101b7366004611940565b610266565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100d2565b6101187f000000000000000000000000000000000000000000000000000000000000000081565b61019c7f000000000000000000000000000000000000000000000000000000000000000081565b6101bc6102b0565b6060604051806060016040528060228152602001611ec060229139905090565b600080808080856001600160501b038116156102955760405163bfbe031f60e01b815260040160405180910390fd5b61029d6102b0565b939b929a50909850965090945092505050565b6000808080806102be610461565b9495600094504293508492509050565b60008060006102dc85610470565b91509150808210610304576102fb826102f587876106a0565b90610775565b92505050610315565b6102fb816102f587876106a0565b50505b92915050565b600080600061032985610470565b9150915080821061033e576102fb85856106a0565b808261034a87876106a0565b610354919061197f565b6102fb91906119ac565b600080600061036c85610470565b91509150808210610385576102fb826102f587876107a4565b6102fb816102f587876107a4565b60008060006103a185610470565b915091508082106103b6576102fb85856107a4565b808261034a87876107a4565b60008060006103d9856001600160a01b0316610470565b9150915060006103ea8686846107c9565b9050818310610407576103fd8184610775565b9350505050610315565b6103fd8183610775565b6000806000610428856001600160a01b0316610470565b9150915060006104398686846107c9565b905081831061044c579250610315915050565b81610457848361197f565b6103fd91906119ac565b600061046b61095b565b905090565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d891906119d8565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561051b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053f9190611a25565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a59190611a25565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106099190611a3e565b801561067e575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561064f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106739190611a60565b6001600160801b0316145b1561068b57809350610698565b61069585826109d7565b93505b505050915091565b600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107059190611a25565b905042811161071f57670de0b6b3a7640000915050610315565b600061072b85856109ed565b905060006107394284611a89565b9050600061074f61074a8484610b14565b610b50565b9050610763670de0b6b3a764000082610775565b945050505050610315565b5092915050565b60008061078a670de0b6b3a76400008561197f565b905082818161079b5761079b611996565b04949350505050565b60006107b083836106a0565b6107c290670de0b6b3a7640000611a89565b9392505050565b600080846001600160a01b031663794052f360006040518263ffffffff1660e01b81526004016107f9919061192c565b61012060405180830381865afa158015610817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083b9190611b16565b90506000428260a001511161086b57610858848360200151610b63565b82516108649190611b98565b9050610937565b6000610878838642610b9f565b905060008061088889868a610ca5565b9150915060006108b16108ac8560400151856108a49190611bb8565b865190610d14565b610d37565b905060006108f66108c2838561114c565b6108d490670de0b6b3a7640000611b98565b885160208801516108e6908690610d14565b6108f09190611bb8565b9061114c565b905061090c848289600001516108f09190611b98565b610916828561114c565b86602001516109259190611bb8565b61092f9190611b98565b955050505050505b61095161074a83604001518361114c90919063ffffffff16565b9695505050505050565b600061046b6109d27f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061ffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b611172565b60008183116109e657816107c2565b5090919050565b604080516002808252606082018352600092839291906020830190803683370190505090508281600081518110610a2657610a26611bd8565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd90610a6a908590600401611bee565b600060405180830381865afa158015610a87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aaf9190810190611c38565b90508363ffffffff1681600081518110610acb57610acb611bd8565b602002602001015182600181518110610ae657610ae6611bd8565b6020026020010151610af89190611cf6565b610b029190611d16565b6001600160d81b031695945050505050565b600080610b266201518061016d61197f565b610b30848661197f565b610b3a91906119ac565b9050610b486108ac826111e1565b949350505050565b600080821215610b5f57600080fd5b5090565b60008060008312610b75576001610b79565b6000195b9050610b95610b9085610b8b866111f7565b61120e565b6111e1565b610b489082611d3c565b610bca6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a08401518210610bee5760405163b2094b5960e01b815260040160405180910390fd5b6000828560a00151610c009190611a89565b9050610c0c858261122d565b82526020850151610c1e908590610b63565b602083015284511580610c3357506020820151155b15610c66578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044015b60405180910390fd5b610c8485600001518661010001518460200151856000015185611289565b604083015260c0850151610c989082610b14565b6060830152509392505050565b60008080610cbc6001600160a01b038716856109ed565b90506000428660a00151610cd09190611a89565b9050610cdc8282610b14565b93506000610cef87610100015183610b14565b90506002610cfd8683611b98565b610d079190611d6c565b9350505050935093915050565b600080610d218385611d3c565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015610d5c575068070c1cc73b00c800008213155b610d9b5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610c5d565b6000821215610dd357610db082600003610d37565b6a0c097ce7bc90715b34b9f160241b81610dcc57610dcc611996565b0592915050565b60006806f05b59d3b20000008312610e1157506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b610e47565b6803782dace9d90000008312610e4357506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380610e47565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412610e975768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412610ed3576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412610f0d57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412610f47576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412610f8057680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412610fb95768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412610ff2576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c40000841261102b5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080611161670de0b6b3a764000085611d3c565b9050828181610d2e57610d2e611996565b60006103156111a27f0000000000000000000000000000000000000000000000000000000000000000600a611e7e565b6111cd7f0000000000000000000000000000000000000000000000000000000000000000600a611e7e565b6111d7908561197f565b610b9091906119ac565b60006001600160ff1b03821115610b5f57600080fd5b6000808213610b5f5761120982611e8d565b610315565b6000670de0b6b3a7640000611223848461197f565b6107c291906119ac565b6000611238826111e1565b61124a610b906201518061016d61197f565b84608001516112599190611d3c565b6112639190611d6c565b90506000811361031557604051630e520c3b60e11b815260048101829052602401610c5d565b6000806112968684610b14565b9050670de0b6b3a76400008112156112c45760405163329e322960e21b815260048101829052602401610c5d565b60006112da6112d3878a611b98565b899061114c565b905060006112e78261130a565b90506112f3818761114c565b6112fd9084611bb8565b9998505050505050505050565b6000670de0b6b3a764000082036113345760405163a9c8b14d60e01b815260040160405180910390fd5b600061135261134b84670de0b6b3a7640000611bb8565b849061114c565b90506107c28160008082136113995760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610c5d565b670c7d713b49da0000821380156113b75750670f43fc2c04ee000082125b156113db57670de0b6b3a76400006113ce836113e9565b81610dcc57610dcc611996565b61031582611508565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff198501028161142a5761142a611996565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561154957611540826a0c097ce7bc90715b34b9f160241b8161153a5761153a611996565b05611508565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126115945772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126115cb576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611613576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261164e576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261168557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126116bc57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126116f15768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261171c57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611751576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611786576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126117ba576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126117ee576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161181757611817611996565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6118b3611ea9565b565b60208101600683106118d757634e487b7160e01b600052602160045260246000fd5b91905290565b60006020808352835180602085015260005b8181101561190b578581018301518582016040015282016118ef565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0391909116815260200190565b60006020828403121561195257600080fd5b81356001600160501b03811681146107c257600080fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761031557610315611969565b634e487b7160e01b600052601260045260246000fd5b6000826119bb576119bb611996565b500490565b6001600160a01b03811681146119d557600080fd5b50565b6000806000606084860312156119ed57600080fd5b83516119f8816119c0565b6020850151909350611a09816119c0565b6040850151909250611a1a816119c0565b809150509250925092565b600060208284031215611a3757600080fd5b5051919050565b600060208284031215611a5057600080fd5b815180151581146107c257600080fd5b600060208284031215611a7257600080fd5b81516001600160801b03811681146107c257600080fd5b8181038181111561031557610315611969565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715611ad557611ad5611a9c565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611b0357611b03611a9c565b604052919050565b80516113e4816119c0565b60006101208284031215611b2957600080fd5b611b31611ab2565b825181526020830151602082015260408301516040820152611b5560608401611b0b565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b808201828112600083128015821682158216171561031257610312611969565b818103600083128015838313168383128216171561076e5761076e611969565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015611c2c57835163ffffffff1683529284019291840191600101611c0a565b50909695505050505050565b60006020808385031215611c4b57600080fd5b82516001600160401b0380821115611c6257600080fd5b818501915085601f830112611c7657600080fd5b815181811115611c8857611c88611a9c565b8060051b9150611c99848301611adb565b8181529183018401918481019088841115611cb357600080fd5b938501935b83851015611cea57845192506001600160d81b0383168314611cda5760008081fd5b8282529385019390850190611cb8565b98975050505050505050565b6001600160d81b0382811682821603908082111561076e5761076e611969565b60006001600160d81b0383811680611d3057611d30611996565b92169190910492915050565b80820260008212600160ff1b84141615611d5857611d58611969565b818105831482151761031557610315611969565b600082611d7b57611d7b611996565b600160ff1b821460001984141615611d9557611d95611969565b500590565b600181815b80851115611dd5578160001904821115611dbb57611dbb611969565b80851615611dc857918102915b93841c9390800290611d9f565b509250929050565b600082611dec57506001610315565b81611df957506000610315565b8160018114611e0f5760028114611e1957611e35565b6001915050610315565b60ff841115611e2a57611e2a611969565b50506001821b610315565b5060208310610133831016604e8410600b8410161715611e58575081810a610315565b611e628383611d9a565b8060001904821115611e7657611e76611969565b029392505050565b60006107c260ff841683611ddd565b6000600160ff1b8201611ea257611ea2611969565b5060000390565b634e487b7160e01b600052605160045260246000fdfe50656e646c6520436861696e6c696e6b2d636f6d70617469626c65204f7261636c65a26469706673582212206c20f405fa8d839a3eea9e62f35f73fc5ac36f876ef273e03c8d35c540b959b564736f6c63430008170033";
286
+
287
+ type PendleChainlinkOracleConstructorParams =
288
+ | [signer?: Signer]
289
+ | ConstructorParameters<typeof ContractFactory>;
290
+
291
+ const isSuperArgs = (
292
+ xs: PendleChainlinkOracleConstructorParams
293
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
294
+
295
+ export class PendleChainlinkOracle__factory extends ContractFactory {
296
+ constructor(...args: PendleChainlinkOracleConstructorParams) {
297
+ if (isSuperArgs(args)) {
298
+ super(...args);
299
+ } else {
300
+ super(_abi, _bytecode, args[0]);
301
+ }
302
+ this.contractName = "PendleChainlinkOracle";
303
+ }
304
+
305
+ deploy(
306
+ _market: string,
307
+ _twapDuration: BigNumberish,
308
+ _baseOracleType: BigNumberish,
309
+ overrides?: Overrides & { from?: string | Promise<string> }
310
+ ): Promise<PendleChainlinkOracle> {
311
+ return super.deploy(
312
+ _market,
313
+ _twapDuration,
314
+ _baseOracleType,
315
+ overrides || {}
316
+ ) as Promise<PendleChainlinkOracle>;
317
+ }
318
+ getDeployTransaction(
319
+ _market: string,
320
+ _twapDuration: BigNumberish,
321
+ _baseOracleType: BigNumberish,
322
+ overrides?: Overrides & { from?: string | Promise<string> }
323
+ ): TransactionRequest {
324
+ return super.getDeployTransaction(
325
+ _market,
326
+ _twapDuration,
327
+ _baseOracleType,
328
+ overrides || {}
329
+ );
330
+ }
331
+ attach(address: string): PendleChainlinkOracle {
332
+ return super.attach(address) as PendleChainlinkOracle;
333
+ }
334
+ connect(signer: Signer): PendleChainlinkOracle__factory {
335
+ return super.connect(signer) as PendleChainlinkOracle__factory;
336
+ }
337
+ static readonly contractName: "PendleChainlinkOracle";
338
+ public readonly contractName: "PendleChainlinkOracle";
339
+ static readonly bytecode = _bytecode;
340
+ static readonly abi = _abi;
341
+ static createInterface(): PendleChainlinkOracleInterface {
342
+ return new utils.Interface(_abi) as PendleChainlinkOracleInterface;
343
+ }
344
+ static connect(
345
+ address: string,
346
+ signerOrProvider: Signer | Provider
347
+ ): PendleChainlinkOracle {
348
+ return new Contract(
349
+ address,
350
+ _abi,
351
+ signerOrProvider
352
+ ) as PendleChainlinkOracle;
353
+ }
354
+ }
@@ -1207,7 +1207,7 @@ const _abi = [
1207
1207
  ];
1208
1208
 
1209
1209
  const _bytecode =
1210
- "0x6101c0604052733963ffc9dff443c2a94f21b129d429891e32ec18610180523480156200002b57600080fd5b5060405162005c2438038062005c248339810160408190526200004e91620002f2565b8085806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200008f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b5919062000373565b60ff16608052610134805460ff191690556001600160a01b03811660a052620000dd62000207565b506001600160a01b03811660c08190526040805163f5b91b7b60e01b8152905163f5b91b7b916004808201926020929091908290030181865afa15801562000129573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014f91906200039f565b6001600160a01b031660e052506200016662000207565b6001600160a01b03808716610100528481166101205283811661014052821661016081905260408051633fc8cef360e01b81529051633fc8cef3916004808201926020929091908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed91906200039f565b6001600160a01b03166101a05250620003bd945050505050565b600154600160a81b900460ff1615620002765760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff90811614620002d3576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620002ed57600080fd5b919050565b60008060008060008060c087890312156200030c57600080fd5b6200031787620002d5565b95506200032760208801620002d5565b94506200033760408801620002d5565b93506200034760608801620002d5565b92506200035760808801620002d5565b91506200036760a08801620002d5565b90509295509295509295565b6000602082840312156200038657600080fd5b815160ff811681146200039857600080fd5b9392505050565b600060208284031215620003b257600080fd5b6200039882620002d5565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516156b0620005746000396000818161045f01528181611e10015281816129390152612afe0152600081816108d601528181611655015281816129740152612b3901526000818161080b01528181611f3301528181611feb01528181612663015261270c0152600081816104a801526140e40152600081816102fa0152818161102c01528181611c9001528181611ed0015281816125df015281816128eb0152612ab00152600081816105f60152818161137f015281816113a0015281816129ed0152612bb201526000818161386c01528181613aca01528181613b460152614a8001526000818161090a0152818161108e015281816114a101528181611547015281816115d401528181611ab201528181611b5801528181611be5015281816137860152818161383b01528181613942015281816139c401528181613a9901528181613b9701528181613c8201528181613d040152818161440f015281816144b001528181614546015281816145eb01528181614b380152614bb2015260006105a2015260006103d401526156b06000f3fe60806040526004361061023d5760003560e01c806306fdde0314610249578063071bc3c914610274578063078dfbe714610296578063095ea7b3146102b85780630ddc56d3146102e8578063126082cf14610329578063128fced11461034d57806318160ddd1461037a57806320e8c5651461038f578063213cae631461027457806323b872dd146103a2578063313ce567146103c25780633644e515146104085780633ba0b9a91461041d5780633f4ba83a146104385780633fc8cef31461044d5780634e71e0c8146104815780635a3bb989146104965780635c975abb146104ca5780635cbadbe4146104e357806370a0823114610550578063769f8e5d1461057057806376d5de8514610590578063784367d6146105c457806378a207ee146105e45780637ecebe00146106185780638129fc1c146106385780638456cb591461064d57806384b0196e146106625780638da5cb5b1461068a57806395082d25146106aa57806395d89b41146106ca578063a40bee50146106df578063a9059cbb14610703578063a9f8d18114610723578063b8e387ce1461073a578063b8f82b261461074f578063c4f59f9b1461076f578063cbe52ae314610784578063d505accf146107a4578063da88ecb4146107c4578063dd62ed3e146107d9578063e016e44b146107f9578063e30c39781461082d578063ea64a8201461084d578063ef5cfb8c1461088f578063f8b2f991146108af578063fa5a4f06146105c4578063fa6db1bc146108c4578063fbfa77cf146108f857600080fd5b3661024457005b600080fd5b34801561025557600080fd5b5061025e61092c565b60405161026b9190614e1c565b60405180910390f35b34801561028057600080fd5b506102896109be565b60405161026b9190614e74565b3480156102a257600080fd5b506102b66102b1366004614eaa565b6109cd565b005b3480156102c457600080fd5b506102d86102d3366004614ef5565b610ad2565b604051901515815260200161026b565b3480156102f457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161026b9190614f21565b34801561033557600080fd5b5061033f61271081565b60405190815260200161026b565b34801561035957600080fd5b5061036d610368366004614f35565b610aec565b60405161026b9190614f83565b34801561038657600080fd5b5061033f610bf9565b61033f61039d366004614f96565b610c08565b3480156103ae57600080fd5b506102d86103bd366004614fdc565b610d51565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161026b565b34801561041457600080fd5b5061033f610dcf565b34801561042957600080fd5b50670de0b6b3a764000061033f565b34801561044457600080fd5b506102b6610dd9565b34801561045957600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048d57600080fd5b506102b6610e0d565b3480156104a257600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d657600080fd5b506101345460ff166102d8565b3480156104ef57600080fd5b506105306104fe36600461501d565b6101996020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026b565b34801561055c57600080fd5b5061033f61056b366004614f35565b610eb8565b34801561057c57600080fd5b5061033f61058b366004615056565b610ed3565b34801561059c57600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d057600080fd5b506102d86105df366004614f35565b611028565b3480156105f057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b5061033f610633366004614f35565b611104565b34801561064457600080fd5b506102b6611122565b34801561065957600080fd5b506102b6611297565b34801561066e57600080fd5b506106776112c9565b60405161026b97969594939291906150b5565b34801561069657600080fd5b5060005461031c906001600160a01b031681565b3480156106b657600080fd5b5061033f68327cb2734119d3b7a9601e1b81565b3480156106d657600080fd5b5061025e611367565b3480156106eb57600080fd5b506106f4611376565b60405161026b9392919061513b565b34801561070f57600080fd5b506102d861071e366004614ef5565b61142b565b34801561072f57600080fd5b5061033f61019a5481565b34801561074657600080fd5b506102b661149d565b34801561075b57600080fd5b5061033f61076a366004614ef5565b611686565b34801561077b57600080fd5b506102896116c1565b34801561079057600080fd5b5061033f61079f366004614ef5565b6116cb565b3480156107b057600080fd5b506102b66107bf36600461518c565b6116ff565b3480156107d057600080fd5b5061036d611863565b3480156107e557600080fd5b5061033f6107f436600461501d565b611935565b34801561080557600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561083957600080fd5b5060015461031c906001600160a01b031681565b34801561085957600080fd5b50610530610868366004614f35565b61019b602052600090815260409020546001600160801b0380821691600160801b90041682565b34801561089b57600080fd5b5061036d6108aa366004614f35565b611960565b3480156108bb57600080fd5b5061036d611a27565b3480156108d057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561090457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60606005805461093b906151fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610967906151fd565b80156109b45780601f10610989576101008083540402835291602001916109b4565b820191906000526020600020905b81548152906001019060200180831161099757829003601f168201915b5050505050905090565b60606109c8611a98565b905090565b6000546001600160a01b03163314610a005760405162461bcd60e51b81526004016109f790615231565b60405180910390fd5b8115610ab1576001600160a01b038316151580610a1a5750805b610a5e5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016109f7565b600080546040516001600160a01b038087169392169160008051602061563b83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b600033610ae0818585611cc7565b60019150505b92915050565b60606000610af8611dec565b905080516001600160401b03811115610b1357610b13615266565b604051908082528060200260200182016040528015610b3c578160200160208202803683370190505b50915060005b8151811015610bf2576101996000838381518110610b6257610b6261527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110610bdf57610bdf61527c565b6020908102919091010152600101610b42565b5050919050565b6004546001600160f81b031690565b600454600090600119600160f81b90910460ff1601610c395760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610c5784611028565b610c7657836040516315d57ce360e31b81526004016109f79190614f21565b82600003610c9757604051630a907f2f60e41b815260040160405180910390fd5b610ca2843385611e65565b610cac8484611ecc565b905081811015610cd3578082604051635e38f95d60e11b81526004016109f79291906152c9565b610cdd8582612058565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610d2c9291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b179055949350505050565b600454600090600119600160f81b90910460ff1601610d825760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b17905533610da385828561216f565b610dae8585856121e9565b6001915050600480546001600160f81b0316600160f81b1790559392505050565b60006109c861240b565b6000546001600160a01b03163314610e035760405162461bcd60e51b81526004016109f790615231565b610e0b612415565b565b6001546001600160a01b0316338114610e685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016109f7565b600080546040516001600160a01b038085169392169160008051602061563b83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6001600160a01b031660009081526002602052604090205490565b600454600090600119600160f81b90910460ff1601610f045760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610f2284611028565b610f4157836040516388a5056160e01b81526004016109f79190614f21565b84600003610f625760405163c3d83b0760e01b815260040160405180910390fd5b8115610f7757610f723086612462565b610f81565b610f813386612462565b610f8c8685876125db565b905082811015610fb35780836040516305ff726560e51b81526004016109f79291906152c9565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c88856040516110029291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b17905595945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061107157506001600160a01b038216155b80610ae65750604051630daf9c2160e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c210906110c3908590600401614f21565b602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae691906152d7565b6001600160a01b0381166000908152609f6020526040812054610ae6565b600154600160a81b900460ff1615808015611148575060018054600160a01b900460ff16105b8061116f575061115730612781565b15801561116f575060018054600160a01b900460ff16145b6111d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f7565b6001805460ff60a01b1916600160a01b17905580156111ff576001805460ff60a81b1916600160a81b1790555b611245604051806040016040528060068152602001650535920474c560d41b81525060405180604001604052806006815260200165053592d474c560d41b815250612790565b61124d61149d565b8015611294576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6000546001600160a01b031633146112c15760405162461bcd60e51b81526004016109f790615231565b610e0b6127cb565b600060608060008060006060606b546000801b1480156112e95750606c54155b61132d5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109f7565b611335612809565b61133d612818565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606006805461093b906151fd565b600080600060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142091906152f4565b925092509250909192565b600454600090600119600160f81b90910460ff160161145c5760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790553361147d8185856121e9565b6001915050600480546001600160f81b0316600160f81b17905592915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115219190615311565b905060005b8181101561168257604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611609908490600401614f21565b602060405180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a91906152d7565b1561167957611679817f0000000000000000000000000000000000000000000000000000000000000000612827565b50600101611526565b5050565b600061169183611028565b6116b057826040516315d57ce360e31b81526004016109f79190614f21565b6116ba83836128e7565b9392505050565b60606109c8611dec565b60006116d683611028565b6116f557826040516388a5056160e01b81526004016109f79190614f21565b6116ba8383612aac565b8342111561174f5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016109f7565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861177e8c612c59565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006117d982612c81565b905060006117e982878787612cae565b9050896001600160a01b0316816001600160a01b03161461184c5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016109f7565b6118578a8a8a611cc7565b50505050505050505050565b6060600061186f611dec565b905080516001600160401b0381111561188a5761188a615266565b6040519080825280602002602001820160405280156118b3578160200160208202803683370190505b50915060005b81518110156119305761019b60008383815181106118d9576118d961527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061191d5761191d61527c565b60209081029190910101526001016118b9565b505090565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b600454606090600119600160f81b90910460ff16016119915760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790556119ae612cd6565b6119b782612d1d565b6119c18283612d28565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f6119f6611dec565b83604051611a05929190615347565b60405180910390a2600480546001600160f81b0316600160f81b179055919050565b600454606090600119600160f81b90910460ff1601611a585760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055611a75612cd6565b611a7d612fc9565b600480546001600160f81b0316600160f81b17905592915050565b6040805160008082526020820190925260609150905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b329190615311565b905060005b81811015611c8957604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611c1a908490600401614f21565b602060405180830381865afa158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b91906152d7565b8015611c6e5750611c6c848261324a565b155b15611c8057611c7d84826132a9565b93505b50600101611b37565b50611cb4827f00000000000000000000000000000000000000000000000000000000000000006132a9565b9150611cc18260006132a9565b91505090565b6001600160a01b038316611d295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f7565b6001600160a01b038216611d8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f7565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e4257611e4261527c565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6001600160a01b038316611eb157803414610acd5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016109f7565b8015610acd57610acd6001600160a01b03841683308461338e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611f0e575080610ae6565b6001600160a01b038316611fb7576040516353a8aa0360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906353a8aa03903490611f6d9060009081906004016152c9565b60206040518083038185885af1158015611f8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb09190615311565b9050610ae6565b60405163364e231160e01b81526001600160a01b0384811660048301526024820184905260006044830181905260648301527f0000000000000000000000000000000000000000000000000000000000000000169063364e2311906084016020604051808303816000875af1158015612034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190615311565b6001600160a01b0382166120ae5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109f7565b6120ba600083836133f9565b6120c38161340b565b600480546000906120de9084906001600160f81b0316615382565b92506101000a8154816001600160f81b0302191690836001600160f81b031602179055508060026000846001600160a01b03166001600160a01b03168152602001908152602001600020600082825461213791906153a9565b90915550506040518181526001600160a01b0383169060009060008051602061565b8339815191529060200160405180910390a35050565b600061217b8484611935565b905060001981146121e357818110156121d65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109f7565b6121e38484848403611cc7565b50505050565b6001600160a01b03831661224d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f7565b6001600160a01b0382166122af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f7565b816001600160a01b0316836001600160a01b03160361230a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016109f7565b6123158383836133f9565b6001600160a01b0383166000908152600260205260409020548181101561238d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109f7565b6001600160a01b038085166000908152600260205260408082208585039055918516815290812080548492906123c49084906153a9565b92505081905550826001600160a01b0316846001600160a01b031660008051602061565b833981519152846040516123fe91815260200190565b60405180910390a36121e3565b60006109c8613425565b61241d613499565b610134805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516124589190614f21565b60405180910390a1565b6001600160a01b0382166124c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109f7565b6124ce826000836133f9565b6001600160a01b038216600090815260026020526040902054818110156125425760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109f7565b6001600160a01b038316600090815260026020526040902082820390556125688261340b565b600480546000906125839084906001600160f81b03166153bc565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b031660008051602061565b83398151915284604051611ddf91815260200190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036126285750806126238385836134e3565b6116ba565b6001600160a01b0383166126d7576040516355daf2f160e11b815260048101839052600060248201526001600160a01b0385811660448301527f0000000000000000000000000000000000000000000000000000000000000000169063abb5e5e2906064016020604051808303816000875af11580156126ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d09190615311565b90506116ba565b6040516303cea95560e21b81526001600160a01b038481166004830152602482018490526000604483015285811660648301527f00000000000000000000000000000000000000000000000000000000000000001690630f3aa554906084016020604051808303816000875af1158015612755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127799190615311565b949350505050565b6001600160a01b03163b151590565b600154600160a81b900460ff166127b95760405162461bcd60e51b81526004016109f7906153dc565b6127c382826135a7565b6116826135fd565b6127d3612cd6565b610134805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861244b3390565b6060606d805461093b906151fd565b6060606e805461093b906151fd565b6001600160a01b038216612839575050565b61284b60026001600160601b0361543d565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156128a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c89190615311565b1015611682576128da8282600061363a565b611682828260001961363a565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612929575080610ae6565b6001600160a01b03831661295b577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600160048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa1580156129c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e79190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6d9190615311565b90506000612a7b868661374e565b905060008315612a9f5783612a908484615463565b612a9a919061547a565b612aa1565b815b979650505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612aee575080610ae6565b6001600160a01b038316612b20577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600060048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa158015612b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bac9190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c329190615311565b9050600081612c418487615463565b612c4b919061547a565b90506000612aa18783613b3f565b6001600160a01b0381166000908152609f602052604090208054600181018255905b50919050565b6000610ae6612c8e61240b565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612cbf87878787613e05565b91509150612ccc81613ebf565b5095945050505050565b6101345460ff1615610e0b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109f7565b611294816000614004565b60606000612d34611dec565b905080516001600160401b03811115612d4f57612d4f615266565b604051908082528060200260200182016040528015612d78578160200160208202803683370190505b50915060005b8151811015612fc1576101996000838381518110612d9e57612d9e61527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110612e1b57612e1b61527c565b602002602001018181525050828181518110612e3957612e3961527c565b6020026020010151600014612fb95760006101996000848481518110612e6157612e6161527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550612ef5838281518110612ee857612ee861527c565b6020026020010151614084565b61019b6000848481518110612f0c57612f0c61527c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316612f58919061548e565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550612fb9828281518110612f9157612f9161527c565b602002602001015185858481518110612fac57612fac61527c565b60200260200101516134e3565b600101612d7e565b505092915050565b606080612fd4611dec565b915081516001600160401b03811115612fef57612fef615266565b604051908082528060200260200182016040528015613018578160200160208202803683370190505b5090508151600003613028579091565b4361019a54146131cb574361019a55600061304161409a565b905061304b6140a4565b60005b83518110156131c557600084828151811061306b5761306b61527c565b6020908102919091018101516001600160a01b038116600090815261019b835260408082208151808301909252546001600160801b03808216808452600160801b90920416948201859052895193955090939290919083906130e6908b90899081106130d9576130d961527c565b6020026020010151614144565b6130f091906154ae565b9050816000036130ff57600191505b861561311c5761310f81886141ce565b61311990836153a9565b91505b604051806040016040528061313084614084565b6001600160801b0316815260200161315061314b84876153a9565b614084565b6001600160801b039081169091526001600160a01b038716600090815261019b60209081526040909120835193909101518216600160801b0292909116919091179055875182908990889081106131a9576131a961527c565b602002602001018181525050505050505080600101905061304e565b50509091565b60005b82518110156132455761019b60008483815181106131ee576131ee61527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b03909116908390839081106132325761323261527c565b60209081029190910101526001016131ce565b509091565b8151600090815b8181101561329e57836001600160a01b03168582815181106132755761327561527c565b60200260200101516001600160a01b03160361329657600192505050610ae6565b600101613251565b506000949350505050565b81516060906132b98160016153a9565b6001600160401b038111156132d0576132d0615266565b6040519080825280602002602001820160405280156132f9578160200160208202803683370190505b50915060005b81811015613353578481815181106133195761331961527c565b60200260200101518382815181106133335761333361527c565b6001600160a01b03909216602092830291909101909101526001016132ff565b50828282815181106133675761336761527c565b60200260200101906001600160a01b031690816001600160a01b0316815250505092915050565b6040516001600160a01b03808516602483015283166044820152606481018290526121e39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526141fd565b613401612cd6565b610acd8383614004565b60006001600160f81b0382111561342157600080fd5b5090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6134506142d2565b61345861432b565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6101345460ff16610e0b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109f7565b806000036134f057505050565b6001600160a01b038316613593576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461354b576040519150601f19603f3d011682016040523d82523d6000602084013e613550565b606091505b50509050806121e35760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016109f7565b610acd6001600160a01b038416838361435c565b600154600160a81b900460ff166135d05760405162461bcd60e51b81526004016109f7906153dc565b6135da828261437b565b61168282604051806040016040528060018152602001603160f81b8152506143d7565b600154600160a81b900460ff166136265760405162461bcd60e51b81526004016109f7906153dc565b600080546001600160a01b03191633179055565b600080846001600160a01b031663095ea7b360e01b85856040516024016136629291906154c1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136a091906154da565b6000604051808303816000865af19150503d80600081146136dd576040519150601f19603f3d011682016040523d82523d6000602084013e6136e2565b606091505b509150915081801561370c57508051158061370c57508080602001905181019061370c91906152d7565b6137475760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016109f7565b5050505050565b600061375a838361440a565b91506000821161376c5761376c6154f6565b6040516340d3096b60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906381a612d6906137bb908790600401614f21565b602060405180830381865afa1580156137d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137fc9190615311565b9050600068327cb2734119d3b7a9601e1b6138178386615463565b613821919061547a565b604051634215287360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063421528739061389490849089907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa1580156138b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d59190615311565b9050600081116139375760405162461bcd60e51b815260206004820152602760248201527f7072657669657720627579555344473a2075736467416d6f756e74206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b6000613a4b868360007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561399e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c29190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a449190615311565b6001614542565b90506000613a5a8787846147b9565b9050600068327cb2734119d3b7a9601e1b613a758684615463565b613a7f919061547a565b604051634215287360e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634215287390613af29084908c907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa158015613b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b339190615311565b98975050505050505050565b6000613b6b7f00000000000000000000000000000000000000000000000000000000000000008361440a565b915060008211613b7d57613b7d6154f6565b604051632c668ec160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632c668ec190613bce90879087906004016154c1565b602060405180830381865afa158015613beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0f9190615311565b905060008111613c785760405162461bcd60e51b815260206004820152602e60248201527f707265766965772073656c6c555344473a20726564656d7074696f6e416d6f7560448201526d06e74206d757374206265203e20360941b60648201526084016109f7565b6000613d8b8585867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d029190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d849190615311565b6000614542565b90506000613d9a8684846147b9565b905060008111613dfc5760405162461bcd60e51b815260206004820152602760248201527f707265766965772073656c6c555344473a20616d6f756e744f7574206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b95945050505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115613e325750600090506003613eb6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613e86573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613eaf57600060019250925050613eb6565b9150600090505b94509492505050565b6000816004811115613ed357613ed3615125565b03613edb5750565b6001816004811115613eef57613eef615125565b03613f375760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016109f7565b6002816004811115613f4b57613f4b615125565b03613f985760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f7565b6003816004811115613fac57613fac615125565b036112945760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f7565b60008061400f612fc9565b9150915081516000036140225750505050565b6001600160a01b0384161580159061404357506001600160a01b0384163014155b15614053576140538483836147dd565b6001600160a01b0383161580159061407457506001600160a01b0383163014155b156121e3576121e38383836147dd565b60006001600160801b0382111561342157600080fd5b60006109c8610bf9565b60405163185b800160e11b815260006004820181905260248201819052600160448301819052606483018190526084830182905260a483015260c48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906330b700029060e401600060405180830381600087803b15801561413057600080fd5b505af11580156121e3573d6000803e3d6000fd5b60006001600160a01b038216156141c7576040516370a0823160e01b81526001600160a01b038316906370a0823190614181903090600401614f21565b602060405180830381865afa15801561419e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141c29190615311565b610ae6565b4792915050565b6000806141e3670de0b6b3a764000085615463565b90508281816141f4576141f4615427565b04949350505050565b6000614252826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614a1a9092919063ffffffff16565b905080516000148061427357508080602001905181019061427391906152d7565b610acd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109f7565b6000806142dd612809565b8051909150156142f4578051602090910120919050565b606b5480156143035792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080614336612818565b80519091501561434d578051602090910120919050565b606c5480156143035792915050565b610acd8363a9059cbb60e01b84846040516024016133c29291906154c1565b600154600160a81b900460ff166143a45760405162461bcd60e51b81526004016109f7906153dc565b60056143b0838261557b565b5060066143bd828261557b565b5050600480546001600160f81b0316600160f81b17905550565b600154600160a81b900460ff166144005760405162461bcd60e51b81526004016109f7906153dc565b6116828282614a29565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663523fba7f856040518263ffffffff1660e01b81526004016144599190614f21565b602060405180830381865afa158015614476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061449a9190615311565b9050600083856001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016144eb9190614f21565b602060405180830381865afa158015614508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452c9190615311565b61453691906153a9565b9050613dfc82826154ae565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f392eb36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145c691906152d7565b6145d15750826147af565b604051631aa4ace560e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631aa4ace590614620908b90600401614f21565b602060405180830381865afa15801561463d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146619190615311565b90508581101561467257600061467c565b61467c86826154ae565b9050600061468a88836153a9565b9050836146ad578188116146a7576146a288836154ae565b6146aa565b60005b90505b60006146b98a89614a7a565b9050806000036146ce578693505050506147af565b60008184116146e6576146e184836154ae565b6146f0565b6146f082856154ae565b9050600082841161470a5761470584846154ae565b614714565b61471483856154ae565b90508181101561475d5760008361472b848b615463565b614735919061547a565b905089811161474d57614748818b6154ae565b614750565b60005b96505050505050506147af565b6000600261476b83856153a9565b614775919061547a565b9050838111156147825750825b60008461478f838c615463565b614799919061547a565b90506147a5818c6153a9565b9750505050505050505b9695505050505050565b6000806127106147c984826154ae565b6147d39086615463565b613dfc919061547a565b6001600160a01b038316158015906147fe57506001600160a01b0383163014155b61480a5761480a6154f6565b600061481584614c3c565b905060005b83518110156137475760008482815181106148375761483761527c565b6020026020010151905060008483815181106148555761485561527c565b6020908102919091018101516001600160a01b03808516600090815261019984526040808220928c168252919093528220549092506001600160801b0316908190036148b1576148a56001614084565b6001600160801b031690505b818114806148bd575081155b156148ca57505050614a12565b60006148d682846154ae565b905060006148e48783614c47565b6001600160a01b03868116600090815261019960209081526040808320938f168352929052908120549192509061492c908390600160801b90046001600160801b03166153a9565b9050604051806040016040528061494287614084565b6001600160801b0316815260200161495983614084565b6001600160801b03168152506101996000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b60010161481a565b60606127798484600085614c65565b600154600160a81b900460ff16614a525760405162461bcd60e51b81526004016109f7906153dc565b606d614a5e838261557b565b50606e614a6b828261557b565b50506000606b819055606c5550565b600080827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b009190615311565b614b0a91906154ae565b905080600003614b1e576000915050610ae6565b604051632acbceb560e21b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab2f3ad490614b6d908890600401614f21565b602060405180830381865afa158015614b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bae9190615311565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dc8f5fac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c329190615311565b6147d38383615463565b6000610ae682610eb8565b600080614c548385615463565b9050670de0b6b3a7640000816141f4565b606082471015614cc65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109f7565b600080866001600160a01b03168587604051614ce291906154da565b60006040518083038185875af1925050503d8060008114614d1f576040519150601f19603f3d011682016040523d82523d6000602084013e614d24565b606091505b5091509150612aa18783838760608315614d9d578251600003614d9657614d4a85612781565b614d965760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f7565b5081612779565b6127798383815115614db25781518083602001fd5b8060405162461bcd60e51b81526004016109f79190614e1c565b60005b83811015614de7578181015183820152602001614dcf565b50506000910152565b60008151808452614e08816020860160208601614dcc565b601f01601f19169290920160200192915050565b6020815260006116ba6020830184614df0565b60008151808452602080850194506020840160005b83811015614e695781516001600160a01b031687529582019590820190600101614e44565b509495945050505050565b6020815260006116ba6020830184614e2f565b6001600160a01b038116811461129457600080fd5b801515811461129457600080fd5b600080600060608486031215614ebf57600080fd5b8335614eca81614e87565b92506020840135614eda81614e9c565b91506040840135614eea81614e9c565b809150509250925092565b60008060408385031215614f0857600080fd5b8235614f1381614e87565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215614f4757600080fd5b81356116ba81614e87565b60008151808452602080850194506020840160005b83811015614e6957815187529582019590820190600101614f67565b6020815260006116ba6020830184614f52565b60008060008060808587031215614fac57600080fd5b8435614fb781614e87565b93506020850135614fc781614e87565b93969395505050506040820135916060013590565b600080600060608486031215614ff157600080fd5b8335614ffc81614e87565b9250602084013561500c81614e87565b929592945050506040919091013590565b6000806040838503121561503057600080fd5b823561503b81614e87565b9150602083013561504b81614e87565b809150509250929050565b600080600080600060a0868803121561506e57600080fd5b853561507981614e87565b945060208601359350604086013561509081614e87565b92506060860135915060808601356150a781614e9c565b809150509295509295909350565b60ff60f81b8816815260e0602082015260006150d460e0830189614df0565b82810360408401526150e68189614df0565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506151178185614f52565b9a9950505050505050505050565b634e487b7160e01b600052602160045260246000fd5b606081016002851061515d57634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff8116811461129457600080fd5b600080600080600080600060e0888a0312156151a757600080fd5b87356151b281614e87565b965060208801356151c281614e87565b9550604088013594506060880135935060808801356151e08161517d565b9699959850939692959460a0840135945060c09093013592915050565b600181811c9082168061521157607f821691505b602082108103612c7b57634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b6000602082840312156152e957600080fd5b81516116ba81614e9c565b60006020828403121561530657600080fd5b81516116ba8161517d565b60006020828403121561532357600080fd5b5051919050565b60006020828403121561533c57600080fd5b81516116ba81614e87565b60408152600061535a6040830185614e2f565b8281036020840152613dfc8185614f52565b634e487b7160e01b600052601160045260246000fd5b6001600160f81b038181168382160190808211156153a2576153a261536c565b5092915050565b80820180821115610ae657610ae661536c565b6001600160f81b038281168282160390808211156153a2576153a261536c565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168061545757615457615427565b92169190910492915050565b8082028115828204841417610ae657610ae661536c565b60008261548957615489615427565b500490565b6001600160801b038281168282160390808211156153a2576153a261536c565b81810381811115610ae657610ae661536c565b6001600160a01b03929092168252602082015260400190565b600082516154ec818460208701614dcc565b9190910192915050565b634e487b7160e01b600052600160045260246000fd5b9283526001600160a01b03918216602084015216604082015260600190565b601f821115610acd576000816000526020600020601f850160051c810160208610156155545750805b601f850160051c820191505b8181101561557357828155600101615560565b505050505050565b81516001600160401b0381111561559457615594615266565b6155a8816155a284546151fd565b8461552b565b602080601f8311600181146155dd57600084156155c55750858301515b600019600386901b1c1916600185901b178555615573565b600085815260208120601f198616915b8281101561560c578886015182559484019460019091019084016155ed565b508582101561562a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122046763563cf93e55ecea005eff95d73905adc7e46755e309b38f5f1aed9914c9a64736f6c63430008170033";
1210
+ "0x6101c06040523480156200001257600080fd5b5060405162005c8d38038062005c8d83398101604081905262000035916200035b565b8085806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000076573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009c9190620003dc565b60ff16608052610134805460ff191690556001600160a01b03811660a052620000c462000270565b506001600160a01b03811660c08190526040805163f5b91b7b60e01b8152905163f5b91b7b916004808201926020929091908290030181865afa15801562000110573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000136919062000408565b6001600160a01b031660e052506200014d62000270565b6001600160a01b03808716610100528481166101205283811661014052821661016081905260408051633e9b6c6f60e21b8152905163fa6db1bc916004808201926020929091908290030181865afa158015620001ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d4919062000408565b6001600160a01b0316610180816001600160a01b031681525050610160516001600160a01b0316633fc8cef36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000256919062000408565b6001600160a01b03166101a0525062000426945050505050565b600154600160a81b900460ff1615620002df5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff908116146200033c576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200035657600080fd5b919050565b60008060008060008060c087890312156200037557600080fd5b62000380876200033e565b955062000390602088016200033e565b9450620003a0604088016200033e565b9350620003b0606088016200033e565b9250620003c0608088016200033e565b9150620003d060a088016200033e565b90509295509295509295565b600060208284031215620003ef57600080fd5b815160ff811681146200040157600080fd5b9392505050565b6000602082840312156200041b57600080fd5b62000401826200033e565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516156b0620005dd6000396000818161045f01528181611e10015281816129390152612afe0152600081816108d601528181611655015281816129740152612b3901526000818161080b01528181611f3301528181611feb01528181612663015261270c0152600081816104a801526140e40152600081816102fa0152818161102c01528181611c9001528181611ed0015281816125df015281816128eb0152612ab00152600081816105f60152818161137f015281816113a0015281816129ed0152612bb201526000818161386c01528181613aca01528181613b460152614a8001526000818161090a0152818161108e015281816114a101528181611547015281816115d401528181611ab201528181611b5801528181611be5015281816137860152818161383b01528181613942015281816139c401528181613a9901528181613b9701528181613c8201528181613d040152818161440f015281816144b001528181614546015281816145eb01528181614b380152614bb2015260006105a2015260006103d401526156b06000f3fe60806040526004361061023d5760003560e01c806306fdde0314610249578063071bc3c914610274578063078dfbe714610296578063095ea7b3146102b85780630ddc56d3146102e8578063126082cf14610329578063128fced11461034d57806318160ddd1461037a57806320e8c5651461038f578063213cae631461027457806323b872dd146103a2578063313ce567146103c25780633644e515146104085780633ba0b9a91461041d5780633f4ba83a146104385780633fc8cef31461044d5780634e71e0c8146104815780635a3bb989146104965780635c975abb146104ca5780635cbadbe4146104e357806370a0823114610550578063769f8e5d1461057057806376d5de8514610590578063784367d6146105c457806378a207ee146105e45780637ecebe00146106185780638129fc1c146106385780638456cb591461064d57806384b0196e146106625780638da5cb5b1461068a57806395082d25146106aa57806395d89b41146106ca578063a40bee50146106df578063a9059cbb14610703578063a9f8d18114610723578063b8e387ce1461073a578063b8f82b261461074f578063c4f59f9b1461076f578063cbe52ae314610784578063d505accf146107a4578063da88ecb4146107c4578063dd62ed3e146107d9578063e016e44b146107f9578063e30c39781461082d578063ea64a8201461084d578063ef5cfb8c1461088f578063f8b2f991146108af578063fa5a4f06146105c4578063fa6db1bc146108c4578063fbfa77cf146108f857600080fd5b3661024457005b600080fd5b34801561025557600080fd5b5061025e61092c565b60405161026b9190614e1c565b60405180910390f35b34801561028057600080fd5b506102896109be565b60405161026b9190614e74565b3480156102a257600080fd5b506102b66102b1366004614eaa565b6109cd565b005b3480156102c457600080fd5b506102d86102d3366004614ef5565b610ad2565b604051901515815260200161026b565b3480156102f457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161026b9190614f21565b34801561033557600080fd5b5061033f61271081565b60405190815260200161026b565b34801561035957600080fd5b5061036d610368366004614f35565b610aec565b60405161026b9190614f83565b34801561038657600080fd5b5061033f610bf9565b61033f61039d366004614f96565b610c08565b3480156103ae57600080fd5b506102d86103bd366004614fdc565b610d51565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161026b565b34801561041457600080fd5b5061033f610dcf565b34801561042957600080fd5b50670de0b6b3a764000061033f565b34801561044457600080fd5b506102b6610dd9565b34801561045957600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048d57600080fd5b506102b6610e0d565b3480156104a257600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d657600080fd5b506101345460ff166102d8565b3480156104ef57600080fd5b506105306104fe36600461501d565b6101996020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026b565b34801561055c57600080fd5b5061033f61056b366004614f35565b610eb8565b34801561057c57600080fd5b5061033f61058b366004615056565b610ed3565b34801561059c57600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d057600080fd5b506102d86105df366004614f35565b611028565b3480156105f057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b5061033f610633366004614f35565b611104565b34801561064457600080fd5b506102b6611122565b34801561065957600080fd5b506102b6611297565b34801561066e57600080fd5b506106776112c9565b60405161026b97969594939291906150b5565b34801561069657600080fd5b5060005461031c906001600160a01b031681565b3480156106b657600080fd5b5061033f68327cb2734119d3b7a9601e1b81565b3480156106d657600080fd5b5061025e611367565b3480156106eb57600080fd5b506106f4611376565b60405161026b9392919061513b565b34801561070f57600080fd5b506102d861071e366004614ef5565b61142b565b34801561072f57600080fd5b5061033f61019a5481565b34801561074657600080fd5b506102b661149d565b34801561075b57600080fd5b5061033f61076a366004614ef5565b611686565b34801561077b57600080fd5b506102896116c1565b34801561079057600080fd5b5061033f61079f366004614ef5565b6116cb565b3480156107b057600080fd5b506102b66107bf36600461518c565b6116ff565b3480156107d057600080fd5b5061036d611863565b3480156107e557600080fd5b5061033f6107f436600461501d565b611935565b34801561080557600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561083957600080fd5b5060015461031c906001600160a01b031681565b34801561085957600080fd5b50610530610868366004614f35565b61019b602052600090815260409020546001600160801b0380821691600160801b90041682565b34801561089b57600080fd5b5061036d6108aa366004614f35565b611960565b3480156108bb57600080fd5b5061036d611a27565b3480156108d057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561090457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60606005805461093b906151fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610967906151fd565b80156109b45780601f10610989576101008083540402835291602001916109b4565b820191906000526020600020905b81548152906001019060200180831161099757829003601f168201915b5050505050905090565b60606109c8611a98565b905090565b6000546001600160a01b03163314610a005760405162461bcd60e51b81526004016109f790615231565b60405180910390fd5b8115610ab1576001600160a01b038316151580610a1a5750805b610a5e5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016109f7565b600080546040516001600160a01b038087169392169160008051602061563b83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b600033610ae0818585611cc7565b60019150505b92915050565b60606000610af8611dec565b905080516001600160401b03811115610b1357610b13615266565b604051908082528060200260200182016040528015610b3c578160200160208202803683370190505b50915060005b8151811015610bf2576101996000838381518110610b6257610b6261527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110610bdf57610bdf61527c565b6020908102919091010152600101610b42565b5050919050565b6004546001600160f81b031690565b600454600090600119600160f81b90910460ff1601610c395760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610c5784611028565b610c7657836040516315d57ce360e31b81526004016109f79190614f21565b82600003610c9757604051630a907f2f60e41b815260040160405180910390fd5b610ca2843385611e65565b610cac8484611ecc565b905081811015610cd3578082604051635e38f95d60e11b81526004016109f79291906152c9565b610cdd8582612058565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610d2c9291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b179055949350505050565b600454600090600119600160f81b90910460ff1601610d825760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b17905533610da385828561216f565b610dae8585856121e9565b6001915050600480546001600160f81b0316600160f81b1790559392505050565b60006109c861240b565b6000546001600160a01b03163314610e035760405162461bcd60e51b81526004016109f790615231565b610e0b612415565b565b6001546001600160a01b0316338114610e685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016109f7565b600080546040516001600160a01b038085169392169160008051602061563b83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6001600160a01b031660009081526002602052604090205490565b600454600090600119600160f81b90910460ff1601610f045760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610f2284611028565b610f4157836040516388a5056160e01b81526004016109f79190614f21565b84600003610f625760405163c3d83b0760e01b815260040160405180910390fd5b8115610f7757610f723086612462565b610f81565b610f813386612462565b610f8c8685876125db565b905082811015610fb35780836040516305ff726560e51b81526004016109f79291906152c9565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c88856040516110029291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b17905595945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061107157506001600160a01b038216155b80610ae65750604051630daf9c2160e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c210906110c3908590600401614f21565b602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae691906152d7565b6001600160a01b0381166000908152609f6020526040812054610ae6565b600154600160a81b900460ff1615808015611148575060018054600160a01b900460ff16105b8061116f575061115730612781565b15801561116f575060018054600160a01b900460ff16145b6111d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f7565b6001805460ff60a01b1916600160a01b17905580156111ff576001805460ff60a81b1916600160a81b1790555b611245604051806040016040528060068152602001650535920474c560d41b81525060405180604001604052806006815260200165053592d474c560d41b815250612790565b61124d61149d565b8015611294576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6000546001600160a01b031633146112c15760405162461bcd60e51b81526004016109f790615231565b610e0b6127cb565b600060608060008060006060606b546000801b1480156112e95750606c54155b61132d5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109f7565b611335612809565b61133d612818565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606006805461093b906151fd565b600080600060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142091906152f4565b925092509250909192565b600454600090600119600160f81b90910460ff160161145c5760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790553361147d8185856121e9565b6001915050600480546001600160f81b0316600160f81b17905592915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115219190615311565b905060005b8181101561168257604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611609908490600401614f21565b602060405180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a91906152d7565b1561167957611679817f0000000000000000000000000000000000000000000000000000000000000000612827565b50600101611526565b5050565b600061169183611028565b6116b057826040516315d57ce360e31b81526004016109f79190614f21565b6116ba83836128e7565b9392505050565b60606109c8611dec565b60006116d683611028565b6116f557826040516388a5056160e01b81526004016109f79190614f21565b6116ba8383612aac565b8342111561174f5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016109f7565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861177e8c612c59565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006117d982612c81565b905060006117e982878787612cae565b9050896001600160a01b0316816001600160a01b03161461184c5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016109f7565b6118578a8a8a611cc7565b50505050505050505050565b6060600061186f611dec565b905080516001600160401b0381111561188a5761188a615266565b6040519080825280602002602001820160405280156118b3578160200160208202803683370190505b50915060005b81518110156119305761019b60008383815181106118d9576118d961527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061191d5761191d61527c565b60209081029190910101526001016118b9565b505090565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b600454606090600119600160f81b90910460ff16016119915760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790556119ae612cd6565b6119b782612d1d565b6119c18283612d28565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f6119f6611dec565b83604051611a05929190615347565b60405180910390a2600480546001600160f81b0316600160f81b179055919050565b600454606090600119600160f81b90910460ff1601611a585760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055611a75612cd6565b611a7d612fc9565b600480546001600160f81b0316600160f81b17905592915050565b6040805160008082526020820190925260609150905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b329190615311565b905060005b81811015611c8957604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611c1a908490600401614f21565b602060405180830381865afa158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b91906152d7565b8015611c6e5750611c6c848261324a565b155b15611c8057611c7d84826132a9565b93505b50600101611b37565b50611cb4827f00000000000000000000000000000000000000000000000000000000000000006132a9565b9150611cc18260006132a9565b91505090565b6001600160a01b038316611d295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f7565b6001600160a01b038216611d8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f7565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e4257611e4261527c565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6001600160a01b038316611eb157803414610acd5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016109f7565b8015610acd57610acd6001600160a01b03841683308461338e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611f0e575080610ae6565b6001600160a01b038316611fb7576040516353a8aa0360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906353a8aa03903490611f6d9060009081906004016152c9565b60206040518083038185885af1158015611f8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb09190615311565b9050610ae6565b60405163364e231160e01b81526001600160a01b0384811660048301526024820184905260006044830181905260648301527f0000000000000000000000000000000000000000000000000000000000000000169063364e2311906084016020604051808303816000875af1158015612034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190615311565b6001600160a01b0382166120ae5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109f7565b6120ba600083836133f9565b6120c38161340b565b600480546000906120de9084906001600160f81b0316615382565b92506101000a8154816001600160f81b0302191690836001600160f81b031602179055508060026000846001600160a01b03166001600160a01b03168152602001908152602001600020600082825461213791906153a9565b90915550506040518181526001600160a01b0383169060009060008051602061565b8339815191529060200160405180910390a35050565b600061217b8484611935565b905060001981146121e357818110156121d65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109f7565b6121e38484848403611cc7565b50505050565b6001600160a01b03831661224d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f7565b6001600160a01b0382166122af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f7565b816001600160a01b0316836001600160a01b03160361230a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016109f7565b6123158383836133f9565b6001600160a01b0383166000908152600260205260409020548181101561238d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109f7565b6001600160a01b038085166000908152600260205260408082208585039055918516815290812080548492906123c49084906153a9565b92505081905550826001600160a01b0316846001600160a01b031660008051602061565b833981519152846040516123fe91815260200190565b60405180910390a36121e3565b60006109c8613425565b61241d613499565b610134805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516124589190614f21565b60405180910390a1565b6001600160a01b0382166124c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109f7565b6124ce826000836133f9565b6001600160a01b038216600090815260026020526040902054818110156125425760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109f7565b6001600160a01b038316600090815260026020526040902082820390556125688261340b565b600480546000906125839084906001600160f81b03166153bc565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b031660008051602061565b83398151915284604051611ddf91815260200190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036126285750806126238385836134e3565b6116ba565b6001600160a01b0383166126d7576040516355daf2f160e11b815260048101839052600060248201526001600160a01b0385811660448301527f0000000000000000000000000000000000000000000000000000000000000000169063abb5e5e2906064016020604051808303816000875af11580156126ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d09190615311565b90506116ba565b6040516303cea95560e21b81526001600160a01b038481166004830152602482018490526000604483015285811660648301527f00000000000000000000000000000000000000000000000000000000000000001690630f3aa554906084016020604051808303816000875af1158015612755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127799190615311565b949350505050565b6001600160a01b03163b151590565b600154600160a81b900460ff166127b95760405162461bcd60e51b81526004016109f7906153dc565b6127c382826135a7565b6116826135fd565b6127d3612cd6565b610134805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861244b3390565b6060606d805461093b906151fd565b6060606e805461093b906151fd565b6001600160a01b038216612839575050565b61284b60026001600160601b0361543d565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156128a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c89190615311565b1015611682576128da8282600061363a565b611682828260001961363a565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612929575080610ae6565b6001600160a01b03831661295b577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600160048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa1580156129c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e79190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6d9190615311565b90506000612a7b868661374e565b905060008315612a9f5783612a908484615463565b612a9a919061547a565b612aa1565b815b979650505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612aee575080610ae6565b6001600160a01b038316612b20577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600060048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa158015612b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bac9190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c329190615311565b9050600081612c418487615463565b612c4b919061547a565b90506000612aa18783613b3f565b6001600160a01b0381166000908152609f602052604090208054600181018255905b50919050565b6000610ae6612c8e61240b565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612cbf87878787613e05565b91509150612ccc81613ebf565b5095945050505050565b6101345460ff1615610e0b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109f7565b611294816000614004565b60606000612d34611dec565b905080516001600160401b03811115612d4f57612d4f615266565b604051908082528060200260200182016040528015612d78578160200160208202803683370190505b50915060005b8151811015612fc1576101996000838381518110612d9e57612d9e61527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110612e1b57612e1b61527c565b602002602001018181525050828181518110612e3957612e3961527c565b6020026020010151600014612fb95760006101996000848481518110612e6157612e6161527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550612ef5838281518110612ee857612ee861527c565b6020026020010151614084565b61019b6000848481518110612f0c57612f0c61527c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316612f58919061548e565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550612fb9828281518110612f9157612f9161527c565b602002602001015185858481518110612fac57612fac61527c565b60200260200101516134e3565b600101612d7e565b505092915050565b606080612fd4611dec565b915081516001600160401b03811115612fef57612fef615266565b604051908082528060200260200182016040528015613018578160200160208202803683370190505b5090508151600003613028579091565b4361019a54146131cb574361019a55600061304161409a565b905061304b6140a4565b60005b83518110156131c557600084828151811061306b5761306b61527c565b6020908102919091018101516001600160a01b038116600090815261019b835260408082208151808301909252546001600160801b03808216808452600160801b90920416948201859052895193955090939290919083906130e6908b90899081106130d9576130d961527c565b6020026020010151614144565b6130f091906154ae565b9050816000036130ff57600191505b861561311c5761310f81886141ce565b61311990836153a9565b91505b604051806040016040528061313084614084565b6001600160801b0316815260200161315061314b84876153a9565b614084565b6001600160801b039081169091526001600160a01b038716600090815261019b60209081526040909120835193909101518216600160801b0292909116919091179055875182908990889081106131a9576131a961527c565b602002602001018181525050505050505080600101905061304e565b50509091565b60005b82518110156132455761019b60008483815181106131ee576131ee61527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b03909116908390839081106132325761323261527c565b60209081029190910101526001016131ce565b509091565b8151600090815b8181101561329e57836001600160a01b03168582815181106132755761327561527c565b60200260200101516001600160a01b03160361329657600192505050610ae6565b600101613251565b506000949350505050565b81516060906132b98160016153a9565b6001600160401b038111156132d0576132d0615266565b6040519080825280602002602001820160405280156132f9578160200160208202803683370190505b50915060005b81811015613353578481815181106133195761331961527c565b60200260200101518382815181106133335761333361527c565b6001600160a01b03909216602092830291909101909101526001016132ff565b50828282815181106133675761336761527c565b60200260200101906001600160a01b031690816001600160a01b0316815250505092915050565b6040516001600160a01b03808516602483015283166044820152606481018290526121e39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526141fd565b613401612cd6565b610acd8383614004565b60006001600160f81b0382111561342157600080fd5b5090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6134506142d2565b61345861432b565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6101345460ff16610e0b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109f7565b806000036134f057505050565b6001600160a01b038316613593576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461354b576040519150601f19603f3d011682016040523d82523d6000602084013e613550565b606091505b50509050806121e35760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016109f7565b610acd6001600160a01b038416838361435c565b600154600160a81b900460ff166135d05760405162461bcd60e51b81526004016109f7906153dc565b6135da828261437b565b61168282604051806040016040528060018152602001603160f81b8152506143d7565b600154600160a81b900460ff166136265760405162461bcd60e51b81526004016109f7906153dc565b600080546001600160a01b03191633179055565b600080846001600160a01b031663095ea7b360e01b85856040516024016136629291906154c1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136a091906154da565b6000604051808303816000865af19150503d80600081146136dd576040519150601f19603f3d011682016040523d82523d6000602084013e6136e2565b606091505b509150915081801561370c57508051158061370c57508080602001905181019061370c91906152d7565b6137475760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016109f7565b5050505050565b600061375a838361440a565b91506000821161376c5761376c6154f6565b6040516340d3096b60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906381a612d6906137bb908790600401614f21565b602060405180830381865afa1580156137d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137fc9190615311565b9050600068327cb2734119d3b7a9601e1b6138178386615463565b613821919061547a565b604051634215287360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063421528739061389490849089907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa1580156138b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d59190615311565b9050600081116139375760405162461bcd60e51b815260206004820152602760248201527f7072657669657720627579555344473a2075736467416d6f756e74206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b6000613a4b868360007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561399e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c29190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a449190615311565b6001614542565b90506000613a5a8787846147b9565b9050600068327cb2734119d3b7a9601e1b613a758684615463565b613a7f919061547a565b604051634215287360e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634215287390613af29084908c907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa158015613b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b339190615311565b98975050505050505050565b6000613b6b7f00000000000000000000000000000000000000000000000000000000000000008361440a565b915060008211613b7d57613b7d6154f6565b604051632c668ec160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632c668ec190613bce90879087906004016154c1565b602060405180830381865afa158015613beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0f9190615311565b905060008111613c785760405162461bcd60e51b815260206004820152602e60248201527f707265766965772073656c6c555344473a20726564656d7074696f6e416d6f7560448201526d06e74206d757374206265203e20360941b60648201526084016109f7565b6000613d8b8585867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d029190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d849190615311565b6000614542565b90506000613d9a8684846147b9565b905060008111613dfc5760405162461bcd60e51b815260206004820152602760248201527f707265766965772073656c6c555344473a20616d6f756e744f7574206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b95945050505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115613e325750600090506003613eb6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613e86573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613eaf57600060019250925050613eb6565b9150600090505b94509492505050565b6000816004811115613ed357613ed3615125565b03613edb5750565b6001816004811115613eef57613eef615125565b03613f375760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016109f7565b6002816004811115613f4b57613f4b615125565b03613f985760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f7565b6003816004811115613fac57613fac615125565b036112945760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f7565b60008061400f612fc9565b9150915081516000036140225750505050565b6001600160a01b0384161580159061404357506001600160a01b0384163014155b15614053576140538483836147dd565b6001600160a01b0383161580159061407457506001600160a01b0383163014155b156121e3576121e38383836147dd565b60006001600160801b0382111561342157600080fd5b60006109c8610bf9565b60405163185b800160e11b815260006004820181905260248201819052600160448301819052606483018190526084830182905260a483015260c48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906330b700029060e401600060405180830381600087803b15801561413057600080fd5b505af11580156121e3573d6000803e3d6000fd5b60006001600160a01b038216156141c7576040516370a0823160e01b81526001600160a01b038316906370a0823190614181903090600401614f21565b602060405180830381865afa15801561419e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141c29190615311565b610ae6565b4792915050565b6000806141e3670de0b6b3a764000085615463565b90508281816141f4576141f4615427565b04949350505050565b6000614252826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614a1a9092919063ffffffff16565b905080516000148061427357508080602001905181019061427391906152d7565b610acd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109f7565b6000806142dd612809565b8051909150156142f4578051602090910120919050565b606b5480156143035792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080614336612818565b80519091501561434d578051602090910120919050565b606c5480156143035792915050565b610acd8363a9059cbb60e01b84846040516024016133c29291906154c1565b600154600160a81b900460ff166143a45760405162461bcd60e51b81526004016109f7906153dc565b60056143b0838261557b565b5060066143bd828261557b565b5050600480546001600160f81b0316600160f81b17905550565b600154600160a81b900460ff166144005760405162461bcd60e51b81526004016109f7906153dc565b6116828282614a29565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663523fba7f856040518263ffffffff1660e01b81526004016144599190614f21565b602060405180830381865afa158015614476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061449a9190615311565b9050600083856001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016144eb9190614f21565b602060405180830381865afa158015614508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452c9190615311565b61453691906153a9565b9050613dfc82826154ae565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f392eb36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145c691906152d7565b6145d15750826147af565b604051631aa4ace560e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631aa4ace590614620908b90600401614f21565b602060405180830381865afa15801561463d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146619190615311565b90508581101561467257600061467c565b61467c86826154ae565b9050600061468a88836153a9565b9050836146ad578188116146a7576146a288836154ae565b6146aa565b60005b90505b60006146b98a89614a7a565b9050806000036146ce578693505050506147af565b60008184116146e6576146e184836154ae565b6146f0565b6146f082856154ae565b9050600082841161470a5761470584846154ae565b614714565b61471483856154ae565b90508181101561475d5760008361472b848b615463565b614735919061547a565b905089811161474d57614748818b6154ae565b614750565b60005b96505050505050506147af565b6000600261476b83856153a9565b614775919061547a565b9050838111156147825750825b60008461478f838c615463565b614799919061547a565b90506147a5818c6153a9565b9750505050505050505b9695505050505050565b6000806127106147c984826154ae565b6147d39086615463565b613dfc919061547a565b6001600160a01b038316158015906147fe57506001600160a01b0383163014155b61480a5761480a6154f6565b600061481584614c3c565b905060005b83518110156137475760008482815181106148375761483761527c565b6020026020010151905060008483815181106148555761485561527c565b6020908102919091018101516001600160a01b03808516600090815261019984526040808220928c168252919093528220549092506001600160801b0316908190036148b1576148a56001614084565b6001600160801b031690505b818114806148bd575081155b156148ca57505050614a12565b60006148d682846154ae565b905060006148e48783614c47565b6001600160a01b03868116600090815261019960209081526040808320938f168352929052908120549192509061492c908390600160801b90046001600160801b03166153a9565b9050604051806040016040528061494287614084565b6001600160801b0316815260200161495983614084565b6001600160801b03168152506101996000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b60010161481a565b60606127798484600085614c65565b600154600160a81b900460ff16614a525760405162461bcd60e51b81526004016109f7906153dc565b606d614a5e838261557b565b50606e614a6b828261557b565b50506000606b819055606c5550565b600080827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b009190615311565b614b0a91906154ae565b905080600003614b1e576000915050610ae6565b604051632acbceb560e21b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab2f3ad490614b6d908890600401614f21565b602060405180830381865afa158015614b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bae9190615311565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dc8f5fac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c329190615311565b6147d38383615463565b6000610ae682610eb8565b600080614c548385615463565b9050670de0b6b3a7640000816141f4565b606082471015614cc65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109f7565b600080866001600160a01b03168587604051614ce291906154da565b60006040518083038185875af1925050503d8060008114614d1f576040519150601f19603f3d011682016040523d82523d6000602084013e614d24565b606091505b5091509150612aa18783838760608315614d9d578251600003614d9657614d4a85612781565b614d965760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f7565b5081612779565b6127798383815115614db25781518083602001fd5b8060405162461bcd60e51b81526004016109f79190614e1c565b60005b83811015614de7578181015183820152602001614dcf565b50506000910152565b60008151808452614e08816020860160208601614dcc565b601f01601f19169290920160200192915050565b6020815260006116ba6020830184614df0565b60008151808452602080850194506020840160005b83811015614e695781516001600160a01b031687529582019590820190600101614e44565b509495945050505050565b6020815260006116ba6020830184614e2f565b6001600160a01b038116811461129457600080fd5b801515811461129457600080fd5b600080600060608486031215614ebf57600080fd5b8335614eca81614e87565b92506020840135614eda81614e9c565b91506040840135614eea81614e9c565b809150509250925092565b60008060408385031215614f0857600080fd5b8235614f1381614e87565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215614f4757600080fd5b81356116ba81614e87565b60008151808452602080850194506020840160005b83811015614e6957815187529582019590820190600101614f67565b6020815260006116ba6020830184614f52565b60008060008060808587031215614fac57600080fd5b8435614fb781614e87565b93506020850135614fc781614e87565b93969395505050506040820135916060013590565b600080600060608486031215614ff157600080fd5b8335614ffc81614e87565b9250602084013561500c81614e87565b929592945050506040919091013590565b6000806040838503121561503057600080fd5b823561503b81614e87565b9150602083013561504b81614e87565b809150509250929050565b600080600080600060a0868803121561506e57600080fd5b853561507981614e87565b945060208601359350604086013561509081614e87565b92506060860135915060808601356150a781614e9c565b809150509295509295909350565b60ff60f81b8816815260e0602082015260006150d460e0830189614df0565b82810360408401526150e68189614df0565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506151178185614f52565b9a9950505050505050505050565b634e487b7160e01b600052602160045260246000fd5b606081016002851061515d57634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff8116811461129457600080fd5b600080600080600080600060e0888a0312156151a757600080fd5b87356151b281614e87565b965060208801356151c281614e87565b9550604088013594506060880135935060808801356151e08161517d565b9699959850939692959460a0840135945060c09093013592915050565b600181811c9082168061521157607f821691505b602082108103612c7b57634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b6000602082840312156152e957600080fd5b81516116ba81614e9c565b60006020828403121561530657600080fd5b81516116ba8161517d565b60006020828403121561532357600080fd5b5051919050565b60006020828403121561533c57600080fd5b81516116ba81614e87565b60408152600061535a6040830185614e2f565b8281036020840152613dfc8185614f52565b634e487b7160e01b600052601160045260246000fd5b6001600160f81b038181168382160190808211156153a2576153a261536c565b5092915050565b80820180821115610ae657610ae661536c565b6001600160f81b038281168282160390808211156153a2576153a261536c565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168061545757615457615427565b92169190910492915050565b8082028115828204841417610ae657610ae661536c565b60008261548957615489615427565b500490565b6001600160801b038281168282160390808211156153a2576153a261536c565b81810381811115610ae657610ae661536c565b6001600160a01b03929092168252602082015260400190565b600082516154ec818460208701614dcc565b9190910192915050565b634e487b7160e01b600052600160045260246000fd5b9283526001600160a01b03918216602084015216604082015260600190565b601f821115610acd576000816000526020600020601f850160051c810160208610156155545750805b601f850160051c820191505b8181101561557357828155600101615560565b505050505050565b81516001600160401b0381111561559457615594615266565b6155a8816155a284546151fd565b8461552b565b602080601f8311600181146155dd57600084156155c55750858301515b600019600386901b1c1916600185901b178555615573565b600085815260208120601f198616915b8281101561560c578886015182559484019460019091019084016155ed565b508582101561562a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a281a62c72bdfdc638fd9261ab231645fe0251bedcf66891880f86ea88627a0864736f6c63430008170033";
1211
1211
 
1212
1212
  type PendleGlpSYConstructorParams =
1213
1213
  | [signer?: Signer]