BNB Price: $602.48 (+1.25%)
 

Overview

BNB Balance

BNB Smart Chain LogoBNB Smart Chain LogoBNB Smart Chain Logo0 BNB

BNB Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Dag Swap By Orde...1033441102026-06-10 3:36:093 secs ago1781062569IN
OKX: Dex Router 2
0 BNB0.000012280.055
Dag Swap By Orde...1033441082026-06-10 3:36:084 secs ago1781062568IN
OKX: Dex Router 2
0 BNB0.000022950.05215
Dag Swap By Orde...1033441082026-06-10 3:36:084 secs ago1781062568IN
OKX: Dex Router 2
0 BNB0.000021840.09778125
Dag Swap By Orde...1033441082026-06-10 3:36:084 secs ago1781062568IN
OKX: Dex Router 2
0 BNB0.000079530.10352008
Dag Swap By Orde...1033441082026-06-10 3:36:084 secs ago1781062568IN
OKX: Dex Router 2
0 BNB0.00003090.15
Dag Swap By Orde...1033441072026-06-10 3:36:084 secs ago1781062568IN
OKX: Dex Router 2
0 BNB0.000051040.055001
Dag Swap By Orde...1033441072026-06-10 3:36:084 secs ago1781062568IN
OKX: Dex Router 2
0 BNB0.000051560.25
Dag Swap By Orde...1033441062026-06-10 3:36:084 secs ago1781062568IN
OKX: Dex Router 2
0 BNB0.000031030.15
Dag Swap To1033441052026-06-10 3:36:075 secs ago1781062567IN
OKX: Dex Router 2
0 BNB0.000104850.1043
Dag Swap By Orde...1033441022026-06-10 3:36:066 secs ago1781062566IN
OKX: Dex Router 2
0 BNB0.000024670.11042142
Dag Swap By Orde...1033441012026-06-10 3:36:057 secs ago1781062565IN
OKX: Dex Router 2
0 BNB0.000025950.10352008
Dag Swap By Orde...1033441002026-06-10 3:36:057 secs ago1781062565IN
OKX: Dex Router 2
0 BNB0.000018960.05
Dag Swap By Orde...1033441002026-06-10 3:36:057 secs ago1781062565IN
OKX: Dex Router 2
0 BNB0.000024190.10352008
Dag Swap By Orde...1033440982026-06-10 3:36:048 secs ago1781062564IN
OKX: Dex Router 2
0 BNB0.000027690.11042142
Dag Swap By Orde...1033440982026-06-10 3:36:048 secs ago1781062564IN
OKX: Dex Router 2
0 BNB0.000044280.15
Dag Swap By Orde...1033440972026-06-10 3:36:039 secs ago1781062563IN
OKX: Dex Router 2
0 BNB0.000015290.05
Dag Swap By Orde...1033440972026-06-10 3:36:039 secs ago1781062563IN
OKX: Dex Router 2
0 BNB0.000013790.055001
Dag Swap By Orde...1033440972026-06-10 3:36:039 secs ago1781062563IN
OKX: Dex Router 2
0 BNB0.000073810.25
Dag Swap By Orde...1033440972026-06-10 3:36:039 secs ago1781062563IN
OKX: Dex Router 2
0 BNB0.000060550.11042142
Dag Swap By Orde...1033440962026-06-10 3:36:039 secs ago1781062563IN
OKX: Dex Router 2
0 BNB0.000040340.05521071
Dag Swap By Orde...1033440952026-06-10 3:36:039 secs ago1781062563IN
OKX: Dex Router 2
0 BNB0.000121940.10136095
Dag Swap By Orde...1033440952026-06-10 3:36:039 secs ago1781062563IN
OKX: Dex Router 2
0 BNB0.000031030.15
Dag Swap By Orde...1033440922026-06-10 3:36:0111 secs ago1781062561IN
OKX: Dex Router 2
0 BNB0.000023130.10136095
Dag Swap By Orde...1033440922026-06-10 3:36:0111 secs ago1781062561IN
OKX: Dex Router 2
0 BNB0.000031030.15
Dag Swap By Orde...1033440892026-06-10 3:36:0012 secs ago1781062560IN
OKX: Dex Router 2
0 BNB0.00003090.15
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
1033440822026-06-10 3:35:5715 secs ago1781062557
OKX: Dex Router 2
0.00985182 BNB
1033440822026-06-10 3:35:5715 secs ago1781062557
OKX: Dex Router 2
0.0000495 BNB
1033440822026-06-10 3:35:5715 secs ago1781062557
OKX: Dex Router 2
0.00990133 BNB
1033440812026-06-10 3:35:5616 secs ago1781062556
OKX: Dex Router 2
0.00566194 BNB
1033440812026-06-10 3:35:5616 secs ago1781062556
OKX: Dex Router 2
0.00566194 BNB
1033440692026-06-10 3:35:5121 secs ago1781062551
OKX: Dex Router 2
0.00100119 BNB
1033440692026-06-10 3:35:5121 secs ago1781062551
OKX: Dex Router 2
0.00100119 BNB
1033440592026-06-10 3:35:4626 secs ago1781062546
OKX: Dex Router 2
0.1791 BNB
1033440592026-06-10 3:35:4626 secs ago1781062546
OKX: Dex Router 2
0.0009 BNB
1033440542026-06-10 3:35:4428 secs ago1781062544
OKX: Dex Router 2
0.06066416 BNB
1033440542026-06-10 3:35:4428 secs ago1781062544
OKX: Dex Router 2
0.00030484 BNB
1033440542026-06-10 3:35:4428 secs ago1781062544
OKX: Dex Router 2
0.06096901 BNB
1033440342026-06-10 3:35:3537 secs ago1781062535
OKX: Dex Router 2
0.30308992 BNB
1033440342026-06-10 3:35:3537 secs ago1781062535
OKX: Dex Router 2
0.00152306 BNB
1033440342026-06-10 3:35:3537 secs ago1781062535
OKX: Dex Router 2
0.30461298 BNB
1033440312026-06-10 3:35:3438 secs ago1781062534
OKX: Dex Router 2
0.04975 BNB
1033440312026-06-10 3:35:3438 secs ago1781062534
OKX: Dex Router 2
0.00025 BNB
1033440312026-06-10 3:35:3438 secs ago1781062534
OKX: Dex Router 2
0.0499909 BNB
1033440312026-06-10 3:35:3438 secs ago1781062534
OKX: Dex Router 2
0.00005024 BNB
1033440312026-06-10 3:35:3438 secs ago1781062534
OKX: Dex Router 2
0.00020096 BNB
1033440312026-06-10 3:35:3438 secs ago1781062534
OKX: Dex Router 2
0.05024212 BNB
1033440292026-06-10 3:35:3339 secs ago1781062533
OKX: Dex Router 2
0.0095883 BNB
1033440292026-06-10 3:35:3339 secs ago1781062533
OKX: Dex Router 2
0.0000385 BNB
1033440292026-06-10 3:35:3339 secs ago1781062533
OKX: Dex Router 2
0.00962681 BNB
1033440152026-06-10 3:35:2745 secs ago1781062527
OKX: Dex Router 2
1.44219092 BNB
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

DexRouter

Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled
Yes with 1 runs
Other Settings
london EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"name":"SafeTransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fromToken","type":"address"},{"indexed":false,"internalType":"address","name":"toToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"fromAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnAmount","type":"uint256"}],"name":"OrderRecord","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"SwapOrderId","type":"event"},{"inputs":[],"name":"_APPROVE_PROXY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_WNATIVE_RELAY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"components":[{"internalType":"address[]","name":"mixAdapters","type":"address[]"},{"internalType":"address[]","name":"assetTo","type":"address[]"},{"internalType":"uint256[]","name":"rawData","type":"uint256[]"},{"internalType":"bytes[]","name":"extraData","type":"bytes[]"},{"internalType":"uint256","name":"fromToken","type":"uint256"}],"internalType":"struct IDexRouter.RouterPath[]","name":"paths","type":"tuple[]"}],"name":"dagSwapByOrderId","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"components":[{"internalType":"address[]","name":"mixAdapters","type":"address[]"},{"internalType":"address[]","name":"assetTo","type":"address[]"},{"internalType":"uint256[]","name":"rawData","type":"uint256[]"},{"internalType":"bytes[]","name":"extraData","type":"bytes[]"},{"internalType":"uint256","name":"fromToken","type":"uint256"}],"internalType":"struct IDexRouter.RouterPath[]","name":"paths","type":"tuple[]"}],"name":"dagSwapTo","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"internalType":"uint256[]","name":"batchesAmount","type":"uint256[]"},{"components":[{"internalType":"address[]","name":"mixAdapters","type":"address[]"},{"internalType":"address[]","name":"assetTo","type":"address[]"},{"internalType":"uint256[]","name":"rawData","type":"uint256[]"},{"internalType":"bytes[]","name":"extraData","type":"bytes[]"},{"internalType":"uint256","name":"fromToken","type":"uint256"}],"internalType":"struct IDexRouter.RouterPath[][]","name":"batches","type":"tuple[][]"},{"components":[{"internalType":"uint256","name":"pathIndex","type":"uint256"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"toTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"},{"internalType":"bool","name":"isPushOrder","type":"bool"},{"internalType":"bytes","name":"extension","type":"bytes"}],"internalType":"struct PMMLib.PMMSwapRequest[]","name":"extraData","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"}],"name":"smartSwapByInvest","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"internalType":"uint256[]","name":"batchesAmount","type":"uint256[]"},{"components":[{"internalType":"address[]","name":"mixAdapters","type":"address[]"},{"internalType":"address[]","name":"assetTo","type":"address[]"},{"internalType":"uint256[]","name":"rawData","type":"uint256[]"},{"internalType":"bytes[]","name":"extraData","type":"bytes[]"},{"internalType":"uint256","name":"fromToken","type":"uint256"}],"internalType":"struct IDexRouter.RouterPath[][]","name":"batches","type":"tuple[][]"},{"components":[{"internalType":"uint256","name":"pathIndex","type":"uint256"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"toTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"},{"internalType":"bool","name":"isPushOrder","type":"bool"},{"internalType":"bytes","name":"extension","type":"bytes"}],"internalType":"struct PMMLib.PMMSwapRequest[]","name":"","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"refundTo","type":"address"}],"name":"smartSwapByInvestWithRefund","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"internalType":"uint256[]","name":"batchesAmount","type":"uint256[]"},{"components":[{"internalType":"address[]","name":"mixAdapters","type":"address[]"},{"internalType":"address[]","name":"assetTo","type":"address[]"},{"internalType":"uint256[]","name":"rawData","type":"uint256[]"},{"internalType":"bytes[]","name":"extraData","type":"bytes[]"},{"internalType":"uint256","name":"fromToken","type":"uint256"}],"internalType":"struct IDexRouter.RouterPath[][]","name":"batches","type":"tuple[][]"},{"components":[{"internalType":"uint256","name":"pathIndex","type":"uint256"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"toTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"},{"internalType":"bool","name":"isPushOrder","type":"bool"},{"internalType":"bytes","name":"extension","type":"bytes"}],"internalType":"struct PMMLib.PMMSwapRequest[]","name":"","type":"tuple[]"}],"name":"smartSwapByOrderId","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"internalType":"uint256[]","name":"batchesAmount","type":"uint256[]"},{"components":[{"internalType":"address[]","name":"mixAdapters","type":"address[]"},{"internalType":"address[]","name":"assetTo","type":"address[]"},{"internalType":"uint256[]","name":"rawData","type":"uint256[]"},{"internalType":"bytes[]","name":"extraData","type":"bytes[]"},{"internalType":"uint256","name":"fromToken","type":"uint256"}],"internalType":"struct IDexRouter.RouterPath[][]","name":"batches","type":"tuple[][]"},{"components":[{"internalType":"uint256","name":"pathIndex","type":"uint256"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"toTokenAmountMax","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"},{"internalType":"bool","name":"isPushOrder","type":"bool"},{"internalType":"bytes","name":"extension","type":"bytes"}],"internalType":"struct PMMLib.PMMSwapRequest[]","name":"","type":"tuple[]"}],"name":"smartSwapTo","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"rawdata","type":"uint256"}],"name":"swapWrap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"}],"name":"swapWrapToWithBaseRequest","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"uniswapV3SwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"receiver","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minReturn","type":"uint256"},{"internalType":"uint256[]","name":"pools","type":"uint256[]"}],"name":"uniswapV3SwapTo","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"internalType":"uint256[]","name":"pools","type":"uint256[]"}],"name":"uniswapV3SwapToWithBaseRequest","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"srcToken","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minReturn","type":"uint256"},{"internalType":"bytes32[]","name":"pools","type":"bytes32[]"}],"name":"unxswapByOrderId","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"srcToken","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minReturn","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32[]","name":"pools","type":"bytes32[]"}],"name":"unxswapTo","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"components":[{"internalType":"uint256","name":"fromToken","type":"uint256"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"fromTokenAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"internalType":"struct IDexRouter.BaseRequest","name":"baseRequest","type":"tuple"},{"internalType":"bytes32[]","name":"pools","type":"bytes32[]"}],"name":"unxswapToWithBaseRequest","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
608060405234801561001057600080fd5b50615ffb80620000216000396000f3fe6080604052600436106100dd5760003560e01c806301617fab1461013457806303b87e5f1461014757806308298b5a1461016d5780630c307f76146101805780630d5f0e3b1461019357806344014e98146101a657806354fd4d50146101b9578063591b3d08146102065780636aa476451461021957806373679b6b1461024e5780639871efa41461027057806398d2ac6214610283578063b80c2f0914610296578063b8815477146102a9578063e0af3616146102bc578063e99bfa95146102de578063f2c42696146102f1578063fa461e331461030457600080fd5b3661012f5732330361012d5760405162461bcd60e51b81526020600482015260146024820152731155120819195c1bdcda5d081c995a9958dd195960621b60448201526064015b60405180910390fd5b005b600080fd5b61012d610142366004614f50565b610324565b61015a610155366004614ffa565b610347565b6040519081526020015b60405180910390f35b61015a61017b3660046150c6565b6103f8565b61015a61018e366004615138565b6104ee565b61015a6101a13660046151aa565b610710565b61015a6101b4366004615138565b61076b565b3480156101c557600080fd5b506101f9604051806040016040528060148152602001731d8c4b8c0b8e0b5cdd59999a5e0b58dbdb5c185d60621b81525081565b604051610164919061523d565b61015a610214366004615830565b610889565b34801561022557600080fd5b5061024173d99cae3fac551f6b6ba7b9f19bdd316951eeee9881565b60405161016491906158f2565b34801561025a57600080fd5b50610241600080516020615f8683398151915281565b61015a61027e3660046151aa565b610b87565b61012d610291366004615906565b610ba1565b61015a6102a4366004615945565b610ce6565b61015a6102b7366004615138565b610d43565b3480156102c857600080fd5b50610241600080516020615f2683398151915281565b61015a6102ec3660046159fb565b610f09565b61015a6102ff366004615aab565b610f19565b34801561031057600080fd5b5061012d61031f366004615b05565b610f33565b600160ff1b81166001600160801b0382166103418433848461117d565b50505050565b600087608001354281101561036e5760405162461bcd60e51b815260040161012490615b84565b6040518b8152600080516020615fa68339815191529060200160405180910390a16103e933808c6103a4368e90038e018e615bac565b8c8c808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506103e492508d91508e9050615bc8565b611533565b9b9a5050505050505050505050565b60405160a087901c8152600090600080516020615fa68339815191529060200160405180910390a1600080610431600034118686611687565b9150915060006104408a611963565b9050826001600160a01b0316816001600160a01b0316148061048a57506001600160a01b03811615801561048a57506001600160a01b038316600080516020615f46833981519152145b6104d05760405162461bcd60e51b81526020600482015260176024820152760eadcf0e6eec2e07440e8ded6cadc40dad2e6dac2e8c6d604b1b6044820152606401610124565b6104e083838b8b338c8c8c61196f565b9a9950505050505050505050565b60008360800135428110156105155760405162461bcd60e51b815260040161012490615b84565b826105565760405162461bcd60e51b815260206004820152601160248201527007061746873206d757374206265203e203607c1b6044820152606401610124565b604051878152600080516020615fa68339815191529060200160405180910390a16001600160a01b0386161561058c578561058e565b335b955060008061059b611a37565b915091506000600760f91b878760008181106105b9576105b9615bd5565b90506020028101906105cb9190615beb565b608001351690506105f6836105e08a35611963565b6105f060408c0160208d01615c0b565b8461201d565b61060f61060960408a0160208b01615c0b565b8a612113565b945060008061063c85338d8d6040013588600001518f60200160208101906106379190615c0b565b612193565b9150915061064e8a8a8a3333876121dd565b61066d858c838d60200160208101906106679190615c0b565b8861244c565b508661068861068260408d0160208e01615c0b565b8d612113565b6106929190615c3e565b965089606001358710156106b85760405162461bcd60e51b815260040161012490615c57565b600080516020615f668339815191526106d18b35611963565b6106e160408d0160208e01615c0b565b328d604001358b6040516106f9959493929190615c87565b60405180910390a150505050505095945050505050565b60405160a086901c8152600090600080516020615fa68339815191529060200160405180910390a160008061074960003411868661298a565b9150915061075d338984848b8b8b8b612c5c565b925050505b95945050505050565b60008360800135428110156107925760405162461bcd60e51b815260040161012490615b84565b604051878152600080516020615fa68339815191529060200160405180910390a16000806107c460003411878761298a565b90925090506001600160a01b0382166107dd8835611963565b6001600160a01b031614801561081357506001600160a01b0381166108086040890160208a01615c0b565b6001600160a01b0316145b61085b5760405162461bcd60e51b81526020600482015260196024820152780eadcd2e6eec2e0ac667440e8ded6cadc40dad2e6dac2e8c6d603b1b6044820152606401610124565b61087c33896001600160a01b031684848b604001358c606001358c8c612c5c565b9998505050505050505050565b60008660800151428110156108b05760405162461bcd60e51b815260040161012490615b84565b60006108bf8960000151611963565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016109255760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21039b7bab931b2903a37b5b2b760611b6044820152606401610124565b6001600160a01b0384166109745760405162461bcd60e51b8152602060048201526016602482015275726566756e64546f206973206164647265737328302960501b6044820152606401610124565b6001600160a01b0385166109bd5760405162461bcd60e51b815260206004820152601060248201526f746f206973206164647265737328302960801b6044820152606401610124565b6000896040015111610a085760405162461bcd60e51b8152602060048201526014602482015273066726f6d546f6b656e416d6f756e7420697320360641b6044820152606401610124565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610a379030906004016158f2565b602060405180830381865afa158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a789190615cbb565b905060005b8951811015610adf578a60400151828b8381518110610a9e57610a9e615bd5565b6020026020010151610ab09190615cd4565b610aba9190615ceb565b8a8281518110610acc57610acc615bd5565b6020908102919091010152600101610a7d565b5060408a0181905260208a0151610af69087612113565b9350610b068a8a8a30898b612d2c565b83610b158b6020015188612113565b610b1f9190615c3e565b93508960600151841015610b455760405162461bcd60e51b815260040161012490615c57565b600080516020615f66833981519152828b60200151328d6040015188604051610b72959493929190615c87565b60405180910390a15050509695505050505050565b6000610b978686863387876103f8565b9695505050505050565b806080013542811015610bc65760405162461bcd60e51b815260040161012490615b84565b600080610bd38435611963565b90506001600160a01b038116600080516020615f46833981519152148015610c205750600080516020615f26833981519152610c156040860160208701615c0b565b6001600160a01b0316145b15610c2e5760009150610cce565b6001600160a01b038116600080516020615f26833981519152148015610c795750600080516020615f46833981519152610c6e6040860160208701615c0b565b6001600160a01b0316145b15610c875760019150610cce565b60405162461bcd60e51b815260206004820152601c60248201527b29bbb0b82bb930b81d1034b73b30b634b2103a37b5b2b7103830b4b960211b6044820152606401610124565b610cde868684876040013561117d565b505050505050565b6000876080013542811015610d0d5760405162461bcd60e51b815260040161012490615b84565b6040518a8152600080516020615fa68339815191529060200160405180910390a16104e03380806103a4368e90038e018e615bac565b6000836080013542811015610d6a5760405162461bcd60e51b815260040161012490615b84565b604051878152600080516020615fa68339815191529060200160405180910390a1600080610d9c600034118787611687565b90925090506000610dad8835611963565b9050826001600160a01b0316816001600160a01b03161480610df757506001600160a01b038116158015610df757506001600160a01b038316600080516020615f46833981519152145b610e415760405162461bcd60e51b815260206004820152601b60248201527a0eadcf0e6eec2e07440cce4dedaa8ded6cadc40dad2e6dac2e8c6d602b1b6044820152606401610124565b6001600160a01b038216610e5b60408a0160208b01615c0b565b6001600160a01b03161480610ea957506000610e7d60408a0160208b01615c0b565b6001600160a01b0316148015610ea957506001600160a01b038216600080516020615f46833981519152145b610ef15760405162461bcd60e51b81526020600482015260196024820152780eadcf0e6eec2e07440e8dea8ded6cadc40dad2e6dac2e8c6d603b1b6044820152606401610124565b6104e083838a604001358b60600135338e8d8d61196f565b6000610b97868686868687610889565b6000610f2885338686866104ee565b90505b949350505050565b610fd4565b3d6000803e3d6000fd5b67a9059cbb70a0823160c01b815230816008015260206000602483600401855afa610f6f57610f6f610f38565b6000518015610f9a5760a435600483015260248201819052610f9a6020600060448582885af1610f9f565b505050565b80610fac57610fac610f38565b600160005114601f3d11163d151780610fd057633c9fd93960e21b60005260046000fd5b5050565b604051601581017306ff0b40e9091053eee51fa1d482ce5d852f523360611b825260206000600484335afa61100b5761100b610f38565b6020806004808501335afa61102257611022610f38565b60206040600460088501335afa61103b5761103b610f38565b6000806000881360018114611057576020519250879150611060565b60005192508891505b5060017324e2effee52f006f88b2f39446d1a3a374bb9e0960581b03198452606060002083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b03605585201692503383146110d357635960139160e11b60005260046000fd5b60843592507306ff0b40e9091053eee51fa1d482ce5d852f523360611b8452308314600181146111455782601486015283603486015233605486015281607486015261114060206000608460108901600073d99cae3fac551f6b6ba7b9f19bdd316951eeee985af1610f9f565b611172565b336010860152816030860152611168602060006044600c89016000885af1610f9f565b6111728386610f42565b505050505050505050565b604051848152600080516020615fa68339815191529060200160405180910390a1600081116111e35760405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606401610124565b6001600160a01b038316156111f857826111fa565b335b9250600080611207611a37565b9150915060008461122657600080516020615f46833981519152611236565b600080516020615f268339815191525b905060008561125357600080516020615f26833981519152611263565b600080516020615f468339815191525b9050611272848383600061201d565b60008061128786338b8a896000015188612193565b9150915087156114055760405163052f523360e11b815273d99cae3fac551f6b6ba7b9f19bdd316951eeee9890630a5ea466906112ea90600080516020615f26833981519152903390600080516020615f86833981519152908d90600401615d0d565b600060405180830381600087803b15801561130457600080fd5b505af1158015611318573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b8152600481018a9052600080516020615f868339815191529250632e1a7d4d9150602401600060405180830381600087803b15801561136357600080fd5b505af1158015611377573d6000803e3d6000fd5b505050506001600160a01b0382163014611400576000826001600160a01b03164760405160006040518083038185875af1925050503d80600081146113d8576040519150601f19603f3d011682016040523d82523d6000602084013e6113dd565b606091505b50509050806113fe5760405162461bcd60e51b815260040161012490615d37565b505b6114df565b8551611453578634146114535760405162461bcd60e51b81526020600482015260166024820152751d985b1d59481b9bdd08195c5d585b08185b5bdd5b9d60521b6044820152606401610124565b600080516020615f268339815191526001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561149c57600080fd5b505af11580156114b0573d6000803e3d6000fd5b505050506001600160a01b038316301490506114df576114df600080516020615f2683398151915283896130c6565b60006114ee878b84878a61244c565b9050600080516020615f668339815191528585328b61150d8682615c3e565b60405161151e959493929190615c87565b60405180910390a15050505050505050505050565b60006001600160a01b0385161561154a578461154c565b335b9450600080611559611a37565b915091506000600760f91b8560008151811061157757611577615bd5565b602002602001015160008151811061159157611591615bd5565b6020026020010151608001511690506115bc836115b18960000151611963565b89602001518461201d565b6115ca876020015189612113565b93506000806115e9858d8c8c6040015188600001518e60200151612193565b915091506115fb8989898f8f87612d2c565b61160c858b838c602001518861244c565b5050508361161e88602001518a612113565b6116289190615c3e565b9350866060015184101561164e5760405162461bcd60e51b815260040161012490615c57565b600080516020615f6683398151915261166a8860000151611963565b8860200151328a6040015188604051610b72959493929190615c87565b600080826116a75760405162461bcd60e51b815260040161012490615d6d565b60006001600160a01b03858560008181106116c4576116c4615bd5565b9050602002013560001c1690506000600160ff1b868660008181106116eb576116eb615bd5565b9050602002013560001c166000141590508061176857816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561173f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117639190615da3565b6117ca565b816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ca9190615da3565b93506001600160a01b038416600080516020615f268339815191521480156117ef5750865b1561180657600080516020615f4683398151915293505b60008686611815600182615c3e565b81811061182457611824615bd5565b60200291909101359150506001600160a01b038116600160ff1b82161515806118ae57816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a99190615da3565b611910565b816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119109190615da3565b9550600160fe1b831615156001600160a01b038716600080516020615f2683398151915214801561193e5750805b1561195557600080516020615f4683398151915296505b505050505050935093915050565b6001600160a01b031690565b60006001600160a01b038416156119865783611988565b335b9350600080611995611a37565b915091506119a6828c8c600061201d565b6119b08a87612113565b92506119c487878d8d8d8d8b8b8a8a6130f6565b826119cf8b88612113565b6119d99190615c3e565b9250878310156119fb5760405162461bcd60e51b815260040161012490615c57565b600080516020615f668339815191528b8b328c87604051611a20959493929190615c87565b60405180910390a150505b98975050505050505050565b604080516102a081018252600080825260208083018290528284018290526060808401839052608080850184905260a080860185905260c080870186905260e0808801879052610100880187905261012088018790526101408801879052610160880187905261018088018790526101a088018790526101c088018790526101e088018790526102008801879052610220880187905261024088018790526102608801879052610280880187905288519081018952868152948501869052968401859052918301849052820183905281018290529283015290611b31565b62461bcd60e51b600052600160e51b6020528060405250806000fd5b3660206004820306808203915050805b6023811115611bd8576001600160d01b0319602082033516653bbbbbbb911160d11b81146577777777111160d01b8214176588880afc2bbb60d01b8214654444057e155560d11b831417176522220afc2bbb60d01b8214651111057e155560d11b831417653ca20afc2bbb60d01b8314651e51057e155560d11b841417171715611bce5781925050611bd8565b50601f1901611b41565b5060208103356001600160d01b031981166000653ca20afc2bbb60d01b8214651e51057e155560d11b83141715611c0d575060015b6522220afc2bbb60d01b8214651111057e155560d11b83141715611c2f575060025b6588880afc2bbb60d01b8214654444057e155560d11b83141715611c51575060035b654444057e155560d11b8214651111057e155560d11b8314651e51057e155560d11b8414171786526588880afc2bbb60d01b82146522220afc2bbb60d01b8314653ca20afc2bbb60d01b8414171786602001526000811160018114611cd857601360005b81811015611cd1576000602082028a0160400152600101611cb5565b5050611d78565b65ffffffffffff60a01b841660a01c8760a001526001600160a01b0384168760c001526040850335935060016000600160ff1b86161115611d17575060025b60608801526001600160a01b03841660408801526002821115611d715760ff60f01b841660f01c915060088211600383101715611d7157611d7160587414696e76616c6964207265666572726572206e756d60401b611b15565b8187608001525b506001811115611e2f5760015b6008811015611e2d5781811060018114611db157600060408302890160a0810182905260c00152611e24565b6020820260400186033594506001600160d01b03198516808514611df557611df5605b7717696e76616c696420636f6d6d697373696f6e20666c616760281b611b15565b5065ffffffffffff60a01b851660a01c604083028960a00101526001600160a01b038516604083028960c00101525b50600101611d85565b505b600092508015611e43576020600182010292505b50602082018303356001600160d01b031981169150653bbbbbbb911160d11b82146577777777111160d01b8314178086526001811460018114611ea15760008760200152600087604001526000876060015260008760800152611f27565b65ffffffffffff60a01b831660a01c87602001526001600160a01b03831687604001526040850186033592506001600160d01b03198316808514611eff57611eff60557111696e76616c6964207472696d20666c616760581b611b15565b506001600160cf1b841615611f12575060025b60608801526001600160a01b03831660808801525b5050653bbbbbbb911160d11b821460018114611f505760008660a0015260008660c00152611fb0565b6060840185033591506001600160d01b03198216808414611f8b57611f8b60557111696e76616c6964207472696d20666c616760581b611b15565b5065ffffffffffff60a01b821660a01c8660a001526001600160a01b0382168660c001525b50505050508051602083015183511717156120195760405160608301518152606082015160208201526020820151604082015260a082015160608201527f7970b0744fdb6cf0b120e5e0a5f4da3ab8cbec6d5d9ec8a4f327ccc1d8a5eb8b608082a16080016040525b9091565b8351600160fb1b82161515600160fa1b8316151517600160f91b8316151517908082161561206d5761206d605f7c1b46726f6d20636f6d6d697373696f6e206e6f7420737570706f727400611b15565b8385036120915761209160526e0e496e76616c696420746f6b656e7360701b611b15565b6020860151818116156120c6576120c660607c1c496e76616c696420636f6d6d697373696f6e20646972656374696f6e611b15565b6040870151868114831690861482161790159115919091161790508061210c5761210c605b7717496e76616c696420636f6d6d697373696f6e20696e666f60281b611b15565b5050505050565b6000600080516020615f4683398151915283146001811461218757604051602481016040526370a0823160e01b815283600482015260206000602483885afa90508061217c5761217c6058740519d95d0818985b185b98d953d98819985a5b195960421b611b15565b50600051915061218c565b823191505b5092915050565b6000808760200151806121a35750835b156121bc573091506121b58330612113565b90506121c0565b8591505b8751156121d2576121d288888761313e565b965096945050505050565b60006121ee36889003880188615bac565b905060006121ff8260000151611963565b905060006122348888600081811061221957612219615bd5565b905060200281019061222b9190615beb565b60800135611963565b9050612248826001600160a01b031661356a565b156122f1576001600160a01b038116600080516020615f26833981519152146122835760405162461bcd60e51b815260040161012490615dc0565b600080516020615f268339815191526001600160a01b031663d0e30db084604001516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122d057600080fd5b505af11580156122e4573d6000803e3d6000fd5b5050505050309550612362565b816001600160a01b0316816001600160a01b0316146123225760405162461bcd60e51b815260040161012490615dc0565b34156123625760405162461bcd60e51b815260206004820152600f60248201526e076616c7565206d757374206265203608c1b6044820152606401610124565b6040830151600160fa1b600760f91b8a8a60008161238257612382615bd5565b90506020028101906123949190615beb565b60800135160361240e576040516370a0823160e01b81526001600160a01b038316906370a08231906123ca9030906004016158f2565b602060405180830381865afa1580156123e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240b9190615cbb565b90505b6124328786888461242b89602001516001600160a01b031661356a565b8e8e613586565b6124408460200151866135fd565b50505050505050505050565b6000856020015115801561245f57508151155b1561246c57506000610762565b60006124788430612113565b90506128bd565b8082028115828204841417840261249e5763ad251c276000526004601cfd5b9290920492915050565b500390565b8115610fd05760008060008085855af180610f9a57610f9a605571045cd95b9908195d1a195c8819985a5b1959605a1b611b15565b8215610f9a576040516044810160405263a9059cbb60e01b8152826004820152836024820152602060006044836000865af1905080601f3d11600160005114161516156125315750803b153d17155b8061034157610341605975055d1c985b9cd9995c881d1bdad95b8819985a5b1959603a1b611b15565b604051608081016040528181528260208201528360408201528460608201527f3cfb523a4c38d88561dd3bf04805a31715c8b5fc468a03b8d684356f360dea99608082a15050505050565b604051606081016040528181528260208201528360408201527f7bec7d55a62a7a7b8068f1533e2a3bbf727b3e2e57f30c576fe159da60e09a65606082a150505050565b604051606081016040528181528260208201528360408201527ffd08115c8e43d2a49d95ee18d7f69b8bbac60bd368c73cf22d30664a22a0626d606082a150505050565b600060808201516000805b828110156126575760408102850160a001519190910190600101612638565b506301c9c38081111561268857612688605975156572726f7220636f6d6d697373696f6e207261746560381b611b15565b5060009150600080516020615f468339815191528414600181146127005760005b828110156126fa576040810260a0018501516126ca633b9aca00828a61247f565b6040830260c0018701516126df82828b6124e2565b6126eb8382848c61255a565b509490940193506001016126a9565b50612763565b60005b82811015612761576040810260a001850151612724633b9aca00828a61247f565b6040830260c00187015161273882826124ad565b612752838284600080516020615f4683398151915261255a565b50949094019350600101612703565b505b50509392505050565b6000602082015160a0830151606482111561279f5761279f60536f0f6572726f72207472696d207261746560681b611b15565b6103e88111156127c9576127c9605571116572726f7220636861726765207261746560581b611b15565b6080840151860392506127df6103e8838861247f565b9150818311156127ed578192505b6127fa6103e8828561247f565b915050808203600080516020615f4683398151915285146001811461282457801561287b57612761565b604085015161283383826124ad565b61284c8184600080516020615f468339815191526125a5565b5060c085015161285c84826124ad565b6128758185600080516020615f468339815191526125e9565b50612761565b604085015161288b8382896124e2565b6128968184896125a5565b5060c08501516128a78482896124e2565b6128b28185896125e9565b505050509392505050565b84811481861117156128ed576128ed6059750ab4b73b30b634b2103130b630b731b29030b33a32b960391b611b15565b602087015185820390801561290f5761290782878b61262d565b935090839003905b508351608085015181151581841116156129375761292e83888861276c565b94850194909203915b5050600080516020615f4683398151915285146001811461296b57612966826001600160a01b038a16886124e2565b61297e565b61297e826001600160a01b038a166124ad565b50505095945050505050565b600080826129aa5760405162461bcd60e51b815260040161012490615d6d565b60006001600160a01b03858560008181106129c7576129c7615bd5565b905060200201351690506000600160ff1b868660008181106129eb576129eb615bd5565b9050602002013516600014905080612a6457816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5f9190615da3565b612ac6565b816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac69190615da3565b93506001600160a01b038416600080516020615f26833981519152148015612aeb5750865b15612b0257600080516020615f4683398151915293505b60008686612b11600182615c3e565b818110612b2057612b20615bd5565b60200291909101359150506001600160a01b038116600160ff1b82161580612ba957816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba49190615da3565b612c0b565b816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0b9190615da3565b9550600160fd1b831615156001600160a01b038716600080516020615f2683398151915214801561193e5750801561195557600080516020615f468339815191529650505050505050935093915050565b6000806001600160a01b03891615612c7c57612c7789611963565b612c7e565b335b9050600080612c8b611a37565b91509150612c9c828b8b600061201d565b612ca68984612113565b9350612cb98c848a8a8d8b8b8989613893565b83612cc48a85612113565b612cce9190615c3e565b935086841015612cf05760405162461bcd60e51b815260040161012490615c57565b600080516020615f668339815191528a8a328b88604051612d15959493929190615c87565b60405180910390a150505098975050505050505050565b85518690600090612d3c90611963565b9050612d478161356a565b15612e3957600080516020615f268339815191526001600160a01b031663d0e30db083604001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d9957600080fd5b505af1158015612dad573d6000803e3d6000fd5b5050505050600080516020615f268339815191526001600160a01b0316612e0b87600081518110612de057612de0615bd5565b6020026020010151600081518110612dfa57612dfa615bd5565b602002602001015160800151611963565b6001600160a01b031614612e315760405162461bcd60e51b815260040161012490615dc0565b309450612e7f565b806001600160a01b0316612e5987600081518110612de057612de0615bd5565b6001600160a01b031614612e7f5760405162461bcd60e51b815260040161012490615dc0565b6000805b8851811015612ebb57888181518110612e9e57612e9e615bd5565b602002602001015182612eb19190615ded565b9150600101612e83565b508260400151811115612f2e5760405162461bcd60e51b815260206004820152603560248201527f526f7574653a206e756d626572206f6620626174636865732073686f756c64206044820152741899480f0f48199c9bdb551bdad95b905b5bdd5b9d605a1b6064820152608401610124565b508551875114612f725760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606401610124565b60005b86518110156130ad5780156130505786600081518110612f9757612f97615bd5565b6020026020010151600081518110612fb157612fb1615bd5565b602002602001015160800151878281518110612fcf57612fcf615bd5565b6020026020010151600081518110612fe957612fe9615bd5565b602002602001015160800151146130505760405162461bcd60e51b815260206004820152602560248201527f496e636f6e73697374656e742066726f6d546f6b656e206163726f7373206261604482015264746368657360d81b6064820152608401610124565b6130a586868661306c87602001516001600160a01b031661356a565b8c868151811061307e5761307e615bd5565b60200260200101518c878151811061309857613098615bd5565b60200260200101516138d6565b600101612f75565b506130bc8260200151846135fd565b5050505050505050565b6130d98363a9059cbb60e01b8484613a2d565b610f9a5760405163fb7f507960e01b815260040160405180910390fd5b60008061310b848d8d8b87600001518e612193565b90925090508b6131208b8a8a8a8a8689613a80565b5061312e858d848d8861244c565b5050505050505050505050505050565b6133ef565b6000828210156124a8576346e72d036000526004601cfd5b8115610fd05760008060008085855af180610f9a57610f9a605f7c1b636f6d6d697373696f6e2077697468206574686572206572726f7200611b15565b8315610341576040516084810160405263052f523360e11b8152816004820152826024820152836044820152846064820152600080608483600073d99cae3fac551f6b6ba7b9f19bdd316951eeee985af190508061210c5761210c60577304d8db185a5b481d1bdad95b9cc819985a5b1959604a1b611b15565b8215610f9a576040516044810160405263a9059cbb60e01b8152826004820152836024820152602060006044836000865af1905080601f3d11600160005114161516156132615750803b153d17155b8061034157610341605f7c1b7472616e7366657220746f6b656e2072656665726572206661696c00611b15565b604051602481016040526370a0823160e01b815230600482015260206000602483855afa9050806132dc576132dc6058740519d95d0818985b185b98d953d98819985a5b195960421b611b15565b506000516000805b8581101561339b576040810260a0018701516000600188038314600181146133615761332b670de0b6b3a7640000876133268b670de0b6b3a76400008861247f565b61247f565b91508582111561335857613358605874051a5b9d985b1a5908185b5bdd5b9d14d8d85b195960421b611b15565b9381019361336e565b61336b8587613143565b91505b506040830260c001890151613384828289613212565b6133908382848a6133a4565b5050506001016132e4565b50505050505050565b604051608081016040528181528260208201528360408201528460608201527fcd5eae9d9d0b96532bd1b7dbf6628ce436b2af735829087a03c548439f8bf850608082a15050505050565b604083015160608401516000608086015160005b818110156134225760408102880160a001519290920191600101613403565b506301c9c38082111561345357613453605975156572726f7220636f6d6d697373696f6e207261746560381b611b15565b600080516020615f4683398151915284036134c15760005b818110156134bf5760408102880160a081015160c090910151633b9aca008590038883020461349a818361315b565b6134b4838383600080516020615f468339815191526133a4565b50505060010161346b565b505b60018314600080516020615f46833981519152851415161561352a5760005b818110156135285760408102880160a081015160c090910151633b9aca008590038883020461351181838c8b613198565b61351d8383838b6133a4565b5050506001016134e0565b505b60028314600080516020615f46833981519152851415161561339b5781633b9aca00038286020461355d81308988613198565b5061339b8782848761328e565b6001600160a01b0316600080516020615f468339815191521490565b8060006135ac8288604080518082019091529182526001600160a01b0316602082015290565b905060005b828110156124405780156135c3573099505b6135f58a8a89848a8a8a888181106135dd576135dd615bd5565b90506020028101906135ef9190615beb565b8861423c565b6001016135b1565b61360f826001600160a01b031661356a565b15613800576040516370a0823160e01b8152600090600080516020615f26833981519152906370a08231906136489030906004016158f2565b602060405180830381865afa158015613665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136899190615cbb565b905080156137765760405163a9059cbb60e01b8152600080516020615f86833981519152600482015260248101829052600080516020615f268339815191529063a9059cbb906044016020604051808303816000875af11580156136f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137159190615e00565b50604051632e1a7d4d60e01b815260048101829052600080516020615f8683398151915290632e1a7d4d90602401600060405180830381600087803b15801561375d57600080fd5b505af1158015613771573d6000803e3d6000fd5b505050505b6001600160a01b0382163014610f9a57478015610341576000836001600160a01b03168260405160006040518083038185875af1925050503d80600081146137da576040519150601f19603f3d011682016040523d82523d6000602084013e6137df565b606091505b505090508061210c5760405162461bcd60e51b815260040161012490615d37565b6001600160a01b0381163014610fd0576040516370a0823160e01b81526000906001600160a01b038416906370a082319061383f9030906004016158f2565b602060405180830381865afa15801561385c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138809190615cbb565b90508015610f9a57610f9a8383836130c6565b6000806138a8848c8c8c87600001518c612193565b915091506138ba8b838b8b8a8a61471d565b506138c8848b838a8761244c565b505050505050505050505050565b60006138ee82600081518110612dfa57612dfa615bd5565b905060008060008451905060005b81811015613a205780156139315761391f868281518110612dfa57612dfa615bd5565b945061392b8530612113565b9650309a505b3061393d600184615c3e565b82148015613949575088155b156139555750886139ed565b613960600184615c3e565b82108015613996575086613975836001615ded565b8151811061398557613985615bd5565b602002602001015160200151516001145b156139e857866139a7836001615ded565b815181106139b7576139b7615bd5565b6020026020010151602001516000815181106139d5576139d5615bd5565b60200260200101519050600194506139ed565b600094505b613a148c8c838b8b8781518110613a0657613a06615bd5565b602002602001015189614a7b565b508392506001016138fc565b5050505050505050505050565b60006040518481528360048201528260248201526020600060448360008a5af19150508015610f2b573d8015613a6f57600160005114601f3d11169150613a77565b6000863b1191505b50949350505050565b6000613ca7565b828152600060206000600484600401865afa613abc57613abc6054700419d95d081d1bdad95b8819985a5b195960621b611b15565b505060005192915050565b6770a082310dfe168160c01b815260008060206000600485600401875afa613b0a57613b0a605672049d1bdad95b8c0818d85b1b0819985a5b195960521b611b15565b600051915083836004015260206000602485855afa613b4757613b476059750558985b185b98d953d98818d85b1b0819985a5b1959603a1b611b15565b60005190509250929050565b6770a08231d21220a760c01b815260008060206000600485600401875afa613b0a57613b0a605672049d1bdad95b8c4818d85b1b0819985a5b195960521b611b15565b668b0367c240bc6b60c21b8152600060406000600484600401875afa613bd957613bd9605874051c995cd95c9d995cc818d85b1b0819985a5b195960421b611b15565b600051602051868015613c05578915613bfd57613bf68786613b53565b8390039650505b909190613c1c565b8815613c1c57613c158786613ac7565b8490039650505b50668b0367c240bc6b60c21b8452898502633b9aca009290920282019102049050848015613c565781600484015260006024840152613c64565b600060048401528160248401525b50886044830152608060648301526000608483015260008060a4846000885af1611a2b57611a2b605470041cddd85c0818d85b1b0819985a5b195960621b611b15565b846020850281018580613cce57613cce604e6b0b656d70747920706f6f6c7360901b611b15565b5060405182358b600080516020615f468339815191521460018114613d87573415613d1357613d1360557111696e76616c6964206d73672e76616c756560581b611b15565b63052f523360e11b83528c60048401528760248401526001600160a01b03821660448401528b6064840152600080608485600073d99cae3fac551f6b6ba7b9f19bdd316951eeee985af1613d8257613d826056720498db185a5b481d1bdad95b8819985a5b195960521b611b15565b613e54565b60018c341003613db157613db160557111696e76616c6964206d73672e76616c756560581b611b15565b670a9059cbbd0e30db60c41b835260008060048086018f600080516020615f268339815191525af1613dfe57613dfe6056720499195c1bdcda5d081155120819985a5b195960521b611b15565b6001600160a01b03821683600401528b8360240152602060006044856000600080516020615f268339815191525af1613e5457613e54605874051d1c985b9cd9995c8815d155120819985a5b195960421b611b15565b508a9450602084015b83811015613eb3578035613ea76001600160a01b03821663ffffffff60a01b851660a01c600160fd1b8616600160fc1b8716600160ff1b88166001600160a01b0389168d8b613b96565b96509150602001613e5d565b5060009350600160fe1b81168015613ff657600080516020615f468339815191529450613f0d3063ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a613b96565b9550672e1a7d4da9059cbb60c01b8352600080516020615f868339815191526008840152856028840152602060006044856004016000600080516020615f268339815191525af1613f7b57613f7b605874051d1c985b9cd9995c8815d155120819985a5b195960421b611b15565b856004840152602060006024856000600080516020615f868339815191525af1613fc157613fc160577304ddda5d1a191c985dc81155120819985a5b1959604a1b611b15565b600080600080898b5af1613ff157613ff160577304dd1c985b9cd9995c881155120819985a5b1959604a1b611b15565b61422c565b60009350600160ff1b821680156140a457600160fc1b83161561409f576770a082310dfe168160c01b8452602060006004866004016001600160a01b0387165afa61405c5761405c605672049d1bdad95b8c0818d85b1b0819985a5b195960521b611b15565b600051955087846004015260206000602486895afa61409957614099605675055d1bdad95b8c0818985b185b98d94819985a5b1959603a1b611b15565b60005194505b61413c565b600160fd1b83161561413c576770a08231d21220a760c01b8452602060006004866004016001600160a01b0387165afa6140f9576140f9605672049d1bdad95b8c4818d85b1b0819985a5b195960521b611b15565b600051955087846004015260206000602486895afa61413657614136605975055d1bdad95b8c4818985b185b98d94819985a5b1959603a1b611b15565b60005194505b506141748763ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a613b96565b955084600010600181146141dd57600160ff1b831680156141b5576141ae6770a082310dfe168160c01b6001600160a01b03861687613a87565b96506141d7565b6141d46770a08231d21220a760c01b6001600160a01b03861687613a87565b96505b5061422a565b6770a082310dfe168160c01b845287846004015260206000602486895afa614222576142226058740519d95d0818985b185b98d953d98819985a5b195960421b611b15565b846000510396505b505b5050505050979650505050505050565b600080600061424e8560800135611963565b9050600061425c8680615e1d565b9050116142a55760405162461bcd60e51b8152602060048201526017602482015276065646765206c656e677468206d757374206265203e203604c1b6044820152606401610124565b6142b26040860186615e1d565b90506142be8680615e1d565b90501480156142e557506142d56060860186615e1d565b90506142e18680615e1d565b9050145b801561430957506142f96020860186615e1d565b90506143058680615e1d565b9050145b61434c5760405162461bcd60e51b81526020600482015260146024820152730e0c2e8d040d8cadccee8d040dad2e6dac2e8c6d60631b6044820152606401610124565b861561440c576040516370a0823160e01b81526001600160a01b038216906370a082319061437e9030906004016158f2565b602060405180830381865afa15801561439b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143bf9190615cbb565b97506000881161440c5760405162461bcd60e51b815260206004820152601860248201527706e6f64652062616c616e6365206d757374206265203e20360441b6044820152606401610124565b60005b6144198680615e1d565b9050811015613a2057600080808061443460408b018b615e1d565b8681811061444457614444615bd5565b9050602002013560001b905061ffff60a01b811660a01c915060ff60b81b811660b81c935060ff60b01b811660b01c92508b84146144c35760405162461bcd60e51b815260206004820152601c60248201527b1b9bd919481a5b9c1d5d125b99195e081a5b98dbdb9cda5cdd195b9d60221b6044820152606401610124565b82841080156144d3575088518311155b6145195760405162461bcd60e51b81526020600482015260176024820152766e6f646520696e646578206f7574206f662072616e676560481b6044820152606401610124565b6145238289615ded565b975060016145318b80615e1d565b61453c929150615c3e565b850361458f57876127101461458f5760405162461bcd60e51b81526020600482015260196024820152780746f74616c576569676874206d75737420626520313030303603c1b6044820152606401610124565b506000600161459e8b80615e1d565b6145a9929150615c3e565b85036145c0576145b9878e615c3e565b90506145e6565b6127106145cd838f615cd4565b6145d79190615ceb565b90506145e38188615ded565b96505b801561462d5761462d8f6145fd60208d018d615e1d565b8881811061460d5761460d615bd5565b90506020020160208101906146229190615c0b565b8c6080013584614c0f565b50875130908314801561463e57508a155b1561464657508c5b61470e61465660408c018c615e1d565b8781811061466657614666615bd5565b6020029190910135905061467a8c80615e1d565b8881811061468a5761468a615bd5565b905060200201602081019061469f9190615c0b565b6146ac60608e018e615e1d565b898181106146bc576146bc615bd5565b90506020028101906146ce9190615e66565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505060208e0151869150614cec565b5083600101935050505061440f565b60006149b6565b6000856001600160ff1b03101561474657630b3f79fd60e41b60005260046000fd5b604051600160ff1b8616156001600160a01b03871681600181146147da57630251596160e31b845260048401868152600060208201528a604082015273fffd8963efd1fc6a506488495d951d5263988d25606082015260a06080820152604060a08201528760c08201528860e082015250600080610104866000865af1806147ce5760206000fd5b5060206000803e61483d565b630251596160e31b845260048401868152600160208201528a60408201526401000276a4606082015260a06080820152604060a08201528760c08201528860e082015250600080610104866000865af1806148355760206000fd5b5060208060003e5b505050506000519050600160ff1b811015614863576322323ba760e21b60005260046000fd5b1960010195945050505050565b60018134100361488b57631841b4e160e01b60005260046000fd5b60008060008084600080516020615f268339815191525af180610fd057610fd060577304d5d155120819195c1bdcda5d0819985a5b1959604a1b611b15565b60405160048101672e1a7d4da9059cbb60c01b8252600080516020615f8683398151915260048201528360248201526000806044836000600080516020615f268339815191525af190508061493c5761493c605874051d1c985b9cd9995c881dd95d1a0819985a5b195960421b611b15565b8360048301526000806024846000600080516020615f868339815191525af190508061498557614985605874051dda5d1a191c985dc81dd95d1a0819985a5b195960421b611b15565b60008060008087875af190508061034157610341605571045cd95b9908195d1a195c8819985a5b1959605a1b611b15565b82601f196020840282010183806149d8576333f3e07b60e11b60005260046000fd5b50886000341180156149f1576149ed89614870565b309a505b5087606052825b82811015614a1b57614a0e898235848e30614724565b309b5098506020016149f8565b506000600160fd1b8335161192508260018114614a3d578015614a5c57614a6d565b614a4b898435848e30614724565b9450614a57858b6148ca565b614a6d565b614a6a898435848e8e614724565b94505b505050509695505050505050565b6000805b8351518110156130bc57600084604001518281518110614aa157614aa1615bd5565b602090810291909101015190506001600160a01b038116600160ff1b821661ffff60a084901c16614ad28187615ded565b885151909650614ae490600190615c3e565b8503614b4b57612710861115614b4b5760405162461bcd60e51b815260206004820152602660248201527f746f74616c5765696768742063616e206e6f7420657863656564203130303030604482015265081b1a5b5a5d60d21b6064820152608401610124565b86614bb05760008161271014614b7757612710614b68838c615cd4565b614b729190615ceb565b614b79565b895b90508015614bae57614bae8d8a602001518881518110614b9b57614b9b615bd5565b60200260200101518b6080015184614c0f565b505b50614bf98188600001518681518110614bcb57614bcb615bd5565b60200260200101518b858b606001518981518110614beb57614beb615bd5565b60200260200101518f614d07565b5050508080614c0790615eac565b915050614a7f565b6001600160a01b038216600760f91b8316601f60fb1b8101614c32575050610341565b600160fa1b8103614c4f57614c488286856130c6565b5050610341565b600160f91b8103614c61575050610341565b306001600160a01b03871603614c8157614c7c8286856130c6565b610cde565b60405163052f523360e11b815273d99cae3fac551f6b6ba7b9f19bdd316951eeee9890630a5ea46690614cbe9085908a908a908990600401615d0d565b600060405180830381600087803b158015614cd857600080fd5b505af1158015612440573d6000803e3d6000fd5b600160ff1b85166001600160a01b03861661339b8287868489885b8515614e0c57600080866001600160a01b0316636f7929f260e01b878787604051602401614d3793929190615ec5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614d856001600160a01b038616650f2882bf0b3360d21b615ded565b604051602001614d96929190615ef1565b60408051601f1981840301815290829052614db091615f13565b6000604051808303816000865af19150503d8060008114614ded576040519150601f19603f3d011682016040523d82523d6000602084013e614df2565b606091505b509150915081614e0557614e0581614f00565b5050610cde565b600080866001600160a01b03166330e6ae3160e01b878787604051602401614e3693929190615ec5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614e846001600160a01b038616650f2882bf0b3360d21b615ded565b604051602001614e95929190615ef1565b60408051601f1981840301815290829052614eaf91615f13565b6000604051808303816000865af19150503d8060008114614eec576040519150601f19603f3d011682016040523d82523d6000602084013e614ef1565b606091505b5091509150816130bc576130bc815b805115614f0f57805160208201fd5b60405162461bcd60e51b81526020600482015260136024820152721859185c1d1bdc8818d85b1b0819985a5b1959606a1b6044820152606401610124565b50565b60008060408385031215614f6357600080fd5b50508035926020909101359150565b6001600160a01b0381168114614f4d57600080fd5b8035614f9281614f72565b919050565b600060a08284031215614fa957600080fd5b50919050565b60008083601f840112614fc157600080fd5b5081356001600160401b03811115614fd857600080fd5b6020830191508360208260051b8501011115614ff357600080fd5b9250929050565b60008060008060008060008060006101408a8c03121561501957600080fd5b8935985060208a013561502b81614f72565b975061503a8b60408c01614f97565b965060e08a01356001600160401b038082111561505657600080fd5b6150628d838e01614faf565b90985096506101008c013591508082111561507c57600080fd5b6150888d838e01614faf565b90965094506101208c01359150808211156150a257600080fd5b506150af8c828d01614faf565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156150df57600080fd5b86359550602087013594506040870135935060608701356150ff81614f72565b925060808701356001600160401b0381111561511a57600080fd5b61512689828a01614faf565b979a9699509497509295939492505050565b6000806000806000610100868803121561515157600080fd5b85359450602086013561516381614f72565b93506151728760408801614f97565b925060e08601356001600160401b0381111561518d57600080fd5b61519988828901614faf565b969995985093965092949392505050565b6000806000806000608086880312156151c257600080fd5b85359450602086013593506040860135925060608601356001600160401b0381111561518d57600080fd5b60005b838110156152085781810151838201526020016151f0565b50506000910152565b600081518084526152298160208601602086016151ed565b601f01601f19169290920160200192915050565b6020815260006152506020830184615211565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561528f5761528f615257565b60405290565b60405161014081016001600160401b038111828210171561528f5761528f615257565b604051601f8201601f191681016001600160401b03811182821017156152e0576152e0615257565b604052919050565b600060a082840312156152fa57600080fd5b61530261526d565b905081358152602082013561531681614f72565b8060208301525060408201356040820152606082013560608201526080820135608082015292915050565b60006001600160401b0382111561535a5761535a615257565b5060051b60200190565b600082601f83011261537557600080fd5b8135602061538a61538583615341565b6152b8565b82815260059290921b840181019181810190868411156153a957600080fd5b8286015b848110156153c457803583529183019183016153ad565b509695505050505050565b600082601f8301126153e057600080fd5b813560206153f061538583615341565b82815260059290921b8401810191818101908684111561540f57600080fd5b8286015b848110156153c457803561542681614f72565b8352918301918301615413565b600082601f83011261544457600080fd5b81356001600160401b0381111561545d5761545d615257565b615470601f8201601f19166020016152b8565b81815284602083860101111561548557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126154b357600080fd5b813560206154c361538583615341565b82815260059290921b840181019181810190868411156154e257600080fd5b8286015b848110156153c45780356001600160401b038111156155055760008081fd5b6155138986838b0101615433565b8452509183019183016154e6565b600061552f61538584615341565b838152905060208101600584901b830185101561554b57600080fd5b825b8460051b8401811015612763576001600160401b03813581101561557057600080fd5b8135850187601f82011261558357600080fd5b6155906153858235615341565b81358082526020808301929160051b8401018a8111156155af57600080fd5b602084015b818110156156a45785813511156155ca57600080fd5b8035850160a0818e03601f190112156155e257600080fd5b6155ea61526d565b87602083013511156155fb57600080fd5b61560d8e6020808501358501016153cf565b8152876040830135111561562057600080fd5b6156338e602060408501358501016153cf565b6020820152876060830135111561564957600080fd5b61565c8e60206060850135850101615364565b6040820152876080830135111561567257600080fd5b6156858e602060808501358501016154a2565b606082015260a0919091013560808201528452602093840193016155b4565b50508552505060209283019291909101905061554d565b600082601f8301126156cc57600080fd5b61525083833560208501615521565b8015158114614f4d57600080fd5b8035614f92816156db565b600082601f83011261570557600080fd5b8135602061571561538583615341565b82815260059290921b8401810191818101908684111561573457600080fd5b8286015b848110156153c45780356001600160401b03808211156157585760008081fd5b90880190610140828b03601f19018113156157735760008081fd5b61577b615295565b878401358152604061578e818601614f87565b89830152606061579f818701614f87565b82840152608091506157b2828701614f87565b818401525060a0808601358284015260c0915081860135818401525060e0808601358284015261010091508186013581840152506101206157f48187016156e9565b8383015292850135928484111561580d57600091508182fd5b61581b8e8b86890101615433565b90830152508652505050918301918301615738565b600080600080600080610140878903121561584a57600080fd5b61585488886152e8565b955060a08701356001600160401b038082111561587057600080fd5b61587c8a838b01615364565b965060c089013591508082111561589257600080fd5b61589e8a838b016156bb565b955060e08901359150808211156158b457600080fd5b506158c189828a016156f4565b9350506101008701356158d381614f72565b91506101208701356158e481614f72565b809150509295509295509295565b6001600160a01b0391909116815260200190565b600080600060e0848603121561591b57600080fd5b83359250602084013561592d81614f72565b915061593c8560408601614f97565b90509250925092565b600080600080600080600080610120898b03121561596257600080fd5b883597506159738a60208b01614f97565b965060c08901356001600160401b038082111561598f57600080fd5b61599b8c838d01614faf565b909850965060e08b01359150808211156159b457600080fd5b6159c08c838d01614faf565b90965094506101008b01359150808211156159da57600080fd5b506159e78b828c01614faf565b999c989b5096995094979396929594505050565b60008060008060006101208688031215615a1457600080fd5b615a1e87876152e8565b945060a08601356001600160401b0380821115615a3a57600080fd5b615a4689838a01615364565b955060c0880135915080821115615a5c57600080fd5b615a6889838a016156bb565b945060e0880135915080821115615a7e57600080fd5b50615a8b888289016156f4565b925050610100860135615a9d81614f72565b809150509295509295909350565b60008060008060e08587031215615ac157600080fd5b84359350615ad28660208701614f97565b925060c08501356001600160401b03811115615aed57600080fd5b615af987828801614faf565b95989497509550505050565b60008060008060608587031215615b1b57600080fd5b843593506020850135925060408501356001600160401b0380821115615b4057600080fd5b818701915087601f830112615b5457600080fd5b813581811115615b6357600080fd5b886020828501011115615b7557600080fd5b95989497505060200194505050565b6020808252600e908201526d149bdd5d194e88195e1c1a5c995960921b604082015260600190565b600060a08284031215615bbe57600080fd5b61525083836152e8565b6000615250368484615521565b634e487b7160e01b600052603260045260246000fd5b60008235609e19833603018112615c0157600080fd5b9190910192915050565b600060208284031215615c1d57600080fd5b813561525081614f72565b634e487b7160e01b600052601160045260246000fd5b81810381811115615c5157615c51615c28565b92915050565b602080825260169082015275135a5b881c995d1d5c9b881b9bdd081c995858da195960521b604082015260600190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b600060208284031215615ccd57600080fd5b5051919050565b8082028115828204841417615c5157615c51615c28565b600082615d0857634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6020808252601c908201527b1d1c985b9cd9995c881b985d1a5d99481d1bdad95b8819985a5b195960221b604082015260600190565b6020808252601c908201527b0706f6f6c73206d7573742062652067726561746572207468616e20360241b604082015260600190565b600060208284031215615db557600080fd5b815161525081614f72565b6020808252601390820152720ccd2e4e6e8a8ded6cadc40dad2e6dac2e8c6d606b1b604082015260600190565b80820180821115615c5157615c51615c28565b600060208284031215615e1257600080fd5b8151615250816156db565b6000808335601e19843603018112615e3457600080fd5b8301803591506001600160401b03821115615e4e57600080fd5b6020019150600581901b3603821315614ff357600080fd5b6000808335601e19843603018112615e7d57600080fd5b8301803591506001600160401b03821115615e9757600080fd5b602001915036819003821315614ff357600080fd5b600060018201615ebe57615ebe615c28565b5060010190565b6001600160a01b03848116825283166020820152606060408201819052600090610f2890830184615211565b60008351615f038184602088016151ed565b9190910191825250602001919050565b60008251615c018184602087016151ed56fe000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c0000000000000000000000000b5f474ad0e3f7ef629bd10dbf9e4a8fd60d9a487724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdba264697066735822122026bbf2f68dbe37a885bcf78e9a9060cb5df4771459d18aa1c0f3ce92a7b3c86164736f6c63430008110033
Deployed Bytecode
0x6080604052600436106100dd5760003560e01c806301617fab1461013457806303b87e5f1461014757806308298b5a1461016d5780630c307f76146101805780630d5f0e3b1461019357806344014e98146101a657806354fd4d50146101b9578063591b3d08146102065780636aa476451461021957806373679b6b1461024e5780639871efa41461027057806398d2ac6214610283578063b80c2f0914610296578063b8815477146102a9578063e0af3616146102bc578063e99bfa95146102de578063f2c42696146102f1578063fa461e331461030457600080fd5b3661012f5732330361012d5760405162461bcd60e51b81526020600482015260146024820152731155120819195c1bdcda5d081c995a9958dd195960621b60448201526064015b60405180910390fd5b005b600080fd5b61012d610142366004614f50565b610324565b61015a610155366004614ffa565b610347565b6040519081526020015b60405180910390f35b61015a61017b3660046150c6565b6103f8565b61015a61018e366004615138565b6104ee565b61015a6101a13660046151aa565b610710565b61015a6101b4366004615138565b61076b565b3480156101c557600080fd5b506101f9604051806040016040528060148152602001731d8c4b8c0b8e0b5cdd59999a5e0b58dbdb5c185d60621b81525081565b604051610164919061523d565b61015a610214366004615830565b610889565b34801561022557600080fd5b5061024173d99cae3fac551f6b6ba7b9f19bdd316951eeee9881565b60405161016491906158f2565b34801561025a57600080fd5b50610241600080516020615f8683398151915281565b61015a61027e3660046151aa565b610b87565b61012d610291366004615906565b610ba1565b61015a6102a4366004615945565b610ce6565b61015a6102b7366004615138565b610d43565b3480156102c857600080fd5b50610241600080516020615f2683398151915281565b61015a6102ec3660046159fb565b610f09565b61015a6102ff366004615aab565b610f19565b34801561031057600080fd5b5061012d61031f366004615b05565b610f33565b600160ff1b81166001600160801b0382166103418433848461117d565b50505050565b600087608001354281101561036e5760405162461bcd60e51b815260040161012490615b84565b6040518b8152600080516020615fa68339815191529060200160405180910390a16103e933808c6103a4368e90038e018e615bac565b8c8c808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506103e492508d91508e9050615bc8565b611533565b9b9a5050505050505050505050565b60405160a087901c8152600090600080516020615fa68339815191529060200160405180910390a1600080610431600034118686611687565b9150915060006104408a611963565b9050826001600160a01b0316816001600160a01b0316148061048a57506001600160a01b03811615801561048a57506001600160a01b038316600080516020615f46833981519152145b6104d05760405162461bcd60e51b81526020600482015260176024820152760eadcf0e6eec2e07440e8ded6cadc40dad2e6dac2e8c6d604b1b6044820152606401610124565b6104e083838b8b338c8c8c61196f565b9a9950505050505050505050565b60008360800135428110156105155760405162461bcd60e51b815260040161012490615b84565b826105565760405162461bcd60e51b815260206004820152601160248201527007061746873206d757374206265203e203607c1b6044820152606401610124565b604051878152600080516020615fa68339815191529060200160405180910390a16001600160a01b0386161561058c578561058e565b335b955060008061059b611a37565b915091506000600760f91b878760008181106105b9576105b9615bd5565b90506020028101906105cb9190615beb565b608001351690506105f6836105e08a35611963565b6105f060408c0160208d01615c0b565b8461201d565b61060f61060960408a0160208b01615c0b565b8a612113565b945060008061063c85338d8d6040013588600001518f60200160208101906106379190615c0b565b612193565b9150915061064e8a8a8a3333876121dd565b61066d858c838d60200160208101906106679190615c0b565b8861244c565b508661068861068260408d0160208e01615c0b565b8d612113565b6106929190615c3e565b965089606001358710156106b85760405162461bcd60e51b815260040161012490615c57565b600080516020615f668339815191526106d18b35611963565b6106e160408d0160208e01615c0b565b328d604001358b6040516106f9959493929190615c87565b60405180910390a150505050505095945050505050565b60405160a086901c8152600090600080516020615fa68339815191529060200160405180910390a160008061074960003411868661298a565b9150915061075d338984848b8b8b8b612c5c565b925050505b95945050505050565b60008360800135428110156107925760405162461bcd60e51b815260040161012490615b84565b604051878152600080516020615fa68339815191529060200160405180910390a16000806107c460003411878761298a565b90925090506001600160a01b0382166107dd8835611963565b6001600160a01b031614801561081357506001600160a01b0381166108086040890160208a01615c0b565b6001600160a01b0316145b61085b5760405162461bcd60e51b81526020600482015260196024820152780eadcd2e6eec2e0ac667440e8ded6cadc40dad2e6dac2e8c6d603b1b6044820152606401610124565b61087c33896001600160a01b031684848b604001358c606001358c8c612c5c565b9998505050505050505050565b60008660800151428110156108b05760405162461bcd60e51b815260040161012490615b84565b60006108bf8960000151611963565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016109255760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21039b7bab931b2903a37b5b2b760611b6044820152606401610124565b6001600160a01b0384166109745760405162461bcd60e51b8152602060048201526016602482015275726566756e64546f206973206164647265737328302960501b6044820152606401610124565b6001600160a01b0385166109bd5760405162461bcd60e51b815260206004820152601060248201526f746f206973206164647265737328302960801b6044820152606401610124565b6000896040015111610a085760405162461bcd60e51b8152602060048201526014602482015273066726f6d546f6b656e416d6f756e7420697320360641b6044820152606401610124565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610a379030906004016158f2565b602060405180830381865afa158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a789190615cbb565b905060005b8951811015610adf578a60400151828b8381518110610a9e57610a9e615bd5565b6020026020010151610ab09190615cd4565b610aba9190615ceb565b8a8281518110610acc57610acc615bd5565b6020908102919091010152600101610a7d565b5060408a0181905260208a0151610af69087612113565b9350610b068a8a8a30898b612d2c565b83610b158b6020015188612113565b610b1f9190615c3e565b93508960600151841015610b455760405162461bcd60e51b815260040161012490615c57565b600080516020615f66833981519152828b60200151328d6040015188604051610b72959493929190615c87565b60405180910390a15050509695505050505050565b6000610b978686863387876103f8565b9695505050505050565b806080013542811015610bc65760405162461bcd60e51b815260040161012490615b84565b600080610bd38435611963565b90506001600160a01b038116600080516020615f46833981519152148015610c205750600080516020615f26833981519152610c156040860160208701615c0b565b6001600160a01b0316145b15610c2e5760009150610cce565b6001600160a01b038116600080516020615f26833981519152148015610c795750600080516020615f46833981519152610c6e6040860160208701615c0b565b6001600160a01b0316145b15610c875760019150610cce565b60405162461bcd60e51b815260206004820152601c60248201527b29bbb0b82bb930b81d1034b73b30b634b2103a37b5b2b7103830b4b960211b6044820152606401610124565b610cde868684876040013561117d565b505050505050565b6000876080013542811015610d0d5760405162461bcd60e51b815260040161012490615b84565b6040518a8152600080516020615fa68339815191529060200160405180910390a16104e03380806103a4368e90038e018e615bac565b6000836080013542811015610d6a5760405162461bcd60e51b815260040161012490615b84565b604051878152600080516020615fa68339815191529060200160405180910390a1600080610d9c600034118787611687565b90925090506000610dad8835611963565b9050826001600160a01b0316816001600160a01b03161480610df757506001600160a01b038116158015610df757506001600160a01b038316600080516020615f46833981519152145b610e415760405162461bcd60e51b815260206004820152601b60248201527a0eadcf0e6eec2e07440cce4dedaa8ded6cadc40dad2e6dac2e8c6d602b1b6044820152606401610124565b6001600160a01b038216610e5b60408a0160208b01615c0b565b6001600160a01b03161480610ea957506000610e7d60408a0160208b01615c0b565b6001600160a01b0316148015610ea957506001600160a01b038216600080516020615f46833981519152145b610ef15760405162461bcd60e51b81526020600482015260196024820152780eadcf0e6eec2e07440e8dea8ded6cadc40dad2e6dac2e8c6d603b1b6044820152606401610124565b6104e083838a604001358b60600135338e8d8d61196f565b6000610b97868686868687610889565b6000610f2885338686866104ee565b90505b949350505050565b610fd4565b3d6000803e3d6000fd5b67a9059cbb70a0823160c01b815230816008015260206000602483600401855afa610f6f57610f6f610f38565b6000518015610f9a5760a435600483015260248201819052610f9a6020600060448582885af1610f9f565b505050565b80610fac57610fac610f38565b600160005114601f3d11163d151780610fd057633c9fd93960e21b60005260046000fd5b5050565b604051601581017306ff0b40e9091053eee51fa1d482ce5d852f523360611b825260206000600484335afa61100b5761100b610f38565b6020806004808501335afa61102257611022610f38565b60206040600460088501335afa61103b5761103b610f38565b6000806000881360018114611057576020519250879150611060565b60005192508891505b5060017324e2effee52f006f88b2f39446d1a3a374bb9e0960581b03198452606060002083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b03605585201692503383146110d357635960139160e11b60005260046000fd5b60843592507306ff0b40e9091053eee51fa1d482ce5d852f523360611b8452308314600181146111455782601486015283603486015233605486015281607486015261114060206000608460108901600073d99cae3fac551f6b6ba7b9f19bdd316951eeee985af1610f9f565b611172565b336010860152816030860152611168602060006044600c89016000885af1610f9f565b6111728386610f42565b505050505050505050565b604051848152600080516020615fa68339815191529060200160405180910390a1600081116111e35760405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606401610124565b6001600160a01b038316156111f857826111fa565b335b9250600080611207611a37565b9150915060008461122657600080516020615f46833981519152611236565b600080516020615f268339815191525b905060008561125357600080516020615f26833981519152611263565b600080516020615f468339815191525b9050611272848383600061201d565b60008061128786338b8a896000015188612193565b9150915087156114055760405163052f523360e11b815273d99cae3fac551f6b6ba7b9f19bdd316951eeee9890630a5ea466906112ea90600080516020615f26833981519152903390600080516020615f86833981519152908d90600401615d0d565b600060405180830381600087803b15801561130457600080fd5b505af1158015611318573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b8152600481018a9052600080516020615f868339815191529250632e1a7d4d9150602401600060405180830381600087803b15801561136357600080fd5b505af1158015611377573d6000803e3d6000fd5b505050506001600160a01b0382163014611400576000826001600160a01b03164760405160006040518083038185875af1925050503d80600081146113d8576040519150601f19603f3d011682016040523d82523d6000602084013e6113dd565b606091505b50509050806113fe5760405162461bcd60e51b815260040161012490615d37565b505b6114df565b8551611453578634146114535760405162461bcd60e51b81526020600482015260166024820152751d985b1d59481b9bdd08195c5d585b08185b5bdd5b9d60521b6044820152606401610124565b600080516020615f268339815191526001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561149c57600080fd5b505af11580156114b0573d6000803e3d6000fd5b505050506001600160a01b038316301490506114df576114df600080516020615f2683398151915283896130c6565b60006114ee878b84878a61244c565b9050600080516020615f668339815191528585328b61150d8682615c3e565b60405161151e959493929190615c87565b60405180910390a15050505050505050505050565b60006001600160a01b0385161561154a578461154c565b335b9450600080611559611a37565b915091506000600760f91b8560008151811061157757611577615bd5565b602002602001015160008151811061159157611591615bd5565b6020026020010151608001511690506115bc836115b18960000151611963565b89602001518461201d565b6115ca876020015189612113565b93506000806115e9858d8c8c6040015188600001518e60200151612193565b915091506115fb8989898f8f87612d2c565b61160c858b838c602001518861244c565b5050508361161e88602001518a612113565b6116289190615c3e565b9350866060015184101561164e5760405162461bcd60e51b815260040161012490615c57565b600080516020615f6683398151915261166a8860000151611963565b8860200151328a6040015188604051610b72959493929190615c87565b600080826116a75760405162461bcd60e51b815260040161012490615d6d565b60006001600160a01b03858560008181106116c4576116c4615bd5565b9050602002013560001c1690506000600160ff1b868660008181106116eb576116eb615bd5565b9050602002013560001c166000141590508061176857816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561173f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117639190615da3565b6117ca565b816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ca9190615da3565b93506001600160a01b038416600080516020615f268339815191521480156117ef5750865b1561180657600080516020615f4683398151915293505b60008686611815600182615c3e565b81811061182457611824615bd5565b60200291909101359150506001600160a01b038116600160ff1b82161515806118ae57816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a99190615da3565b611910565b816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119109190615da3565b9550600160fe1b831615156001600160a01b038716600080516020615f2683398151915214801561193e5750805b1561195557600080516020615f4683398151915296505b505050505050935093915050565b6001600160a01b031690565b60006001600160a01b038416156119865783611988565b335b9350600080611995611a37565b915091506119a6828c8c600061201d565b6119b08a87612113565b92506119c487878d8d8d8d8b8b8a8a6130f6565b826119cf8b88612113565b6119d99190615c3e565b9250878310156119fb5760405162461bcd60e51b815260040161012490615c57565b600080516020615f668339815191528b8b328c87604051611a20959493929190615c87565b60405180910390a150505b98975050505050505050565b604080516102a081018252600080825260208083018290528284018290526060808401839052608080850184905260a080860185905260c080870186905260e0808801879052610100880187905261012088018790526101408801879052610160880187905261018088018790526101a088018790526101c088018790526101e088018790526102008801879052610220880187905261024088018790526102608801879052610280880187905288519081018952868152948501869052968401859052918301849052820183905281018290529283015290611b31565b62461bcd60e51b600052600160e51b6020528060405250806000fd5b3660206004820306808203915050805b6023811115611bd8576001600160d01b0319602082033516653bbbbbbb911160d11b81146577777777111160d01b8214176588880afc2bbb60d01b8214654444057e155560d11b831417176522220afc2bbb60d01b8214651111057e155560d11b831417653ca20afc2bbb60d01b8314651e51057e155560d11b841417171715611bce5781925050611bd8565b50601f1901611b41565b5060208103356001600160d01b031981166000653ca20afc2bbb60d01b8214651e51057e155560d11b83141715611c0d575060015b6522220afc2bbb60d01b8214651111057e155560d11b83141715611c2f575060025b6588880afc2bbb60d01b8214654444057e155560d11b83141715611c51575060035b654444057e155560d11b8214651111057e155560d11b8314651e51057e155560d11b8414171786526588880afc2bbb60d01b82146522220afc2bbb60d01b8314653ca20afc2bbb60d01b8414171786602001526000811160018114611cd857601360005b81811015611cd1576000602082028a0160400152600101611cb5565b5050611d78565b65ffffffffffff60a01b841660a01c8760a001526001600160a01b0384168760c001526040850335935060016000600160ff1b86161115611d17575060025b60608801526001600160a01b03841660408801526002821115611d715760ff60f01b841660f01c915060088211600383101715611d7157611d7160587414696e76616c6964207265666572726572206e756d60401b611b15565b8187608001525b506001811115611e2f5760015b6008811015611e2d5781811060018114611db157600060408302890160a0810182905260c00152611e24565b6020820260400186033594506001600160d01b03198516808514611df557611df5605b7717696e76616c696420636f6d6d697373696f6e20666c616760281b611b15565b5065ffffffffffff60a01b851660a01c604083028960a00101526001600160a01b038516604083028960c00101525b50600101611d85565b505b600092508015611e43576020600182010292505b50602082018303356001600160d01b031981169150653bbbbbbb911160d11b82146577777777111160d01b8314178086526001811460018114611ea15760008760200152600087604001526000876060015260008760800152611f27565b65ffffffffffff60a01b831660a01c87602001526001600160a01b03831687604001526040850186033592506001600160d01b03198316808514611eff57611eff60557111696e76616c6964207472696d20666c616760581b611b15565b506001600160cf1b841615611f12575060025b60608801526001600160a01b03831660808801525b5050653bbbbbbb911160d11b821460018114611f505760008660a0015260008660c00152611fb0565b6060840185033591506001600160d01b03198216808414611f8b57611f8b60557111696e76616c6964207472696d20666c616760581b611b15565b5065ffffffffffff60a01b821660a01c8660a001526001600160a01b0382168660c001525b50505050508051602083015183511717156120195760405160608301518152606082015160208201526020820151604082015260a082015160608201527f7970b0744fdb6cf0b120e5e0a5f4da3ab8cbec6d5d9ec8a4f327ccc1d8a5eb8b608082a16080016040525b9091565b8351600160fb1b82161515600160fa1b8316151517600160f91b8316151517908082161561206d5761206d605f7c1b46726f6d20636f6d6d697373696f6e206e6f7420737570706f727400611b15565b8385036120915761209160526e0e496e76616c696420746f6b656e7360701b611b15565b6020860151818116156120c6576120c660607c1c496e76616c696420636f6d6d697373696f6e20646972656374696f6e611b15565b6040870151868114831690861482161790159115919091161790508061210c5761210c605b7717496e76616c696420636f6d6d697373696f6e20696e666f60281b611b15565b5050505050565b6000600080516020615f4683398151915283146001811461218757604051602481016040526370a0823160e01b815283600482015260206000602483885afa90508061217c5761217c6058740519d95d0818985b185b98d953d98819985a5b195960421b611b15565b50600051915061218c565b823191505b5092915050565b6000808760200151806121a35750835b156121bc573091506121b58330612113565b90506121c0565b8591505b8751156121d2576121d288888761313e565b965096945050505050565b60006121ee36889003880188615bac565b905060006121ff8260000151611963565b905060006122348888600081811061221957612219615bd5565b905060200281019061222b9190615beb565b60800135611963565b9050612248826001600160a01b031661356a565b156122f1576001600160a01b038116600080516020615f26833981519152146122835760405162461bcd60e51b815260040161012490615dc0565b600080516020615f268339815191526001600160a01b031663d0e30db084604001516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122d057600080fd5b505af11580156122e4573d6000803e3d6000fd5b5050505050309550612362565b816001600160a01b0316816001600160a01b0316146123225760405162461bcd60e51b815260040161012490615dc0565b34156123625760405162461bcd60e51b815260206004820152600f60248201526e076616c7565206d757374206265203608c1b6044820152606401610124565b6040830151600160fa1b600760f91b8a8a60008161238257612382615bd5565b90506020028101906123949190615beb565b60800135160361240e576040516370a0823160e01b81526001600160a01b038316906370a08231906123ca9030906004016158f2565b602060405180830381865afa1580156123e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240b9190615cbb565b90505b6124328786888461242b89602001516001600160a01b031661356a565b8e8e613586565b6124408460200151866135fd565b50505050505050505050565b6000856020015115801561245f57508151155b1561246c57506000610762565b60006124788430612113565b90506128bd565b8082028115828204841417840261249e5763ad251c276000526004601cfd5b9290920492915050565b500390565b8115610fd05760008060008085855af180610f9a57610f9a605571045cd95b9908195d1a195c8819985a5b1959605a1b611b15565b8215610f9a576040516044810160405263a9059cbb60e01b8152826004820152836024820152602060006044836000865af1905080601f3d11600160005114161516156125315750803b153d17155b8061034157610341605975055d1c985b9cd9995c881d1bdad95b8819985a5b1959603a1b611b15565b604051608081016040528181528260208201528360408201528460608201527f3cfb523a4c38d88561dd3bf04805a31715c8b5fc468a03b8d684356f360dea99608082a15050505050565b604051606081016040528181528260208201528360408201527f7bec7d55a62a7a7b8068f1533e2a3bbf727b3e2e57f30c576fe159da60e09a65606082a150505050565b604051606081016040528181528260208201528360408201527ffd08115c8e43d2a49d95ee18d7f69b8bbac60bd368c73cf22d30664a22a0626d606082a150505050565b600060808201516000805b828110156126575760408102850160a001519190910190600101612638565b506301c9c38081111561268857612688605975156572726f7220636f6d6d697373696f6e207261746560381b611b15565b5060009150600080516020615f468339815191528414600181146127005760005b828110156126fa576040810260a0018501516126ca633b9aca00828a61247f565b6040830260c0018701516126df82828b6124e2565b6126eb8382848c61255a565b509490940193506001016126a9565b50612763565b60005b82811015612761576040810260a001850151612724633b9aca00828a61247f565b6040830260c00187015161273882826124ad565b612752838284600080516020615f4683398151915261255a565b50949094019350600101612703565b505b50509392505050565b6000602082015160a0830151606482111561279f5761279f60536f0f6572726f72207472696d207261746560681b611b15565b6103e88111156127c9576127c9605571116572726f7220636861726765207261746560581b611b15565b6080840151860392506127df6103e8838861247f565b9150818311156127ed578192505b6127fa6103e8828561247f565b915050808203600080516020615f4683398151915285146001811461282457801561287b57612761565b604085015161283383826124ad565b61284c8184600080516020615f468339815191526125a5565b5060c085015161285c84826124ad565b6128758185600080516020615f468339815191526125e9565b50612761565b604085015161288b8382896124e2565b6128968184896125a5565b5060c08501516128a78482896124e2565b6128b28185896125e9565b505050509392505050565b84811481861117156128ed576128ed6059750ab4b73b30b634b2103130b630b731b29030b33a32b960391b611b15565b602087015185820390801561290f5761290782878b61262d565b935090839003905b508351608085015181151581841116156129375761292e83888861276c565b94850194909203915b5050600080516020615f4683398151915285146001811461296b57612966826001600160a01b038a16886124e2565b61297e565b61297e826001600160a01b038a166124ad565b50505095945050505050565b600080826129aa5760405162461bcd60e51b815260040161012490615d6d565b60006001600160a01b03858560008181106129c7576129c7615bd5565b905060200201351690506000600160ff1b868660008181106129eb576129eb615bd5565b9050602002013516600014905080612a6457816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5f9190615da3565b612ac6565b816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac69190615da3565b93506001600160a01b038416600080516020615f26833981519152148015612aeb5750865b15612b0257600080516020615f4683398151915293505b60008686612b11600182615c3e565b818110612b2057612b20615bd5565b60200291909101359150506001600160a01b038116600160ff1b82161580612ba957816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba49190615da3565b612c0b565b816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0b9190615da3565b9550600160fd1b831615156001600160a01b038716600080516020615f2683398151915214801561193e5750801561195557600080516020615f468339815191529650505050505050935093915050565b6000806001600160a01b03891615612c7c57612c7789611963565b612c7e565b335b9050600080612c8b611a37565b91509150612c9c828b8b600061201d565b612ca68984612113565b9350612cb98c848a8a8d8b8b8989613893565b83612cc48a85612113565b612cce9190615c3e565b935086841015612cf05760405162461bcd60e51b815260040161012490615c57565b600080516020615f668339815191528a8a328b88604051612d15959493929190615c87565b60405180910390a150505098975050505050505050565b85518690600090612d3c90611963565b9050612d478161356a565b15612e3957600080516020615f268339815191526001600160a01b031663d0e30db083604001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d9957600080fd5b505af1158015612dad573d6000803e3d6000fd5b5050505050600080516020615f268339815191526001600160a01b0316612e0b87600081518110612de057612de0615bd5565b6020026020010151600081518110612dfa57612dfa615bd5565b602002602001015160800151611963565b6001600160a01b031614612e315760405162461bcd60e51b815260040161012490615dc0565b309450612e7f565b806001600160a01b0316612e5987600081518110612de057612de0615bd5565b6001600160a01b031614612e7f5760405162461bcd60e51b815260040161012490615dc0565b6000805b8851811015612ebb57888181518110612e9e57612e9e615bd5565b602002602001015182612eb19190615ded565b9150600101612e83565b508260400151811115612f2e5760405162461bcd60e51b815260206004820152603560248201527f526f7574653a206e756d626572206f6620626174636865732073686f756c64206044820152741899480f0f48199c9bdb551bdad95b905b5bdd5b9d605a1b6064820152608401610124565b508551875114612f725760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606401610124565b60005b86518110156130ad5780156130505786600081518110612f9757612f97615bd5565b6020026020010151600081518110612fb157612fb1615bd5565b602002602001015160800151878281518110612fcf57612fcf615bd5565b6020026020010151600081518110612fe957612fe9615bd5565b602002602001015160800151146130505760405162461bcd60e51b815260206004820152602560248201527f496e636f6e73697374656e742066726f6d546f6b656e206163726f7373206261604482015264746368657360d81b6064820152608401610124565b6130a586868661306c87602001516001600160a01b031661356a565b8c868151811061307e5761307e615bd5565b60200260200101518c878151811061309857613098615bd5565b60200260200101516138d6565b600101612f75565b506130bc8260200151846135fd565b5050505050505050565b6130d98363a9059cbb60e01b8484613a2d565b610f9a5760405163fb7f507960e01b815260040160405180910390fd5b60008061310b848d8d8b87600001518e612193565b90925090508b6131208b8a8a8a8a8689613a80565b5061312e858d848d8861244c565b5050505050505050505050505050565b6133ef565b6000828210156124a8576346e72d036000526004601cfd5b8115610fd05760008060008085855af180610f9a57610f9a605f7c1b636f6d6d697373696f6e2077697468206574686572206572726f7200611b15565b8315610341576040516084810160405263052f523360e11b8152816004820152826024820152836044820152846064820152600080608483600073d99cae3fac551f6b6ba7b9f19bdd316951eeee985af190508061210c5761210c60577304d8db185a5b481d1bdad95b9cc819985a5b1959604a1b611b15565b8215610f9a576040516044810160405263a9059cbb60e01b8152826004820152836024820152602060006044836000865af1905080601f3d11600160005114161516156132615750803b153d17155b8061034157610341605f7c1b7472616e7366657220746f6b656e2072656665726572206661696c00611b15565b604051602481016040526370a0823160e01b815230600482015260206000602483855afa9050806132dc576132dc6058740519d95d0818985b185b98d953d98819985a5b195960421b611b15565b506000516000805b8581101561339b576040810260a0018701516000600188038314600181146133615761332b670de0b6b3a7640000876133268b670de0b6b3a76400008861247f565b61247f565b91508582111561335857613358605874051a5b9d985b1a5908185b5bdd5b9d14d8d85b195960421b611b15565b9381019361336e565b61336b8587613143565b91505b506040830260c001890151613384828289613212565b6133908382848a6133a4565b5050506001016132e4565b50505050505050565b604051608081016040528181528260208201528360408201528460608201527fcd5eae9d9d0b96532bd1b7dbf6628ce436b2af735829087a03c548439f8bf850608082a15050505050565b604083015160608401516000608086015160005b818110156134225760408102880160a001519290920191600101613403565b506301c9c38082111561345357613453605975156572726f7220636f6d6d697373696f6e207261746560381b611b15565b600080516020615f4683398151915284036134c15760005b818110156134bf5760408102880160a081015160c090910151633b9aca008590038883020461349a818361315b565b6134b4838383600080516020615f468339815191526133a4565b50505060010161346b565b505b60018314600080516020615f46833981519152851415161561352a5760005b818110156135285760408102880160a081015160c090910151633b9aca008590038883020461351181838c8b613198565b61351d8383838b6133a4565b5050506001016134e0565b505b60028314600080516020615f46833981519152851415161561339b5781633b9aca00038286020461355d81308988613198565b5061339b8782848761328e565b6001600160a01b0316600080516020615f468339815191521490565b8060006135ac8288604080518082019091529182526001600160a01b0316602082015290565b905060005b828110156124405780156135c3573099505b6135f58a8a89848a8a8a888181106135dd576135dd615bd5565b90506020028101906135ef9190615beb565b8861423c565b6001016135b1565b61360f826001600160a01b031661356a565b15613800576040516370a0823160e01b8152600090600080516020615f26833981519152906370a08231906136489030906004016158f2565b602060405180830381865afa158015613665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136899190615cbb565b905080156137765760405163a9059cbb60e01b8152600080516020615f86833981519152600482015260248101829052600080516020615f268339815191529063a9059cbb906044016020604051808303816000875af11580156136f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137159190615e00565b50604051632e1a7d4d60e01b815260048101829052600080516020615f8683398151915290632e1a7d4d90602401600060405180830381600087803b15801561375d57600080fd5b505af1158015613771573d6000803e3d6000fd5b505050505b6001600160a01b0382163014610f9a57478015610341576000836001600160a01b03168260405160006040518083038185875af1925050503d80600081146137da576040519150601f19603f3d011682016040523d82523d6000602084013e6137df565b606091505b505090508061210c5760405162461bcd60e51b815260040161012490615d37565b6001600160a01b0381163014610fd0576040516370a0823160e01b81526000906001600160a01b038416906370a082319061383f9030906004016158f2565b602060405180830381865afa15801561385c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138809190615cbb565b90508015610f9a57610f9a8383836130c6565b6000806138a8848c8c8c87600001518c612193565b915091506138ba8b838b8b8a8a61471d565b506138c8848b838a8761244c565b505050505050505050505050565b60006138ee82600081518110612dfa57612dfa615bd5565b905060008060008451905060005b81811015613a205780156139315761391f868281518110612dfa57612dfa615bd5565b945061392b8530612113565b9650309a505b3061393d600184615c3e565b82148015613949575088155b156139555750886139ed565b613960600184615c3e565b82108015613996575086613975836001615ded565b8151811061398557613985615bd5565b602002602001015160200151516001145b156139e857866139a7836001615ded565b815181106139b7576139b7615bd5565b6020026020010151602001516000815181106139d5576139d5615bd5565b60200260200101519050600194506139ed565b600094505b613a148c8c838b8b8781518110613a0657613a06615bd5565b602002602001015189614a7b565b508392506001016138fc565b5050505050505050505050565b60006040518481528360048201528260248201526020600060448360008a5af19150508015610f2b573d8015613a6f57600160005114601f3d11169150613a77565b6000863b1191505b50949350505050565b6000613ca7565b828152600060206000600484600401865afa613abc57613abc6054700419d95d081d1bdad95b8819985a5b195960621b611b15565b505060005192915050565b6770a082310dfe168160c01b815260008060206000600485600401875afa613b0a57613b0a605672049d1bdad95b8c0818d85b1b0819985a5b195960521b611b15565b600051915083836004015260206000602485855afa613b4757613b476059750558985b185b98d953d98818d85b1b0819985a5b1959603a1b611b15565b60005190509250929050565b6770a08231d21220a760c01b815260008060206000600485600401875afa613b0a57613b0a605672049d1bdad95b8c4818d85b1b0819985a5b195960521b611b15565b668b0367c240bc6b60c21b8152600060406000600484600401875afa613bd957613bd9605874051c995cd95c9d995cc818d85b1b0819985a5b195960421b611b15565b600051602051868015613c05578915613bfd57613bf68786613b53565b8390039650505b909190613c1c565b8815613c1c57613c158786613ac7565b8490039650505b50668b0367c240bc6b60c21b8452898502633b9aca009290920282019102049050848015613c565781600484015260006024840152613c64565b600060048401528160248401525b50886044830152608060648301526000608483015260008060a4846000885af1611a2b57611a2b605470041cddd85c0818d85b1b0819985a5b195960621b611b15565b846020850281018580613cce57613cce604e6b0b656d70747920706f6f6c7360901b611b15565b5060405182358b600080516020615f468339815191521460018114613d87573415613d1357613d1360557111696e76616c6964206d73672e76616c756560581b611b15565b63052f523360e11b83528c60048401528760248401526001600160a01b03821660448401528b6064840152600080608485600073d99cae3fac551f6b6ba7b9f19bdd316951eeee985af1613d8257613d826056720498db185a5b481d1bdad95b8819985a5b195960521b611b15565b613e54565b60018c341003613db157613db160557111696e76616c6964206d73672e76616c756560581b611b15565b670a9059cbbd0e30db60c41b835260008060048086018f600080516020615f268339815191525af1613dfe57613dfe6056720499195c1bdcda5d081155120819985a5b195960521b611b15565b6001600160a01b03821683600401528b8360240152602060006044856000600080516020615f268339815191525af1613e5457613e54605874051d1c985b9cd9995c8815d155120819985a5b195960421b611b15565b508a9450602084015b83811015613eb3578035613ea76001600160a01b03821663ffffffff60a01b851660a01c600160fd1b8616600160fc1b8716600160ff1b88166001600160a01b0389168d8b613b96565b96509150602001613e5d565b5060009350600160fe1b81168015613ff657600080516020615f468339815191529450613f0d3063ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a613b96565b9550672e1a7d4da9059cbb60c01b8352600080516020615f868339815191526008840152856028840152602060006044856004016000600080516020615f268339815191525af1613f7b57613f7b605874051d1c985b9cd9995c8815d155120819985a5b195960421b611b15565b856004840152602060006024856000600080516020615f868339815191525af1613fc157613fc160577304ddda5d1a191c985dc81155120819985a5b1959604a1b611b15565b600080600080898b5af1613ff157613ff160577304dd1c985b9cd9995c881155120819985a5b1959604a1b611b15565b61422c565b60009350600160ff1b821680156140a457600160fc1b83161561409f576770a082310dfe168160c01b8452602060006004866004016001600160a01b0387165afa61405c5761405c605672049d1bdad95b8c0818d85b1b0819985a5b195960521b611b15565b600051955087846004015260206000602486895afa61409957614099605675055d1bdad95b8c0818985b185b98d94819985a5b1959603a1b611b15565b60005194505b61413c565b600160fd1b83161561413c576770a08231d21220a760c01b8452602060006004866004016001600160a01b0387165afa6140f9576140f9605672049d1bdad95b8c4818d85b1b0819985a5b195960521b611b15565b600051955087846004015260206000602486895afa61413657614136605975055d1bdad95b8c4818985b185b98d94819985a5b1959603a1b611b15565b60005194505b506141748763ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a613b96565b955084600010600181146141dd57600160ff1b831680156141b5576141ae6770a082310dfe168160c01b6001600160a01b03861687613a87565b96506141d7565b6141d46770a08231d21220a760c01b6001600160a01b03861687613a87565b96505b5061422a565b6770a082310dfe168160c01b845287846004015260206000602486895afa614222576142226058740519d95d0818985b185b98d953d98819985a5b195960421b611b15565b846000510396505b505b5050505050979650505050505050565b600080600061424e8560800135611963565b9050600061425c8680615e1d565b9050116142a55760405162461bcd60e51b8152602060048201526017602482015276065646765206c656e677468206d757374206265203e203604c1b6044820152606401610124565b6142b26040860186615e1d565b90506142be8680615e1d565b90501480156142e557506142d56060860186615e1d565b90506142e18680615e1d565b9050145b801561430957506142f96020860186615e1d565b90506143058680615e1d565b9050145b61434c5760405162461bcd60e51b81526020600482015260146024820152730e0c2e8d040d8cadccee8d040dad2e6dac2e8c6d60631b6044820152606401610124565b861561440c576040516370a0823160e01b81526001600160a01b038216906370a082319061437e9030906004016158f2565b602060405180830381865afa15801561439b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143bf9190615cbb565b97506000881161440c5760405162461bcd60e51b815260206004820152601860248201527706e6f64652062616c616e6365206d757374206265203e20360441b6044820152606401610124565b60005b6144198680615e1d565b9050811015613a2057600080808061443460408b018b615e1d565b8681811061444457614444615bd5565b9050602002013560001b905061ffff60a01b811660a01c915060ff60b81b811660b81c935060ff60b01b811660b01c92508b84146144c35760405162461bcd60e51b815260206004820152601c60248201527b1b9bd919481a5b9c1d5d125b99195e081a5b98dbdb9cda5cdd195b9d60221b6044820152606401610124565b82841080156144d3575088518311155b6145195760405162461bcd60e51b81526020600482015260176024820152766e6f646520696e646578206f7574206f662072616e676560481b6044820152606401610124565b6145238289615ded565b975060016145318b80615e1d565b61453c929150615c3e565b850361458f57876127101461458f5760405162461bcd60e51b81526020600482015260196024820152780746f74616c576569676874206d75737420626520313030303603c1b6044820152606401610124565b506000600161459e8b80615e1d565b6145a9929150615c3e565b85036145c0576145b9878e615c3e565b90506145e6565b6127106145cd838f615cd4565b6145d79190615ceb565b90506145e38188615ded565b96505b801561462d5761462d8f6145fd60208d018d615e1d565b8881811061460d5761460d615bd5565b90506020020160208101906146229190615c0b565b8c6080013584614c0f565b50875130908314801561463e57508a155b1561464657508c5b61470e61465660408c018c615e1d565b8781811061466657614666615bd5565b6020029190910135905061467a8c80615e1d565b8881811061468a5761468a615bd5565b905060200201602081019061469f9190615c0b565b6146ac60608e018e615e1d565b898181106146bc576146bc615bd5565b90506020028101906146ce9190615e66565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505060208e0151869150614cec565b5083600101935050505061440f565b60006149b6565b6000856001600160ff1b03101561474657630b3f79fd60e41b60005260046000fd5b604051600160ff1b8616156001600160a01b03871681600181146147da57630251596160e31b845260048401868152600060208201528a604082015273fffd8963efd1fc6a506488495d951d5263988d25606082015260a06080820152604060a08201528760c08201528860e082015250600080610104866000865af1806147ce5760206000fd5b5060206000803e61483d565b630251596160e31b845260048401868152600160208201528a60408201526401000276a4606082015260a06080820152604060a08201528760c08201528860e082015250600080610104866000865af1806148355760206000fd5b5060208060003e5b505050506000519050600160ff1b811015614863576322323ba760e21b60005260046000fd5b1960010195945050505050565b60018134100361488b57631841b4e160e01b60005260046000fd5b60008060008084600080516020615f268339815191525af180610fd057610fd060577304d5d155120819195c1bdcda5d0819985a5b1959604a1b611b15565b60405160048101672e1a7d4da9059cbb60c01b8252600080516020615f8683398151915260048201528360248201526000806044836000600080516020615f268339815191525af190508061493c5761493c605874051d1c985b9cd9995c881dd95d1a0819985a5b195960421b611b15565b8360048301526000806024846000600080516020615f868339815191525af190508061498557614985605874051dda5d1a191c985dc81dd95d1a0819985a5b195960421b611b15565b60008060008087875af190508061034157610341605571045cd95b9908195d1a195c8819985a5b1959605a1b611b15565b82601f196020840282010183806149d8576333f3e07b60e11b60005260046000fd5b50886000341180156149f1576149ed89614870565b309a505b5087606052825b82811015614a1b57614a0e898235848e30614724565b309b5098506020016149f8565b506000600160fd1b8335161192508260018114614a3d578015614a5c57614a6d565b614a4b898435848e30614724565b9450614a57858b6148ca565b614a6d565b614a6a898435848e8e614724565b94505b505050509695505050505050565b6000805b8351518110156130bc57600084604001518281518110614aa157614aa1615bd5565b602090810291909101015190506001600160a01b038116600160ff1b821661ffff60a084901c16614ad28187615ded565b885151909650614ae490600190615c3e565b8503614b4b57612710861115614b4b5760405162461bcd60e51b815260206004820152602660248201527f746f74616c5765696768742063616e206e6f7420657863656564203130303030604482015265081b1a5b5a5d60d21b6064820152608401610124565b86614bb05760008161271014614b7757612710614b68838c615cd4565b614b729190615ceb565b614b79565b895b90508015614bae57614bae8d8a602001518881518110614b9b57614b9b615bd5565b60200260200101518b6080015184614c0f565b505b50614bf98188600001518681518110614bcb57614bcb615bd5565b60200260200101518b858b606001518981518110614beb57614beb615bd5565b60200260200101518f614d07565b5050508080614c0790615eac565b915050614a7f565b6001600160a01b038216600760f91b8316601f60fb1b8101614c32575050610341565b600160fa1b8103614c4f57614c488286856130c6565b5050610341565b600160f91b8103614c61575050610341565b306001600160a01b03871603614c8157614c7c8286856130c6565b610cde565b60405163052f523360e11b815273d99cae3fac551f6b6ba7b9f19bdd316951eeee9890630a5ea46690614cbe9085908a908a908990600401615d0d565b600060405180830381600087803b158015614cd857600080fd5b505af1158015612440573d6000803e3d6000fd5b600160ff1b85166001600160a01b03861661339b8287868489885b8515614e0c57600080866001600160a01b0316636f7929f260e01b878787604051602401614d3793929190615ec5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614d856001600160a01b038616650f2882bf0b3360d21b615ded565b604051602001614d96929190615ef1565b60408051601f1981840301815290829052614db091615f13565b6000604051808303816000865af19150503d8060008114614ded576040519150601f19603f3d011682016040523d82523d6000602084013e614df2565b606091505b509150915081614e0557614e0581614f00565b5050610cde565b600080866001600160a01b03166330e6ae3160e01b878787604051602401614e3693929190615ec5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614e846001600160a01b038616650f2882bf0b3360d21b615ded565b604051602001614e95929190615ef1565b60408051601f1981840301815290829052614eaf91615f13565b6000604051808303816000865af19150503d8060008114614eec576040519150601f19603f3d011682016040523d82523d6000602084013e614ef1565b606091505b5091509150816130bc576130bc815b805115614f0f57805160208201fd5b60405162461bcd60e51b81526020600482015260136024820152721859185c1d1bdc8818d85b1b0819985a5b1959606a1b6044820152606401610124565b50565b60008060408385031215614f6357600080fd5b50508035926020909101359150565b6001600160a01b0381168114614f4d57600080fd5b8035614f9281614f72565b919050565b600060a08284031215614fa957600080fd5b50919050565b60008083601f840112614fc157600080fd5b5081356001600160401b03811115614fd857600080fd5b6020830191508360208260051b8501011115614ff357600080fd5b9250929050565b60008060008060008060008060006101408a8c03121561501957600080fd5b8935985060208a013561502b81614f72565b975061503a8b60408c01614f97565b965060e08a01356001600160401b038082111561505657600080fd5b6150628d838e01614faf565b90985096506101008c013591508082111561507c57600080fd5b6150888d838e01614faf565b90965094506101208c01359150808211156150a257600080fd5b506150af8c828d01614faf565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156150df57600080fd5b86359550602087013594506040870135935060608701356150ff81614f72565b925060808701356001600160401b0381111561511a57600080fd5b61512689828a01614faf565b979a9699509497509295939492505050565b6000806000806000610100868803121561515157600080fd5b85359450602086013561516381614f72565b93506151728760408801614f97565b925060e08601356001600160401b0381111561518d57600080fd5b61519988828901614faf565b969995985093965092949392505050565b6000806000806000608086880312156151c257600080fd5b85359450602086013593506040860135925060608601356001600160401b0381111561518d57600080fd5b60005b838110156152085781810151838201526020016151f0565b50506000910152565b600081518084526152298160208601602086016151ed565b601f01601f19169290920160200192915050565b6020815260006152506020830184615211565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561528f5761528f615257565b60405290565b60405161014081016001600160401b038111828210171561528f5761528f615257565b604051601f8201601f191681016001600160401b03811182821017156152e0576152e0615257565b604052919050565b600060a082840312156152fa57600080fd5b61530261526d565b905081358152602082013561531681614f72565b8060208301525060408201356040820152606082013560608201526080820135608082015292915050565b60006001600160401b0382111561535a5761535a615257565b5060051b60200190565b600082601f83011261537557600080fd5b8135602061538a61538583615341565b6152b8565b82815260059290921b840181019181810190868411156153a957600080fd5b8286015b848110156153c457803583529183019183016153ad565b509695505050505050565b600082601f8301126153e057600080fd5b813560206153f061538583615341565b82815260059290921b8401810191818101908684111561540f57600080fd5b8286015b848110156153c457803561542681614f72565b8352918301918301615413565b600082601f83011261544457600080fd5b81356001600160401b0381111561545d5761545d615257565b615470601f8201601f19166020016152b8565b81815284602083860101111561548557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126154b357600080fd5b813560206154c361538583615341565b82815260059290921b840181019181810190868411156154e257600080fd5b8286015b848110156153c45780356001600160401b038111156155055760008081fd5b6155138986838b0101615433565b8452509183019183016154e6565b600061552f61538584615341565b838152905060208101600584901b830185101561554b57600080fd5b825b8460051b8401811015612763576001600160401b03813581101561557057600080fd5b8135850187601f82011261558357600080fd5b6155906153858235615341565b81358082526020808301929160051b8401018a8111156155af57600080fd5b602084015b818110156156a45785813511156155ca57600080fd5b8035850160a0818e03601f190112156155e257600080fd5b6155ea61526d565b87602083013511156155fb57600080fd5b61560d8e6020808501358501016153cf565b8152876040830135111561562057600080fd5b6156338e602060408501358501016153cf565b6020820152876060830135111561564957600080fd5b61565c8e60206060850135850101615364565b6040820152876080830135111561567257600080fd5b6156858e602060808501358501016154a2565b606082015260a0919091013560808201528452602093840193016155b4565b50508552505060209283019291909101905061554d565b600082601f8301126156cc57600080fd5b61525083833560208501615521565b8015158114614f4d57600080fd5b8035614f92816156db565b600082601f83011261570557600080fd5b8135602061571561538583615341565b82815260059290921b8401810191818101908684111561573457600080fd5b8286015b848110156153c45780356001600160401b03808211156157585760008081fd5b90880190610140828b03601f19018113156157735760008081fd5b61577b615295565b878401358152604061578e818601614f87565b89830152606061579f818701614f87565b82840152608091506157b2828701614f87565b818401525060a0808601358284015260c0915081860135818401525060e0808601358284015261010091508186013581840152506101206157f48187016156e9565b8383015292850135928484111561580d57600091508182fd5b61581b8e8b86890101615433565b90830152508652505050918301918301615738565b600080600080600080610140878903121561584a57600080fd5b61585488886152e8565b955060a08701356001600160401b038082111561587057600080fd5b61587c8a838b01615364565b965060c089013591508082111561589257600080fd5b61589e8a838b016156bb565b955060e08901359150808211156158b457600080fd5b506158c189828a016156f4565b9350506101008701356158d381614f72565b91506101208701356158e481614f72565b809150509295509295509295565b6001600160a01b0391909116815260200190565b600080600060e0848603121561591b57600080fd5b83359250602084013561592d81614f72565b915061593c8560408601614f97565b90509250925092565b600080600080600080600080610120898b03121561596257600080fd5b883597506159738a60208b01614f97565b965060c08901356001600160401b038082111561598f57600080fd5b61599b8c838d01614faf565b909850965060e08b01359150808211156159b457600080fd5b6159c08c838d01614faf565b90965094506101008b01359150808211156159da57600080fd5b506159e78b828c01614faf565b999c989b5096995094979396929594505050565b60008060008060006101208688031215615a1457600080fd5b615a1e87876152e8565b945060a08601356001600160401b0380821115615a3a57600080fd5b615a4689838a01615364565b955060c0880135915080821115615a5c57600080fd5b615a6889838a016156bb565b945060e0880135915080821115615a7e57600080fd5b50615a8b888289016156f4565b925050610100860135615a9d81614f72565b809150509295509295909350565b60008060008060e08587031215615ac157600080fd5b84359350615ad28660208701614f97565b925060c08501356001600160401b03811115615aed57600080fd5b615af987828801614faf565b95989497509550505050565b60008060008060608587031215615b1b57600080fd5b843593506020850135925060408501356001600160401b0380821115615b4057600080fd5b818701915087601f830112615b5457600080fd5b813581811115615b6357600080fd5b886020828501011115615b7557600080fd5b95989497505060200194505050565b6020808252600e908201526d149bdd5d194e88195e1c1a5c995960921b604082015260600190565b600060a08284031215615bbe57600080fd5b61525083836152e8565b6000615250368484615521565b634e487b7160e01b600052603260045260246000fd5b60008235609e19833603018112615c0157600080fd5b9190910192915050565b600060208284031215615c1d57600080fd5b813561525081614f72565b634e487b7160e01b600052601160045260246000fd5b81810381811115615c5157615c51615c28565b92915050565b602080825260169082015275135a5b881c995d1d5c9b881b9bdd081c995858da195960521b604082015260600190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b600060208284031215615ccd57600080fd5b5051919050565b8082028115828204841417615c5157615c51615c28565b600082615d0857634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6020808252601c908201527b1d1c985b9cd9995c881b985d1a5d99481d1bdad95b8819985a5b195960221b604082015260600190565b6020808252601c908201527b0706f6f6c73206d7573742062652067726561746572207468616e20360241b604082015260600190565b600060208284031215615db557600080fd5b815161525081614f72565b6020808252601390820152720ccd2e4e6e8a8ded6cadc40dad2e6dac2e8c6d606b1b604082015260600190565b80820180821115615c5157615c51615c28565b600060208284031215615e1257600080fd5b8151615250816156db565b6000808335601e19843603018112615e3457600080fd5b8301803591506001600160401b03821115615e4e57600080fd5b6020019150600581901b3603821315614ff357600080fd5b6000808335601e19843603018112615e7d57600080fd5b8301803591506001600160401b03821115615e9757600080fd5b602001915036819003821315614ff357600080fd5b600060018201615ebe57615ebe615c28565b5060010190565b6001600160a01b03848116825283166020820152606060408201819052600090610f2890830184615211565b60008351615f038184602088016151ed565b9190910191825250602001919050565b60008251615c018184602087016151ed56fe000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c0000000000000000000000000b5f474ad0e3f7ef629bd10dbf9e4a8fd60d9a487724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdba264697066735822122026bbf2f68dbe37a885bcf78e9a9060cb5df4771459d18aa1c0f3ce92a7b3c86164736f6c63430008110033
🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Transaction Gas Used Reward
view all blocks produced
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
View All Validatorset

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.