ETH Price: $1,929.98 (-4.00%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Update Board Cac...1012803872023-05-25 5:34:451268 days ago1684992885IN
Lyra Finance: OP Option Greek Cache
0 ETH0.000239820620.001
Update Board Cac...1012803562023-05-25 5:34:301268 days ago1684992870IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0002398887080.001
Update Board Cac...1012720532023-05-25 4:54:351268 days ago1684990475IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0000938123910.001
Update Board Cac...1012720182023-05-25 4:54:201268 days ago1684990460IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001050768710.001
Update Board Cac...1012637282023-05-25 4:14:321268 days ago1684988072IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001217959690.001
Update Board Cac...1012637002023-05-25 4:14:171268 days ago1684988057IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001218459250.001
Update Board Cac...1012552942023-05-25 3:34:221268 days ago1684985662IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001236024920.001
Update Board Cac...1012552742023-05-25 3:34:221268 days ago1684985662IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001236524140.001
Update Board Cac...1012472332023-05-25 2:56:491268 days ago1684983409IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001105937220.001
Update Board Cac...1012467222023-05-25 2:54:331268 days ago1684983273IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001106361260.001
Update Board Cac...1012466982023-05-25 2:54:181268 days ago1684983258IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001106431550.001
Nominate New Own...1002152962023-05-21 13:26:301272 days ago1684675590IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001832257450.001
Update Board Cac...1001853372023-05-21 10:57:231272 days ago1684666643IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001141179050.001
Update Board Cac...1001853022023-05-21 10:57:081272 days ago1684666628IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001141154240.001
Update Board Cac...1001852532023-05-21 10:56:531272 days ago1684666613IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001141125690.001
Update Board Cac...1001849902023-05-21 10:55:381272 days ago1684666538IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001017660830.001
Set Min Collater...1001099972023-05-21 5:56:251272 days ago1684648585IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001493170270.001
Set Min Collater...999007442023-05-20 7:54:521273 days ago1684569292IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001732011050.001
Set Force Close ...993511912023-05-18 7:10:491275 days ago1684393849IN
Lyra Finance: OP Option Greek Cache
0 ETH0.000224823070.00104815
Set Min Collater...993510252023-05-18 7:10:191275 days ago1684393819IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0002101359950.00104815
Set Greek Cache ...993505852023-05-18 7:09:341275 days ago1684393774IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0002104717850.00104815
Init993478992023-05-18 7:03:341275 days ago1684393414IN
Lyra Finance: OP Option Greek Cache
0 ETH0.0001930658240.00104815

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1075581412023-07-30 11:04:191202 days ago1690715059
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
1075581362023-07-30 11:04:091202 days ago1690715049
Lyra Finance: OP Option Greek Cache
0 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

OptionGreekCache

Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled
Yes with 20 runs
Other Settings
default 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":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"}],"name":"AlreadyInitialised","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"uint256","name":"boardId","type":"uint256"},{"internalType":"uint256","name":"newStrikesLength","type":"uint256"},{"internalType":"uint256","name":"maxStrikesPerBoard","type":"uint256"}],"name":"BoardStrikeLimitExceeded","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"uint256","name":"boardId","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"currentTimestamp","type":"uint256"}],"name":"CannotUpdateExpiredBoard","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"lastObservedTimestamp","type":"uint256"}],"name":"InvalidBlockTimestamp","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"uint256","name":"boardId","type":"uint256"}],"name":"InvalidBoardId","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"components":[{"internalType":"uint256","name":"ivGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"skewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"shortVolShock","type":"uint256"},{"internalType":"uint256","name":"shortPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"longVolShock","type":"uint256"},{"internalType":"uint256","name":"longPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidateVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidatePostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"shortSpotMin","type":"uint256"},{"internalType":"uint256","name":"liquidateSpotMin","type":"uint256"}],"internalType":"struct OptionGreekCache.ForceCloseParameters","name":"forceCloseParams","type":"tuple"}],"name":"InvalidForceCloseParameters","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"components":[{"internalType":"uint256","name":"maxStrikesPerBoard","type":"uint256"},{"internalType":"uint256","name":"acceptableSpotPricePercentMove","type":"uint256"},{"internalType":"uint256","name":"staleUpdateDuration","type":"uint256"},{"internalType":"uint256","name":"varianceIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"varianceSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"gwavSkewFloor","type":"uint256"},{"internalType":"uint256","name":"gwavSkewCap","type":"uint256"}],"internalType":"struct OptionGreekCache.GreekCacheParameters","name":"greekCacheParams","type":"tuple"}],"name":"InvalidGreekCacheParameters","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"components":[{"internalType":"uint256","name":"minStaticQuoteCollateral","type":"uint256"},{"internalType":"uint256","name":"minStaticBaseCollateral","type":"uint256"},{"internalType":"uint256","name":"shockVolA","type":"uint256"},{"internalType":"uint256","name":"shockVolPointA","type":"uint256"},{"internalType":"uint256","name":"shockVolB","type":"uint256"},{"internalType":"uint256","name":"shockVolPointB","type":"uint256"},{"internalType":"uint256","name":"callSpotPriceShock","type":"uint256"},{"internalType":"uint256","name":"putSpotPriceShock","type":"uint256"}],"internalType":"struct OptionGreekCache.MinCollateralParameters","name":"minCollatParams","type":"tuple"}],"name":"InvalidMinCollatParams","type":"error"},{"inputs":[],"name":"LnNegativeUndefined","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"nominatedOwner","type":"address"}],"name":"OnlyNominatedOwner","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"optionMarket","type":"address"}],"name":"OnlyOptionMarket","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"optionMarketPricer","type":"address"}],"name":"OnlyOptionMarketPricer","type":"error"},{"inputs":[{"internalType":"address","name":"thrower","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OnlyOwner","type":"error"},{"inputs":[],"name":"Overflow","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"boardId","type":"uint256"}],"name":"BoardCacheRemoved","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256[]","name":"strikes","type":"uint256[]"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"iv","type":"uint256"},{"components":[{"internalType":"int256","name":"netDelta","type":"int256"},{"internalType":"int256","name":"netStdVega","type":"int256"},{"internalType":"int256","name":"netOptionValue","type":"int256"}],"internalType":"struct OptionGreekCache.NetGreeks","name":"netGreeks","type":"tuple"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAtPrice","type":"uint256"},{"internalType":"uint256","name":"maxSkewVariance","type":"uint256"},{"internalType":"uint256","name":"ivVariance","type":"uint256"}],"indexed":false,"internalType":"struct OptionGreekCache.OptionBoardCache","name":"boardCache","type":"tuple"}],"name":"BoardCacheUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"boardId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newIv","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"globalMaxIvVariance","type":"uint256"}],"name":"BoardIvUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"ivGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"skewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"shortVolShock","type":"uint256"},{"internalType":"uint256","name":"shortPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"longVolShock","type":"uint256"},{"internalType":"uint256","name":"longPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidateVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidatePostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"shortSpotMin","type":"uint256"},{"internalType":"uint256","name":"liquidateSpotMin","type":"uint256"}],"indexed":false,"internalType":"struct OptionGreekCache.ForceCloseParameters","name":"params","type":"tuple"}],"name":"ForceCloseParametersSet","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"minUpdatedAt","type":"uint256"},{"internalType":"uint256","name":"minUpdatedAtPrice","type":"uint256"},{"internalType":"uint256","name":"maxUpdatedAtPrice","type":"uint256"},{"internalType":"uint256","name":"maxSkewVariance","type":"uint256"},{"internalType":"uint256","name":"maxIvVariance","type":"uint256"},{"components":[{"internalType":"int256","name":"netDelta","type":"int256"},{"internalType":"int256","name":"netStdVega","type":"int256"},{"internalType":"int256","name":"netOptionValue","type":"int256"}],"internalType":"struct OptionGreekCache.NetGreeks","name":"netGreeks","type":"tuple"}],"indexed":false,"internalType":"struct OptionGreekCache.GlobalCache","name":"globalCache","type":"tuple"}],"name":"GlobalCacheUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"maxStrikesPerBoard","type":"uint256"},{"internalType":"uint256","name":"acceptableSpotPricePercentMove","type":"uint256"},{"internalType":"uint256","name":"staleUpdateDuration","type":"uint256"},{"internalType":"uint256","name":"varianceIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"varianceSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"gwavSkewFloor","type":"uint256"},{"internalType":"uint256","name":"gwavSkewCap","type":"uint256"}],"indexed":false,"internalType":"struct OptionGreekCache.GreekCacheParameters","name":"params","type":"tuple"}],"name":"GreekCacheParametersSet","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"minStaticQuoteCollateral","type":"uint256"},{"internalType":"uint256","name":"minStaticBaseCollateral","type":"uint256"},{"internalType":"uint256","name":"shockVolA","type":"uint256"},{"internalType":"uint256","name":"shockVolPointA","type":"uint256"},{"internalType":"uint256","name":"shockVolB","type":"uint256"},{"internalType":"uint256","name":"shockVolPointB","type":"uint256"},{"internalType":"uint256","name":"callSpotPriceShock","type":"uint256"},{"internalType":"uint256","name":"putSpotPriceShock","type":"uint256"}],"indexed":false,"internalType":"struct OptionGreekCache.MinCollateralParameters","name":"params","type":"tuple"}],"name":"MinCollateralParametersSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"strikeId","type":"uint256"}],"name":"StrikeCacheRemoved","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"boardId","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"skew","type":"uint256"},{"components":[{"internalType":"int256","name":"callDelta","type":"int256"},{"internalType":"int256","name":"putDelta","type":"int256"},{"internalType":"uint256","name":"stdVega","type":"uint256"},{"internalType":"uint256","name":"callPrice","type":"uint256"},{"internalType":"uint256","name":"putPrice","type":"uint256"}],"internalType":"struct OptionGreekCache.StrikeGreeks","name":"greeks","type":"tuple"},{"internalType":"int256","name":"callExposure","type":"int256"},{"internalType":"int256","name":"putExposure","type":"int256"},{"internalType":"uint256","name":"skewVariance","type":"uint256"}],"indexed":false,"internalType":"struct OptionGreekCache.StrikeCache","name":"strikeCache","type":"tuple"}],"name":"StrikeCacheUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"strikeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSkew","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"globalMaxSkewVariance","type":"uint256"}],"name":"StrikeSkewUpdated","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"iv","type":"uint256"},{"internalType":"bool","name":"frozen","type":"bool"},{"internalType":"uint256[]","name":"strikeIds","type":"uint256[]"}],"internalType":"struct OptionMarket.OptionBoard","name":"board","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"skew","type":"uint256"},{"internalType":"uint256","name":"longCall","type":"uint256"},{"internalType":"uint256","name":"shortCallBase","type":"uint256"},{"internalType":"uint256","name":"shortCallQuote","type":"uint256"},{"internalType":"uint256","name":"longPut","type":"uint256"},{"internalType":"uint256","name":"shortPut","type":"uint256"},{"internalType":"uint256","name":"boardId","type":"uint256"}],"internalType":"struct OptionMarket.Strike[]","name":"strikes","type":"tuple[]"}],"name":"addBoard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"},{"internalType":"uint256","name":"strikeId","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"skew","type":"uint256"}],"name":"addStrikeToBoard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"}],"name":"getBoardGreeksView","outputs":[{"components":[{"components":[{"internalType":"int256","name":"netDelta","type":"int256"},{"internalType":"int256","name":"netStdVega","type":"int256"},{"internalType":"int256","name":"netOptionValue","type":"int256"}],"internalType":"struct OptionGreekCache.NetGreeks","name":"boardGreeks","type":"tuple"},{"internalType":"uint256","name":"ivGWAV","type":"uint256"},{"components":[{"internalType":"int256","name":"callDelta","type":"int256"},{"internalType":"int256","name":"putDelta","type":"int256"},{"internalType":"uint256","name":"stdVega","type":"uint256"},{"internalType":"uint256","name":"callPrice","type":"uint256"},{"internalType":"uint256","name":"putPrice","type":"uint256"}],"internalType":"struct OptionGreekCache.StrikeGreeks[]","name":"strikeGreeks","type":"tuple[]"},{"internalType":"uint256[]","name":"skewGWAVs","type":"uint256[]"}],"internalType":"struct OptionGreekCache.BoardGreeksView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getForceCloseParams","outputs":[{"components":[{"internalType":"uint256","name":"ivGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"skewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"shortVolShock","type":"uint256"},{"internalType":"uint256","name":"shortPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"longVolShock","type":"uint256"},{"internalType":"uint256","name":"longPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidateVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidatePostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"shortSpotMin","type":"uint256"},{"internalType":"uint256","name":"liquidateSpotMin","type":"uint256"}],"internalType":"struct OptionGreekCache.ForceCloseParameters","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGlobalCache","outputs":[{"components":[{"internalType":"uint256","name":"minUpdatedAt","type":"uint256"},{"internalType":"uint256","name":"minUpdatedAtPrice","type":"uint256"},{"internalType":"uint256","name":"maxUpdatedAtPrice","type":"uint256"},{"internalType":"uint256","name":"maxSkewVariance","type":"uint256"},{"internalType":"uint256","name":"maxIvVariance","type":"uint256"},{"components":[{"internalType":"int256","name":"netDelta","type":"int256"},{"internalType":"int256","name":"netStdVega","type":"int256"},{"internalType":"int256","name":"netOptionValue","type":"int256"}],"internalType":"struct OptionGreekCache.NetGreeks","name":"netGreeks","type":"tuple"}],"internalType":"struct OptionGreekCache.GlobalCache","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGlobalNetDelta","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGlobalOptionValue","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGreekCacheParams","outputs":[{"components":[{"internalType":"uint256","name":"maxStrikesPerBoard","type":"uint256"},{"internalType":"uint256","name":"acceptableSpotPricePercentMove","type":"uint256"},{"internalType":"uint256","name":"staleUpdateDuration","type":"uint256"},{"internalType":"uint256","name":"varianceIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"varianceSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"gwavSkewFloor","type":"uint256"},{"internalType":"uint256","name":"gwavSkewCap","type":"uint256"}],"internalType":"struct OptionGreekCache.GreekCacheParameters","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"},{"internalType":"uint256","name":"secondsAgo","type":"uint256"}],"name":"getIvGWAV","outputs":[{"internalType":"uint256","name":"ivGWAV","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinCollatParams","outputs":[{"components":[{"internalType":"uint256","name":"minStaticQuoteCollateral","type":"uint256"},{"internalType":"uint256","name":"minStaticBaseCollateral","type":"uint256"},{"internalType":"uint256","name":"shockVolA","type":"uint256"},{"internalType":"uint256","name":"shockVolPointA","type":"uint256"},{"internalType":"uint256","name":"shockVolB","type":"uint256"},{"internalType":"uint256","name":"shockVolPointB","type":"uint256"},{"internalType":"uint256","name":"callSpotPriceShock","type":"uint256"},{"internalType":"uint256","name":"putSpotPriceShock","type":"uint256"}],"internalType":"struct OptionGreekCache.MinCollateralParameters","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum OptionMarket.OptionType","name":"optionType","type":"uint8"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"spotPrice","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getMinCollateral","outputs":[{"internalType":"uint256","name":"minCollateral","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"}],"name":"getOptionBoardCache","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256[]","name":"strikes","type":"uint256[]"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"iv","type":"uint256"},{"components":[{"internalType":"int256","name":"netDelta","type":"int256"},{"internalType":"int256","name":"netStdVega","type":"int256"},{"internalType":"int256","name":"netOptionValue","type":"int256"}],"internalType":"struct OptionGreekCache.NetGreeks","name":"netGreeks","type":"tuple"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAtPrice","type":"uint256"},{"internalType":"uint256","name":"maxSkewVariance","type":"uint256"},{"internalType":"uint256","name":"ivVariance","type":"uint256"}],"internalType":"struct OptionGreekCache.OptionBoardCache","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bool","name":"isBuy","type":"bool"},{"internalType":"bool","name":"isForceClose","type":"bool"},{"internalType":"enum OptionMarket.TradeDirection","name":"tradeDirection","type":"uint8"},{"internalType":"enum OptionMarket.OptionType","name":"optionType","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"spotPrice","type":"uint256"},{"components":[{"internalType":"uint256","name":"freeLiquidity","type":"uint256"},{"internalType":"uint256","name":"burnableLiquidity","type":"uint256"},{"internalType":"uint256","name":"reservedCollatLiquidity","type":"uint256"},{"internalType":"uint256","name":"pendingDeltaLiquidity","type":"uint256"},{"internalType":"uint256","name":"usedDeltaLiquidity","type":"uint256"},{"internalType":"uint256","name":"NAV","type":"uint256"},{"internalType":"uint256","name":"longScaleFactor","type":"uint256"}],"internalType":"struct LiquidityPool.Liquidity","name":"liquidity","type":"tuple"}],"internalType":"struct OptionMarket.TradeParameters","name":"trade","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"skew","type":"uint256"},{"internalType":"uint256","name":"longCall","type":"uint256"},{"internalType":"uint256","name":"shortCallBase","type":"uint256"},{"internalType":"uint256","name":"shortCallQuote","type":"uint256"},{"internalType":"uint256","name":"longPut","type":"uint256"},{"internalType":"uint256","name":"shortPut","type":"uint256"},{"internalType":"uint256","name":"boardId","type":"uint256"}],"internalType":"struct OptionMarket.Strike","name":"strike","type":"tuple"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"newVol","type":"uint256"},{"internalType":"bool","name":"isPostCutoff","type":"bool"}],"name":"getPriceForForceClose","outputs":[{"internalType":"uint256","name":"optionPrice","type":"uint256"},{"internalType":"uint256","name":"forceCloseVol","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timeToMaturity","type":"uint256"}],"name":"getShockVol","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"strikeId","type":"uint256"},{"internalType":"uint256","name":"secondsAgo","type":"uint256"}],"name":"getSkewGWAV","outputs":[{"internalType":"uint256","name":"skewGWAV","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"strikeId","type":"uint256"}],"name":"getStrikeCache","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"boardId","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"skew","type":"uint256"},{"components":[{"internalType":"int256","name":"callDelta","type":"int256"},{"internalType":"int256","name":"putDelta","type":"int256"},{"internalType":"uint256","name":"stdVega","type":"uint256"},{"internalType":"uint256","name":"callPrice","type":"uint256"},{"internalType":"uint256","name":"putPrice","type":"uint256"}],"internalType":"struct OptionGreekCache.StrikeGreeks","name":"greeks","type":"tuple"},{"internalType":"int256","name":"callExposure","type":"int256"},{"internalType":"int256","name":"putExposure","type":"int256"},{"internalType":"uint256","name":"skewVariance","type":"uint256"}],"internalType":"struct OptionGreekCache.StrikeCache","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract BaseExchangeAdapter","name":"_exchangeAdapter","type":"address"},{"internalType":"contract OptionMarket","name":"_optionMarket","type":"address"},{"internalType":"address","name":"_optionMarketPricer","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"}],"name":"isBoardCacheStale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"spotPrice","type":"uint256"}],"name":"isGlobalCacheStale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"}],"name":"removeBoard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"},{"internalType":"uint256","name":"newBaseIv","type":"uint256"}],"name":"setBoardIv","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"ivGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"skewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"shortVolShock","type":"uint256"},{"internalType":"uint256","name":"shortPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"longVolShock","type":"uint256"},{"internalType":"uint256","name":"longPostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidateVolShock","type":"uint256"},{"internalType":"uint256","name":"liquidatePostCutoffVolShock","type":"uint256"},{"internalType":"uint256","name":"shortSpotMin","type":"uint256"},{"internalType":"uint256","name":"liquidateSpotMin","type":"uint256"}],"internalType":"struct OptionGreekCache.ForceCloseParameters","name":"_forceCloseParams","type":"tuple"}],"name":"setForceCloseParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"maxStrikesPerBoard","type":"uint256"},{"internalType":"uint256","name":"acceptableSpotPricePercentMove","type":"uint256"},{"internalType":"uint256","name":"staleUpdateDuration","type":"uint256"},{"internalType":"uint256","name":"varianceIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"varianceSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueIvGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"optionValueSkewGWAVPeriod","type":"uint256"},{"internalType":"uint256","name":"gwavSkewFloor","type":"uint256"},{"internalType":"uint256","name":"gwavSkewCap","type":"uint256"}],"internalType":"struct OptionGreekCache.GreekCacheParameters","name":"_greekCacheParams","type":"tuple"}],"name":"setGreekCacheParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"minStaticQuoteCollateral","type":"uint256"},{"internalType":"uint256","name":"minStaticBaseCollateral","type":"uint256"},{"internalType":"uint256","name":"shockVolA","type":"uint256"},{"internalType":"uint256","name":"shockVolPointA","type":"uint256"},{"internalType":"uint256","name":"shockVolB","type":"uint256"},{"internalType":"uint256","name":"shockVolPointB","type":"uint256"},{"internalType":"uint256","name":"callSpotPriceShock","type":"uint256"},{"internalType":"uint256","name":"putSpotPriceShock","type":"uint256"}],"internalType":"struct OptionGreekCache.MinCollateralParameters","name":"_minCollatParams","type":"tuple"}],"name":"setMinCollateralParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"strikeId","type":"uint256"},{"internalType":"uint256","name":"newSkew","type":"uint256"}],"name":"setStrikeSkew","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"boardId","type":"uint256"}],"name":"updateBoardCachedGreeks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"skew","type":"uint256"},{"internalType":"uint256","name":"longCall","type":"uint256"},{"internalType":"uint256","name":"shortCallBase","type":"uint256"},{"internalType":"uint256","name":"shortCallQuote","type":"uint256"},{"internalType":"uint256","name":"longPut","type":"uint256"},{"internalType":"uint256","name":"shortPut","type":"uint256"},{"internalType":"uint256","name":"boardId","type":"uint256"}],"internalType":"struct OptionMarket.Strike","name":"strike","type":"tuple"},{"components":[{"internalType":"bool","name":"isBuy","type":"bool"},{"internalType":"bool","name":"isForceClose","type":"bool"},{"internalType":"enum OptionMarket.TradeDirection","name":"tradeDirection","type":"uint8"},{"internalType":"enum OptionMarket.OptionType","name":"optionType","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"spotPrice","type":"uint256"},{"components":[{"internalType":"uint256","name":"freeLiquidity","type":"uint256"},{"internalType":"uint256","name":"burnableLiquidity","type":"uint256"},{"internalType":"uint256","name":"reservedCollatLiquidity","type":"uint256"},{"internalType":"uint256","name":"pendingDeltaLiquidity","type":"uint256"},{"internalType":"uint256","name":"usedDeltaLiquidity","type":"uint256"},{"internalType":"uint256","name":"NAV","type":"uint256"},{"internalType":"uint256","name":"longScaleFactor","type":"uint256"}],"internalType":"struct LiquidityPool.Liquidity","name":"liquidity","type":"tuple"}],"internalType":"struct OptionMarket.TradeParameters","name":"trade","type":"tuple"},{"internalType":"uint256","name":"iv","type":"uint256"},{"internalType":"uint256","name":"skew","type":"uint256"},{"internalType":"bool","name":"isPostCutoff","type":"bool"}],"name":"updateStrikeExposureAndGetPrice","outputs":[{"components":[{"internalType":"uint256","name":"optionPrice","type":"uint256"},{"internalType":"int256","name":"preTradeAmmNetStdVega","type":"int256"},{"internalType":"int256","name":"postTradeAmmNetStdVega","type":"int256"},{"internalType":"int256","name":"callDelta","type":"int256"},{"internalType":"uint256","name":"volTraded","type":"uint256"},{"internalType":"uint256","name":"ivVariance","type":"uint256"},{"internalType":"uint256","name":"vega","type":"uint256"}],"internalType":"struct OptionGreekCache.TradePricing","name":"pricing","type":"tuple"}],"stateMutability":"nonpayable","type":"function"}]
60806040526032805460ff1916905534801561001a57600080fd5b50600080546001600160a01b0319163390811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160016033556150f38061007d6000396000f3fe608060405234801561001057600080fd5b50600436106101755760003560e01c80631627540c1461017a578063184b95591461018f578063254297b9146101a257806326941500146101cb5780632a33a5941461023457806343f03af014610247578063459390f21461025a5780634d0d1be31461027d57806353a47bb7146102a5578063551c8555146102c557806356946687146102d857806360e3ecc9146102ed578063641c3736146103005780636461a97b1461032057806379ba5097146103355780637df712681461033d5780637fdf17e21461035e578063825df9b21461037e57806384ef5538146103865780638da5cb5b1461038e57806393c0a34f146103a1578063a57ce682146103b4578063b196a96b146103c7578063bb3d47fe146103da578063d6d1c31b146103ed578063dba5082a14610400578063e7a5897b14610413578063e812844014610426578063f369f2ac1461043b578063f3fd9b3d14610450578063fc5a639914610463575b600080fd5b61018d610188366004613f11565b610476565b005b61018d61019d366004613f2e565b6104d4565b6101b56101b0366004613f79565b610557565b6040516101c29190614016565b60405180910390f35b6101de6101d9366004614326565b610886565b6040516101c29190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b61018d610242366004614384565b6109b1565b61018d61025536600461443a565b610b97565b61026d610268366004613f79565b610d6f565b60405190151581526020016101c2565b61029061028b36600461454e565b610dc4565b604080519283526020830191909152016101c2565b6001546102b8906001600160a01b031681565b6040516101c29190614581565b61018d6102d3366004614595565b611098565b6102e061111c565b6040516101c2919061461d565b61018d6102fb366004613f79565b6111d1565b61031361030e366004613f79565b6112b2565b6040516101c2919061462c565b61032861136c565b6040516101c29190614690565b61018d6113d6565b61035061034b366004614595565b611484565b6040519081526020016101c2565b61037161036c366004613f79565b611514565b6040516101c291906146d7565b605854610350565b605a54610350565b6000546102b8906001600160a01b031681565b61018d6103af36600461475f565b611607565b6103506103c2366004614791565b6116ad565b61018d6103d53660046147d3565b6118e0565b61018d6103e8366004614862565b611a3b565b61026d6103fb366004613f79565b611c5d565b61018d61040e366004613f79565b611e22565b61018d610421366004614595565b612219565b61042e612280565b6040516101c29190614937565b610443612316565b6040516101c291906149a0565b61035061045e366004614595565b6123bc565b610350610471366004613f79565b612404565b61047e612477565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906104c9908390614581565b60405180910390a150565b6104dc612477565b60325460ff161561050b573060405163161b906f60e01b81526004016105029190614581565b60405180910390fd5b6032805460ff19166001179055603480546001600160a01b039485166001600160a01b031991821617909155603580549385169382169390931790925560368054919093169116179055565b61055f613d33565b6000828152605b602052604081206001015490816001600160401b0381111561058a5761058a6140ac565b6040519080825280602002602001820160405280156105c357816020015b6105b0613d61565b8152602001906001900390816105a85790505b5090506000826001600160401b038111156105e0576105e06140ac565b604051908082528060200260200182016040528015610609578160200160208202803683370190505b50905060005b838110156107a9576000868152605b602052604081206001018054605d9291908490811061063f5761063f6149af565b906000526020600020015481526020019081526020016000206004016040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250508382815181106106aa576106aa6149af565b6020026020010181905250605e6000605b600089815260200190815260200160002060010183815481106106e0576106e06149af565b9060005260206000200154815260200190815260200160002073fa8c3eeae5e1296e0e559177d26d1fe9122ca058631c2c8416909160406001015460006040518463ffffffff1660e01b815260040161073b939291906149c5565b602060405180830381865af4158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c91906149db565b82828151811061078e5761078e6149af565b60209081029190910101526107a281614a0a565b905061060f565b50604080516000878152605b602090815283822060e08401855260048082015460808601908152600583015460a087015260069092015460c0860152908452898352605c825284832085549551630e16420b60e11b815294959286019473fa8c3eeae5e1296e0e559177d26d1fe9122ca05894631c2c84169461082e949092016149c5565b602060405180830381865af415801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f91906149db565b815260208101939093526040909201529392505050565b61088e613d90565b6036546001600160a01b031633146108ca57603654604051638d9ab13760e01b815261050291309133916001600160a01b031690600401614a23565b85516000908152605d6020908152604080832060018101548452605b9092529091206108f681876124b5565b61090181838761251a565b6109638282896109238c60a001518d6080015161091e9190614a46565b61258f565b6109308d6060015161258f565b61093a9190614a59565b6109478d60e0015161258f565b6109548e60c0015161258f565b61095e9190614a59565b6125fd565b600a82015460a08201526020880151909350156109a55761099d87898360020154610997898b6129f690919063ffffffff16565b88610dc4565b608085015283525b50505b95945050505050565b6109b9612477565b678ac7230489e800008160200151111580156109dc575062278d00816040015111155b80156109ec575060008160600151115b80156109ff5750624f1a00816060015111155b8015610a0f575060008160800151115b8015610a225750624f1a00816080015111155b8015610a32575060008160a00151115b8015610a455750624f1a008160a0015111155b8015610a55575060008160c00151115b8015610a685750624f1a008160c0015111155b8015610a805750670de0b6b3a76400008160e0015111155b8015610a90575060008160e00151115b8015610aa95750670de0b6b3a764000081610100015110155b610aca573081604051632aaea68360e21b8152600401610502929190614a79565b8051603790815560208201516038556040808301516039556060830151603a556080830151603b5560a0830151603c5560c0830151603d5560e0830151603e55610100830151603f55517fc050837382b0708fcee2778261beb86feedb0f5f2549682243407f14607f4a9a916104c9918154815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201526101200190565b6035546001600160a01b03163314610bd357603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b8051603754811115610c0457825160375460405163398391f160e21b81526105029230929091859190600401614a97565b82516000908152605b602090815260409182902085518155908501516002820155818501516003820155426007820155905160008051602061503e83398151915290610c51908390614b0c565b60405180910390a160408085015185516000908152605c60205291909120610c799142612a18565b8054604080860151605754915160008051602061507e83398151915293610ca2939092916149c5565b60405180910390a183516052805460018101825560009182527fa9144a5e7efd259b8b0d55467f4696ed47ec83317d61501b76366dbcca65ce7301919091555b82811015610d5d57610d4d82858381518110610d0057610d006149af565b602002602001015160000151868481518110610d1e57610d1e6149af565b602002602001015160200151878581518110610d3c57610d3c6149af565b602002602001015160400151612a7e565b610d5681614a0a565b9050610ce2565b508351610d69906111d1565b50505050565b6052546000908103610d8357506000919050565b605354610d8f90612b41565b80610da45750605454610da29083612b58565b155b80610db95750605554610db79083612b58565b155b92915050565b919050565b600080610de68661010001518760000151604060000154604060010154612b9b565b9050600187604001516002811115610e0057610e00614b88565b03610e7257865115610e4557610e168185612cca565b905082610e3057604254610e2b9082906129f6565b610e3e565b604354610e3e9082906129f6565b9050610e9b565b610e4f8185612ce0565b905082610e6457604454610e2b9082906129f6565b604554610e3e9082906129f6565b82610e8a57604654610e859082906129f6565b610e98565b604754610e989082906129f6565b90505b6000806040518060a00160405280610eb289612cef565b8152602080820186905260e08c0151604080840191909152908b015160608301526034546035549151634a51c00960e01b81526080909301926001600160a01b0391821692634a51c00992610f0c92911690600401614581565b602060405180830381865afa158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d91906149db565b905260405163b6e62e5960e01b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163b6e62e5991610f859190600401614b9e565b6040805180830381865af4158015610fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc59190614bd8565b9092509050600060018a606001516004811115610fe457610fe4614b88565b1480611005575060048a60600151600481111561100357611003614b88565b145b61100f5782611011565b815b8a519091501561108a5760006110348a602001518c60e001518d60600151612cfb565b9050600061106f60018d60400151600281111561105357611053614b88565b1461106057604954611064565b6048545b60e08e0151906129f6565b6110799083614a46565b90506110858382612cca565b925050505b935050509550959350505050565b6035546001600160a01b031633146110d457603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000828152605b602052604090206110ec81836124b5565b60575460405160008051602061507e8339815191529161110f91869186916149c5565b60405180910390a1505050565b611172604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506040805161014081018252815481526041546020820152604254918101919091526043546060820152604454608082015260455460a082015260465460c082015260475460e082015260485461010082015260495461012082015290565b6002603354036112235760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610502565b600260338190556034546035546040516373cbfc6960e01b81526112aa936001600160a01b03938416936373cbfc69936112639391169190600401614bfc565b602060405180830381865afa158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a491906149db565b82612d81565b506001603355565b6112ba613dcd565b605d60008381526020019081526020016000206040518061010001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482016040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050815260200160098201548152602001600a8201548152602001600b820154815250509050919050565b611374613e18565b506040805160c081018252605354815260545460208083019190915260555482840152605654606080840191909152605754608084015283519081018452605854815260595491810191909152605a549281019290925260a081019190915290565b6001546001600160a01b03163314611412576001546040516312d9f3db60e31b815261050291309133916001600160a01b031690600401614a23565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000828152605e60205260408082209051630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c8416916114cc9190869086906004016149c5565b602060405180830381865af41580156114e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150d91906149db565b9392505050565b61151c613e53565b6000828152605b6020908152604091829020825161012081018452815481526001820180548551818602810186019096528086529194929385810193929083018282801561158957602002820191906000526020600020905b815481526020019060010190808311611575575b5050505050815260200160028201548152602001600382015481526020016004820160405180606001604052908160008201548152602001600182015481526020016002820154815250508152602001600782015481526020016008820154815260200160098201548152602001600a820154815250509050919050565b6035546001600160a01b0316331461164357603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000848152605b60205260409020603754600182015403611691576001808201543091879161167191614a46565b60375460405163398391f160e21b81526105029493929190600401614a97565b61169d81858585612a7e565b6116a6856111d1565b5050505050565b6000816000036116bf575060006109a8565b600060048760048111156116d5576116d5614b88565b146116ed576050546116e89085906129f6565b6116fb565b6051546116fb9085906129f6565b9050600061170886612cef565b90506000806040518060a0016040528084815260200161172785612404565b81526020810186905260408082018c90526034546035549151634a51c00960e01b81526060909301926001600160a01b0391821692634a51c0099261177192911690600401614581565b602060405180830381865afa15801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b291906149db565b905260405163b6e62e5960e01b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163b6e62e59916117ea9190600401614b9e565b6040805180830381865af4158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a9190614bd8565b604a549193509150600090819060028d600481111561184b5761184b614b88565b03611874576118648761185e878c6129f6565b906130a0565b604b548a945090925090506118bc565b60038d600481111561188857611888614b88565b036118a357611897858a6129f6565b915060001992506118bc565b6118ad848a6129f6565b91506118b9898d6129f6565b92505b6118cf6118c98383612cca565b84612ce0565b9d9c50505050505050505050505050565b6118e8612477565b8051158015906118fc575060008160200151115b801561190c575060008160400151115b801561192057508060800151816040015110155b801561193457508060a00151816060015111155b801561194c5750670de0b6b3a76400008160c0015110155b801561195c575060008160e00151115b80156119745750670de0b6b3a76400008160e0015111155b6119955730816040516313cb12ab60e11b8152600401610502929190614c37565b8051604a819055602080830151604b819055604080850151604c819055606080870151604d819055608080890151604e81905560a0808b0151604f81905560c0808d0151605081905560e0808f015160518190558b519e8f529c8e019b909b52988c0197909752948a0193909352908801528601528401528201527f94b577fd70dcaebd07123e2514be7da5a62dab905be755cd605e53dd2fa41a7b90610100016104c9565b611a43612477565b805115801590611a5757508051624f1a0010155b8015611a67575060008160200151115b8015611a7a5750624f1a00816020015111155b8015611a925750670de0b6b3a7640000816040015110155b8015611aaa5750670de0b6b3a7640000816060015110155b8015611aba575060008160800151115b8015611ad25750670de0b6b3a7640000816080015111155b8015611ae2575060008160a00151115b8015611afa5750670de0b6b3a76400008160a0015111155b8015611b125750670de0b6b3a76400008160c0015110155b8015611b2a5750670de0b6b3a76400008160e0015110155b8015611b435750670de0b6b3a764000081610100015111155b8015611b5c5750670de0b6b3a764000081610120015111155b611b7d5730816040516303780e9760e21b8152600401610502929190614c55565b805160409081556020820151604155808201516042556060820151604355608082015160445560a082015160455560c082015160465560e082015160475561010082015160485561012082015160495580517f95e54255a98e1b972607fc1600f848168025629a91519457ef90885ffe6ddf93916104c9918154815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009909101546101208201526101400190565b6034546035546040516373cbfc6960e01b815260009283926001600160a01b03918216926373cbfc6992611c98921690600290600401614bfc565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd991906149db565b90506000605b6000858152602001908152602001600020604051806101200160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d5557602002820191906000526020600020905b815481526020019060010190808311611d41575b5050505050815260200160028201548152602001600382015481526020016004820160405180606001604052908160008201548152602001600182015481526020016002820154815250508152602001600782015481526020016008820154815260200160098201548152602001600a8201548152505090508060000151600003611df7578051604051631234dccd60e01b8152610502913091600401614c73565b611e048160a00151612b41565b80611e1a5750611e188160c0015183612b58565b155b949350505050565b6035546001600160a01b03163314611e5e57603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000818152605b60209081526040808320815161012081018352815481526001820180548451818702810187019095528085529194929385840193909290830182828015611ecb57602002820191906000526020600020905b815481526020019060010190808311611eb7575b5050505050815260200160028201548152602001600382015481526020016004820160405180606001604052908160008201548152602001600182015481526020016002820154815250508152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050905080608001516000015160536005016000016000828254611f649190614a59565b909155505060808101516020015160598054600090611f84908490614a59565b9091555050608081015160400151605a8054600090611fa4908490614a59565b909155505060208101515160005b818110156120a3577fe43ab028e41dd579cd3c8163d1db2c05b666107134bd7ce2107af0683a5ebdd683602001518281518110611ff157611ff16149af565b602002602001015160405161200891815260200190565b60405180910390a1605d60008460200151838151811061202a5761202a6149af565b60209081029190910181015182528101919091526040016000908120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600781018290556008810182905560098101829055600a8101829055600b015561209c81614a0a565b9050611fb2565b5060525460005b818110156121595784605282815481106120c6576120c66149af565b9060005260206000200154036121495760526120e3600184614c8c565b815481106120f3576120f36149af565b906000526020600020015460528281548110612111576121116149af565b600091825260209091200155605280548061212e5761212e614c9f565b60019003818190600052602060002001600090559055612159565b61215281614a0a565b90506120aa565b506040518481527fe20b1632d16e689391465933d4e779302d4f216209b52ab7dc0b74402e31f7ca9060200160405180910390a160008051602061505e83398151915260536040516121ab9190614cb5565b60405180910390a16000848152605b60205260408120818155906121d26001830182613ea5565b5060006002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820181905560098201819055600a9091015550505050565b6035546001600160a01b0316331461225557603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000828152605d6020908152604080832060018101548452605b909252909120610d6981838561251a565b6122c860405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506040805161010081018252604a548152604b546020820152604c5491810191909152604d546060820152604e546080820152604f5460a082015260505460c082015260515460e082015290565b6123656040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060408051610120810182526037548152603854602082015260395491810191909152603a546060820152603b546080820152603c5460a0820152603d5460c0820152603e5460e0820152603f5461010082015290565b6000828152605c60205260408082209051630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c8416916114cc9190869086906004016149c5565b604d546000908211612418575050604c5490565b604f548210612429575050604e5490565b604d54604f546124399190614c8c565b604d546124469084614c8c565b604e54604c546124569190614c8c565b6124609190614cf6565b61246a9190614d2b565b604c54610db99190614c8c565b6000546001600160a01b031633146124b35760005460405163035785f360e31b815261050291309133916001600160a01b031690600401614a23565b565b6003820181905581546000908152605c602052604090206124d79082426130b9565b6124e082613238565b6124e86132fb565b815460575460405160008051602061507e8339815191529261250e9290918591906149c5565b60405180910390a15050565b80826003018190555061255761254061253883603760080154612ce0565b603e54612cca565b83546000908152605e6020526040902090426130b9565b612560826133ce565b61256983613491565b815460565460405160008051602061501e8339815191529261110f9290918591906149c5565b60006001600160ff1b038211156125f95760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610502565b5090565b612605613d90565b60006040518060a0016040528061261f8860020154612cef565b815260200161263f896003015489600301546129f690919063ffffffff16565b815260e0870151602082015260028901546040808301919091526034546035549151634a51c00960e01b81526060909301926001600160a01b0391821692634a51c0099261269292911690600401614581565b602060405180830381865afa1580156126af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d391906149db565b9052604051626dab0f60e31b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163036d58789161270a9190600401614b9e565b60c060405180830381865af4158015612727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274b9190614d3f565b90506000612777612762896004016004015461258f565b600a8a01546127719087614a59565b90613644565b61279961278a8a6004016003015461258f565b60098b01546127719089614a59565b6127a39190614db8565b905060006127c289600401600101548a600a0154876127719190614a59565b60048a015460098b01546127db9190612771908a614a59565b6127e59190614db8565b905060006128246127fc8b6004016002015461258f565b600a8c015460098d01546128108a8c614db8565b61281a9190614a59565b6127719190614a59565b60098b01889055600a8b0187905560068a018054919250849160009061284b908490614db8565b9091555050600489018054839190600090612867908490614db8565b9091555050600589018054829190600090612883908490614db8565b909155505060595461289490614de0565b6020860152605a80548491906000906128ae908490614db8565b9091555050605880548391906000906128c8908490614db8565b9091555050605980548291906000906128e2908490614db8565b90915550600190508860600151600481111561290057612900614b88565b14158015612924575060048860600151600481111561292157612921614b88565b14155b612932578360200151612935565b83515b855260595461294390614de0565b60408087019190915284015160608601526003808b0154908a0154612967916129f6565b60808087019190915284015160c086015260405160008051602061509e83398151915290612996908c90614dfc565b60405180910390a160008051602061503e833981519152896040516129bb9190614b0c565b60405180910390a160008051602061505e83398151915260536040516129e19190614cb5565b60405180910390a15050505095945050505050565b6000612a046012600a614f5e565b612a0e8385614cf6565b61150d9190614d2b565b612a798382612a2685613666565b612a309190614f6a565b6040805160608101825291825260208083018781529183018681528454600180820187556000968752929095209351600390950290930193845590519083015551600290910155565b505050565b6000838152605d602052604090819020848155600281018490556003810183905585546001820155905160008051602061509e83398151915290612ac3908390614dfc565b60405180910390a1612af5612ae061253884603760080154612ce0565b6000868152605e602052604090209042612a18565b805460565460405160008051602061501e83398151915292612b1b9290918691906149c5565b60405180910390a150505060019182018054928301815560009081526020902090910155565b603954600090612b51834261389b565b1192915050565b6038546000908190612b6b9085906129f6565b905083831115612b895780612b808585614c8c565b10915050610db9565b80612b808486614c8c565b5092915050565b6000848152605c60205260408082209051630e16420b60e11b8152829173fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c841691612be491889086906004016149c5565b602060405180830381865af4158015612c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2591906149db565b6000868152605e60205260408082209051630e16420b60e11b8152929350909173fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c841691612c729190889086906004016149c5565b602060405180830381865af4158015612c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb391906149db565b9050612cbf82826129f6565b979650505050505050565b6000818311612cd9578161150d565b5090919050565b6000818310612cd9578161150d565b6000610db9428361389b565b6000806001836004811115612d1257612d12614b88565b1480612d2f57506004836004811115612d2d57612d2d614b88565b145b612d5457612d3c8561258f565b612d458561258f565b612d4f9190614a59565b612d70565b612d5d8461258f565b612d668661258f565b612d709190614a59565b905060008113611e1a5760006109a8565b6000818152605b602052604081208054909103612db5578054604051631234dccd60e01b8152610502913091600401614c73565b8060020154421115612de75780546002820154604051634a3878e360e11b815261050292309290914290600401614a97565b6006810154605a8054600090612dfe908490614a59565b9091555050600481015460588054600090612e1a908490614a59565b9091555050600581015460598054600090612e36908490614a59565b9091555050600060068201819055600482018190556005820155612e5981613238565b6000828152605c6020526040808220603c549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c841692612ea49290919086906004016149c5565b602060405180830381865af4158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee591906149db565b600183015490915060005b81811015612ff5576000605d6000866001018481548110612f1357612f136149af565b906000526020600020015481526020019081526020016000209050612f37816133ce565b80546000908152605e6020526040808220603d549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c841692612f849290919086906004016149c5565b602060405180830381865af4158015612fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc591906149db565b90506000612fd386836129f6565b9050612fe183888b846138bf565b50505080612fee90614a0a565b9050612ef0565b50612fff83613491565b6130076132fb565b4260078401556008830185905561301c613bd2565b8254600384015460575460405160008051602061507e8339815191529361304693909290916149c5565b60405180910390a160008051602061503e8339815191528360405161306b9190614b0c565b60405180910390a160008051602061505e83398151915260536040516130919190614cb5565b60405180910390a15050505050565b6000816130af6012600a614f5e565b612a0e9085614cf6565b6000836000018460010154815481106130d4576130d46149af565b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505090508060400151821015613148576040808201519051633fe7655560e11b8152306004820152602481018490526044810191909152606401610502565b8181604001510361318857828460000185600101548154811061316d5761316d6149af565b90600052602060002090600302016001018190555050505050565b828160200151036131995750505050565b60008160400151836131ab9190614c8c565b90506000816131bd8460200151613666565b6131c79190614f6a565b83516131d39190614db8565b90506000866001015460016131e89190614a46565b9050866131f6838888613cf2565b81546001818101845560009384526020938490208351600390930201918255928201518184015560409091015160029091015596909601959095555050505050565b80546000908152605c6020526040808220603a549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c8416926132859290919086906004016149c5565b602060405180830381865af41580156132a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c691906149db565b9050816003015481106132eb5760038201546132e29082614c8c565b600a8301555050565b8082600301546132e29190614c8c565b6000605b60006052600081548110613315576133156149af565b600091825260208083209091015483528201929092526040019020600a015460525490915060015b818110156133c75782605b60006052848154811061335d5761335d6149af565b90600052602060002001548152602001908152602001600020600a015411156133b757605b600060528381548110613397576133976149af565b90600052602060002001548152602001908152602001600020600a015492505b6133c081614a0a565b905061333d565b5050605755565b80546000908152605e6020526040808220603b549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c84169261341b9290919086906004016149c5565b602060405180830381865af4158015613438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345c91906149db565b9050816003015481106134815760038201546134789082614c8c565b600b8301555050565b8082600301546134789190614c8c565b6000605d6000836001016000815481106134ad576134ad6149af565b600091825260208083209091015483528201929092526040019020600b01546001808401549192505b818110156135645782605d60008660010184815481106134f8576134f86149af565b90600052602060002001548152602001908152602001600020600b0154111561355457605d6000856001018381548110613534576135346149af565b90600052602060002001548152602001908152602001600020600b015492505b61355d81614a0a565b90506134d6565b508183600901819055506000605b60006052600081548110613588576135886149af565b6000918252602080832090910154835282019290925260400190206009015460525490915060015b8181101561363a5782605b6000605284815481106135d0576135d06149af565b9060005260206000200154815260200190815260200160002060090154111561362a57605b60006052838154811061360a5761360a6149af565b906000526020600020015481526020019081526020016000206009015492505b61363381614a0a565b90506135b0565b5050605655505050565b60006136526012600a614f5e565b61365c8385614f6a565b61150d9190614fef565b600060018212156136ac5760008212156136935760405163906dbb0160e01b815260040160405180910390fd5b604051631a93c68960e11b815260040160405180910390fd5b6000606060016001600160801b03851160071b85811c6001600160401b031060061b1785811c63ffffffff1060051b1785811c61ffff1060041b1785811c60ff10600390811b90911786811c600f1060021b1786811c909110821b1785811c919091111703609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d6c8c3f38e95a6b1ff2ab1c3b343619018302821d6d02384773bdf1ac5676facced60901901830290911d6cb9a025d814b29c212b8b1a07cd190190910260016c0504a838426634cdd8738f543560611b03190105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b6000828211156138b6576138af8383614c8c565b9050610db9565b50600092915050565b60006040518060a001604052806138d98660020154612cef565b8152602081018490526040808201869052600288015460608301526034546035549151634a51c00960e01b81526080909301926001600160a01b0391821692634a51c0099261392d92911690600401614581565b602060405180830381865afa15801561394a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396e91906149db565b9052604051626dab0f60e31b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163036d5878916139a59190600401614b9e565b60c060405180830381865af41580156139c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e69190614d3f565b8051600787015560208101516008870155604081015160048701556060810151600587015560a081015160068701556009860154909150151580613a2d5750600a85015415155b15613b83576000613a52613a47876004016004015461258f565b600a88015490613644565b613a70613a65886004016003015461258f565b600989015490613644565b613a7a9190614db8565b6005870154600a880154919250600091613a9391613644565b60048801546009890154613aa691613644565b613ab09190614db8565b90506000613adb613ac7896004016002015461258f565b89600a01548a600901546127719190614db8565b905082876004016002016000828254613af49190614db8565b9091555050600487018054839190600090613b10908490614db8565b9091555050600587018054829190600090613b2c908490614db8565b9091555050605a8054849190600090613b46908490614db8565b909155505060588054839190600090613b60908490614db8565b909155505060598054829190600090613b7a908490614db8565b90915550505050505b60008051602061509e83398151915285604051613ba09190614dfc565b60405180910390a18454600386015460565460405160008051602061501e8339815191529361309193909290916149c5565b6000605b60006052600081548110613bec57613bec6149af565b600091825260208083209091015483528201929092526040019020600781015460088201546009830154600a84015460525494955092939192839260015b81811015613cd857605b600060528381548110613c4957613c496149af565b9060005260206000200154815260200190815260200160002097508688600701541015613c7857876007015496505b8588600801541015613c8c57876008015495505b8488600801541115613ca057876008015494505b8388600901541115613cb457876009015493505b8288600a01541115613cc85787600a015492505b613cd181614a0a565b9050613c2a565b505060539490945560549290925560555560565560575550565b613d1660405180606001604052806000815260200160008152602001600081525090565b506040805160608101825293845260208401929092529082015290565b6040518060800160405280613d46613ec6565b81526020016000815260200160608152602001606081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180610100016040528060008152602001600081526020016000815260200160008152602001613dfd613d61565b81526020016000815260200160008152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001613e4e613ec6565b905290565b60405180610120016040528060008152602001606081526020016000815260200160008152602001613e83613ec6565b8152602001600081526020016000815260200160008152602001600081525090565b5080546000825590600052602060002090810190613ec39190613ee7565b50565b60405180606001604052806000815260200160008152602001600081525090565b5b808211156125f95760008155600101613ee8565b6001600160a01b0381168114613ec357600080fd5b600060208284031215613f2357600080fd5b813561150d81613efc565b600080600060608486031215613f4357600080fd5b8335613f4e81613efc565b92506020840135613f5e81613efc565b91506040840135613f6e81613efc565b809150509250925092565b600060208284031215613f8b57600080fd5b5035919050565b8051825260208082015190830152604090810151910152565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b600081518084526020808501945080840160005b8381101561400b57815187529582019590820190600101613fef565b509495945050505050565b6000602080835260e0830161402e8285018651613f92565b818501516080850152604085015160a060c081870152828251808552610100880191508584019450600093505b808410156140825761406e828651613fab565b93850193600193909301929082019061405b565b506060880151878203601f190160c089015294506140a08186613fdb565b98975050505050505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156140e5576140e56140ac565b60405290565b60405160a081016001600160401b03811182821017156140e5576140e56140ac565b60405161014081016001600160401b03811182821017156140e5576140e56140ac565b604051601f8201601f191681016001600160401b0381118282101715614158576141586140ac565b604052919050565b6000610120828403121561417357600080fd5b61417b6140c2565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010080830135818301525092915050565b80358015158114610dbf57600080fd5b803560038110610dbf57600080fd5b803560058110610dbf57600080fd5b600060e0828403121561421957600080fd5b60405160e081018181106001600160401b038211171561423b5761423b6140ac565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c08201525092915050565b60006101e0828403121561429d57600080fd5b6142a56140c2565b90506142b0826141d9565b81526142be602083016141d9565b60208201526142cf604083016141e9565b60408201526142e0606083016141f8565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010061431c84828501614207565b9082015292915050565b6000806000806000610360868803121561433f57600080fd5b6143498787614160565b945061435987610120880161428a565b93506103008601359250610320860135915061437861034087016141d9565b90509295509295909350565b6000610120828403121561439757600080fd5b61150d8383614160565b60006001600160401b038211156143ba576143ba6140ac565b5060051b60200190565b600082601f8301126143d557600080fd5b813560206143ea6143e5836143a1565b614130565b828152610120928302850182019282820191908785111561440a57600080fd5b8387015b8581101561442d576144208982614160565b845292840192810161440e565b5090979650505050505050565b6000806040838503121561444d57600080fd5b82356001600160401b038082111561446457600080fd5b9084019060a0828703121561447857600080fd5b6144806140eb565b8235815260208084013581830152604084013560408301526144a4606085016141d9565b60608301526080840135838111156144bb57600080fd5b80850194505087601f8501126144d057600080fd5b83356144de6143e5826143a1565b81815260059190911b8501820190828101908a8311156144fd57600080fd5b958301955b8287101561451b57863582529583019590830190614502565b6080850152509195508601359250508082111561453757600080fd5b50614544858286016143c4565b9150509250929050565b6000806000806000610360868803121561456757600080fd5b614571878761428a565b9450614359876101e08801614160565b6001600160a01b0391909116815260200190565b600080604083850312156145a857600080fd5b50508035926020909101359150565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152506101208082015181840152505050565b6101408101610db982846145b7565b6000610180820190508251825260208301516020830152604083015160408301526060830151606083015260808301516146696080840182613fab565b5060a083015161012083015260c083015161014083015260e0909201516101609091015290565b600061010082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151612b9460a0840182613f92565b602081528151602082015260006020830151610160806040850152614700610180850183613fdb565b91506040850151606085015260608501516080850152608085015161472860a0860182613f92565b5060a08501516101008581019190915260c086015161012086015260e0860151610140860152909401519390920192909252919050565b6000806000806080858703121561477557600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a086880312156147a957600080fd5b6147b2866141f8565b97602087013597506040870135966060810135965060800135945092505050565b60006101008083850312156147e757600080fd5b604051908101906001600160401b0382118183101715614809576148096140ac565b81604052833581526020840135602082015260408401356040820152606084013560608201526080840135608082015260a084013560a082015260c084013560c082015260e084013560e0820152809250505092915050565b6000610140828403121561487557600080fd5b61487d61410d565b823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508091505092915050565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b6101008101610db982846148e9565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152505050565b6101208101610db98284614946565b634e487b7160e01b600052603260045260246000fd5b9283526020830191909152604082015260600190565b6000602082840312156149ed57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600060018201614a1c57614a1c6149f4565b5060010190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b80820180821115610db957610db96149f4565b8181036000831280158383131683831282161715612b9457612b946149f4565b6001600160a01b0383168152610140810161150d6020830184614946565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6000815480845260208085019450836000528060002060005b8381101561400b57815487529582019560019182019101614ad6565b805482526001810154602083015260020154604090910152565b60208152815460208201526000610160806040840152614b33610180840160018601614abd565b6002850154606085015260038501546080850152614b5760a0850160048701614af2565b600785015461010085015260088501546101208501526009850154610140850152600a909401549201919091525090565b634e487b7160e01b600052602160045260246000fd5b600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60008060408385031215614beb57600080fd5b505080516020909101519092909150565b6001600160a01b03831681526040810160058310614c2a57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6001600160a01b0383168152610120810161150d60208301846148e9565b6001600160a01b0383168152610160810161150d60208301846145b7565b6001600160a01b03929092168252602082015260400190565b81810381811115610db957610db96149f4565b634e487b7160e01b600052603160045260246000fd5b81548152600182015460208201526002820154604082015260038201546060820152600482015460808201526101008101610db960a0830160058501614af2565b6000816000190483118215151615614d1057614d106149f4565b500290565b634e487b7160e01b600052601260045260246000fd5b600082614d3a57614d3a614d15565b500490565b600060c08284031215614d5157600080fd5b60405160c081018181106001600160401b0382111715614d7357614d736140ac565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b8082018281126000831280158216821582161715614dd857614dd86149f4565b505092915050565b6000600160ff1b8201614df557614df56149f4565b5060000390565b8154815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b909101546101608201526101800190565b600181815b80851115614eb5578160001904821115614e9b57614e9b6149f4565b80851615614ea857918102915b93841c9390800290614e7f565b509250929050565b600082614ecc57506001610db9565b81614ed957506000610db9565b8160018114614eef5760028114614ef957614f15565b6001915050610db9565b60ff841115614f0a57614f0a6149f4565b50506001821b610db9565b5060208310610133831016604e8410600b8410161715614f38575081810a610db9565b614f428383614e7a565b8060001904821115614f5657614f566149f4565b029392505050565b600061150d8383614ebd565b60006001600160ff1b0381841382841380821686840486111615614f9057614f906149f4565b600160ff1b6000871282811687830589121615614faf57614faf6149f4565b60008712925087820587128484161615614fcb57614fcb6149f4565b87850587128184161615614fe157614fe16149f4565b505050929093029392505050565b600082614ffe57614ffe614d15565b600160ff1b821460001984141615615018576150186149f4565b50059056fe149f63c412227ec4732bccd4de06593465e251f88cde05eb4759a694546b521629d36fbae101e698081ea9a72881167ce4123aecbdfaa11c8fa2c657e6963bce3bf7ff42790c11f43c8ad74de89999a2379bfbadfe637c4f6634e54fd81e81c8866841f01ada2c99bfa935a078696b9a487a2883cad3b3ea4b4ce3e1e2cbbff1dc8ed5806ff0cca66a82392ea420452d4bb7ff952f4143a3c1f5ed1177cae8e5a2646970667358221220f6ac19892a6fdc9a0c930e452c115e758164895e449745a4e0d21624b925039564736f6c63430008100033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101755760003560e01c80631627540c1461017a578063184b95591461018f578063254297b9146101a257806326941500146101cb5780632a33a5941461023457806343f03af014610247578063459390f21461025a5780634d0d1be31461027d57806353a47bb7146102a5578063551c8555146102c557806356946687146102d857806360e3ecc9146102ed578063641c3736146103005780636461a97b1461032057806379ba5097146103355780637df712681461033d5780637fdf17e21461035e578063825df9b21461037e57806384ef5538146103865780638da5cb5b1461038e57806393c0a34f146103a1578063a57ce682146103b4578063b196a96b146103c7578063bb3d47fe146103da578063d6d1c31b146103ed578063dba5082a14610400578063e7a5897b14610413578063e812844014610426578063f369f2ac1461043b578063f3fd9b3d14610450578063fc5a639914610463575b600080fd5b61018d610188366004613f11565b610476565b005b61018d61019d366004613f2e565b6104d4565b6101b56101b0366004613f79565b610557565b6040516101c29190614016565b60405180910390f35b6101de6101d9366004614326565b610886565b6040516101c29190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b61018d610242366004614384565b6109b1565b61018d61025536600461443a565b610b97565b61026d610268366004613f79565b610d6f565b60405190151581526020016101c2565b61029061028b36600461454e565b610dc4565b604080519283526020830191909152016101c2565b6001546102b8906001600160a01b031681565b6040516101c29190614581565b61018d6102d3366004614595565b611098565b6102e061111c565b6040516101c2919061461d565b61018d6102fb366004613f79565b6111d1565b61031361030e366004613f79565b6112b2565b6040516101c2919061462c565b61032861136c565b6040516101c29190614690565b61018d6113d6565b61035061034b366004614595565b611484565b6040519081526020016101c2565b61037161036c366004613f79565b611514565b6040516101c291906146d7565b605854610350565b605a54610350565b6000546102b8906001600160a01b031681565b61018d6103af36600461475f565b611607565b6103506103c2366004614791565b6116ad565b61018d6103d53660046147d3565b6118e0565b61018d6103e8366004614862565b611a3b565b61026d6103fb366004613f79565b611c5d565b61018d61040e366004613f79565b611e22565b61018d610421366004614595565b612219565b61042e612280565b6040516101c29190614937565b610443612316565b6040516101c291906149a0565b61035061045e366004614595565b6123bc565b610350610471366004613f79565b612404565b61047e612477565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906104c9908390614581565b60405180910390a150565b6104dc612477565b60325460ff161561050b573060405163161b906f60e01b81526004016105029190614581565b60405180910390fd5b6032805460ff19166001179055603480546001600160a01b039485166001600160a01b031991821617909155603580549385169382169390931790925560368054919093169116179055565b61055f613d33565b6000828152605b602052604081206001015490816001600160401b0381111561058a5761058a6140ac565b6040519080825280602002602001820160405280156105c357816020015b6105b0613d61565b8152602001906001900390816105a85790505b5090506000826001600160401b038111156105e0576105e06140ac565b604051908082528060200260200182016040528015610609578160200160208202803683370190505b50905060005b838110156107a9576000868152605b602052604081206001018054605d9291908490811061063f5761063f6149af565b906000526020600020015481526020019081526020016000206004016040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250508382815181106106aa576106aa6149af565b6020026020010181905250605e6000605b600089815260200190815260200160002060010183815481106106e0576106e06149af565b9060005260206000200154815260200190815260200160002073fa8c3eeae5e1296e0e559177d26d1fe9122ca058631c2c8416909160406001015460006040518463ffffffff1660e01b815260040161073b939291906149c5565b602060405180830381865af4158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c91906149db565b82828151811061078e5761078e6149af565b60209081029190910101526107a281614a0a565b905061060f565b50604080516000878152605b602090815283822060e08401855260048082015460808601908152600583015460a087015260069092015460c0860152908452898352605c825284832085549551630e16420b60e11b815294959286019473fa8c3eeae5e1296e0e559177d26d1fe9122ca05894631c2c84169461082e949092016149c5565b602060405180830381865af415801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f91906149db565b815260208101939093526040909201529392505050565b61088e613d90565b6036546001600160a01b031633146108ca57603654604051638d9ab13760e01b815261050291309133916001600160a01b031690600401614a23565b85516000908152605d6020908152604080832060018101548452605b9092529091206108f681876124b5565b61090181838761251a565b6109638282896109238c60a001518d6080015161091e9190614a46565b61258f565b6109308d6060015161258f565b61093a9190614a59565b6109478d60e0015161258f565b6109548e60c0015161258f565b61095e9190614a59565b6125fd565b600a82015460a08201526020880151909350156109a55761099d87898360020154610997898b6129f690919063ffffffff16565b88610dc4565b608085015283525b50505b95945050505050565b6109b9612477565b678ac7230489e800008160200151111580156109dc575062278d00816040015111155b80156109ec575060008160600151115b80156109ff5750624f1a00816060015111155b8015610a0f575060008160800151115b8015610a225750624f1a00816080015111155b8015610a32575060008160a00151115b8015610a455750624f1a008160a0015111155b8015610a55575060008160c00151115b8015610a685750624f1a008160c0015111155b8015610a805750670de0b6b3a76400008160e0015111155b8015610a90575060008160e00151115b8015610aa95750670de0b6b3a764000081610100015110155b610aca573081604051632aaea68360e21b8152600401610502929190614a79565b8051603790815560208201516038556040808301516039556060830151603a556080830151603b5560a0830151603c5560c0830151603d5560e0830151603e55610100830151603f55517fc050837382b0708fcee2778261beb86feedb0f5f2549682243407f14607f4a9a916104c9918154815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201526101200190565b6035546001600160a01b03163314610bd357603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b8051603754811115610c0457825160375460405163398391f160e21b81526105029230929091859190600401614a97565b82516000908152605b602090815260409182902085518155908501516002820155818501516003820155426007820155905160008051602061503e83398151915290610c51908390614b0c565b60405180910390a160408085015185516000908152605c60205291909120610c799142612a18565b8054604080860151605754915160008051602061507e83398151915293610ca2939092916149c5565b60405180910390a183516052805460018101825560009182527fa9144a5e7efd259b8b0d55467f4696ed47ec83317d61501b76366dbcca65ce7301919091555b82811015610d5d57610d4d82858381518110610d0057610d006149af565b602002602001015160000151868481518110610d1e57610d1e6149af565b602002602001015160200151878581518110610d3c57610d3c6149af565b602002602001015160400151612a7e565b610d5681614a0a565b9050610ce2565b508351610d69906111d1565b50505050565b6052546000908103610d8357506000919050565b605354610d8f90612b41565b80610da45750605454610da29083612b58565b155b80610db95750605554610db79083612b58565b155b92915050565b919050565b600080610de68661010001518760000151604060000154604060010154612b9b565b9050600187604001516002811115610e0057610e00614b88565b03610e7257865115610e4557610e168185612cca565b905082610e3057604254610e2b9082906129f6565b610e3e565b604354610e3e9082906129f6565b9050610e9b565b610e4f8185612ce0565b905082610e6457604454610e2b9082906129f6565b604554610e3e9082906129f6565b82610e8a57604654610e859082906129f6565b610e98565b604754610e989082906129f6565b90505b6000806040518060a00160405280610eb289612cef565b8152602080820186905260e08c0151604080840191909152908b015160608301526034546035549151634a51c00960e01b81526080909301926001600160a01b0391821692634a51c00992610f0c92911690600401614581565b602060405180830381865afa158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d91906149db565b905260405163b6e62e5960e01b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163b6e62e5991610f859190600401614b9e565b6040805180830381865af4158015610fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc59190614bd8565b9092509050600060018a606001516004811115610fe457610fe4614b88565b1480611005575060048a60600151600481111561100357611003614b88565b145b61100f5782611011565b815b8a519091501561108a5760006110348a602001518c60e001518d60600151612cfb565b9050600061106f60018d60400151600281111561105357611053614b88565b1461106057604954611064565b6048545b60e08e0151906129f6565b6110799083614a46565b90506110858382612cca565b925050505b935050509550959350505050565b6035546001600160a01b031633146110d457603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000828152605b602052604090206110ec81836124b5565b60575460405160008051602061507e8339815191529161110f91869186916149c5565b60405180910390a1505050565b611172604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506040805161014081018252815481526041546020820152604254918101919091526043546060820152604454608082015260455460a082015260465460c082015260475460e082015260485461010082015260495461012082015290565b6002603354036112235760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610502565b600260338190556034546035546040516373cbfc6960e01b81526112aa936001600160a01b03938416936373cbfc69936112639391169190600401614bfc565b602060405180830381865afa158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a491906149db565b82612d81565b506001603355565b6112ba613dcd565b605d60008381526020019081526020016000206040518061010001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482016040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050815260200160098201548152602001600a8201548152602001600b820154815250509050919050565b611374613e18565b506040805160c081018252605354815260545460208083019190915260555482840152605654606080840191909152605754608084015283519081018452605854815260595491810191909152605a549281019290925260a081019190915290565b6001546001600160a01b03163314611412576001546040516312d9f3db60e31b815261050291309133916001600160a01b031690600401614a23565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000828152605e60205260408082209051630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c8416916114cc9190869086906004016149c5565b602060405180830381865af41580156114e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150d91906149db565b9392505050565b61151c613e53565b6000828152605b6020908152604091829020825161012081018452815481526001820180548551818602810186019096528086529194929385810193929083018282801561158957602002820191906000526020600020905b815481526020019060010190808311611575575b5050505050815260200160028201548152602001600382015481526020016004820160405180606001604052908160008201548152602001600182015481526020016002820154815250508152602001600782015481526020016008820154815260200160098201548152602001600a820154815250509050919050565b6035546001600160a01b0316331461164357603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000848152605b60205260409020603754600182015403611691576001808201543091879161167191614a46565b60375460405163398391f160e21b81526105029493929190600401614a97565b61169d81858585612a7e565b6116a6856111d1565b5050505050565b6000816000036116bf575060006109a8565b600060048760048111156116d5576116d5614b88565b146116ed576050546116e89085906129f6565b6116fb565b6051546116fb9085906129f6565b9050600061170886612cef565b90506000806040518060a0016040528084815260200161172785612404565b81526020810186905260408082018c90526034546035549151634a51c00960e01b81526060909301926001600160a01b0391821692634a51c0099261177192911690600401614581565b602060405180830381865afa15801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b291906149db565b905260405163b6e62e5960e01b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163b6e62e59916117ea9190600401614b9e565b6040805180830381865af4158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a9190614bd8565b604a549193509150600090819060028d600481111561184b5761184b614b88565b03611874576118648761185e878c6129f6565b906130a0565b604b548a945090925090506118bc565b60038d600481111561188857611888614b88565b036118a357611897858a6129f6565b915060001992506118bc565b6118ad848a6129f6565b91506118b9898d6129f6565b92505b6118cf6118c98383612cca565b84612ce0565b9d9c50505050505050505050505050565b6118e8612477565b8051158015906118fc575060008160200151115b801561190c575060008160400151115b801561192057508060800151816040015110155b801561193457508060a00151816060015111155b801561194c5750670de0b6b3a76400008160c0015110155b801561195c575060008160e00151115b80156119745750670de0b6b3a76400008160e0015111155b6119955730816040516313cb12ab60e11b8152600401610502929190614c37565b8051604a819055602080830151604b819055604080850151604c819055606080870151604d819055608080890151604e81905560a0808b0151604f81905560c0808d0151605081905560e0808f015160518190558b519e8f529c8e019b909b52988c0197909752948a0193909352908801528601528401528201527f94b577fd70dcaebd07123e2514be7da5a62dab905be755cd605e53dd2fa41a7b90610100016104c9565b611a43612477565b805115801590611a5757508051624f1a0010155b8015611a67575060008160200151115b8015611a7a5750624f1a00816020015111155b8015611a925750670de0b6b3a7640000816040015110155b8015611aaa5750670de0b6b3a7640000816060015110155b8015611aba575060008160800151115b8015611ad25750670de0b6b3a7640000816080015111155b8015611ae2575060008160a00151115b8015611afa5750670de0b6b3a76400008160a0015111155b8015611b125750670de0b6b3a76400008160c0015110155b8015611b2a5750670de0b6b3a76400008160e0015110155b8015611b435750670de0b6b3a764000081610100015111155b8015611b5c5750670de0b6b3a764000081610120015111155b611b7d5730816040516303780e9760e21b8152600401610502929190614c55565b805160409081556020820151604155808201516042556060820151604355608082015160445560a082015160455560c082015160465560e082015160475561010082015160485561012082015160495580517f95e54255a98e1b972607fc1600f848168025629a91519457ef90885ffe6ddf93916104c9918154815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009909101546101208201526101400190565b6034546035546040516373cbfc6960e01b815260009283926001600160a01b03918216926373cbfc6992611c98921690600290600401614bfc565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd991906149db565b90506000605b6000858152602001908152602001600020604051806101200160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d5557602002820191906000526020600020905b815481526020019060010190808311611d41575b5050505050815260200160028201548152602001600382015481526020016004820160405180606001604052908160008201548152602001600182015481526020016002820154815250508152602001600782015481526020016008820154815260200160098201548152602001600a8201548152505090508060000151600003611df7578051604051631234dccd60e01b8152610502913091600401614c73565b611e048160a00151612b41565b80611e1a5750611e188160c0015183612b58565b155b949350505050565b6035546001600160a01b03163314611e5e57603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000818152605b60209081526040808320815161012081018352815481526001820180548451818702810187019095528085529194929385840193909290830182828015611ecb57602002820191906000526020600020905b815481526020019060010190808311611eb7575b5050505050815260200160028201548152602001600382015481526020016004820160405180606001604052908160008201548152602001600182015481526020016002820154815250508152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050905080608001516000015160536005016000016000828254611f649190614a59565b909155505060808101516020015160598054600090611f84908490614a59565b9091555050608081015160400151605a8054600090611fa4908490614a59565b909155505060208101515160005b818110156120a3577fe43ab028e41dd579cd3c8163d1db2c05b666107134bd7ce2107af0683a5ebdd683602001518281518110611ff157611ff16149af565b602002602001015160405161200891815260200190565b60405180910390a1605d60008460200151838151811061202a5761202a6149af565b60209081029190910181015182528101919091526040016000908120818155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600781018290556008810182905560098101829055600a8101829055600b015561209c81614a0a565b9050611fb2565b5060525460005b818110156121595784605282815481106120c6576120c66149af565b9060005260206000200154036121495760526120e3600184614c8c565b815481106120f3576120f36149af565b906000526020600020015460528281548110612111576121116149af565b600091825260209091200155605280548061212e5761212e614c9f565b60019003818190600052602060002001600090559055612159565b61215281614a0a565b90506120aa565b506040518481527fe20b1632d16e689391465933d4e779302d4f216209b52ab7dc0b74402e31f7ca9060200160405180910390a160008051602061505e83398151915260536040516121ab9190614cb5565b60405180910390a16000848152605b60205260408120818155906121d26001830182613ea5565b5060006002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820181905560098201819055600a9091015550505050565b6035546001600160a01b0316331461225557603554604051634b50cc3560e11b815261050291309133916001600160a01b031690600401614a23565b6000828152605d6020908152604080832060018101548452605b909252909120610d6981838561251a565b6122c860405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506040805161010081018252604a548152604b546020820152604c5491810191909152604d546060820152604e546080820152604f5460a082015260505460c082015260515460e082015290565b6123656040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060408051610120810182526037548152603854602082015260395491810191909152603a546060820152603b546080820152603c5460a0820152603d5460c0820152603e5460e0820152603f5461010082015290565b6000828152605c60205260408082209051630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c8416916114cc9190869086906004016149c5565b604d546000908211612418575050604c5490565b604f548210612429575050604e5490565b604d54604f546124399190614c8c565b604d546124469084614c8c565b604e54604c546124569190614c8c565b6124609190614cf6565b61246a9190614d2b565b604c54610db99190614c8c565b6000546001600160a01b031633146124b35760005460405163035785f360e31b815261050291309133916001600160a01b031690600401614a23565b565b6003820181905581546000908152605c602052604090206124d79082426130b9565b6124e082613238565b6124e86132fb565b815460575460405160008051602061507e8339815191529261250e9290918591906149c5565b60405180910390a15050565b80826003018190555061255761254061253883603760080154612ce0565b603e54612cca565b83546000908152605e6020526040902090426130b9565b612560826133ce565b61256983613491565b815460565460405160008051602061501e8339815191529261110f9290918591906149c5565b60006001600160ff1b038211156125f95760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610502565b5090565b612605613d90565b60006040518060a0016040528061261f8860020154612cef565b815260200161263f896003015489600301546129f690919063ffffffff16565b815260e0870151602082015260028901546040808301919091526034546035549151634a51c00960e01b81526060909301926001600160a01b0391821692634a51c0099261269292911690600401614581565b602060405180830381865afa1580156126af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d391906149db565b9052604051626dab0f60e31b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163036d58789161270a9190600401614b9e565b60c060405180830381865af4158015612727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274b9190614d3f565b90506000612777612762896004016004015461258f565b600a8a01546127719087614a59565b90613644565b61279961278a8a6004016003015461258f565b60098b01546127719089614a59565b6127a39190614db8565b905060006127c289600401600101548a600a0154876127719190614a59565b60048a015460098b01546127db9190612771908a614a59565b6127e59190614db8565b905060006128246127fc8b6004016002015461258f565b600a8c015460098d01546128108a8c614db8565b61281a9190614a59565b6127719190614a59565b60098b01889055600a8b0187905560068a018054919250849160009061284b908490614db8565b9091555050600489018054839190600090612867908490614db8565b9091555050600589018054829190600090612883908490614db8565b909155505060595461289490614de0565b6020860152605a80548491906000906128ae908490614db8565b9091555050605880548391906000906128c8908490614db8565b9091555050605980548291906000906128e2908490614db8565b90915550600190508860600151600481111561290057612900614b88565b14158015612924575060048860600151600481111561292157612921614b88565b14155b612932578360200151612935565b83515b855260595461294390614de0565b60408087019190915284015160608601526003808b0154908a0154612967916129f6565b60808087019190915284015160c086015260405160008051602061509e83398151915290612996908c90614dfc565b60405180910390a160008051602061503e833981519152896040516129bb9190614b0c565b60405180910390a160008051602061505e83398151915260536040516129e19190614cb5565b60405180910390a15050505095945050505050565b6000612a046012600a614f5e565b612a0e8385614cf6565b61150d9190614d2b565b612a798382612a2685613666565b612a309190614f6a565b6040805160608101825291825260208083018781529183018681528454600180820187556000968752929095209351600390950290930193845590519083015551600290910155565b505050565b6000838152605d602052604090819020848155600281018490556003810183905585546001820155905160008051602061509e83398151915290612ac3908390614dfc565b60405180910390a1612af5612ae061253884603760080154612ce0565b6000868152605e602052604090209042612a18565b805460565460405160008051602061501e83398151915292612b1b9290918691906149c5565b60405180910390a150505060019182018054928301815560009081526020902090910155565b603954600090612b51834261389b565b1192915050565b6038546000908190612b6b9085906129f6565b905083831115612b895780612b808585614c8c565b10915050610db9565b80612b808486614c8c565b5092915050565b6000848152605c60205260408082209051630e16420b60e11b8152829173fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c841691612be491889086906004016149c5565b602060405180830381865af4158015612c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2591906149db565b6000868152605e60205260408082209051630e16420b60e11b8152929350909173fa8c3eeae5e1296e0e559177d26d1fe9122ca05891631c2c841691612c729190889086906004016149c5565b602060405180830381865af4158015612c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb391906149db565b9050612cbf82826129f6565b979650505050505050565b6000818311612cd9578161150d565b5090919050565b6000818310612cd9578161150d565b6000610db9428361389b565b6000806001836004811115612d1257612d12614b88565b1480612d2f57506004836004811115612d2d57612d2d614b88565b145b612d5457612d3c8561258f565b612d458561258f565b612d4f9190614a59565b612d70565b612d5d8461258f565b612d668661258f565b612d709190614a59565b905060008113611e1a5760006109a8565b6000818152605b602052604081208054909103612db5578054604051631234dccd60e01b8152610502913091600401614c73565b8060020154421115612de75780546002820154604051634a3878e360e11b815261050292309290914290600401614a97565b6006810154605a8054600090612dfe908490614a59565b9091555050600481015460588054600090612e1a908490614a59565b9091555050600581015460598054600090612e36908490614a59565b9091555050600060068201819055600482018190556005820155612e5981613238565b6000828152605c6020526040808220603c549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c841692612ea49290919086906004016149c5565b602060405180830381865af4158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee591906149db565b600183015490915060005b81811015612ff5576000605d6000866001018481548110612f1357612f136149af565b906000526020600020015481526020019081526020016000209050612f37816133ce565b80546000908152605e6020526040808220603d549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c841692612f849290919086906004016149c5565b602060405180830381865af4158015612fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc591906149db565b90506000612fd386836129f6565b9050612fe183888b846138bf565b50505080612fee90614a0a565b9050612ef0565b50612fff83613491565b6130076132fb565b4260078401556008830185905561301c613bd2565b8254600384015460575460405160008051602061507e8339815191529361304693909290916149c5565b60405180910390a160008051602061503e8339815191528360405161306b9190614b0c565b60405180910390a160008051602061505e83398151915260536040516130919190614cb5565b60405180910390a15050505050565b6000816130af6012600a614f5e565b612a0e9085614cf6565b6000836000018460010154815481106130d4576130d46149af565b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505090508060400151821015613148576040808201519051633fe7655560e11b8152306004820152602481018490526044810191909152606401610502565b8181604001510361318857828460000185600101548154811061316d5761316d6149af565b90600052602060002090600302016001018190555050505050565b828160200151036131995750505050565b60008160400151836131ab9190614c8c565b90506000816131bd8460200151613666565b6131c79190614f6a565b83516131d39190614db8565b90506000866001015460016131e89190614a46565b9050866131f6838888613cf2565b81546001818101845560009384526020938490208351600390930201918255928201518184015560409091015160029091015596909601959095555050505050565b80546000908152605c6020526040808220603a549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c8416926132859290919086906004016149c5565b602060405180830381865af41580156132a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c691906149db565b9050816003015481106132eb5760038201546132e29082614c8c565b600a8301555050565b8082600301546132e29190614c8c565b6000605b60006052600081548110613315576133156149af565b600091825260208083209091015483528201929092526040019020600a015460525490915060015b818110156133c75782605b60006052848154811061335d5761335d6149af565b90600052602060002001548152602001908152602001600020600a015411156133b757605b600060528381548110613397576133976149af565b90600052602060002001548152602001908152602001600020600a015492505b6133c081614a0a565b905061333d565b5050605755565b80546000908152605e6020526040808220603b549151630e16420b60e11b815273fa8c3eeae5e1296e0e559177d26d1fe9122ca05892631c2c84169261341b9290919086906004016149c5565b602060405180830381865af4158015613438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345c91906149db565b9050816003015481106134815760038201546134789082614c8c565b600b8301555050565b8082600301546134789190614c8c565b6000605d6000836001016000815481106134ad576134ad6149af565b600091825260208083209091015483528201929092526040019020600b01546001808401549192505b818110156135645782605d60008660010184815481106134f8576134f86149af565b90600052602060002001548152602001908152602001600020600b0154111561355457605d6000856001018381548110613534576135346149af565b90600052602060002001548152602001908152602001600020600b015492505b61355d81614a0a565b90506134d6565b508183600901819055506000605b60006052600081548110613588576135886149af565b6000918252602080832090910154835282019290925260400190206009015460525490915060015b8181101561363a5782605b6000605284815481106135d0576135d06149af565b9060005260206000200154815260200190815260200160002060090154111561362a57605b60006052838154811061360a5761360a6149af565b906000526020600020015481526020019081526020016000206009015492505b61363381614a0a565b90506135b0565b5050605655505050565b60006136526012600a614f5e565b61365c8385614f6a565b61150d9190614fef565b600060018212156136ac5760008212156136935760405163906dbb0160e01b815260040160405180910390fd5b604051631a93c68960e11b815260040160405180910390fd5b6000606060016001600160801b03851160071b85811c6001600160401b031060061b1785811c63ffffffff1060051b1785811c61ffff1060041b1785811c60ff10600390811b90911786811c600f1060021b1786811c909110821b1785811c919091111703609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d6c8c3f38e95a6b1ff2ab1c3b343619018302821d6d02384773bdf1ac5676facced60901901830290911d6cb9a025d814b29c212b8b1a07cd190190910260016c0504a838426634cdd8738f543560611b03190105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b6000828211156138b6576138af8383614c8c565b9050610db9565b50600092915050565b60006040518060a001604052806138d98660020154612cef565b8152602081018490526040808201869052600288015460608301526034546035549151634a51c00960e01b81526080909301926001600160a01b0391821692634a51c0099261392d92911690600401614581565b602060405180830381865afa15801561394a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396e91906149db565b9052604051626dab0f60e31b8152735913e76655bf6c026b28c81648baf39bc2a5d0ab9163036d5878916139a59190600401614b9e565b60c060405180830381865af41580156139c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e69190614d3f565b8051600787015560208101516008870155604081015160048701556060810151600587015560a081015160068701556009860154909150151580613a2d5750600a85015415155b15613b83576000613a52613a47876004016004015461258f565b600a88015490613644565b613a70613a65886004016003015461258f565b600989015490613644565b613a7a9190614db8565b6005870154600a880154919250600091613a9391613644565b60048801546009890154613aa691613644565b613ab09190614db8565b90506000613adb613ac7896004016002015461258f565b89600a01548a600901546127719190614db8565b905082876004016002016000828254613af49190614db8565b9091555050600487018054839190600090613b10908490614db8565b9091555050600587018054829190600090613b2c908490614db8565b9091555050605a8054849190600090613b46908490614db8565b909155505060588054839190600090613b60908490614db8565b909155505060598054829190600090613b7a908490614db8565b90915550505050505b60008051602061509e83398151915285604051613ba09190614dfc565b60405180910390a18454600386015460565460405160008051602061501e8339815191529361309193909290916149c5565b6000605b60006052600081548110613bec57613bec6149af565b600091825260208083209091015483528201929092526040019020600781015460088201546009830154600a84015460525494955092939192839260015b81811015613cd857605b600060528381548110613c4957613c496149af565b9060005260206000200154815260200190815260200160002097508688600701541015613c7857876007015496505b8588600801541015613c8c57876008015495505b8488600801541115613ca057876008015494505b8388600901541115613cb457876009015493505b8288600a01541115613cc85787600a015492505b613cd181614a0a565b9050613c2a565b505060539490945560549290925560555560565560575550565b613d1660405180606001604052806000815260200160008152602001600081525090565b506040805160608101825293845260208401929092529082015290565b6040518060800160405280613d46613ec6565b81526020016000815260200160608152602001606081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180610100016040528060008152602001600081526020016000815260200160008152602001613dfd613d61565b81526020016000815260200160008152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001613e4e613ec6565b905290565b60405180610120016040528060008152602001606081526020016000815260200160008152602001613e83613ec6565b8152602001600081526020016000815260200160008152602001600081525090565b5080546000825590600052602060002090810190613ec39190613ee7565b50565b60405180606001604052806000815260200160008152602001600081525090565b5b808211156125f95760008155600101613ee8565b6001600160a01b0381168114613ec357600080fd5b600060208284031215613f2357600080fd5b813561150d81613efc565b600080600060608486031215613f4357600080fd5b8335613f4e81613efc565b92506020840135613f5e81613efc565b91506040840135613f6e81613efc565b809150509250925092565b600060208284031215613f8b57600080fd5b5035919050565b8051825260208082015190830152604090810151910152565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b600081518084526020808501945080840160005b8381101561400b57815187529582019590820190600101613fef565b509495945050505050565b6000602080835260e0830161402e8285018651613f92565b818501516080850152604085015160a060c081870152828251808552610100880191508584019450600093505b808410156140825761406e828651613fab565b93850193600193909301929082019061405b565b506060880151878203601f190160c089015294506140a08186613fdb565b98975050505050505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156140e5576140e56140ac565b60405290565b60405160a081016001600160401b03811182821017156140e5576140e56140ac565b60405161014081016001600160401b03811182821017156140e5576140e56140ac565b604051601f8201601f191681016001600160401b0381118282101715614158576141586140ac565b604052919050565b6000610120828403121561417357600080fd5b61417b6140c2565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010080830135818301525092915050565b80358015158114610dbf57600080fd5b803560038110610dbf57600080fd5b803560058110610dbf57600080fd5b600060e0828403121561421957600080fd5b60405160e081018181106001600160401b038211171561423b5761423b6140ac565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c08201525092915050565b60006101e0828403121561429d57600080fd5b6142a56140c2565b90506142b0826141d9565b81526142be602083016141d9565b60208201526142cf604083016141e9565b60408201526142e0606083016141f8565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010061431c84828501614207565b9082015292915050565b6000806000806000610360868803121561433f57600080fd5b6143498787614160565b945061435987610120880161428a565b93506103008601359250610320860135915061437861034087016141d9565b90509295509295909350565b6000610120828403121561439757600080fd5b61150d8383614160565b60006001600160401b038211156143ba576143ba6140ac565b5060051b60200190565b600082601f8301126143d557600080fd5b813560206143ea6143e5836143a1565b614130565b828152610120928302850182019282820191908785111561440a57600080fd5b8387015b8581101561442d576144208982614160565b845292840192810161440e565b5090979650505050505050565b6000806040838503121561444d57600080fd5b82356001600160401b038082111561446457600080fd5b9084019060a0828703121561447857600080fd5b6144806140eb565b8235815260208084013581830152604084013560408301526144a4606085016141d9565b60608301526080840135838111156144bb57600080fd5b80850194505087601f8501126144d057600080fd5b83356144de6143e5826143a1565b81815260059190911b8501820190828101908a8311156144fd57600080fd5b958301955b8287101561451b57863582529583019590830190614502565b6080850152509195508601359250508082111561453757600080fd5b50614544858286016143c4565b9150509250929050565b6000806000806000610360868803121561456757600080fd5b614571878761428a565b9450614359876101e08801614160565b6001600160a01b0391909116815260200190565b600080604083850312156145a857600080fd5b50508035926020909101359150565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152506101208082015181840152505050565b6101408101610db982846145b7565b6000610180820190508251825260208301516020830152604083015160408301526060830151606083015260808301516146696080840182613fab565b5060a083015161012083015260c083015161014083015260e0909201516101609091015290565b600061010082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151612b9460a0840182613f92565b602081528151602082015260006020830151610160806040850152614700610180850183613fdb565b91506040850151606085015260608501516080850152608085015161472860a0860182613f92565b5060a08501516101008581019190915260c086015161012086015260e0860151610140860152909401519390920192909252919050565b6000806000806080858703121561477557600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a086880312156147a957600080fd5b6147b2866141f8565b97602087013597506040870135966060810135965060800135945092505050565b60006101008083850312156147e757600080fd5b604051908101906001600160401b0382118183101715614809576148096140ac565b81604052833581526020840135602082015260408401356040820152606084013560608201526080840135608082015260a084013560a082015260c084013560c082015260e084013560e0820152809250505092915050565b6000610140828403121561487557600080fd5b61487d61410d565b823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508091505092915050565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b6101008101610db982846148e9565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152505050565b6101208101610db98284614946565b634e487b7160e01b600052603260045260246000fd5b9283526020830191909152604082015260600190565b6000602082840312156149ed57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600060018201614a1c57614a1c6149f4565b5060010190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b80820180821115610db957610db96149f4565b8181036000831280158383131683831282161715612b9457612b946149f4565b6001600160a01b0383168152610140810161150d6020830184614946565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6000815480845260208085019450836000528060002060005b8381101561400b57815487529582019560019182019101614ad6565b805482526001810154602083015260020154604090910152565b60208152815460208201526000610160806040840152614b33610180840160018601614abd565b6002850154606085015260038501546080850152614b5760a0850160048701614af2565b600785015461010085015260088501546101208501526009850154610140850152600a909401549201919091525090565b634e487b7160e01b600052602160045260246000fd5b600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60008060408385031215614beb57600080fd5b505080516020909101519092909150565b6001600160a01b03831681526040810160058310614c2a57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6001600160a01b0383168152610120810161150d60208301846148e9565b6001600160a01b0383168152610160810161150d60208301846145b7565b6001600160a01b03929092168252602082015260400190565b81810381811115610db957610db96149f4565b634e487b7160e01b600052603160045260246000fd5b81548152600182015460208201526002820154604082015260038201546060820152600482015460808201526101008101610db960a0830160058501614af2565b6000816000190483118215151615614d1057614d106149f4565b500290565b634e487b7160e01b600052601260045260246000fd5b600082614d3a57614d3a614d15565b500490565b600060c08284031215614d5157600080fd5b60405160c081018181106001600160401b0382111715614d7357614d736140ac565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b8082018281126000831280158216821582161715614dd857614dd86149f4565b505092915050565b6000600160ff1b8201614df557614df56149f4565b5060000390565b8154815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b909101546101608201526101800190565b600181815b80851115614eb5578160001904821115614e9b57614e9b6149f4565b80851615614ea857918102915b93841c9390800290614e7f565b509250929050565b600082614ecc57506001610db9565b81614ed957506000610db9565b8160018114614eef5760028114614ef957614f15565b6001915050610db9565b60ff841115614f0a57614f0a6149f4565b50506001821b610db9565b5060208310610133831016604e8410600b8410161715614f38575081810a610db9565b614f428383614e7a565b8060001904821115614f5657614f566149f4565b029392505050565b600061150d8383614ebd565b60006001600160ff1b0381841382841380821686840486111615614f9057614f906149f4565b600160ff1b6000871282811687830589121615614faf57614faf6149f4565b60008712925087820587128484161615614fcb57614fcb6149f4565b87850587128184161615614fe157614fe16149f4565b505050929093029392505050565b600082614ffe57614ffe614d15565b600160ff1b821460001984141615615018576150186149f4565b50059056fe149f63c412227ec4732bccd4de06593465e251f88cde05eb4759a694546b521629d36fbae101e698081ea9a72881167ce4123aecbdfaa11c8fa2c657e6963bce3bf7ff42790c11f43c8ad74de89999a2379bfbadfe637c4f6634e54fd81e81c8866841f01ada2c99bfa935a078696b9a487a2883cad3b3ea4b4ce3e1e2cbbff1dc8ed5806ff0cca66a82392ea420452d4bb7ff952f4143a3c1f5ed1177cae8e5a2646970667358221220f6ac19892a6fdc9a0c930e452c115e758164895e449745a4e0d21624b925039564736f6c63430008100033
🤖 Code Reader

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

Custom Contract ABI

                            

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0x95103Ad4A4B08550c6dFe4eBf2131d5b648E51Aa

DeFi

0 Protocols
Loading...
Loading
Protocol Positions Portfolio % Value

There are no matching entries

Loading...
Loading
Loading...
Loading
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.