0 txs
0 calls
constructor
constructor(address _royaltySupport, address dutchUtilityArg)
functions
discountUsed
viewfunction discountUsed(bytes) view returns (bool)
dutchUtility
viewfunction dutchUtility() view returns (address)
getAdmins
viewfunction getAdmins() view returns (address[] admins)
getBuyerAddress
viewfunction getBuyerAddress(string dutchAuctionID) view returns (address[] buyers)
getBuyerInfo
viewfunction getBuyerInfo(string dutchAuctionID, address buyer) view returns (tuple buyerDetails)
getLatestSaleInfo
viewfunction getLatestSaleInfo(string dutchAuctionID) view returns (tuple saleDetails)
getListings
viewfunction getListings(string dutchAuctionID) view returns (tuple auctionist)
isAdmin
viewfunction isAdmin(address admin) view returns (bool)
owner
viewfunction owner() view returns (address)
royaltySupport
viewfunction royaltySupport() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
usedAuctionId
viewfunction usedAuctionId(string) view returns (bool)
approveAdmin
nonpayablefunction approveAdmin(address admin)
buy
payablefunction buy(string dutchAuctionID, uint256 price, uint256 tax, uint256 quantity, uint256 unit1155, bytes32[] blacklistedProof, tuple discount) payable
cancelAuction
nonpayablefunction cancelAuction(string auctionId)
createOrUpdateDutchAuction
nonpayablefunction createOrUpdateDutchAuction(string dutchAuctionID, tuple list)
endAuction
nonpayablefunction endAuction(string dutchAuctionID, bool isPriceAsReserve)
rebate
nonpayablefunction rebate(string dutchAuctionID, address buyer)
renounceOwnership
nonpayablefunction renounceOwnership()
revokeAdmin
nonpayablefunction revokeAdmin(address admin)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateEndTime
nonpayablefunction updateEndTime(string dutchAuctionID, uint32 endTime)
updateReservePrice
nonpayablefunction updateReservePrice(string dutchAuctionID, uint128 reservedPrice)
updateUtilityAndRoyaltyAddress
nonpayablefunction updateUtilityAndRoyaltyAddress(address royaltySupportArg, address dutchUtilityArg)
withdraw
nonpayablefunction withdraw(address paymentCurrency)
events
AdminApproved
event AdminApproved(address indexed account, address indexed sender)
AdminRevoked
event AdminRevoked(address indexed account, address indexed sender)
AuctionCreatedorUpdated
event AuctionCreatedorUpdated(string auctionId, ((address nftContractAddress, uint256 startTokenId, uint256 endTokenId, uint256 unit1155, address tokenOwner, uint64 noOfTokens, uint64 walletLimit, uint64 txnLimit, bool isMint, int256 maxTokenIDRange, bool isInstantDeliver, bool isRebate, bool isDiscountRequired, bool isSignerRequired, uint8 saleType, bytes32 blacklistedBuyers) collectionList, uint128 startingPrice, uint128 reservedPrice, uint128 reducePrice, uint32 auctionStartTime, uint32 auctionEndTime, uint32 timeForPriceDecrement, uint32 halfLifeTime, address paymentCurrency, (address paymentSettlementAddress, address taxSettlementAddress, address commissionAddress, address platformSettlementAddress, uint16 commissionFeePercentage, uint16 platformFeePercentage) payoutList) list, string createdOrUpdated)
AuctionEnded
event AuctionEnded(string auctionId, uint256 soldQuantity, uint256 finalPrice, uint256[] tokenIds)
BuyExecuted
event BuyExecuted(string auctionId, uint256 quantity, uint256 unit1155, uint256 currentPrice, uint256 price, uint256 tax, string nonce, address buyer, uint256[] tokenIds)
CancelAuction
event CancelAuction(string auctionId)
EndTimeUpdated
event EndTimeUpdated(string auctionId, uint256 endTimeNew)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Rebated
event Rebated(string auctionId, address buyer, uint256 rebateAmount, uint256 rebateTax, address paymentCurrency)
ReservePriceUpdated
event ReservePriceUpdated(string auctionId, uint256 reservePriceNew)
RoyaltyPayout
event RoyaltyPayout(address tokenContract, address recipient, uint256 shares)
UpdatedUtilityAndRoyaltyAddress
event UpdatedUtilityAndRoyaltyAddress(address dutchUtilityNew, address royaltySupporNew)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604051620060f1380380620060f1833981016040819052620000349162000120565b6001600081815581546001600160a01b031916339081179092556040518291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038116620000d55760405162461bcd60e51b815260206004820152601760248201527f696e76616c69642064757463685574696c697479417267000000000000000000604482015260640160405180910390fd5b600480546001600160a01b039384166001600160a01b031991821617909155600580549290931691161790556200015f565b6001600160a01b03811681146200011d57600080fd5b50565b600080604083850312156200013457600080fd5b8251620001418162000107565b6020840151909250620001548162000107565b809150509250929050565b615f82806200016f6000396000f3fe6080604052600436106101565760003560e01c806358e656e4116100c157806395318d861161007a57806395318d86146103ef578063a628ec5d1461040f578063b60e7a3b14610422578063b7b429aa14610442578063d78ccb8b146104bc578063da20872a146104f7578063f2fde38b1461051757600080fd5b806358e656e41461032a57806359bb679a14610365578063681569e9146103855780636d73e669146103a5578063715018a6146103c55780638da5cb5b146103da57600080fd5b806324d7806c1161011357806324d7806c146102685780632d3456701461028857806331ae450b146102a85780634970d03e146102ca57806350e58ea6146102ea57806351cff8d91461030a57600080fd5b8063015109451461015b57806301ffc9a7146101915780630397b87b146101c15780630a28e844146101ee5780631376789b146102105780631ae9cd9814610248575b600080fd5b34801561016757600080fd5b5061017b610176366004614b61565b610537565b6040516101889190614bed565b60405180910390f35b34801561019d57600080fd5b506101b16101ac366004614cc8565b6107e9565b6040519015158152602001610188565b3480156101cd57600080fd5b506101e16101dc366004614cf2565b61081e565b6040516101889190614f47565b3480156101fa57600080fd5b5061020e610209366004614f6a565b610b5d565b005b34801561021c57600080fd5b50600554610230906001600160a01b031681565b6040516001600160a01b039091168152602001610188565b34801561025457600080fd5b5061020e610263366004614b61565b610ca5565b34801561027457600080fd5b506101b1610283366004614fb7565b6110cc565b34801561029457600080fd5b5061020e6102a3366004614fb7565b6110fb565b3480156102b457600080fd5b506102bd611180565b604051610188919061500d565b3480156102d657600080fd5b5061020e6102e5366004615020565b61122e565b3480156102f657600080fd5b5061020e610305366004615067565b61132f565b34801561031657600080fd5b5061020e610325366004614fb7565b611a9c565b34801561033657600080fd5b506101b1610345366004614cf2565b805160208183018101805160068252928201919093012091525460ff1681565b34801561037157600080fd5b5061020e6103803660046150c4565b611bf0565b34801561039157600080fd5b506102bd6103a0366004614cf2565b611da0565b3480156103b157600080fd5b5061020e6103c0366004614fb7565b611dc8565b3480156103d157600080fd5b5061020e611e47565b3480156103e657600080fd5b50610230611ec0565b3480156103fb57600080fd5b5061020e61040a3660046152fd565b611ecf565b61020e61041d3660046154f4565b6126c4565b34801561042e57600080fd5b5061020e61043d366004614cf2565b6130c7565b34801561044e57600080fd5b5061046261045d366004614cf2565b6132cc565b6040516101889190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151151560a083015260c0830151151560c083015292915050565b3480156104c857600080fd5b506101b16104d7366004614cf2565b8051602081830181018051600b8252928201919093012091525460ff1681565b34801561050357600080fd5b50600454610230906001600160a01b031681565b34801561052357600080fd5b5061020e610532366004614fb7565b61338c565b610581604051806101000160405280606081526020016060815260200160608152602001606081526020016060815260200160608152602001600081526020016000151581525090565b600a83604051610591919061561f565b9081526040805191829003602090810183206001600160a01b038616600090815290825282902080546101209281028501830190935261010084018381529092849284919084018282801561060557602002820191906000526020600020905b8154815260200190600101908083116105f1575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561065d57602002820191906000526020600020905b815481526020019060010190808311610649575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156106b557602002820191906000526020600020905b8154815260200190600101908083116106a1575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561070d57602002820191906000526020600020905b8154815260200190600101908083116106f9575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561076557602002820191906000526020600020905b815481526020019060010190808311610751575b50505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156107bd57602002820191906000526020600020905b8154815260200190600101908083116107a9575b50505091835250506006820154602082015260079091015460ff16151560409091015290505b92915050565b60006001600160e01b03198216632a9f3abf60e11b14806107e357506301ffc9a760e01b6001600160e01b03198316146107e3565b604080516103408101825260006101408201818152610160830182905261018083018290526101a083018290526101c083018290526101e08301829052610200830182905261022083018290526102408301829052610260830182905261028083018290526102a083018290526102c083018290526102e0830182905261030083018290526103208301829052825260208083018290528284018290526060808401839052608080850184905260a080860185905260c080870186905260e08701869052610100870186905287519081018852858152938401859052958301849052908201839052810182905292830152610120810191909152600782604051610928919061561f565b90815260408051918290036020018220610340830190915280546001600160a01b039081166101408401908152600183015461016085015260028084015461018086015260038401546101a086015260048401549283166101c08601526001600160401b03600160a01b90930483166101e08601526005840154808416610200870152600160401b810490931661022086015260ff600160801b909304831615156102408601526006840154610260860152600784015480841615156102808701526101008104841615156102a0870152620100008104841615156102c087015263010000008104841615156102e087015285938592610300860192600160201b900490911690811115610a3e57610a3e614d26565b6002811115610a4f57610a4f614d26565b81526008919091015460209182015290825260098301546001600160801b0380821684840152600160801b918290048116604080860191909152600a86015491821660608087019190915263ffffffff9383048416608080880191909152600160a01b808504861660a0808a0191909152600160c01b8604871660c0808b0191909152600160e01b90960490961660e0890152600b8901546001600160a01b039081166101008a015284519586018552600c8a015481168652600d8a0154811697860197909752600e890154871693850193909352600f909701549485169083015261ffff908404811695820195909552600160b01b90920490931692810192909252610120015292915050565b33610b66611ec0565b6001600160a01b03161480610b815750610b8160023361347c565b610ba65760405162461bcd60e51b8152600401610b9d9061563b565b60405180910390fd5b600682604051610bb6919061561f565b9081526040519081900360200190205460ff16610be55760405162461bcd60e51b8152600401610b9d9061567f565b600982604051610bf5919061561f565b9081526040519081900360200190206005015460ff1615610c285760405162461bcd60e51b8152600401610b9d906156ac565b7f714e5610970185b216fa0c83f3d271b2598e7d7b69067891f2477008e82899e28282604051610c599291906156ff565b60405180910390a180600783604051610c72919061561f565b9081526020016040518091039020600a0160146101000a81548163ffffffff021916908363ffffffff1602179055505050565b600260005403610cc75760405162461bcd60e51b8152600401610b9d90615727565b6002600055604051600690610cdd90849061561f565b9081526040519081900360200190205460ff16610d0c5760405162461bcd60e51b8152600401610b9d9061567f565b610d3581600884604051610d20919061561f565b9081526040519081900360200190209061347c565b610d735760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b6044820152606401610b9d565b600982604051610d83919061561f565b9081526040519081900360200190206005015460ff1680610e6657506001600783604051610db1919061561f565b9081526040519081900360200190206007015460ff600160201b909104166002811115610de057610de0614d26565b14610e1e57600782604051610df5919061561f565b908152604051908190036020019020600401546001600160401b03600160a01b90910416610e42565b600782604051610e2e919061561f565b908152604051908190036020019020600301545b600983604051610e52919061561f565b908152602001604051809103902060020154145b610e9e5760405162461bcd60e51b81526020600482015260096024820152681b9bdd08195b99195960ba1b6044820152606401610b9d565b600a82604051610eae919061561f565b90815260408051602092819003830190206001600160a01b0384166000908152925290206007015460ff1615610f185760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e4818db185a5b5959608a1b6044820152606401610b9d565b60055460405163d8130ec960e01b815260009182916001600160a01b039091169063d8130ec990610f4f908790879060040161575e565b6040805180830381865afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190615788565b909250905081610fcc5760405162461bcd60e51b81526020600482015260086024820152676e6f20636c61696d60c01b6044820152606401610b9d565b7f265be343ba17e4fb0f7aa786f7b36cfd1bd54098b49d11c302d5e2c267e4e35384848484600789604051611001919061561f565b908152604051908190036020018120600b015461102d95949392916001600160a01b03909116906157ac565b60405180910390a16001600a85604051611047919061561f565b90815260408051602092819003830181206001600160a01b0388166000908152935291206007908101805460ff1916931515939093179092556110c191339186919061109490899061561f565b908152604051908190036020019020600b01546001600160a01b03166110ba8587615807565b60016134a1565b505060016000555050565b6000816001600160a01b03166110e0611ec0565b6001600160a01b031614806107e357506107e360028361347c565b33611104611ec0565b6001600160a01b03161461112a5760405162461bcd60e51b8152600401610b9d9061581a565b61113560028261347c565b1561117d5760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361117b60028261357d565b505b50565b606061118c6002613592565b6001600160401b038111156111a3576111a3614a3b565b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50905060005b6111dc6002613592565b81101561122a576111ee60028261359c565b8282815181106112005761120061584f565b6001600160a01b03909216602092830291909101909101528061122281615865565b9150506111d2565b5090565b33611237611ec0565b6001600160a01b03161480611252575061125260023361347c565b61126e5760405162461bcd60e51b8152600401610b9d9061563b565b6001600160a01b0381166112be5760405162461bcd60e51b8152602060048201526017602482015276496e76616c69642064757463685574696c69747941726760481b6044820152606401610b9d565b604080516001600160a01b038084168252841660208201527f88bd3dbca0ee348f905e71c0d342bb50b637a5044709b0c4e0ee0f3672711fb0910160405180910390a1600480546001600160a01b039384166001600160a01b03199182161790915560058054929093169116179055565b6002600054036113515760405162461bcd60e51b8152600401610b9d90615727565b600260005560405160069061136790849061561f565b9081526040519081900360200190205460ff166113965760405162461bcd60e51b8152600401610b9d9061567f565b60006007836040516113a8919061561f565b9081526040805191829003602090810183206102008401835280546001600160a01b0390811685526001820154928501929092526002808201549385019390935260038101546060850152600481015491821660808501526001600160401b03600160a01b909204821660a0850152600581015480831660c0860152600160401b810490921660e085015260ff600160801b9092048216151561010080860191909152600682015461012086015260078201548084161515610140870152908104831615156101608601526201000081048316151561018086015263010000008104831615156101a086015290926101c0850192600160201b909204909116908111156114b7576114b7614d26565b60028111156114c8576114c8614d26565b815260200160088201548152505090506000806114e4336110cc565b806114fb575060808301516001600160a01b031633145b6115175760405162461bcd60e51b8152600401610b9d9061587e565b42600786604051611528919061561f565b908152604051908190036020019020600a015463ffffffff600160a01b909104161115806115ac57506001836101c00151600281111561156a5761156a614d26565b14611582578260a001516001600160401b0316611588565b82606001515b600986604051611598919061561f565b908152602001604051809103902060020154145b806115df57506009856040516115c2919061561f565b9081526040519081900360200190206005015460ff610100909104165b6116175760405162461bcd60e51b815260206004820152600960248201526818d85b89dd08195b9960ba1b6044820152606401610b9d565b600985604051611627919061561f565b9081526040519081900360200190206005015460ff161561165a5760405162461bcd60e51b8152600401610b9d906156ac565b600060098660405161166c919061561f565b908152602001604051809103902060020154116116b55760405162461bcd60e51b81526020600482015260076024820152666e6f206269647360c81b6044820152606401610b9d565b831561170e576007856040516116cb919061561f565b9081526040519081900360200181206009908101546001600160801b03600160801b90910416916116fd90889061561f565b908152604051908190036020019020555b826101600151156117cd576005546040516308fa05ed60e41b81526001600160a01b0390911690638fa05ed0906117499088906004016158c0565b60408051808303816000875af1158015611767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178b9190615788565b80925081935050506117cd8583836007896040516117a9919061561f565b908152604051908190036020019020600b01546001600160a01b03163360016135a8565b606060006009876040516117e1919061561f565b9081526020016040518091039020600201546001600160401b0381111561180a5761180a614a3b565b604051908082528060200260200182016040528015611833578160200160208202803683370190505b5090508461014001516119e0576000805b61186a60088a604051611857919061561f565b9081526020016040518091039020613592565b8110156119dd57600061189c8260088c604051611887919061561f565b9081526040519081900360200190209061359c565b90506000600a8b6040516118b0919061561f565b90815260408051602092819003830190206001600160a01b03851660009081529252812060060154915060018a6101c0015160028111156118f3576118f3614d26565b146118fe5781611901565b60015b9050600060018b6101c00151600281111561191e5761191e614d26565b1461192d578a6060015161192f565b825b905061193d8d858484613941565b60098f60405161194d919061561f565b90815260405190819003602001902060010155975060005b88518110156119c5578881815181106119805761198061584f565b602002602001015188888151811061199a5761199a61584f565b6020908102919091010152866119af81615865565b97505080806119bd90615865565b915050611965565b505050505080806119d590615865565b915050611844565b50505b7fea6186ac627a0a0d08856980003659f2072d5606356dd0876c1f8adf32db9eea87600989604051611a12919061561f565b90815260200160405180910390206002015460098a604051611a34919061561f565b90815260405190819003602001812054611a5193929186906158d3565b60405180910390a16001600988604051611a6b919061561f565b908152604051908190036020019020600501805491151560ff19909216919091179055505060016000555050505050565b33611aa5611ec0565b6001600160a01b031614611acb5760405162461bcd60e51b8152600401610b9d9061581a565b60006001600160a01b038216611b62576040805160008152602081019182905233914791611af89161561f565b60006040518083038185875af1925050503d8060008114611b35576040519150601f19603f3d011682016040523d82523d6000602084013e611b3a565b606091505b50508091505080611b5d5760405162461bcd60e51b8152600401610b9d90615904565b61117b565b6001600160a01b0382161561117b576040516370a0823160e01b815230600482015261117b9033906001600160a01b038516906370a0823190602401602060405180830381865afa158015611bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdf9190615928565b6001600160a01b0385169190614585565b33611bf9611ec0565b6001600160a01b03161480611c145750611c1460023361347c565b611c305760405162461bcd60e51b8152600401610b9d9061563b565b600682604051611c40919061561f565b9081526040519081900360200190205460ff16611c6f5760405162461bcd60e51b8152600401610b9d9061567f565b600554604051637b30fb3760e01b81526001600160a01b0390911690637b30fb3790611c9f9085906004016158c0565b602060405180830381865afa158015611cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce09190615928565b816001600160801b031610611d255760405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642061726760a81b6044820152606401610b9d565b7f48b64378db8c62f5caa2374925f19177b79350106ba7458ef776d7b0a18bc3fd8282604051611d56929190615941565b60405180910390a180600783604051611d6f919061561f565b90815260405190819003602001902060090180546001600160801b03928316600160801b0292169190911790555050565b60606107e3600883604051611db5919061561f565b90815260200160405180910390206145e0565b33611dd1611ec0565b6001600160a01b031614611df75760405162461bcd60e51b8152600401610b9d9061581a565b611e0260028261347c565b61117d5760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a361117b6002826145ed565b33611e50611ec0565b6001600160a01b031614611e765760405162461bcd60e51b8152600401610b9d9061581a565b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b600260005403611ef15760405162461bcd60e51b8152600401610b9d90615727565b6002600055611eff336110cc565b80611f1757508051608001516001600160a01b031633145b611f335760405162461bcd60e51b8152600401610b9d9061587e565b600554604051632f4176d160e21b81526001600160a01b039091169063bd05db4490611f63908490600401614f47565b60006040518083038186803b158015611f7b57600080fd5b505afa158015611f8f573d6000803e3d6000fd5b50505050600682604051611fa3919061561f565b9081526040519081900360200190205460ff1661232d5780600783604051611fcb919061561f565b90815260408051602092819003830190208351805182546001600160a01b0319166001600160a01b039182161783559381015160018301559182015160028083019190915560608301516003830155608083015160048301805460a0860151929096166001600160e01b031990961695909517600160a01b6001600160401b03928316021790945560c083015160058301805460e0860151610100808801519489166001600160801b031990931692909217600160401b91909816029690961760ff60801b1916600160801b9215159290920291909117905561012083015160068301556101408301516007830180546101608601516101808701516101a088015161ffff1990931694151561ff001916949094179015159097029690961763ffff00001916620100009215159290920263ff000000191691909117630100000095151595909502949094178085556101c08401519294859392909164ff00000000191690600160201b90849081111561214757612147614d26565b02179055506101e091909101516008909101556020828101516040808501516001600160801b03928316600160801b9184168202176009860155606080870151600a870180546080808b015160a0808d015160c08e015160e08f015197909b166001600160a01b03199586161763ffffffff9384169099029890981767ffffffffffffffff60a01b1916600160a01b988316890263ffffffff60c01b191617600160c01b9a83169a909a02999099176001600160e01b0316600160e01b919095160293909317909155610100890151600b8901805483166001600160a01b03928316179055610120909901518051600c8a0180548416918c1691909117905596870151600d890180548316918b1691909117905586850151600e89018054909216908a1617905590850151600f9096018054918601519590940151959096166001600160b01b03199096169590951761ffff9384169095029490941761ffff60b01b1916600160b01b9290931691909102919091179055516001906006906122d090859061561f565b908152604051908190036020018120805492151560ff19909316929092179091557f46fdb56149abcbd8b12b678efa8d730a35cd5ff17fe865c2a8de896ce412140c90612320908490849061596b565b60405180910390a16126bb565b60068260405161233d919061561f565b9081526040519081900360200190205460ff16156126bb5742816080015163ffffffff161161237e5760405162461bcd60e51b8152600401610b9d906159b8565b8060078360405161238f919061561f565b90815260408051602092819003830190208351805182546001600160a01b0319166001600160a01b039182161783559381015160018301559182015160028083019190915560608301516003830155608083015160048301805460a0860151929096166001600160e01b031990961695909517600160a01b6001600160401b03928316021790945560c083015160058301805460e0860151610100808801519489166001600160801b031990931692909217600160401b91909816029690961760ff60801b1916600160801b9215159290920291909117905561012083015160068301556101408301516007830180546101608601516101808701516101a088015161ffff1990931694151561ff001916949094179015159097029690961763ffff00001916620100009215159290920263ff000000191691909117630100000095151595909502949094178085556101c08401519294859392909164ff00000000191690600160201b90849081111561250b5761250b614d26565b02179055506101e091909101516008909101556020828101516040808501516001600160801b03928316600160801b9184168202176009860155606080870151600a870180546080808b015160a0808d015160c08e015160e08f015197909b166001600160a01b03199586161763ffffffff9384169099029890981767ffffffffffffffff60a01b1916600160a01b988316890263ffffffff60c01b191617600160c01b9a83169a909a02999099176001600160e01b0316600160e01b919095160293909317909155610100890151600b8901805483166001600160a01b03928316179055610120909901518051600c8a0180548416918c1691909117905596870151600d890180548316918b1691909117905586850151600e89018054909216908a1617905590850151600f9096018054918601519590940151959096166001600160b01b03199096169590951761ffff9384169095029490941761ffff60b01b1916600160b01b9290931691909102919091179055517f46fdb56149abcbd8b12b678efa8d730a35cd5ff17fe865c2a8de896ce412140c906126b290849084906159de565b60405180910390a15b50506001600055565b6002600054036126e65760405162461bcd60e51b8152600401610b9d90615727565b60026000556040516006906126fc90899061561f565b9081526040519081900360200190205460ff1661272b5760405162461bcd60e51b8152600401610b9d9061567f565b600060078860405161273d919061561f565b9081526040805191829003602090810183206102008401835280546001600160a01b0390811685526001820154928501929092526002808201549385019390935260038101546060850152600481015491821660808501526001600160401b03600160a01b909204821660a0850152600581015480831660c0860152600160401b810490921660e085015260ff600160801b9092048216151561010080860191909152600682015461012086015260078201548084161515610140870152908104831615156101608601526201000081048316151561018086015263010000008104831615156101a086015290926101c0850192600160201b9092049091169081111561284c5761284c614d26565b600281111561285d5761285d614d26565b8152602001600882015481525050905060006001600160a01b0316600789604051612888919061561f565b908152604051908190036020019020600b01546001600160a01b0316036128f4576128b38688615807565b34146128f45760405162461bcd60e51b815260206004820152601060248201526f0d2dce6eaccccd2c6d2cadce8408aa8960831b6044820152606401610b9d565b6005546040805160c08101825289815260208101899052808201889052606081018790526080810186905260a081018590529051633a33fe3160e11b815260009283926001600160a01b0390911691637467fc6291612959918e913391600401615a97565b6040805180830381865afa158015612975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129999190615788565b6040519093509091506000906007906129b3908d9061561f565b908152604051908190036020019020600b01546001600160a01b03161480156129e5575060006129e38383615807565b115b15612a75576000336129f78484615807565b60408051600081526020810191829052612a109161561f565b60006040518083038185875af1925050503d8060008114612a4d576040519150601f19603f3d011682016040523d82523d6000602084013e612a52565b606091505b5050905080612a735760405162461bcd60e51b8152600401610b9d90615904565b505b612a7f818a615b4f565b9850612a8b8289615b4f565b9750612aa13360088c604051610d20919061561f565b612ad057612ace3360088c604051612ab9919061561f565b908152604051908190036020019020906145ed565b505b826101a0015115612b16576001600b8560600151604051612af1919061561f565b908152604051908190036020019020805491151560ff19909216919091179055612b58565b835161ffff1615612b58576001600b8560600151604051612b37919061561f565b908152604051908190036020019020805491151560ff199092169190911790555b60006001846101c001516002811115612b7357612b73614d26565b14612b7e5787612b80565b865b90508361018001518015612b9d5750846000015161ffff16612710145b15612bde578060098c604051612bb3919061561f565b90815260200160405180910390206003016000828254612bd39190615807565b90915550612dd19050565b8361018001518015612bf45750845161ffff1615155b15612cc057600a8b604051612c09919061561f565b90815260408051918290036020908101832033600090815290825291822060030180546001810182559083529120018b9055600a90612c49908d9061561f565b90815260408051918290036020908101832033600090815290825291822060050180546001810182559083529120018a9055600a90612c89908d9061561f565b9081526040805160209281900383019020336000908152908352908120600401805460018101825590825291902001819055612dd1565b845161ffff161580612cd55750836101800151155b15612dd1578060098c604051612ceb919061561f565b90815260200160405180910390206004016000828254612d0b9190615807565b9091555050604051600a90612d21908d9061561f565b90815260408051918290036020908101832033600090815290825291822080546001810182559083529120018b9055600a90612d5e908d9061561f565b90815260408051918290036020908101832033600090815290825291822060020180546001810182559083529120018a9055600a90612d9e908d9061561f565b90815260408051602092819003830190203360009081529083529081206001908101805491820181558252919020018190555b80600a8c604051612de2919061561f565b9081526040805160209281900383019020336000908152925281206006018054909190612e10908490615807565b925050819055508060098c604051612e28919061561f565b90815260200160405180910390206002016000828254612e489190615807565b9091555050600554604051637b30fb3760e01b81526001600160a01b0390911690637b30fb3790612e7d908e906004016158c0565b602060405180830381865afa158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebe9190615928565b91508160098c604051612ed1919061561f565b90815260405190819003602001812091909155600990612ef2908d9061561f565b908152602001604051809103902060010154600003612f3457836020015160098c604051612f20919061561f565b908152604051908190036020019020600101555b60006001600160a01b031660078c604051612f4f919061561f565b908152604051908190036020019020600b01546001600160a01b031614612fbe5783610160015115612fbe57612fbe3330612f8a8c8e615807565b60078f604051612f9a919061561f565b908152604051908190036020019020600b01546001600160a01b0316929190614602565b836101600151613002576130028b8b8b60078f604051612fde919061561f565b908152604051908190036020019020600b01546001600160a01b03163360006135a8565b606084610140015115613069576130438c338b6001896101c00151600281111561302e5761302e614d26565b1461303d578860600151613941565b8b613941565b60098e604051613053919061561f565b9081526040519081900360200190206001015590505b7fe522439914124e6027e1ac135772716d749ed8857d1c8a9cbd2c5d294088b8908c8a8a868f8f8c6040015133896040516130ac99989796959493929190615b62565b60405180910390a15050600160005550505050505050505050565b336130d0611ec0565b6001600160a01b031614806130eb57506130eb60023361347c565b6131075760405162461bcd60e51b8152600401610b9d9061563b565b600681604051613117919061561f565b9081526040519081900360200190205460ff166131465760405162461bcd60e51b8152600401610b9d9061567f565b600981604051613156919061561f565b9081526040519081900360200190206005015460ff16156131895760405162461bcd60e51b8152600401610b9d906156ac565b600981604051613199919061561f565b90815260405190819003602001902054156131c65760405162461bcd60e51b8152600401610b9d906159b8565b6007816040516131d6919061561f565b90815260405190819003602001812080546001600160a01b0319908116825560006001830181905560028301819055600383018190556004830180546001600160e01b03191690556005830180546001600160881b03191690556006830181905560078301805464ffffffffff191690556008830181905560098301819055600a830155600b8201805482169055600c8201805482169055600d8201805482169055600e820180549091169055600f0180546001600160c01b03191690557f69b2e335395b4abc91c9fba47beb681d9191216ff34810e7515ce98556c74b79906132c19083906158c0565b60405180910390a150565b6133106040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b600982604051613320919061561f565b90815260408051918290036020908101832060e0840183528054845260018101549184019190915260028101549183019190915260038101546060830152600481015460808301526005015460ff808216151560a084015261010090910416151560c082015292915050565b33613395611ec0565b6001600160a01b0316146133bb5760405162461bcd60e51b8152600401610b9d9061581a565b6001600160a01b0381166134205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9d565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b60006001600160a01b03841661354157604080516000815260208101918290526001600160a01b0387169185916134d79161561f565b60006040518083038185875af1925050503d8060008114613514576040519150601f19603f3d011682016040523d82523d6000602084013e613519565b606091505b5050809150508061353c5760405162461bcd60e51b8152600401610b9d90615904565b613575565b811561355b5761353c6001600160a01b0385168685614585565b81613575576135756001600160a01b038516878786614602565b505050505050565b600061349a836001600160a01b038416614629565b60006107e3825490565b600061349a838361471c565b60006007876040516135ba919061561f565b908152604080516020928190038301812060c082018352600c8101546001600160a01b039081168352600d8201548116948301859052600e820154811693830193909352600f01549182166060820152600160a01b820461ffff9081166080830152600160b01b90920490911660a0820152915060009061363f9085908789876134a1565b60608201516001600160a01b031615801590613663575060008260a0015161ffff16115b156136a6576136a6848360600151876127108660a0015161ffff168c6136899190615bdc565b6136939190615bf3565b61369d9086615807565b945084876134a1565b60408201516001600160a01b0316158015906136ca57506000826080015161ffff16115b1561372d57612710826080015161ffff16886136e69190615bdc565b6136f09190615bf3565b6136fa9082615807565b905061372d84836040015187612710866080015161ffff168c61371d9190615bdc565b6137279190615bf3565b876134a1565b6137378188615b4f565b6004549097506001600160a01b0316156139265760045460405160009182916001600160a01b03909116906333ff942290600790613776908e9061561f565b908152604051908190036020018120546001600160e01b031960e084901b1682526001600160a01b03166004820152602401600060405180830381865afa1580156137c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137ed9190810190615c7b565b9150915060005b82518110156139225760006127108b8484815181106138155761381561584f565b60200260200101516138279190615bdc565b6138319190615bf3565b9050808b101561386f5760405162461bcd60e51b81526020600482015260096024820152681a5b9cdbdb1d995b9d60ba1b6044820152606401610b9d565b7f033f17ae2b7a9ab7cd350d5a345cc0b666e599db545d85e2f0eab9cb10264d2060078d6040516138a0919061561f565b9081526040519081900360200190205485516001600160a01b03909116908690859081106138d0576138d061584f565b6020026020010151836040516138e893929190615d3f565b60405180910390a1613916338584815181106139065761390661584f565b60200260200101518b848b6134a1565b909903986001016137f4565b5050505b613937848360000151878a876134a1565b5050505050505050565b60606000836001600160401b0381111561395d5761395d614a3b565b604051908082528060200260200182016040528015613986578160200160208202803683370190505b509150600986604051613999919061561f565b908152602001604051809103902060010154905060006007876040516139bf919061561f565b9081526040805191829003602090810183206102008401835280546001600160a01b0390811685526001820154928501929092526002808201549385019390935260038101546060850152600481015491821660808501526001600160401b03600160a01b909204821660a0850152600581015480831660c0860152600160401b810490921660e085015260ff600160801b9092048216151561010080860191909152600682015461012086015260078201548084161515610140870152908104831615156101608601526201000081048316151561018086015263010000008104831615156101a086015290926101c0850192600160201b90920490911690811115613ace57613ace614d26565b6002811115613adf57613adf614d26565b81526020016008820154815250509050806101000151613fdb5760005b85811015613fd45781516040516301ffc9a760e01b81526001600160a01b03909116906301ffc9a790613b3a906380ac58cd60e01b90600401615d63565b602060405180830381865afa158015613b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7b9190615d78565b15613cde575b81608001516001600160a01b031682600001516001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401613bc191815260200190565b602060405180830381865afa158015613bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c029190615d95565b6001600160a01b031614613c46578282604001511015613c345760405162461bcd60e51b8152600401610b9d90615db2565b613c3f600184615807565b9250613b81565b81516080830151604051632142170760e11b81526001600160a01b03909216916342842e0e91613c7c918b908890600401615d3f565b600060405180830381600087803b158015613c9657600080fd5b505af1158015613caa573d6000803e3d6000fd5b5050505082848281518110613cc157613cc161584f565b6020908102919091010152613cd7600184615807565b9250613fc2565b81516040516301ffc9a760e01b81526001600160a01b03909116906301ffc9a790613d1490636cdb3d1360e11b90600401615d63565b602060405180830381865afa158015613d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d559190615d78565b15613fc2576002826101c001516002811115613d7357613d73614d26565b03613e61575b81516080830151604051627eeac760e11b815287926001600160a01b03169162fdd58e91613dac91908890600401615ddc565b602060405180830381865afa158015613dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ded9190615928565b1015613e29578282604001511015613e175760405162461bcd60e51b8152600401610b9d90615db2565b613e22600184615807565b9250613d79565b81516080830151604051637921219560e11b81526001600160a01b039092169163f242432a91613c7c918b9088908b90600401615df5565b6001826101c001516002811115613e7a57613e7a614d26565b03613fc25781516080830151604051627eeac760e11b815287926001600160a01b03169162fdd58e91613eb291908890600401615ddc565b602060405180830381865afa158015613ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ef39190615928565b11613f385760405162461bcd60e51b8152602060048201526015602482015274696e73756666696369656e74207175616e7469747960581b6044820152606401610b9d565b81516080830151604051637921219560e11b81526001600160a01b039092169163f242432a91613f70918b9088908b90600401615df5565b600060405180830381600087803b158015613f8a57600080fd5b505af1158015613f9e573d6000803e3d6000fd5b5050505082848281518110613fb557613fb561584f565b6020026020010181815250505b80613fcc81615865565b915050613afc565b505061457c565b8061010001511561457a5780516040516301ffc9a760e01b81526001600160a01b03909116906301ffc9a79061401c906380ac58cd60e01b90600401615d63565b602060405180830381865afa158015614039573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405d9190615d78565b156140e657805160405163e00aab4b60e01b81526001600160a01b03888116600483015261ffff881660248301529091169063e00aab4b906044016000604051808303816000875af11580156140b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526140df9190810190615e38565b9250614461565b80516040516301ffc9a760e01b81526001600160a01b03909116906301ffc9a79061411c90636cdb3d1360e11b90600401615d63565b602060405180830381865afa158015614139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061415d9190615d78565b1561446157604080516001808252818301909252600091602080830190803683370190505090506000866001600160401b0381111561419e5761419e614a3b565b6040519080825280602002602001820160405280156141c7578160200160208202803683370190505b509050606088836000815181106141e0576141e061584f565b6001600160a01b03909216602092830291909101909101526002846101c00151600281111561421157614211614d26565b036142d35760005b8881101561425157878382815181106142345761423461584f565b60209081029190910101528061424981615865565b915050614219565b508351604051634637423960e11b81526001600160a01b0390911690638c6e84729061428590869086908690600401615e6c565b6000604051808303816000875af11580156142a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526142cc9190810190615e38565b955061445d565b6001846101c0015160028111156142ec576142ec614d26565b0361445d5786826000815181106143055761430561584f565b602002602001018181525050846000036143d8578351604051634637423960e11b81526001600160a01b0390911690638c6e84729061434c90869086908690600401615e6c565b6000604051808303816000875af115801561436b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526143939190810190615e38565b9550856000815181106143a8576143a861584f565b602002602001015160098b6040516143c0919061561f565b9081526040519081900360200190206001015561445d565b84866000815181106143ec576143ec61584f565b602090810291909101015283516040516339b2213760e21b81526001600160a01b039091169063e6c884dc9061442a9086908a908790600401615ef3565b600060405180830381600087803b15801561444457600080fd5b505af1158015614458573d6000803e3d6000fd5b505050505b5050505b806101200151600019146145485780610120015183600185516144849190615b4f565b815181106144945761449461584f565b6020026020010151106144dc5760016009886040516144b3919061561f565b90815260405190819003602001902060050180549115156101000261ff00199092169190911790555b80610120015183600185516144f19190615b4f565b815181106145015761450161584f565b602002602001015111156145485760405162461bcd60e51b815260206004820152600e60248201526d1c995858da1959081b585e081a5960921b6044820152606401610b9d565b8283600185516145589190615b4f565b815181106145685761456861584f565b6020026020010151925092505061457c565b505b94509492505050565b6145db8363a9059cbb60e01b84846040516024016145a4929190615ddc565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614746565b505050565b6060600061349a83614818565b600061349a836001600160a01b038416614874565b614623846323b872dd60e01b8585856040516024016145a493929190615d3f565b50505050565b6000818152600183016020526040812054801561471257600061464d600183615b4f565b855490915060009061466190600190615b4f565b90508181146146c65760008660000182815481106146815761468161584f565b90600052602060002001549050808760000184815481106146a4576146a461584f565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806146d7576146d7615f36565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107e3565b60009150506107e3565b60008260000182815481106147335761473361584f565b9060005260206000200154905092915050565b600061479b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166148c39092919063ffffffff16565b8051909150156145db57808060200190518101906147b99190615d78565b6145db5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b9d565b60608160000180548060200260200160405190810160405280929190818152602001828054801561486857602002820191906000526020600020905b815481526020019060010190808311614854575b50505050509050919050565b60008181526001830160205260408120546148bb575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107e3565b5060006107e3565b60606148d284846000856148da565b949350505050565b60608247101561493b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b9d565b843b6149895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9d565b600080866001600160a01b031685876040516149a5919061561f565b60006040518083038185875af1925050503d80600081146149e2576040519150601f19603f3d011682016040523d82523d6000602084013e6149e7565b606091505b50915091506149f7828286614a02565b979650505050505050565b60608315614a1157508161349a565b825115614a215782518084602001fd5b8160405162461bcd60e51b8152600401610b9d91906158c0565b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715614a7457614a74614a3b565b60405290565b60405161014081016001600160401b0381118282101715614a7457614a74614a3b565b604051601f8201601f191681016001600160401b0381118282101715614ac557614ac5614a3b565b604052919050565b600082601f830112614ade57600080fd5b81356001600160401b03811115614af757614af7614a3b565b614b0a601f8201601f1916602001614a9d565b818152846020838601011115614b1f57600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b038116811461117d57600080fd5b8035614b5c81614b3c565b919050565b60008060408385031215614b7457600080fd5b82356001600160401b03811115614b8a57600080fd5b614b9685828601614acd565b9250506020830135614ba781614b3c565b809150509250929050565b600081518084526020808501945080840160005b83811015614be257815187529582019590820190600101614bc6565b509495945050505050565b6020815260008251610100806020850152614c0c610120850183614bb2565b91506020850151601f1980868503016040870152614c2a8483614bb2565b93506040870151915080868503016060870152614c478483614bb2565b93506060870151915080868503016080870152614c648483614bb2565b935060808701519150808685030160a0870152614c818483614bb2565b935060a08701519150808685030160c087015250614c9f8382614bb2565b92505060c085015160e085015260e0850151614cbe8286018215159052565b5090949350505050565b600060208284031215614cda57600080fd5b81356001600160e01b03198116811461349a57600080fd5b600060208284031215614d0457600080fd5b81356001600160401b03811115614d1a57600080fd5b6148d284828501614acd565b634e487b7160e01b600052602160045260246000fd5b60038110614d5a57634e487b7160e01b600052602160045260246000fd5b9052565b80516001600160a01b031682526020810151602083015260408101516040830152606081015160608301526080810151614da360808401826001600160a01b03169052565b5060a0810151614dbe60a08401826001600160401b03169052565b5060c0810151614dd960c08401826001600160401b03169052565b5060e0810151614df460e08401826001600160401b03169052565b506101008181015115159083015261012080820151908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c080820151614e5482850182614d3c565b50506101e090810151910152565b614e6d828251614d5e565b6020818101516001600160801b03908116610200850152604080840151821661022086015260608085015190921661024086015260808085015163ffffffff90811661026088015260a080870151821661028089015260c087015182166102a089015260e08701519091166102c08801526101008601516001600160a01b039081166102e089015261012090960151805187166103008901529485015186166103208801529184015185166103408701529183015190931661036085015281015161ffff908116610380850152910151166103a090910152565b6103c081016107e38284614e62565b803563ffffffff81168114614b5c57600080fd5b60008060408385031215614f7d57600080fd5b82356001600160401b03811115614f9357600080fd5b614f9f85828601614acd565b925050614fae60208401614f56565b90509250929050565b600060208284031215614fc957600080fd5b813561349a81614b3c565b600081518084526020808501945080840160005b83811015614be25781516001600160a01b031687529582019590820190600101614fe8565b60208152600061349a6020830184614fd4565b6000806040838503121561503357600080fd5b823561503e81614b3c565b91506020830135614ba781614b3c565b801515811461117d57600080fd5b8035614b5c8161504e565b6000806040838503121561507a57600080fd5b82356001600160401b0381111561509057600080fd5b61509c85828601614acd565b9250506020830135614ba78161504e565b80356001600160801b0381168114614b5c57600080fd5b600080604083850312156150d757600080fd5b82356001600160401b038111156150ed57600080fd5b6150f985828601614acd565b925050614fae602084016150ad565b80356001600160401b0381168114614b5c57600080fd5b803560038110614b5c57600080fd5b6000610200828403121561514157600080fd5b615149614a51565b905061515482614b51565b815260208201356020820152604082013560408201526060820135606082015261518060808301614b51565b608082015261519160a08301615108565b60a08201526151a260c08301615108565b60c08201526151b360e08301615108565b60e08201526101006151c681840161505c565b9082015261012082810135908201526101406151e381840161505c565b908201526101606151f583820161505c565b9082015261018061520783820161505c565b908201526101a061521983820161505c565b908201526101c061522b83820161511f565b81830152506101e080830135818301525092915050565b803561ffff81168114614b5c57600080fd5b600060c0828403121561526657600080fd5b60405160c081018181106001600160401b038211171561528857615288614a3b565b604052905080823561529981614b3c565b815260208301356152a981614b3c565b602082015260408301356152bc81614b3c565b604082015260608301356152cf81614b3c565b60608201526152e060808401615242565b60808201526152f160a08401615242565b60a08201525092915050565b6000808284036103e081121561531257600080fd5b83356001600160401b0381111561532857600080fd5b61533486828701614acd565b9350506103c0601f198201121561534a57600080fd5b50615353614a7a565b615360856020860161512e565b815261536f61022085016150ad565b602082015261538161024085016150ad565b604082015261539361026085016150ad565b60608201526153a56102808501614f56565b60808201526153b76102a08501614f56565b60a08201526153c96102c08501614f56565b60c08201526153db6102e08501614f56565b60e08201526153ed6103008501614b51565b610100820152615401856103208601615254565b610120820152809150509250929050565b60006001600160401b0382111561542b5761542b614a3b565b5060051b60200190565b600060a0828403121561544757600080fd5b60405160a081016001600160401b03828210818311171561546a5761546a614a3b565b8160405282935061547a85615242565b835261548860208601614f56565b602084015260408501359150808211156154a157600080fd5b6154ad86838701614acd565b604084015260608501359150808211156154c657600080fd5b506154d385828601614acd565b60608301525060808301356154e781614b3c565b6080919091015292915050565b600080600080600080600060e0888a03121561550f57600080fd5b87356001600160401b038082111561552657600080fd5b6155328b838c01614acd565b985060209150818a0135975060408a0135965060608a0135955060808a0135945060a08a01358181111561556557600080fd5b8a01601f81018c1361557657600080fd5b803561558961558482615412565b614a9d565b81815260059190911b8201840190848101908e8311156155a857600080fd5b928501925b828410156155c6578335825292850192908501906155ad565b965050505060c08a01359150808211156155df57600080fd5b506155ec8a828b01615435565b91505092959891949750929550565b60005b838110156156165781810151838201526020016155fe565b50506000910152565b600082516156318184602087016155fb565b9190910192915050565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b6020808252601390820152723ab739bab83837b93a32b21030bab1ba34b7b760691b604082015260600190565b6020808252600d908201526c185b1c9958591e48195b991959609a1b604082015260600190565b600081518084526156eb8160208601602086016155fb565b601f01601f19169290920160200192915050565b60408152600061571260408301856156d3565b905063ffffffff831660208301529392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60408152600061577160408301856156d3565b905060018060a01b03831660208301529392505050565b6000806040838503121561579b57600080fd5b505080516020909101519092909150565b60a0815260006157bf60a08301886156d3565b6001600160a01b0396871660208401526040830195909552506060810192909252909216608090920191909152919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107e3576107e36157f1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201615877576158776157f1565b5060010190565b60208082526022908201527f616c6c6f7765643a206f6e6c792061646d696e206f7220746f6b656e206f776e60408201526132b960f11b606082015260800190565b60208152600061349a60208301846156d3565b6080815260006158e660808301876156d3565b85602084015284604084015282810360608401526149f78185614bb2565b6020808252600a90820152691d1e1b8819985a5b195960b21b604082015260600190565b60006020828403121561593a57600080fd5b5051919050565b60408152600061595460408301856156d3565b905060018060801b03831660208301529392505050565b600061040080835261597f818401866156d3565b905061598e6020840185614e62565b8281036103e084015260068152651b1a5cdd195960d21b6020820152604081019150509392505050565b6020808252600c908201526b1cd85b19481cdd185c9d195960a21b604082015260600190565b60006104008083526159f2818401866156d3565b9050615a016020840185614e62565b8281036103e084015260078152661d5c19185d195960ca1b6020820152604081019150509392505050565b61ffff815116825263ffffffff60208201511660208301526000604082015160a06040850152615a5f60a08501826156d3565b905060608301518482036060860152615a7882826156d3565b6080948501516001600160a01b03169590940194909452509092915050565b606081526000615aaa60608301866156d3565b602060018060a01b03861681850152838203604085015260c082018551835281860151828401526040860151604084015260608601516060840152608086015160c0608085015281815180845260e0860191508483019350600092505b80831015615b275783518252928401926001929092019190840190615b07565b5060a0880151935084810360a0860152615b418185615a2c565b9a9950505050505050505050565b818103818111156107e3576107e36157f1565b6000610120808352615b768184018d6156d3565b90508a60208401528960408401528860608401528760808401528660a084015282810360c0840152615ba881876156d3565b6001600160a01b03861660e08501528381036101008501529050615bcc8185614bb2565b9c9b505050505050505050505050565b80820281158282048414176107e3576107e36157f1565b600082615c1057634e487b7160e01b600052601260045260246000fd5b500490565b600082601f830112615c2657600080fd5b81516020615c3661558483615412565b82815260059290921b84018101918181019086841115615c5557600080fd5b8286015b84811015615c705780518352918301918301615c59565b509695505050505050565b60008060408385031215615c8e57600080fd5b82516001600160401b0380821115615ca557600080fd5b818501915085601f830112615cb957600080fd5b81516020615cc961558483615412565b82815260059290921b84018101918181019089841115615ce857600080fd5b948201945b83861015615d0f578551615d0081614b3c565b82529482019490820190615ced565b91880151919650909350505080821115615d2857600080fd5b50615d3585828601615c15565b9150509250929050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160e01b031991909116815260200190565b600060208284031215615d8a57600080fd5b815161349a8161504e565b600060208284031215615da757600080fd5b815161349a81614b3c565b60208082526010908201526f3737ba1032b737bab3b4103a37b5b2b760811b604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260029082015261060f60f31b60c082015260e00190565b600060208284031215615e4a57600080fd5b81516001600160401b03811115615e6057600080fd5b6148d284828501615c15565b606081526000615e7f6060830186614fd4565b602083820381850152615e928287614bb2565b915083820360408501528185518084528284019150828160051b85010183880160005b83811015615ee357601f19878403018552615ed18383516156d3565b94860194925090850190600101615eb5565b50909a9950505050505050505050565b606081526000615f066060830186614fd4565b8281036020840152615f188186614bb2565b90508281036040840152615f2c8185614bb2565b9695505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d8be8d571f336ade3d1b6c9e8b3ce7907b34278fcd07cc9098a3ba76ee9b9a3464736f6c634300081100330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d8c3d2ccdcd1f1a4f91e370b9dbef02be2364a65