0 txs
2 calls
constructor
No constructor.
functions
_getExtensionFunctions
purefunction _getExtensionFunctions() pure returns (bytes4[])
blocksPerYear
viewfunction blocksPerYear() view returns (uint256)
feeDistributor
viewfunction feeDistributor() view returns (address)
liquidatorsRegistry
viewfunction liquidatorsRegistry() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
createAndFundPosition
nonpayablefunction createAndFundPosition(address _collateralMarket, address _stableMarket, address _fundingAsset, uint256 _fundingAmount) returns (address)
createAndFundPositionAtRatio
nonpayablefunction createAndFundPositionAtRatio(address _collateralMarket, address _stableMarket, address _fundingAsset, uint256 _fundingAmount, uint256 _leverageRatio) returns (address)
createPosition
nonpayablefunction createPosition(address _collateralMarket, address _stableMarket) returns (address)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
errors
PairNotWhitelisted
error PairNotWhitelisted()
WrongFnsArrayLength
error WrongFnsArrayLength()
creation bytecode
0x608060405234801561001057600080fd5b5061001a3361001f565b61008b565b600180546001600160a01b03191690556100388161003b565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6156db8061009a6000396000f3fe60806040523480156200001157600080fd5b5060043610620000c35760003560e01c80637bf8f349116200007a5780637bf8f349146200015157806389f8132e14620001685780638da5cb5b1462000181578063a385fb961462000193578063e30c397814620001ac578063f2fde38b14620001be57600080fd5b80630d43e8ad14620000c857806316bb997f14620000f9578063534da460146200010d5780636969e58b1462000124578063715018a6146200013b57806379ba50971462000147575b600080fd5b600954620000dc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b600a54620000dc906001600160a01b031681565b620000dc6200011e36600462000cea565b620001d5565b620000dc6200013536600462000d4c565b62000273565b6200014562000588565b005b62000145620005df565b620000dc6200016236600462000d8a565b6200065d565b620001726200076c565b604051620000f0919062000de2565b6000546001600160a01b0316620000dc565b6200019d600b5481565b604051908152602001620000f0565b6001546001600160a01b0316620000dc565b62000145620001cf36600462000e32565b62000888565b600080620001e6878787876200065d565b9050670de0b6b3a76400008311156200026957604051639028493360e01b8152600481018490526001600160a01b038216906390284933906024016020604051808303816000875af115801562000241573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000267919062000e52565b505b9695505050505050565b6001600160a01b0382166000908152600760205260408120620002979083620008fc565b620002b557604051633f94e3f760e01b815260040160405180910390fd5b6000338484604051620002c89062000cc6565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801562000305573d6000803e3d6000fd5b5090506200031560023362000921565b5033600090815260046020526040902062000331908262000921565b50600954604080516322ab0bc360e21b815290516000926001600160a01b031691638aac2f0c9160048083019260209291908290030181865afa1580156200037d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a3919062000e6c565b90506000856001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040c919062000e6c565b60405163ec2ffdd160e01b81526001600160a01b03808316600483015291925060009184169063ec2ffdd190602401602060405180830381865afa15801562000459573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047f919062000e6c565b90506001600160a01b038116156200057b57826001600160a01b031663ca224d988386846001600160a01b0316633300183c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000507919062000e8c565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260ff16604482015260016064820152608401600060405180830381600087803b1580156200056157600080fd5b505af115801562000576573d6000803e3d6000fd5b505050505b5091925050505b92915050565b6200059262000938565b60405162461bcd60e51b815260206004820152601e60248201527f72656e6f756e6365206f776e657273686970206e6f7420616c6c6f776564000060448201526064015b60405180910390fd5b60015433906001600160a01b031681146200064f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401620005d6565b6200065a8162000996565b50565b6000806200066c868662000273565b9050620006856001600160a01b038516333086620009b1565b60405163095ea7b360e01b81526001600160a01b0382811660048301526024820185905285169063095ea7b3906044016020604051808303816000875af1158015620006d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006fb919062000eb1565b50604051633a8a230760e01b81526001600160a01b03858116600483015260248201859052821690633a8a230790604401600060405180830381600087803b1580156200074757600080fd5b505af11580156200075c573d6000803e3d6000fd5b509293505050505b949350505050565b604080516003808252608082019092526060919060009082602082018580368337019050509050636969e58b60e01b81620007a78462000ed5565b93508360ff1681518110620007c057620007c062000f01565b6001600160e01b031990921660209283029190910190910152637bf8f34960e01b81620007ed8462000ed5565b93508360ff168151811062000806576200080662000f01565b6001600160e01b03199092166020928302919091019091015263029a6d2360e51b81620008338462000ed5565b93508360ff16815181106200084c576200084c62000f01565b6001600160e01b03199092166020928302919091019091015260ff82161562000582576040516323c46e1560e21b815260040160405180910390fd5b6200089262000938565b600180546001600160a01b0383166001600160a01b03199091168117909155620008c46000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b60006200091a836001600160a01b03841662000a13565b6000546001600160a01b03163314620009945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620005d6565b565b600180546001600160a01b03191690556200065a8162000a65565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905262000a0d90859062000ab5565b50505050565b600081815260018301602052604081205462000a5c5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000582565b50600062000582565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600062000b0c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662000b939092919063ffffffff16565b80519091501562000b8e578080602001905181019062000b2d919062000eb1565b62000b8e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620005d6565b505050565b606062000764848460008585600080866001600160a01b0316858760405162000bbd919062000f3d565b60006040518083038185875af1925050503d806000811462000bfc576040519150601f19603f3d011682016040523d82523d6000602084013e62000c01565b606091505b509150915062000c148783838762000c1f565b979650505050505050565b6060831562000c9357825160000362000c8b576001600160a01b0385163b62000c8b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620005d6565b508162000764565b62000764838381511562000caa5781518083602001fd5b8060405162461bcd60e51b8152600401620005d6919062000f5b565b6147158062000f9183390190565b6001600160a01b03811681146200065a57600080fd5b600080600080600060a0868803121562000d0357600080fd5b853562000d108162000cd4565b9450602086013562000d228162000cd4565b9350604086013562000d348162000cd4565b94979396509394606081013594506080013592915050565b6000806040838503121562000d6057600080fd5b823562000d6d8162000cd4565b9150602083013562000d7f8162000cd4565b809150509250929050565b6000806000806080858703121562000da157600080fd5b843562000dae8162000cd4565b9350602085013562000dc08162000cd4565b9250604085013562000dd28162000cd4565b9396929550929360600135925050565b6020808252825182820181905260009190848201906040850190845b8181101562000e265783516001600160e01b0319168352928401929184019160010162000dfe565b50909695505050505050565b60006020828403121562000e4557600080fd5b81356200091a8162000cd4565b60006020828403121562000e6557600080fd5b5051919050565b60006020828403121562000e7f57600080fd5b81516200091a8162000cd4565b60006020828403121562000e9f57600080fd5b815160ff811681146200091a57600080fd5b60006020828403121562000ec457600080fd5b815180151581146200091a57600080fd5b600060ff82168062000ef757634e487b7160e01b600052601160045260246000fd5b6000190192915050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101562000f3457818101518382015260200162000f1a565b50506000910152565b6000825162000f5181846020870162000f17565b9190910192915050565b602081526000825180602084015262000f7c81604085016020870162000f17565b601f01601f1916919091016040019291505056fe60a06040523480156200001157600080fd5b5060405162004715380380620047158339810160408190526200003491620002b2565b6001600160a01b0380841660805260408051635fe3b56760e01b81529051600092851691635fe3b5679160048083019260209291908290030181865afa15801562000083573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a9919062000306565b90506000826001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000112919062000306565b9050806001600160a01b0316826001600160a01b03161462000147576040516348cfc15160e01b815260040160405180910390fd5b600380546001600160a01b038085166001600160a01b03199283161790925560018054928716929091168217905560408051636f307dc360e01b81529051636f307dc3916004808201926020929091908290030181865afa158015620001b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d7919062000306565b600480546001600160a01b039283166001600160a01b031991821617825560028054938716939091168317905560408051636f307dc360e01b81529051636f307dc3928281019260209291908290030181865afa1580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000263919062000306565b600580546001600160a01b03929092166001600160a01b03199283161790556000805490911633179055506200032d9350505050565b6001600160a01b0381168114620002af57600080fd5b50565b600080600060608486031215620002c857600080fd5b8351620002d58162000299565b6020850151909350620002e88162000299565b6040850151909250620002fb8162000299565b809150509250925092565b6000602082840312156200031957600080fd5b8151620003268162000299565b9392505050565b6080516143a26200037360003960008181610393015281816105cb015281816106b7015281816111400152818161128001528181611a600152611fcc01526143a26000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c8063958fa280116100f9578063b21fd02911610097578063c45a015511610071578063c45a01551461037b578063cb2af14b1461038e578063df41144d146103b5578063ef5cfb8c146103c8576101a8565b8063b21fd02914610358578063c31443bb1461036b578063c393d0e314610373576101a8565b8063a415deda116100d3578063a415deda14610317578063a7e269a61461032a578063a833cb7f1461033d578063aabaecd614610345576101a8565b8063958fa280146102de578063a1571a51146102f1578063a235299314610304576101a8565b80633e2f147f11610166578063555b334a11610140578063555b334a146102815780636813f9991461029757806390284933146102aa57806393ff897b146102bd576101a8565b80633e2f147f14610239578063438f9f0b14610251578063459b9ef114610279576101a8565b8062ae3bf8146101b257806316f0115b146101c55780632f86e2dd146101f5578063372500ab14610216578063374607041461021e5780633a8a230714610226575b6101b06103db565b005b6101b06101c0366004613ae0565b6104b8565b6003546101d8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610208610203366004613ae0565b6106aa565b6040519081526020016101ec565b6101b0610a51565b610208610a5c565b6101b0610234366004613b04565b610a6d565b610241610bd4565b60405190151581526020016101ec565b61026461025f366004613b30565b610c47565b604080519283526020830191909152016101ec565b610208610de4565b610289610df0565b6040516101ec929190613b8e565b6005546101d8906001600160a01b031681565b6102086102b8366004613be5565b611133565b6102d06102cb366004613ae0565b6111f1565b6040516101ec929190613c38565b6101b06102ec366004613c5d565b6112ff565b6102086102ff366004613be5565b611550565b610264610312366004613be5565b61177a565b6001546101d8906001600160a01b031681565b6002546101d8906001600160a01b031681565b610208611791565b6004546101d8906001600160a01b031681565b610208610366366004613ae0565b611a53565b610208611b4e565b610208611e12565b6000546101d8906001600160a01b031681565b6101d87f000000000000000000000000000000000000000000000000000000000000000081565b6102086103c3366004613be5565b611e1d565b6101b06103d6366004613ae0565b611fc1565b60008054604051634377ba4160e11b815282356001600160e01b03191660048201526001600160a01b03909116906386ef748290602401602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190613ce6565b90506001600160a01b03811661048f57604051637d60257960e01b81526001600160e01b03196000351660048201526024015b60405180910390fd5b3660008037600080366000845af43d6000803e8080156104ae573d6000f35b3d6000fd5b505050565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d9190613ce6565b6001600160a01b0316336001600160a01b03161461055e576040516325f8474360e11b815260040160405180910390fd5b6005546001600160a01b038281169116148061058757506004546001600160a01b038281169116145b156105a557604051631c5c3c5b60e21b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb907f00000000000000000000000000000000000000000000000000000000000000009083906370a0823190602401602060405180830381865afa158015610613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106379190613d03565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a69190613d1c565b5050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906106f057506000546001600160a01b03163314155b1561070e576040516370d645e360e01b815260040160405180910390fd5b610729670de0b6b3a76400006107246000612365565b612507565b600160009054906101000a90046001600160a01b03166001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561077e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a29190613d03565b50600354600154604051630ede4edd60e41b81526001600160a01b039182166004820152600092919091169063ede4edd0906024016020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190613d03565b9050801561083e5760405163059548ef60e51b815260048101829052602401610486565b6001546040516370a0823160e01b81523060048201526001600160a01b039091169063db006a759082906370a0823190602401602060405180830381865afa15801561088e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b29190613d03565b6040518263ffffffff1660e01b81526004016108d091815260200190565b6020604051808303816000875af11580156108ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109139190613d03565b905080156109375760405163eeddaac560e01b815260048101829052602401610486565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a49190613d03565b905080156109c3576005546109c3906001600160a01b03168583612902565b600480546040516370a0823160e01b815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190613d03565b600454909350610a4a906001600160a01b03168585612902565b5050919050565b610a5a33611fc1565b565b6000610a686000611e1d565b905090565b610a826001600160a01b038316333084612965565b610a8b8261299d565b5060035460015460405163929fe9a160e01b81526001600160a01b039283169263929fe9a192610ac392309290911690600401613d3e565b602060405180830381865afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b049190613d1c565b6106a65760408051600180825281830190925260009160208083019080368337505060015482519293506001600160a01b031691839150600090610b4a57610b4a613d6e565b6001600160a01b039283166020918202929092010152600354604051631853304760e31b815291169063c299823890610b87908490600401613d84565b6000604051808303816000875af1158015610ba6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bce9190810190613e5b565b50505050565b600154604051633af9e66960e01b81523060048201526000916001600160a01b031690633af9e66990602401602060405180830381865afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c419190613d03565b15919050565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190613ce6565b60025460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919083169063fc57d4df90602401602060405180830381865afa158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d379190613d03565b60015460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919084169063fc57d4df90602401602060405180830381865afa158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190613d03565b905085600003610dca57610dc787610dc1611b4e565b10612365565b95505b610dd687828489612b59565b945094505050509250929050565b6000610a686000611550565b6060806000600360009054906101000a90046001600160a01b03166001600160a01b0316633605b51b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e48573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e709190810190613ef8565b9050805167ffffffffffffffff811115610e8c57610e8c613d58565b604051908082528060200260200182016040528015610eb5578160200160208202803683370190505b509250805167ffffffffffffffff811115610ed257610ed2613d58565b604051908082528060200260200182016040528015610efb578160200160208202803683370190505b50915060005b815181101561112d576000828281518110610f1e57610f1e613d6e565b6020908102919091010151600154604051632e6f912b60e21b81529192506001600160a01b038084169263b9be44ac92610f5e9216903090600401613d3e565b6020604051808303816000875af1158015610f7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa19190613d03565b50600254604051632e6f912b60e21b81526001600160a01b038381169263b9be44ac92610fd692909116903090600401613d3e565b6020604051808303816000875af1158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190613d03565b50806001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190613ce6565b85838151811061108e5761108e613d6e565b6001600160a01b039283166020918202929092010152604051630ff6b5a760e31b815230600482015290821690637fb5ad38906024016020604051808303816000875af11580156110e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111079190613d03565b84838151811061111957611119613d6e565b602090810291909101015250600101610f01565b50509091565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061117957506000546001600160a01b03163314155b15611197576040516370d645e360e01b815260040160405180910390fd5b670de0b6b3a764000082116111be576111b9670de0b6b3a76400006000612507565b6111e3565b816111c7611b4e565b10156111d8576111b9826000612cdb565b6111e3826000612507565b6111eb611b4e565b92915050565b604051639cf1fd5360e01b81523060048201526060908190839060009081906001600160a01b03841690639cf1fd53906024016000604051808303816000875af1158015611243573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261126b9190810190613f2d565b9150915060005b82518110156112f3576112eb7f00000000000000000000000000000000000000000000000000000000000000008383815181106112b1576112b1613d6e565b60200260200101518584815181106112cb576112cb613d6e565b60200260200101516001600160a01b03166129029092919063ffffffff16565b600101611272565b50909590945092505050565b6001546001600160a01b031633036113e657600061131f82840184613be5565b905061132a8161303c565b600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139c9190613d03565b9050848110156113df57600480546040516319ad25f160e11b81526001600160a01b03909116918101919091526024810182905260448101869052606401610486565b50506114d8565b6002546001600160a01b031633036114bf57600061140682840184613be5565b90506114128482613102565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190613d03565b9050848110156113df576005546040516319ad25f160e11b81526001600160a01b0390911660048201526024810182905260448101869052606401610486565b604051631fbd26df60e11b815260040160405180910390fd5b60405163095ea7b360e01b8152336004820152602481018490526001600160a01b0385169063095ea7b3906044016020604051808303816000875af1158015611525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115499190613d1c565b5050505050565b600154604051633af9e66960e01b815230600482015260009182916001600160a01b0390911690633af9e66990602401602060405180830381865afa15801561159d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c19190613d03565b9050806000036115d45750600092915050565b600354604080516307dc0d1d60e41b815290516000926001600160a01b031691637dc0d1d09160048083019260209291908290030181865afa15801561161e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116429190613ce6565b60025460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919083169063fc57d4df90602401602060405180830381865afa158015611692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b69190613d03565b905060008160008054906101000a90046001600160a01b03166001600160a01b0316630da2262c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190613d03565b61174290670de0b6b3a7640000613fa7565b61174c9190613fd4565b905085600003611763576117606000612365565b95505b6117708185600089613348565b9695505050505050565b600080611788836000610c47565b91509150915091565b600080600360009054906101000a90046001600160a01b03166001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180b9190613ce6565b60025460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919083169063fc57d4df90602401602060405180830381865afa15801561185b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187f9190613d03565b60015460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919084169063fc57d4df90602401602060405180830381865afa1580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f39190613d03565b600154604051633af9e66960e01b81523060048201529192506000916001600160a01b0390911690633af9e66990602401602060405180830381865afa158015611941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119659190613d03565b90506000670de0b6b3a764000061197c8385613fa7565b6119869190613fd4565b6002546040516305eff7ef60e21b81523060048201529192506000916001600160a01b03909116906317bfdfbc90602401602060405180830381865afa1580156119d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f89190613d03565b90506000670de0b6b3a7640000611a0f8388613fa7565b611a199190613fd4565b90506000611a278285613fe8565b905085611a3c82670de0b6b3a7640000613fa7565b611a469190613fd4565b9850505050505050505090565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a9e576040516370d645e360e01b815260040160405180910390fd5b611aa6610bd4565b611ac35760405163716041e560e01b815260040160405180910390fd5b6005546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2f9190613d03565b600554909150611b49906001600160a01b03168383612902565b919050565b600154604051633af9e66960e01b815230600482015260009182916001600160a01b0390911690633af9e66990602401602060405180830381865afa158015611b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbf9190613d03565b905080600003611bd157600091505090565b600354604080516307dc0d1d60e41b815290516000926001600160a01b031691637dc0d1d09160048083019260209291908290030181865afa158015611c1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3f9190613ce6565b60015460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919083169063fc57d4df90602401602060405180830381865afa158015611c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb39190613d03565b90506000670de0b6b3a7640000611cca8584613fa7565b611cd49190613fd4565b6002546040516305eff7ef60e21b815230600482015291925060009182916001600160a01b0316906317bfdfbc90602401602060405180830381865afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d469190613d03565b90508015611de15760025460405163fc57d4df60e01b81526001600160a01b03918216600482015260009187169063fc57d4df90602401602060405180830381865afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190613d03565b9050670de0b6b3a7640000611dd38383613fa7565b611ddd9190613fd4565b9250505b611deb8284613fe8565b611dfd84670de0b6b3a7640000613fa7565b611e079190613fd4565b965050505050505090565b6000610a68336106aa565b600154604051633af9e66960e01b815230600482015260009182916001600160a01b0390911690633af9e66990602401602060405180830381865afa158015611e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8e9190613d03565b905080600003611ea15750600092915050565b600354600254604051630cbb414760e11b81523060048201526001600160a01b039182166024820152600160448201526000929190911690631976828e90606401602060405180830381865afa158015611eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f239190613d03565b6002546040516305eff7ef60e21b81523060048201529192506000916001600160a01b03909116906317bfdfbc90602401602060405180830381865afa158015611f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f959190613d03565b905084600003611fac57611fa96001612365565b94505b611fb882848388613348565b95945050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061200557506000546001600160a01b03163314155b15612023576040516370d645e360e01b815260040160405180910390fd5b60035460408051633605b51b60e01b815290516000926001600160a01b031691633605b51b91600480830192869291908290030181865afa15801561206c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120949190810190613ef8565b905060005b81518110156104b35760008282815181106120b6576120b6613d6e565b6020908102919091010151600154604051632e6f912b60e21b81529192506001600160a01b038084169263b9be44ac926120f69216903090600401613d3e565b6020604051808303816000875af1158015612115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121399190613d03565b50600254604051632e6f912b60e21b81526001600160a01b038381169263b9be44ac9261216e92909116903090600401613d3e565b6020604051808303816000875af115801561218d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b19190613d03565b50604051633bd73ee360e21b81523060048201526001600160a01b0382169063ef5cfb8c90602401600060405180830381600087803b1580156121f357600080fd5b505af1158015612207573d6000803e3d6000fd5b505050506000816001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226f9190613ce6565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156122b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122dd9190613d03565b9050801561235a5760405163a9059cbb60e01b81526001600160a01b0387811660048301526024820183905283169063a9059cbb906044016020604051808303816000875af1158015612334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123589190613d1c565b505b505050600101612099565b6000811561245a5760008054906101000a90046001600160a01b03166001600160a01b03166316bb997f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e29190613ce6565b60048054600554604051632f53ef2b60e01b81526001600160a01b0394851694632f53ef2b94612419948216939091169101613d3e565b602060405180830381865afa158015612436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb9190613d03565b60008054906101000a90046001600160a01b03166001600160a01b03166316bb997f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cf9190613ce6565b60055460048054604051632f53ef2b60e01b81526001600160a01b0394851694632f53ef2b9461241994908216939091169101613d3e565b8060000361251c576125196000612365565b90505b600354604080516307dc0d1d60e41b815290516000926001600160a01b031691637dc0d1d09160048083019260209291908290030181865afa158015612566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258a9190613ce6565b60025460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919083169063fc57d4df90602401602060405180830381865afa1580156125da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fe9190613d03565b60015460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919084169063fc57d4df90602401602060405180830381865afa15801561264e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126729190613d03565b905060008061268387848689612b59565b9092509050801561270d576002546040805160208082018690528251808303909101815281830192839052633c3b4b8960e01b9092526001600160a01b0390921691633c3b4b89916126da9185919060440161404b565b600060405180830381600087803b1580156126f457600080fd5b505af1158015612708573d6000803e3d6000fd5b505050505b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277a9190613d03565b905080156128f8576002546040516305eff7ef60e21b81523060048201526000916001600160a01b0316906317bfdfbc90602401602060405180830381865afa1580156127cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ef9190613d03565b905080156128f65760008282116128065781612808565b825b60055460025460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af115801561285f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128839190613d1c565b5060025460405163073a938160e11b8152600481018390526001600160a01b0390911690630e752702906024016020604051808303816000875af11580156128cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f39190613d03565b50505b505b5050505050505050565b6040516001600160a01b0383166024820152604481018290526104b390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613591565b6040516001600160a01b0380851660248301528316604482015260648101829052610bce9085906323b872dd60e01b9060840161292e565b6004546000906001600160a01b038381169116146129d3576004546129cc9083906001600160a01b0316613663565b9050612a43565b600480546040516370a0823160e01b815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa158015612a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a409190613d03565b90505b6004805460015460405163095ea7b360e01b81526001600160a01b039182169381019390935260248301849052169063095ea7b3906044016020604051808303816000875af1158015612a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abe9190613d1c565b5060015460405163140e25ad60e31b8152600481018390526000916001600160a01b03169063a0712d68906024016020604051808303816000875af1158015612b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2f9190613d03565b90508015612b5357604051631a25a97b60e31b815260048101829052602401610486565b50919050565b600154604051633af9e66960e01b8152306004820152600091829182916001600160a01b031690633af9e66990602401602060405180830381865afa158015612ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bca9190613d03565b6002546040516305eff7ef60e21b81523060048201529192506000916001600160a01b03909116906317bfdfbc90602401602060405180830381865afa158015612c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3c9190613d03565b60005460405163105c25c960e11b8152600481018b9052602481018a905260448101899052606481018890526084810185905260a481018390529192506001600160a01b0316906320b84b929060c4016040805180830381865afa158015612ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ccc9190614064565b93509350505094509492505050565b600354604080516307dc0d1d60e41b815290516000926001600160a01b031691637dc0d1d09160048083019260209291908290030181865afa158015612d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d499190613ce6565b60025460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919083169063fc57d4df90602401602060405180830381865afa158015612d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dbd9190613d03565b60015460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919084169063fc57d4df90602401602060405180830381865afa158015612e0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e319190613d03565b905083600003612e4857612e456001612365565b93505b600080612e5787848689612b59565b6001546040805160208082018590528251808303909101815281830192839052633c3b4b8960e01b9092529395509193506001600160a01b031691633c3b4b8991612ea79186919060440161404b565b600060405180830381600087803b158015612ec157600080fd5b505af1158015612ed5573d6000803e3d6000fd5b5050600480546040516370a0823160e01b81523092810192909252600093506001600160a01b031691506370a0823190602401602060405180830381865afa158015612f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f499190613d03565b905080156128f8576004805460015460405163095ea7b360e01b81526001600160a01b039182169381019390935260248301849052169063095ea7b3906044016020604051808303816000875af1158015612fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcc9190613d1c565b5060015460405163140e25ad60e31b8152600481018390526001600160a01b039091169063a0712d68906024016020604051808303816000875af1158015613018573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f69190613d03565b600454613051906001600160a01b031661299d565b5060025460405163317afabb60e21b8152600481018390526000916001600160a01b03169063c5ebeaec906024016020604051808303816000875af115801561309e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c29190613d03565b905080156130e657604051636f86fa6b60e11b815260048101829052602401610486565b6005546004546104b3916001600160a01b039081169116613663565b6002546040516305eff7ef60e21b81523060048201526000916001600160a01b0316906317bfdfbc90602401602060405180830381865afa15801561314b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316f9190613d03565b905060008184106131805781613182565b835b60055460025460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af11580156131d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fd9190613d1c565b5060025460405163073a938160e11b8152600481018390526000916001600160a01b031690630e752702906024016020604051808303816000875af115801561324a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061326e9190613d03565b905080156132915760405162f0f70d60e41b815260048101829052602401610486565b60015460405163852a12e360e01b8152600481018690526001600160a01b039091169063852a12e3906024016020604051808303816000875af11580156132dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133009190613d03565b905080156133245760405163213e72eb60e11b815260048101829052602401610486565b600454600554613340916001600160a01b039081169116613663565b505050505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561339e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c29190613ce6565b60025460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919083169063fc57d4df90602401602060405180830381865afa158015613412573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134369190613d03565b60015460405163fc57d4df60e01b81526001600160a01b0391821660048201529192506000919084169063fc57d4df90602401602060405180830381865afa158015613486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134aa9190613d03565b90506000670de0b6b3a76400006134c18489613fa7565b6134cb9190613fd4565b90506000670de0b6b3a76400006134e2858c613fa7565b6134ec9190613fd4565b90506000670de0b6b3a7640000613503858c613fa7565b61350d9190613fd4565b9050600061351d89612710614088565b61352984612710613fa7565b6135339190613fd4565b90508184828582613544838661409b565b61354e91906140c3565b61355891906140c3565b613562828561409b565b61357490670de0b6b3a76400006140ea565b61357e919061411a565b9f9e505050505050505050505050505050565b60006135e6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137e69092919063ffffffff16565b8051909150156104b357808060200190518101906136049190613d1c565b6104b35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610486565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa1580156136ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d09190613d03565b6000805460405163ed287f3f60e01b8152929350909182916001600160a01b03169063ed287f3f906137089089908990600401613d3e565b600060405180830381865afa158015613725573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261374d919081019061422d565b91509150815160000361377357604051634fd1fa8360e11b815260040160405180910390fd5b60005b82518110156137dc57600083828151811061379357613793613d6e565b6020026020010151905060008383815181106137b1576137b1613d6e565b602002602001015190506137c7898784846137fd565b90995089985096508695505050600101613776565b5050505092915050565b60606137f5848460008561387e565b949350505050565b600080600061385a856310badf4e60e01b898988604051602401613823939291906142e8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613959565b905080806020019051810190613870919061430f565b925092505094509492505050565b6060824710156138df5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610486565b600080866001600160a01b031685876040516138fb919061433d565b60006040518083038185875af1925050503d8060008114613938576040519150601f19603f3d011682016040523d82523d6000602084013e61393d565b606091505b509150915061394e878383876139ed565b979650505050505050565b60606001600160a01b0383163b6139835760405163a6c49bc960e01b815260040160405180910390fd5b600080846001600160a01b03168460405161399e919061433d565b600060405180830381855af49150503d80600081146139d9576040519150601f19603f3d011682016040523d82523d6000602084013e6139de565b606091505b5091509150611fb88282613a66565b60608315613a5c578251600003613a55576001600160a01b0385163b613a555760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610486565b50816137f5565b6137f58383613a9e565b60608215613a755750806111eb565b815115613a855781518083602001fd5b60405163037b81af60e11b815260040160405180910390fd5b815115613aae5781518083602001fd5b8060405162461bcd60e51b81526004016104869190614359565b6001600160a01b0381168114613add57600080fd5b50565b600060208284031215613af257600080fd5b8135613afd81613ac8565b9392505050565b60008060408385031215613b1757600080fd5b8235613b2281613ac8565b946020939093013593505050565b60008060408385031215613b4357600080fd5b50508035926020909101359150565b60008151808452602080850194506020840160005b83811015613b8357815187529582019590820190600101613b67565b509495945050505050565b604080825283519082018190526000906020906060840190828701845b82811015613bd05781516001600160a01b031684529284019290840190600101613bab565b50505083810360208501526117708186613b52565b600060208284031215613bf757600080fd5b5035919050565b60008151808452602080850194506020840160005b83811015613b835781516001600160a01b031687529582019590820190600101613c13565b604081526000613c4b6040830185613bfe565b8281036020840152611fb88185613b52565b60008060008060608587031215613c7357600080fd5b8435613c7e81613ac8565b935060208501359250604085013567ffffffffffffffff80821115613ca257600080fd5b818701915087601f830112613cb657600080fd5b813581811115613cc557600080fd5b886020828501011115613cd757600080fd5b95989497505060200194505050565b600060208284031215613cf857600080fd5b8151613afd81613ac8565b600060208284031215613d1557600080fd5b5051919050565b600060208284031215613d2e57600080fd5b81518015158114613afd57600080fd5b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b602081526000613afd6020830184613bfe565b604051601f8201601f1916810167ffffffffffffffff81118282101715613dc057613dc0613d58565b604052919050565b600067ffffffffffffffff821115613de257613de2613d58565b5060051b60200190565b600082601f830112613dfd57600080fd5b81516020613e12613e0d83613dc8565b613d97565b8083825260208201915060208460051b870101935086841115613e3457600080fd5b602086015b84811015613e505780518352918301918301613e39565b509695505050505050565b600060208284031215613e6d57600080fd5b815167ffffffffffffffff811115613e8457600080fd5b6137f584828501613dec565b600082601f830112613ea157600080fd5b81516020613eb1613e0d83613dc8565b8083825260208201915060208460051b870101935086841115613ed357600080fd5b602086015b84811015613e50578051613eeb81613ac8565b8352918301918301613ed8565b600060208284031215613f0a57600080fd5b815167ffffffffffffffff811115613f2157600080fd5b6137f584828501613e90565b60008060408385031215613f4057600080fd5b825167ffffffffffffffff80821115613f5857600080fd5b613f6486838701613e90565b93506020850151915080821115613f7a57600080fd5b50613f8785828601613dec565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176111eb576111eb613f91565b634e487b7160e01b600052601260045260246000fd5b600082613fe357613fe3613fbe565b500490565b818103818111156111eb576111eb613f91565b60005b83811015614016578181015183820152602001613ffe565b50506000910152565b60008151808452614037816020860160208601613ffb565b601f01601f19169290920160200192915050565b8281526040602082015260006137f5604083018461401f565b6000806040838503121561407757600080fd5b505080516020909101519092909150565b808201808211156111eb576111eb613f91565b80820182811260008312801582168215821617156140bb576140bb613f91565b505092915050565b81810360008312801583831316838312821617156140e3576140e3613f91565b5092915050565b80820260008212600160ff1b8414161561410657614106613f91565b81810583148215176111eb576111eb613f91565b60008261412957614129613fbe565b600160ff1b82146000198414161561414357614143613f91565b500590565b6000601f83601f84011261415b57600080fd5b8251602061416b613e0d83613dc8565b82815260059290921b8501810191818101908784111561418a57600080fd5b8287015b8481101561422157805167ffffffffffffffff808211156141af5760008081fd5b818a0191508a603f8301126141c45760008081fd5b858201516040828211156141da576141da613d58565b6141eb828b01601f19168901613d97565b92508183528c818386010111156142025760008081fd5b61421182898501838701613ffb565b505084525091830191830161418e565b50979650505050505050565b6000806040838503121561424057600080fd5b825167ffffffffffffffff8082111561425857600080fd5b818501915085601f83011261426c57600080fd5b8151602061427c613e0d83613dc8565b82815260059290921b8401810191818101908984111561429b57600080fd5b948201945b838610156142c25785516142b381613ac8565b825294820194908201906142a0565b918801519196509093505050808211156142db57600080fd5b50613f8785828601614148565b60018060a01b0384168152826020820152606060408201526000611fb8606083018461401f565b6000806040838503121561432257600080fd5b825161432d81613ac8565b6020939093015192949293505050565b6000825161434f818460208701613ffb565b9190910192915050565b602081526000613afd602083018461401f56fea264697066735822122043504791a365410e646a58b18a749bdccd69d53fd019e33ab991cead5eef61a164736f6c63430008160033a2646970667358221220942359d3af99d0e48627f388789f3467648c2a3a7ee1e52a9c03d2e6d4d6d48a64736f6c63430008160033