38 txs
362 calls
constructor
constructor(address _sushi)
functions
getRewarder
viewfunction getRewarder(uint256 _pid, uint256 _rid) view returns (address)
lpToken
viewfunction lpToken(uint256) view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
pendingSushi
viewfunction pendingSushi(uint256 _pid, address _user) view returns (uint256 pending)
poolInfo
viewfunction poolInfo(uint256) view returns (uint128 accSushiPerShare, uint64 lastRewardTime, uint64 allocPoint)
poolLength
viewfunction poolLength() view returns (uint256 pools)
SUSHI
viewfunction SUSHI() view returns (address)
sushiPerSecond
viewfunction sushiPerSecond() view returns (uint256)
totalAllocPoint
viewfunction totalAllocPoint() view returns (uint256)
userInfo
viewfunction userInfo(uint256, address) view returns (uint256 amount, int256 rewardDebt)
add
nonpayablefunction add(uint256 allocPoint, address _lpToken)
addRewarder
nonpayablefunction addRewarder(uint256 _pid, address _rewarder)
batch
payablefunction batch(bytes[] calls, bool revertOnFail) payable returns (bool[] successes, bytes[] results)
claimOwnership
nonpayablefunction claimOwnership()
deposit
nonpayablefunction deposit(uint256 pid, uint256 amount, address to)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint256 pid, address to)
harvest
nonpayablefunction harvest(uint256 pid, address to)
massUpdatePools
nonpayablefunction massUpdatePools(uint256[] pids)
permitToken
nonpayablefunction permitToken(address token, address from, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
set
nonpayablefunction set(uint256 _pid, uint256 _allocPoint)
setSushiPerSecond
nonpayablefunction setSushiPerSecond(uint256 _sushiPerSecond)
transferOwnership
nonpayablefunction transferOwnership(address newOwner, bool direct, bool renounce)
updatePool
nonpayablefunction updatePool(uint256 pid) returns (tuple pool)
withdraw
nonpayablefunction withdraw(uint256 pid, uint256 amount, address to)
withdrawAndHarvest
nonpayablefunction withdrawAndHarvest(uint256 pid, uint256 amount, address to)
events
Deposit
event Deposit(address indexed user, uint256 indexed pid, uint256 amount, address indexed to)
EmergencyWithdraw
event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to)
Harvest
event Harvest(address indexed user, uint256 indexed pid, uint256 amount)
LogPoolAddition
event LogPoolAddition(uint256 indexed pid, uint256 allocPoint, address indexed lpToken)
LogRewarderAdded
event LogRewarderAdded(uint256 indexed pid, address indexed rewarder)
LogSetPool
event LogSetPool(uint256 indexed pid, uint256 allocPoint)
LogSushiPerSecond
event LogSushiPerSecond(uint256 sushiPerSecond)
LogUpdatePool
event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accSushiPerShare)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Withdraw
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162004eea38038062004eea83398181016040528101906200003791906200012f565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360016002819055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050620001bd565b6000815190506200012981620001a3565b92915050565b6000602082840312156200014257600080fd5b6000620001528482850162000118565b91505092915050565b6000620001688262000183565b9050919050565b60006200017c826200015b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001ae816200016f565b8114620001ba57600080fd5b50565b60805160601c614d05620001e560003980610dd8528061263f52806127ed5250614d056000f3fe6080604052600436106101815760003560e01c806357a5b58c116100d15780639baf58c31161008a578063d1abb90711610064578063d1abb9071461057f578063d2423b51146105a8578063e30c3978146105d9578063e7a2e3e01461060457610181565b80639baf58c314610500578063a06e408b14610529578063ab560e101461055457610181565b806357a5b58c146103df57806378ed5d1f146104085780637c516e94146104455780638da5cb5b1461046e5780638dbdbe6d1461049957806393f1a40b146104c257610181565b806318fccc761161013e5780632b8bbbe8116101185780632b8bbbe8146103395780632f940c70146103625780634e71e0c81461038b57806351eb05a6146103a257610181565b806318fccc76146102aa578063195426ec146102d35780631ab06ee51461031057610181565b8063060fb93114610186578063078dfbe7146101c3578063081e3eda146101ec5780630ad58d2f146102175780631526fe271461024057806317caf6f11461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a89190613b38565b61062d565b6040516101ba9190614380565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e5919061382a565b61068b565b005b3480156101f857600080fd5b506102016108df565b60405161020e9190614717565b60405180910390f35b34801561022357600080fd5b5061023e60048036038101906102399190613b74565b6108ec565b005b34801561024c57600080fd5b5061026760048036038101906102629190613a32565b610c2a565b604051610276939291906146e0565b60405180910390f35b34801561028b57600080fd5b50610294610ca5565b6040516102a19190614717565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190613a84565b610cab565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190613a84565b610fbb565b6040516103079190614717565b60405180910390f35b34801561031c57600080fd5b5061033760048036038101906103329190613b38565b61136f565b005b34801561034557600080fd5b50610360600480360381019061035b9190613ac0565b6114ef565b005b34801561036e57600080fd5b5061038960048036038101906103849190613a84565b6117ec565b005b34801561039757600080fd5b506103a0611abb565b005b3480156103ae57600080fd5b506103c960048036038101906103c49190613a32565b611c4f565b6040516103d691906146be565b60405180910390f35b3480156103eb57600080fd5b50610406600480360381019061040191906138d1565b6120d6565b005b34801561041457600080fd5b5061042f600480360381019061042a9190613a32565b612116565b60405161043c91906144a1565b60405180910390f35b34801561045157600080fd5b5061046c6004803603810190610467919061393f565b612152565b005b34801561047a57600080fd5b506104836121d3565b6040516104909190614380565b60405180910390f35b3480156104a557600080fd5b506104c060048036038101906104bb9190613b74565b6121f7565b005b3480156104ce57600080fd5b506104e960048036038101906104e49190613a84565b612537565b6040516104f792919061487e565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190613a32565b612568565b005b34801561053557600080fd5b5061053e612637565b60405161054b9190614717565b60405180910390f35b34801561056057600080fd5b5061056961263d565b60405161057691906144a1565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190613b74565b612661565b005b6105c260048036038101906105bd9190613879565b612a98565b6040516105d092919061446a565b60405180910390f35b3480156105e557600080fd5b506105ee612c76565b6040516105fb9190614380565b60405180910390f35b34801561061057600080fd5b5061062b60048036038101906106269190613afc565b612c9c565b005b60006003838154811061063c57fe5b9060005260206000209060020201600101828154811061065857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610719576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610710906145de565b60405180910390fd5b811561089857600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415806107585750805b610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e9061455e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108da565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050565b6000600380549050905090565b600280541415610931576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109289061467e565b60405180910390fd5b60028081905550610940613572565b61094984611c4f565b905060006005600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506109ec64e8d4a510006109d184600001516fffffffffffffffffffffffffffffffff1687612eed90919063ffffffff16565b816109d857fe5b048260010154612f4f90919063ffffffff16565b8160010181905550610a0b848260000154612fc790919063ffffffff16565b816000018190555060005b60038681548110610a2357fe5b906000526020600020906002020160010180549050811015610b5257600060038781548110610a4e57fe5b90600052602060002090600202016001018281548110610a6a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b44578073ffffffffffffffffffffffffffffffffffffffff16638bf63742883388600088600001546040518663ffffffff1660e01b8152600401610b11959493929190614785565b600060405180830381600087803b158015610b2b57600080fd5b505af1158015610b3f573d6000803e3d6000fd5b505050505b508080600101915050610a16565b50610bb5838560048881548110610b6557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166130179092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff16853373ffffffffffffffffffffffffffffffffffffffff167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec213287604051610c139190614717565b60405180910390a450506001600281905550505050565b60038181548110610c3757fe5b90600052602060002090600202016000915090508060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a900467ffffffffffffffff16908060000160189054906101000a900467ffffffffffffffff16905083565b60065481565b600280541415610cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce79061467e565b60405180910390fd5b60028081905550610cff613572565b610d0883611c4f565b905060006005600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600064e8d4a51000610d9384600001516fffffffffffffffffffffffffffffffff168460000154612eed90919063ffffffff16565b81610d9a57fe5b0490506000610dbe610db9846001015484612f4f90919063ffffffff16565b61314e565b905081836001018190555060008114610e1d57610e1c85827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166130179092919063ffffffff16565b5b60005b60038781548110610e2d57fe5b906000526020600020906002020160010180549050811015610f5b57600060038881548110610e5857fe5b90600052602060002090600202016001018281548110610e7457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f4d578073ffffffffffffffffffffffffffffffffffffffff16638bf6374289338a878a600001546040518663ffffffff1660e01b8152600401610f1a9594939291906147d8565b600060405180830381600087803b158015610f3457600080fd5b505af1158015610f48573d6000803e3d6000fd5b505050505b508080600101915050610e20565b50853373ffffffffffffffffffffffffffffffffffffffff167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495483604051610fa39190614717565b60405180910390a35050505060016002819055505050565b6000610fc5613572565b60038481548110610fd257fe5b90600052602060002090600202016040518060800160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160189054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561111e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116110d4575b505050505081525050905060006005600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600082600001516fffffffffffffffffffffffffffffffff1690506000600487815481106111a757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120a9190614380565b60206040518083038186803b15801561122257600080fd5b505afa158015611236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125a9190613a5b565b9050836020015167ffffffffffffffff164211801561127a575060008114155b156113205760006112a2856020015167ffffffffffffffff1642612fc790919063ffffffff16565b905060006006546112de876040015167ffffffffffffffff166112d060075486612eed90919063ffffffff16565b612eed90919063ffffffff16565b816112e557fe5b04905061131b8361130464e8d4a5100084612eed90919063ffffffff16565b8161130b57fe5b048561319b90919063ffffffff16565b935050505b61136361135e846001015464e8d4a51000611348868860000154612eed90919063ffffffff16565b8161134f57fe5b04612f4f90919063ffffffff16565b61314e565b94505050505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f4906145de565b60405180910390fd5b611460816114526003858154811061141157fe5b906000526020600020906002020160000160189054906101000a900467ffffffffffffffff1667ffffffffffffffff16600654612fc790919063ffffffff16565b61319b90919063ffffffff16565b60068190555061146f816131eb565b6003838154811061147c57fe5b906000526020600020906002020160000160186101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550817f942cc7e17a17c164bd977f32ab8c54265d5b9d481e4e352bf874f1e568874e7c826040516114e39190614717565b60405180910390a25050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461157d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611574906145de565b60405180910390fd5b6115928260065461319b90919063ffffffff16565b6006819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003604051806080016040528060006fffffffffffffffffffffffffffffffff16815260200161162a426131eb565b67ffffffffffffffff168152602001611642856131eb565b67ffffffffffffffff168152602001600067ffffffffffffffff8111801561166957600080fd5b506040519080825280602002602001820160405280156116985781602001602082028036833780820191505090505b50815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160000160186101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550606082015181600101908051906020019061177e9291906135c0565b5050508073ffffffffffffffffffffffffffffffffffffffff166117b16001600480549050612fc790919063ffffffff16565b7f4710feb78e3bce8d2e3ca2989a8eb2f8bcd32a6a55b4535942c180fc4d2e2952846040516117e09190614717565b60405180910390a35050565b600280541415611831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118289061467e565b60405180910390fd5b6002808190555060006005600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001549050600082600001819055506000826001018190555060005b600385815481106118b957fe5b9060005260206000209060020201600101805490508110156119e4576000600386815481106118e457fe5b9060005260206000209060020201600101828154811061190057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119d6578073ffffffffffffffffffffffffffffffffffffffff16638bf637428733886000806040518663ffffffff1660e01b81526004016119a3959493929190614732565b600060405180830381600087803b1580156119bd57600080fd5b505af11580156119d1573d6000803e3d6000fd5b505050505b5080806001019150506118ac565b50611a478382600487815481106119f757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166130179092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff16843373ffffffffffffffffffffffffffffffffffffffff167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b84604051611aa59190614717565b60405180910390a4505060016002819055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b47906145fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c57613572565b60038281548110611c6457fe5b90600052602060002090600202016040518060800160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160189054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015611db057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611d66575b5050505050815250509050806020015167ffffffffffffffff164211156120d157600060048381548110611de057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611e439190614380565b60206040518083038186803b158015611e5b57600080fd5b505afa158015611e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e939190613a5b565b90506000811115611f8a576000611ec1836020015167ffffffffffffffff1642612fc790919063ffffffff16565b90506000600654611efd856040015167ffffffffffffffff16611eef60075486612eed90919063ffffffff16565b612eed90919063ffffffff16565b81611f0457fe5b049050611f58611f3384611f2664e8d4a5100085612eed90919063ffffffff16565b81611f2d57fe5b04613262565b85600001516fffffffffffffffffffffffffffffffff166132e190919063ffffffff16565b84600001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff168152505050505b611f93426131eb565b826020019067ffffffffffffffff16908167ffffffffffffffff16815250508160038481548110611fc057fe5b906000526020600020906002020160008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160000160186101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010190805190602001906120879291906135c0565b50905050827f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35383602001518385600001516040516120c7939291906148a7565b60405180910390a2505b919050565b600082829050905060005b81811015612110576121048484838181106120f857fe5b90506020020135611c4f565b508060010190506120e1565b50505050565b6004818154811061212357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8773ffffffffffffffffffffffffffffffffffffffff1663d505accf888888888888886040518863ffffffff1660e01b815260040161219797969594939291906143d2565b600060405180830381600087803b1580156121b157600080fd5b505af11580156121c5573d6000803e3d6000fd5b505050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054141561223c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122339061467e565b60405180910390fd5b6002808190555061224b613572565b61225484611c4f565b905060006005600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506122c184826000015461319b90919063ffffffff16565b816000018190555061231664e8d4a510006122fb84600001516fffffffffffffffffffffffffffffffff1687612eed90919063ffffffff16565b8161230257fe5b04826001015461335590919063ffffffff16565b816001018190555060005b6003868154811061232e57fe5b90600052602060002090600202016001018054905081101561245d5760006003878154811061235957fe5b9060005260206000209060020201600101828154811061237557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461244f578073ffffffffffffffffffffffffffffffffffffffff16638bf63742888788600088600001546040518663ffffffff1660e01b815260040161241c95949392919061482b565b600060405180830381600087803b15801561243657600080fd5b505af115801561244a573d6000803e3d6000fd5b505050505b508080600101915050612321565b506124c23330866004898154811061247157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133cd909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff16853373ffffffffffffffffffffffffffffffffffffffff167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47876040516125209190614717565b60405180910390a450506001600281905550505050565b6005602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ed906145de565b60405180910390fd5b806007819055507fc6ce5eff3291fb2c1517b943daa5067ea76c83816bbf674307fbc7fea3b311d08160405161262c9190614717565b60405180910390a150565b60075481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002805414156126a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269d9061467e565b60405180910390fd5b600280819055506126b5613572565b6126be84611c4f565b905060006005600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600064e8d4a5100061274984600001516fffffffffffffffffffffffffffffffff168460000154612eed90919063ffffffff16565b8161275057fe5b049050600061277461276f846001015484612f4f90919063ffffffff16565b61314e565b90506127bf64e8d4a510006127a886600001516fffffffffffffffffffffffffffffffff1689612eed90919063ffffffff16565b816127af57fe5b0483612f4f90919063ffffffff16565b83600101819055506127de868460000154612fc790919063ffffffff16565b836000018190555061283185827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166130179092919063ffffffff16565b60005b6003888154811061284157fe5b90600052602060002090600202016001018054905081101561296f5760006003898154811061286c57fe5b9060005260206000209060020201600101828154811061288857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612961578073ffffffffffffffffffffffffffffffffffffffff16638bf637428a338a878a600001546040518663ffffffff1660e01b815260040161292e9594939291906147d8565b600060405180830381600087803b15801561294857600080fd5b505af115801561295c573d6000803e3d6000fd5b505050505b508080600101915050612834565b506129d2858760048a8154811061298257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166130179092919063ffffffff16565b8473ffffffffffffffffffffffffffffffffffffffff16873373ffffffffffffffffffffffffffffffffffffffff167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec213289604051612a309190614717565b60405180910390a4863373ffffffffffffffffffffffffffffffffffffffff167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495483604051612a7f9190614717565b60405180910390a3505050506001600281905550505050565b6060808484905067ffffffffffffffff81118015612ab557600080fd5b50604051908082528060200260200182016040528015612ae45781602001602082028036833780820191505090505b5091508484905067ffffffffffffffff81118015612b0157600080fd5b50604051908082528060200260200182016040528015612b3557816020015b6060815260200190600190039081612b205790505b50905060005b85859050811015612c6d57600060603073ffffffffffffffffffffffffffffffffffffffff16888885818110612b6d57fe5b9050602002810190612b7f91906148de565b604051612b8d929190614350565b600060405180830381855af49150503d8060008114612bc8576040519150601f19603f3d011682016040523d82523d6000602084013e612bcd565b606091505b50915091508180612bdc575085155b612be582613507565b90612c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1d91906144bc565b60405180910390fd5b5081858481518110612c3457fe5b60200260200101901515908115158152505080848481518110612c5357fe5b602002602001018190525050508080600101915050612b3b565b50935093915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d21906145de565b60405180910390fd5b60005b60038381548110612d3a57fe5b906000526020600020906002020160010180549050811015612e25578173ffffffffffffffffffffffffffffffffffffffff1660038481548110612d7a57fe5b90600052602060002090600202016001018281548110612d9657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0f9061457e565b60405180910390fd5b8080600101915050612d2d565b5060038281548110612e3357fe5b9060005260206000209060020201600101819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16827f026b05825d8f499fd88497aab35f95fb84bfdcd4d39928568b10da7d2a53afa960405160405180910390a35050565b600080821480612f0a5750828283850292508281612f0757fe5b04145b612f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f409061469e565b60405180910390fd5b92915050565b600080828403905060008312158015612f685750838113155b80612f7e5750600083128015612f7d57508381135b5b612fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb49061463e565b60405180910390fd5b8091505092915050565b6000828284039150811115613011576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613008906144de565b60405180910390fd5b92915050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858560405160240161304a929190614441565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516130989190614369565b6000604051808303816000865af19150503d80600081146130d5576040519150601f19603f3d011682016040523d82523d6000602084013e6130da565b606091505b509150915081801561310857506000815114806131075750808060200190518101906131069190613916565b5b5b613147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313e9061451e565b60405180910390fd5b5050505050565b600080821215613193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318a906144fe565b60405180910390fd5b819050919050565b60008182840191508110156131e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131dc906145be565b60405180910390fd5b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff1682111561325a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132519061461e565b60405180910390fd5b819050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff168211156132d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d09061459e565b60405180910390fd5b819050919050565b6000816fffffffffffffffffffffffffffffffff168284019150816fffffffffffffffffffffffffffffffff16101561334f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613346906145be565b60405180910390fd5b92915050565b60008082840190506000831215801561336e5750838112155b80613384575060008312801561338357508381125b5b6133c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ba9061453e565b60405180910390fd5b8091505092915050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016134029392919061439b565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516134509190614369565b6000604051808303816000865af19150503d806000811461348d576040519150601f19603f3d011682016040523d82523d6000602084013e613492565b606091505b50915091508180156134c057506000815114806134bf5750808060200190518101906134be9190613916565b5b5b6134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f69061465e565b60405180910390fd5b505050505050565b6060604482511015613550576040518060400160405280601d81526020017f5472616e73616374696f6e2072657665727465642073696c656e746c79000000815250905061356d565b6004820191508180602001905181019061356a91906139f1565b90505b919050565b604051806080016040528060006fffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001606081525090565b828054828255906000526020600020908101928215613639579160200282015b828111156136385782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906135e0565b5b509050613646919061364a565b5090565b5b8082111561368157600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161364b565b5090565b60008135905061369481614c2e565b92915050565b60008083601f8401126136ac57600080fd5b8235905067ffffffffffffffff8111156136c557600080fd5b6020830191508360208202830111156136dd57600080fd5b9250929050565b60008083601f8401126136f657600080fd5b8235905067ffffffffffffffff81111561370f57600080fd5b60208301915083602082028301111561372757600080fd5b9250929050565b60008135905061373d81614c45565b92915050565b60008151905061375281614c45565b92915050565b60008135905061376781614c5c565b92915050565b60008135905061377c81614c73565b92915050565b60008135905061379181614c8a565b92915050565b600082601f8301126137a857600080fd5b81516137bb6137b682614962565b614935565b915080825260208301602083018583830111156137d757600080fd5b6137e2838284614bea565b50505092915050565b6000813590506137fa81614ca1565b92915050565b60008151905061380f81614ca1565b92915050565b60008135905061382481614cb8565b92915050565b60008060006060848603121561383f57600080fd5b600061384d86828701613685565b935050602061385e8682870161372e565b925050604061386f8682870161372e565b9150509250925092565b60008060006040848603121561388e57600080fd5b600084013567ffffffffffffffff8111156138a857600080fd5b6138b48682870161369a565b935093505060206138c78682870161372e565b9150509250925092565b600080602083850312156138e457600080fd5b600083013567ffffffffffffffff8111156138fe57600080fd5b61390a858286016136e4565b92509250509250929050565b60006020828403121561392857600080fd5b600061393684828501613743565b91505092915050565b600080600080600080600080610100898b03121561395c57600080fd5b600061396a8b828c0161376d565b985050602061397b8b828c01613685565b975050604061398c8b828c01613685565b965050606061399d8b828c016137eb565b95505060806139ae8b828c016137eb565b94505060a06139bf8b828c01613815565b93505060c06139d08b828c01613758565b92505060e06139e18b828c01613758565b9150509295985092959890939650565b600060208284031215613a0357600080fd5b600082015167ffffffffffffffff811115613a1d57600080fd5b613a2984828501613797565b91505092915050565b600060208284031215613a4457600080fd5b6000613a52848285016137eb565b91505092915050565b600060208284031215613a6d57600080fd5b6000613a7b84828501613800565b91505092915050565b60008060408385031215613a9757600080fd5b6000613aa5858286016137eb565b9250506020613ab685828601613685565b9150509250929050565b60008060408385031215613ad357600080fd5b6000613ae1858286016137eb565b9250506020613af28582860161376d565b9150509250929050565b60008060408385031215613b0f57600080fd5b6000613b1d858286016137eb565b9250506020613b2e85828601613782565b9150509250929050565b60008060408385031215613b4b57600080fd5b6000613b59858286016137eb565b9250506020613b6a858286016137eb565b9150509250929050565b600080600060608486031215613b8957600080fd5b6000613b97868287016137eb565b9350506020613ba8868287016137eb565b9250506040613bb986828701613685565b9150509250925092565b6000613bcf8383613d56565b60208301905092915050565b6000613be78383613d99565b905092915050565b6000613bfb8383613e12565b60208301905092915050565b613c1081614b39565b82525050565b613c1f81614a7c565b82525050565b6000613c30826149be565b613c3a8185614a2d565b9350613c458361498e565b8060005b83811015613c76578151613c5d8882613bc3565b9750613c68836149f5565b925050600181019050613c49565b5085935050505092915050565b6000613c8e826149c9565b613c988185614a3e565b935083602082028501613caa8561499e565b8060005b85811015613ce65784840389528151613cc78582613bdb565b9450613cd283614a02565b925060208a01995050600181019050613cae565b50829750879550505050505092915050565b6000613d03826149d4565b613d0d8185614a1c565b9350613d18836149ae565b8060005b83811015613d49578151613d308882613bef565b9750613d3b83614a0f565b925050600181019050613d1c565b5085935050505092915050565b613d5f81614a8e565b82525050565b613d6e81614a9a565b82525050565b6000613d808385614a60565b9350613d8d838584614bdb565b82840190509392505050565b6000613da4826149df565b613dae8185614a4f565b9350613dbe818560208601614bea565b613dc781614c1d565b840191505092915050565b6000613ddd826149df565b613de78185614a60565b9350613df7818560208601614bea565b80840191505092915050565b613e0c81614b4b565b82525050565b613e1b81614b6f565b82525050565b613e2a81614ac8565b82525050565b613e3981614b93565b82525050565b6000613e4a826149ea565b613e548185614a6b565b9350613e64818560208601614bea565b613e6d81614c1d565b840191505092915050565b6000613e85601583614a6b565b91507f426f72696e674d6174683a20556e646572666c6f7700000000000000000000006000830152602082019050919050565b6000613ec5600b83614a6b565b91507f496e7465676572203c20300000000000000000000000000000000000000000006000830152602082019050919050565b6000613f05601c83614a6b565b91507f426f72696e6745524332303a205472616e73666572206661696c6564000000006000830152602082019050919050565b6000613f45602183614a6b565b91507f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613fab601583614a6b565b91507f4f776e61626c653a207a65726f206164647265737300000000000000000000006000830152602082019050919050565b6000613feb600d83614a6b565b91507f616c7265616479206164646564000000000000000000000000000000000000006000830152602082019050919050565b600061402b601c83614a6b565b91507f426f72696e674d6174683a2075696e74313238204f766572666c6f77000000006000830152602082019050919050565b600061406b601883614a6b565b91507f426f72696e674d6174683a20416464204f766572666c6f7700000000000000006000830152602082019050919050565b60006140ab602083614a6b565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006140eb602083614a6b565b91507f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726000830152602082019050919050565b600061412b601b83614a6b565b91507f426f72696e674d6174683a2075696e743634204f766572666c6f7700000000006000830152602082019050919050565b600061416b602483614a6b565b91507f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260008301527f666c6f77000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006141d1602083614a6b565b91507f426f72696e6745524332303a205472616e7366657246726f6d206661696c65646000830152602082019050919050565b6000614211601f83614a6b565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b6000614251601883614a6b565b91507f426f72696e674d6174683a204d756c204f766572666c6f7700000000000000006000830152602082019050919050565b600060808301600083015161429c60008601826142e7565b5060208301516142af6020860182614323565b5060408301516142c26040860182614323565b50606083015184820360608601526142da8282613cf8565b9150508091505092915050565b6142f081614ad2565b82525050565b6142ff81614ad2565b82525050565b61430e81614ba5565b82525050565b61431d81614b0e565b82525050565b61432c81614b18565b82525050565b61433b81614b18565b82525050565b61434a81614b2c565b82525050565b600061435d828486613d74565b91508190509392505050565b60006143758284613dd2565b915081905092915050565b60006020820190506143956000830184613c16565b92915050565b60006060820190506143b06000830186613c16565b6143bd6020830185613c16565b6143ca6040830184614314565b949350505050565b600060e0820190506143e7600083018a613c16565b6143f46020830189613c16565b6144016040830188614314565b61440e6060830187614314565b61441b6080830186614341565b61442860a0830185613d65565b61443560c0830184613d65565b98975050505050505050565b60006040820190506144566000830185613c16565b6144636020830184614314565b9392505050565b600060408201905081810360008301526144848185613c25565b905081810360208301526144988184613c83565b90509392505050565b60006020820190506144b66000830184613e03565b92915050565b600060208201905081810360008301526144d68184613e3f565b905092915050565b600060208201905081810360008301526144f781613e78565b9050919050565b6000602082019050818103600083015261451781613eb8565b9050919050565b6000602082019050818103600083015261453781613ef8565b9050919050565b6000602082019050818103600083015261455781613f38565b9050919050565b6000602082019050818103600083015261457781613f9e565b9050919050565b6000602082019050818103600083015261459781613fde565b9050919050565b600060208201905081810360008301526145b78161401e565b9050919050565b600060208201905081810360008301526145d78161405e565b9050919050565b600060208201905081810360008301526145f78161409e565b9050919050565b60006020820190508181036000830152614617816140de565b9050919050565b600060208201905081810360008301526146378161411e565b9050919050565b600060208201905081810360008301526146578161415e565b9050919050565b60006020820190508181036000830152614677816141c4565b9050919050565b6000602082019050818103600083015261469781614204565b9050919050565b600060208201905081810360008301526146b781614244565b9050919050565b600060208201905081810360008301526146d88184614284565b905092915050565b60006060820190506146f560008301866142f6565b6147026020830185614332565b61470f6040830184614332565b949350505050565b600060208201905061472c6000830184614314565b92915050565b600060a0820190506147476000830188614314565b6147546020830187613c07565b6147616040830186613c16565b61476e6060830185613e30565b61477b6080830184613e30565b9695505050505050565b600060a08201905061479a6000830188614314565b6147a76020830187613c07565b6147b46040830186613c16565b6147c16060830185613e30565b6147ce6080830184614314565b9695505050505050565b600060a0820190506147ed6000830188614314565b6147fa6020830187613c07565b6148076040830186613c16565b6148146060830185614314565b6148216080830184614314565b9695505050505050565b600060a0820190506148406000830188614314565b61484d6020830187613c16565b61485a6040830186613c16565b6148676060830185613e30565b6148746080830184614314565b9695505050505050565b60006040820190506148936000830185614314565b6148a06020830184613e21565b9392505050565b60006060820190506148bc6000830186614332565b6148c96020830185614314565b6148d66040830184614305565b949350505050565b600080833560016020038436030381126148f757600080fd5b80840192508235915067ffffffffffffffff82111561491557600080fd5b60208301925060018202360383131561492d57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff8211171561495857600080fd5b8060405250919050565b600067ffffffffffffffff82111561497957600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a8782614aee565b9050919050565b60008115159050919050565b6000819050919050565b6000614aaf82614a7c565b9050919050565b6000614ac182614a7c565b9050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b6000614b4482614bb7565b9050919050565b6000614b5682614b5d565b9050919050565b6000614b6882614aee565b9050919050565b6000614b7a82614b81565b9050919050565b6000614b8c82614aee565b9050919050565b6000614b9e82614b0e565b9050919050565b6000614bb082614ad2565b9050919050565b6000614bc282614bc9565b9050919050565b6000614bd482614aee565b9050919050565b82818337600083830152505050565b60005b83811015614c08578082015181840152602081019050614bed565b83811115614c17576000848401525b50505050565b6000601f19601f8301169050919050565b614c3781614a7c565b8114614c4257600080fd5b50565b614c4e81614a8e565b8114614c5957600080fd5b50565b614c6581614a9a565b8114614c7057600080fd5b50565b614c7c81614aa4565b8114614c8757600080fd5b50565b614c9381614ab6565b8114614c9e57600080fd5b50565b614caa81614b0e565b8114614cb557600080fd5b50565b614cc181614b2c565b8114614ccc57600080fd5b5056fea264697066735822122019b4fa56fe4455caf95c3a59a7e90bd99f1f8d16a96a1624c48bc31a5715593e64736f6c634300060c00330000000000000000000000000aaae1b57d92545ba68d75eb96c2a499fa154996