More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 17,283 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 20745312 | 79 days ago | IN | 0 ETH | 0.00021173 | ||||
Withdraw | 20745307 | 79 days ago | IN | 0 ETH | 0.00027715 | ||||
Deposit | 17900860 | 478 days ago | IN | 0 ETH | 0.00181174 | ||||
Withdraw | 16214382 | 715 days ago | IN | 0 ETH | 0.00178053 | ||||
Withdraw | 15775318 | 776 days ago | IN | 0 ETH | 0.0027352 | ||||
Deposit | 15753610 | 779 days ago | IN | 0 ETH | 0.00173186 | ||||
Deposit | 15753607 | 779 days ago | IN | 0 ETH | 0.00159691 | ||||
Deposit | 15753595 | 779 days ago | IN | 0 ETH | 0.002014 | ||||
Withdraw | 15030995 | 890 days ago | IN | 0 ETH | 0.00347492 | ||||
Deposit | 14999276 | 895 days ago | IN | 0 ETH | 0.00209147 | ||||
Withdraw | 14999236 | 895 days ago | IN | 0 ETH | 0.00194104 | ||||
Deposit | 14999115 | 895 days ago | IN | 0 ETH | 0.00283321 | ||||
Deposit | 14999112 | 895 days ago | IN | 0 ETH | 0.0027188 | ||||
Deposit | 14951975 | 904 days ago | IN | 0 ETH | 0.00449525 | ||||
Deposit | 14951954 | 904 days ago | IN | 0 ETH | 0.00388234 | ||||
Deposit | 14862210 | 919 days ago | IN | 0 ETH | 0.0023609 | ||||
Withdraw | 14779157 | 932 days ago | IN | 0 ETH | 0.00242964 | ||||
Deposit | 14731823 | 940 days ago | IN | 0 ETH | 0.0040566 | ||||
Deposit | 14731721 | 940 days ago | IN | 0 ETH | 0.00268907 | ||||
Deposit | 14731721 | 940 days ago | IN | 0 ETH | 0.00268934 | ||||
Deposit | 14608414 | 959 days ago | IN | 0 ETH | 0.00221772 | ||||
Deposit | 14352863 | 999 days ago | IN | 0 ETH | 0.00341111 | ||||
Deposit | 14330531 | 1002 days ago | IN | 0 ETH | 0.0026385 | ||||
Deposit | 14288528 | 1009 days ago | IN | 0 ETH | 0.00418628 | ||||
Deposit | 14281424 | 1010 days ago | IN | 0 ETH | 0.00333768 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
XiControl
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-16 */ /* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKkkKWMMMMMMWKkkKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl''dNMMMMMMNo''oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxoOWMMMMMMWkoxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKONMMMMMMXkKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0kXMMMMMMXk0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0O0XMMMMX0O0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOkXNNXk0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk:;::;c0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOxOKkdc,....,ldk0Ox0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMWOc,',,,;coddddoc;,,,',lOWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXd,.';oOXWMMMMMMWXOo;'.,dXMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMNd,'l0WMMMWNXXNWMMMW0c',dNMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWX0x,'lXMMMNkdxdollkNMMMKc';dOXMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMNo,'.;OMMMNd,cOOd:.'dNMMWk,'',dWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMXl'..;OMMMXl.',,''.'lXMMMO;..'oNMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWOdc',xWMMWOc,...',c0WMMNd''cdOWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMWKl';kWMMMN0kxxk0NMMMNx;'cKWWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXd;.,o0NMMMMMMMMMMN0l,.,oXMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXd;'.',cdk0KKKK0kdc,'..,dXMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMW0l,:l:,',,,,,,,,:oc,c0WMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO;dNN0o;'..';dKNWk;xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO;oNMWNOc''c0NMMMk;xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKl:dKWMKc..cKMMXkccOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXx:lXMXo;;oXMNd;oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOlcdkOkkOOklcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0c'',,;,,':OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNKkxxxxxxxxOXNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWNNNNNNNNNNNNNNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM */ pragma solidity ^0.6.6; abstract contract Context { function _msgSender() internal virtual view returns (address payable) { return msg.sender; } function _msgData() internal virtual view returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function mint(address _to, uint256 _amount) external; event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface xiControlMigrator { function migrate(IERC20 token) external returns (IERC20); } library Address { function isContract(address account) internal view returns (bool) { uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { if (returndata.length > 0) { // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transfer.selector, to, value) ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value) ); } function safeApprove( IERC20 token, address spender, uint256 value ) internal { require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, value) ); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender).add( value ); _callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, newAllowance ) ); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender).sub( value, "SafeERC20: decreased allowance below zero" ); _callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, newAllowance ) ); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall( data, "SafeERC20: low-level call failed" ); if (returndata.length > 0) { // solhint-disable-next-line max-line-length require( abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed" ); } } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract TokenRecover is Ownable { function recoverERC20(address tokenAddress, uint256 tokenAmount) public onlyOwner { IERC20(tokenAddress).transfer(owner(), tokenAmount); } } contract XiControl is Ownable, TokenRecover { using SafeMath for uint256; using SafeERC20 for IERC20; struct UserDat { uint256 amount; uint256 rewardDebt; } struct PuddleData { IERC20 Univ2Token; uint256 allocPoint; uint256 lastRewardBlock; uint256 accRiPerShare; } IERC20 public ri; address public administrator; uint256 public rewardPerBlock; xiControlMigrator public migrator; PuddleData[] public puddleData; mapping(address => bool) public Univ2TokenExistsInPuddle; mapping(uint256 => mapping(address => UserDat)) public userDat; uint256 public totalAllocPoint = 0; uint256 public startBlock; uint256 public halvePeriod = 2073600; uint256 public minimumRewardPerBlock = 24048 szabo; uint256 public lastHalveBlock; event Deposit(address indexed user, uint256 indexed pid, uint256 amount); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount); event ExitPoolDisgracefully(address indexed user, uint256 indexed pid, uint256 amount); event Halve(uint256 newRewardPerBlock, uint256 nextHalveBlockNumber); constructor( IERC20 _ri, address _administrator, uint256 _startBlock) public { ri = _ri; administrator = _administrator; rewardPerBlock = 769544 szabo; startBlock = _startBlock; lastHalveBlock = _startBlock; } function doHalvingCheck(bool _withUpdate) public { if (rewardPerBlock <= minimumRewardPerBlock) { return; } bool doHalve = block.number > lastHalveBlock + halvePeriod; if (!doHalve) { return; } uint256 newRewardPerBlock = rewardPerBlock.div(2); if (newRewardPerBlock >= minimumRewardPerBlock) { rewardPerBlock = newRewardPerBlock; lastHalveBlock = block.number; emit Halve(newRewardPerBlock, block.number + halvePeriod); if (_withUpdate) { massUpdatePuddles(); } } } function puddleLength() external view returns (uint256) { return puddleData.length; } function add(uint256 _allocPoint, IERC20 _Univ2Token, bool _withUpdate) public onlyOwner { require(!Univ2TokenExistsInPuddle[address(_Univ2Token)], "LP Token Address already exists in puddle"); if (_withUpdate) { massUpdatePuddles(); } uint256 lastRewardBlock = block.number > startBlock ? block.number : startBlock; totalAllocPoint = totalAllocPoint.add(_allocPoint); puddleData.push( PuddleData({ Univ2Token: _Univ2Token, allocPoint: _allocPoint, lastRewardBlock: lastRewardBlock, accRiPerShare: 0 }) ); Univ2TokenExistsInPuddle[address(_Univ2Token)] = true; } function updateUniv2TokenExists(address _Univ2TokenAddr, bool _isExists) external onlyOwner { Univ2TokenExistsInPuddle[_Univ2TokenAddr] = _isExists; } function set(uint256 _pid, uint256 _allocPoint, bool _withUpdate) public onlyOwner { if (_withUpdate) { massUpdatePuddles(); } totalAllocPoint = totalAllocPoint.sub(puddleData[_pid].allocPoint).add( _allocPoint); puddleData[_pid].allocPoint = _allocPoint; } function setMigrator(xiControlMigrator _migrator) public onlyOwner { migrator = _migrator; } function migrate(uint256 _pid) public onlyOwner { require(address(migrator) != address(0), "Address of migrator is null"); PuddleData storage puddle = puddleData[_pid]; IERC20 Univ2Token = puddle.Univ2Token; uint256 bal = Univ2Token.balanceOf(address(this)); Univ2Token.safeApprove(address(migrator), bal); IERC20 newUniv2Token = migrator.migrate(Univ2Token); require(!Univ2TokenExistsInPuddle[address(newUniv2Token)], "New LP Token Address already exists in puddle"); require(bal == newUniv2Token.balanceOf(address(this)), "New LP Token balance incorrect"); puddle.Univ2Token = newUniv2Token; Univ2TokenExistsInPuddle[address(newUniv2Token)] = true; } function pendingRI(uint256 _pid, address _user) external view returns (uint256) { PuddleData storage puddle = puddleData[_pid]; UserDat storage user = userDat[_pid][_user]; uint256 accRiPerShare = puddle.accRiPerShare; uint256 poolTokenSupply = puddle.Univ2Token.balanceOf(address(this)); if (block.number > puddle.lastRewardBlock && poolTokenSupply != 0) { uint256 blockPassed = block.number.sub(puddle.lastRewardBlock); uint256 riReward = blockPassed .mul(rewardPerBlock) .mul(puddle.allocPoint) .div(totalAllocPoint); accRiPerShare = accRiPerShare.add( riReward.mul(1e12).div(poolTokenSupply) ); } return user.amount.mul(accRiPerShare).div(1e12).sub(user.rewardDebt); } function massUpdatePuddles() public { uint256 length = puddleData.length; for (uint256 pid = 0; pid < length; ++pid) { updatePuddle(pid); } } function updatePuddle(uint256 _pid) public { doHalvingCheck(false); PuddleData storage puddle = puddleData[_pid]; if (block.number <= puddle.lastRewardBlock) { return; } uint256 poolTokenSupply = puddle.Univ2Token.balanceOf(address(this)); if (poolTokenSupply == 0) { puddle.lastRewardBlock = block.number; return; } uint256 blockPassed = block.number.sub(puddle.lastRewardBlock); uint256 riReward = blockPassed .mul(rewardPerBlock) .mul(puddle.allocPoint) .div(totalAllocPoint); ri.mint(administrator, riReward.div(10)); ri.mint(address(this), riReward); puddle.accRiPerShare = puddle.accRiPerShare.add( riReward.mul(1e12).div(poolTokenSupply) ); puddle.lastRewardBlock = block.number; } function deposit(uint256 _pid, uint256 _amount) public { PuddleData storage puddle = puddleData[_pid]; UserDat storage user = userDat[_pid][msg.sender]; updatePuddle(_pid); if (user.amount > 0) { uint256 pending = user .amount .mul(puddle.accRiPerShare) .div(1e12) .sub(user.rewardDebt); safeRiTransfer(msg.sender, pending); } puddle.Univ2Token.safeTransferFrom(address(msg.sender), address(this), _amount); user.amount = user.amount.add(_amount); user.rewardDebt = user.amount.mul(puddle.accRiPerShare).div(1e12); emit Deposit(msg.sender, _pid, _amount); } function withdraw(uint256 _pid, uint256 _amount) public { PuddleData storage puddle = puddleData[_pid]; UserDat storage user = userDat[_pid][msg.sender]; require(user.amount >= _amount, "Insufficient Amount to withdraw"); updatePuddle(_pid); uint256 pending = user.amount.mul(puddle.accRiPerShare).div(1e12).sub(user.rewardDebt); safeRiTransfer(msg.sender, pending); user.amount = user.amount.sub(_amount); user.rewardDebt = user.amount.mul(puddle.accRiPerShare).div(1e12); puddle.Univ2Token.safeTransfer(address(msg.sender), _amount); emit Withdraw(msg.sender, _pid, _amount); } function exitPoolDisgracefully(uint256 _pid) public { PuddleData storage puddle = puddleData[_pid]; UserDat storage user = userDat[_pid][msg.sender]; puddle.Univ2Token.safeTransfer(address(msg.sender), user.amount); emit ExitPoolDisgracefully(msg.sender, _pid, user.amount); user.amount = 0; user.rewardDebt = 0; } function safeRiTransfer(address _to, uint256 _amount) internal { uint256 riBal = ri.balanceOf(address(this)); if (_amount > riBal) { ri.transfer(_to, riBal); } else { ri.transfer(_to, _amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC20","name":"_ri","type":"address"},{"internalType":"address","name":"_administrator","type":"address"},{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ExitPoolDisgracefully","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newRewardPerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nextHalveBlockNumber","type":"uint256"}],"name":"Halve","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Univ2TokenExistsInPuddle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_Univ2Token","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"administrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"doHalvingCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"exitPoolDisgracefully","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"halvePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastHalveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdatePuddles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrator","outputs":[{"internalType":"contract xiControlMigrator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumRewardPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingRI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"puddleData","outputs":[{"internalType":"contract IERC20","name":"Univ2Token","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accRiPerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"puddleLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ri","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract xiControlMigrator","name":"_migrator","type":"address"}],"name":"setMigrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePuddle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_Univ2TokenAddr","type":"address"},{"internalType":"bool","name":"_isExists","type":"bool"}],"name":"updateUniv2TokenExists","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userDat","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600855621fa400600a5566556f87518f0000600b553480156200002857600080fd5b50604051620037b2380380620037b2833981810160405260608110156200004e57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050600062000085620001cb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670aadf830d70880006003819055508060098190555080600c81905550505050620001d3565b600033905090565b6135cf80620001e36000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637cd07e47116101045780639c98a9d8116100a2578063ec43277211610071578063ec4327721461077e578063f2fde38b1461079c578063f53d0a8e146107e0578063f765feb71461082a576101cf565b80639c98a9d81461069e578063ac86597f146106bc578063d760c23714610718578063e2bbb15814610746576101cf565b80638ae39cac116100de5780638ae39cac146105955780638da5cb5b146105b3578063938d44f3146105fd57806399c8efd91461061b576101cf565b80637cd07e47146104cf5780637f4eae51146105195780638980f11f14610547576101cf565b8063441a3e701161017157806355a6f78d1161014b57806355a6f78d146104155780635ab2ab201461041f57806364482f7914610481578063715018a6146104c5576101cf565b8063441a3e7014610391578063454b0608146103c957806348cd4cb1146103f7576101cf565b80631eaaa045116101ad5780631eaaa045146102a557806323cf3118146102ff5780634034c66e1461034357806340d3dc8714610361576101cf565b806309b5f767146101d457806317caf6f11461023d57806318d007fc1461025b575b600080fd5b610220600480360360408110156101ea57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061087a565b604051808381526020018281526020019250505060405180910390f35b6102456108ab565b6040518082815260200191505060405180910390f35b6102636108b1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102fd600480360360608110156102bb57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506108d7565b005b6103416004803603602081101561031557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b61034b610cb9565b6040518082815260200191505060405180910390f35b61038f6004803603602081101561037757600080fd5b81019080803515159060200190929190505050610cc6565b005b6103c7600480360360408110156103a757600080fd5b810190808035906020019092919080359060200190929190505050610d78565b005b6103f5600480360360208110156103df57600080fd5b8101908080359060200190929190505050610fc2565b005b6103ff6115f2565b6040518082815260200191505060405180910390f35b61041d6115f8565b005b61046b6004803603604081101561043557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611628565b6040518082815260200191505060405180910390f35b6104c36004803603606081101561049757600080fd5b81019080803590602001909291908035906020019092919080351515906020019092919050505061188d565b005b6104cd6119d8565b005b6104d7611b60565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105456004803603602081101561052f57600080fd5b8101908080359060200190929190505050611b86565b005b6105936004803603604081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f27565b005b61059d6120be565b6040518082815260200191505060405180910390f35b6105bb6120c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106056120ed565b6040518082815260200191505060405180910390f35b6106476004803603602081101561063157600080fd5b81019080803590602001909291905050506120f3565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b6106a6612150565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612156565b604051808215151515815260200191505060405180910390f35b6107446004803603602081101561072e57600080fd5b8101908080359060200190929190505050612176565b005b61077c6004803603604081101561075c57600080fd5b8101908080359060200190929190803590602001909291905050506122a8565b005b610786612488565b6040518082815260200191505060405180910390f35b6107de600480360360208110156107b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061248e565b005b6107e861269b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108786004803603604081101561084057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506126c1565b005b6007602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60085481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108df6127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806134c36029913960400191505060405180910390fd5b8015610a5257610a516115f8565b5b60006009544311610a6557600954610a67565b435b9050610a7e846008546127ed90919063ffffffff16565b600881905550600560405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018381526020016000815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015550506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b610bb46127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600580549050905090565b600b5460035411610cd657610d75565b6000600a54600c54014311905080610cee5750610d75565b6000610d06600260035461287590919063ffffffff16565b9050600b548110610d72578060038190555043600c819055507f757a5d62748298563ed8cef6be1d0fdd42752f59a03f5be31295b83a696baf3381600a544301604051808381526020018281526020019250505060405180910390a18215610d7157610d706115f8565b5b5b50505b50565b600060058381548110610d8757fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015610e65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e73756666696369656e7420416d6f756e7420746f2077697468647261770081525060200191505060405180910390fd5b610e6e84611b86565b6000610eb88260010154610eaa64e8d4a51000610e9c876003015487600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b61294590919063ffffffff16565b9050610ec4338261298f565b610edb84836000015461294590919063ffffffff16565b8260000181905550610f1564e8d4a51000610f07856003015485600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b8260010181905550610f6c33858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c4a9092919063ffffffff16565b843373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568866040518082815260200191505060405180910390a35050505050565b610fca6127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f41646472657373206f66206d69677261746f72206973206e756c6c000000000081525060200191505060405180910390fd5b60006005828154811061115f57fe5b9060005260206000209060040201905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561121757600080fd5b505afa15801561122b573d6000803e3d6000fd5b505050506040513d602081101561124157600080fd5b810190808051906020019092919050505090506112a1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d029092919063ffffffff16565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5494bb846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561134457600080fd5b505af1158015611358573d6000803e3d6000fd5b505050506040513d602081101561136e57600080fd5b81019080805190602001909291905050509050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061350d602d913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114a157600080fd5b505afa1580156114b5573d6000803e3d6000fd5b505050506040513d60208110156114cb57600080fd5b81019080805190602001909291905050508214611550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6577204c5020546f6b656e2062616c616e636520696e636f7272656374000081525060200191505060405180910390fd5b808460000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050565b60095481565b6000600580549050905060008090505b818110156116245761161981611b86565b806001019050611608565b5050565b6000806005848154811061163857fe5b9060005260206000209060040201905060006007600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008260030154905060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561174857600080fd5b505afa15801561175c573d6000803e3d6000fd5b505050506040513d602081101561177257600080fd5b81019080805190602001909291905050509050836002015443118015611799575060008114155b1561183d5760006117b785600201544361294590919063ffffffff16565b905060006117fa6008546117ec88600101546117de600354876128bf90919063ffffffff16565b6128bf90919063ffffffff16565b61287590919063ffffffff16565b90506118386118298461181b64e8d4a51000856128bf90919063ffffffff16565b61287590919063ffffffff16565b856127ed90919063ffffffff16565b935050505b611881836001015461187364e8d4a510006118658688600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b61294590919063ffffffff16565b94505050505092915050565b6118956127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611956576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8015611965576119646115f8565b5b6119aa8261199c6005868154811061197957fe5b90600052602060002090600402016001015460085461294590919063ffffffff16565b6127ed90919063ffffffff16565b60088190555081600584815481106119be57fe5b906000526020600020906004020160010181905550505050565b6119e06127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b906000610cc6565b600060058281548110611b9f57fe5b9060005260206000209060040201905080600201544311611bc05750611f24565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c6357600080fd5b505afa158015611c77573d6000803e3d6000fd5b505050506040513d6020811015611c8d57600080fd5b810190808051906020019092919050505090506000811415611cb9574382600201819055505050611f24565b6000611cd283600201544361294590919063ffffffff16565b90506000611d15600854611d078660010154611cf9600354876128bf90919063ffffffff16565b6128bf90919063ffffffff16565b61287590919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d8c600a8561287590919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611df557600080fd5b505af1158015611e09573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611eb657600080fd5b505af1158015611eca573d6000803e3d6000fd5b50505050611f0e611efb84611eed64e8d4a51000856128bf90919063ffffffff16565b61287590919063ffffffff16565b85600301546127ed90919063ffffffff16565b8460030181905550438460020181905550505050505b50565b611f2f6127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ff0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6120146120c4565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561207e57600080fd5b505af1158015612092573d6000803e3d6000fd5b505050506040513d60208110156120a857600080fd5b8101908080519060200190929190505050505050565b60035481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b6005818154811061210057fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b600b5481565b60066020528060005260406000206000915054906101000a900460ff1681565b60006005828154811061218557fe5b9060005260206000209060040201905060006007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061223c3382600001548460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c4a9092919063ffffffff16565b823373ffffffffffffffffffffffffffffffffffffffff167fd0cf62f93a95adfc3c2596c535ebb28f7eb248410ca1df6e338fa0eba8199a8483600001546040518082815260200191505060405180910390a36000816000018190555060008160010181905550505050565b6000600583815481106122b757fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061232484611b86565b60008160000154111561238957600061237b826001015461236d64e8d4a5100061235f876003015487600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b61294590919063ffffffff16565b9050612387338261298f565b505b6123da3330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f09909392919063ffffffff16565b6123f18382600001546127ed90919063ffffffff16565b816000018190555061242b64e8d4a5100061241d846003015484600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b8160010181905550833373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15856040518082815260200191505060405180910390a350505050565b600a5481565b6124966127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612557576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061349d6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6126c96127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461278a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b60008082840190508381101561286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006128b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff6565b905092915050565b6000808314156128d2576000905061293f565b60008284029050828482816128e357fe5b041461293a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134ec6021913960400191505060405180910390fd5b809150505b92915050565b600061298783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130bc565b905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a3057600080fd5b505afa158015612a44573d6000803e3d6000fd5b505050506040513d6020811015612a5a57600080fd5b8101908080519060200190929190505050905080821115612b5f57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050506040513d6020811015612b4857600080fd5b810190808051906020019092919050505050612c45565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b8101908080519060200190929190505050505b505050565b612cfd8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061317c565b505050565b6000811480612dfc575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dbf57600080fd5b505afa158015612dd3573d6000803e3d6000fd5b505050506040513d6020811015612de957600080fd5b8101908080519060200190929190505050145b612e51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806135646036913960400191505060405180910390fd5b612f048363095ea7b360e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061317c565b505050565b612ff0846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061317c565b50505050565b600080831182906130a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561306757808201518184015260208101905061304c565b50505050905090810190601f1680156130945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816130ae57fe5b049050809150509392505050565b6000838311158290613169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312e578082015181840152602081019050613113565b50505050905090810190601f16801561315b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60606131de826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661326b9092919063ffffffff16565b9050600081511115613266578080602001905160208110156131ff57600080fd5b8101908080519060200190929190505050613265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061353a602a913960400191505060405180910390fd5b5b505050565b606061327a8484600085613283565b90509392505050565b606061328e85613489565b613300576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613350578051825260208201915060208101905060208303925061332d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146133b2576040519150601f19603f3d011682016040523d82523d6000602084013e6133b7565b606091505b509150915081156133cc578092505050613481565b6000815111156133df5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561344657808201518184015260208101905061342b565b50505050905090810190601f1680156134735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b600080823b90506000811191505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c5020546f6b656e204164647265737320616c72656164792065786973747320696e20707564646c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774e6577204c5020546f6b656e204164647265737320616c72656164792065786973747320696e20707564646c655361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220366a035648fef0d5bab964b659cff86af3ccd3bc9db6d97ea564f51eca0b721064736f6c6343000606003300000000000000000000000037e808f084101f75783612407e7c3f5f92d8ee3f0000000000000000000000004825f4c1b651ece01955f2f6f80e4f33862d18370000000000000000000000000000000000000000000000000000000000a5dc14
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637cd07e47116101045780639c98a9d8116100a2578063ec43277211610071578063ec4327721461077e578063f2fde38b1461079c578063f53d0a8e146107e0578063f765feb71461082a576101cf565b80639c98a9d81461069e578063ac86597f146106bc578063d760c23714610718578063e2bbb15814610746576101cf565b80638ae39cac116100de5780638ae39cac146105955780638da5cb5b146105b3578063938d44f3146105fd57806399c8efd91461061b576101cf565b80637cd07e47146104cf5780637f4eae51146105195780638980f11f14610547576101cf565b8063441a3e701161017157806355a6f78d1161014b57806355a6f78d146104155780635ab2ab201461041f57806364482f7914610481578063715018a6146104c5576101cf565b8063441a3e7014610391578063454b0608146103c957806348cd4cb1146103f7576101cf565b80631eaaa045116101ad5780631eaaa045146102a557806323cf3118146102ff5780634034c66e1461034357806340d3dc8714610361576101cf565b806309b5f767146101d457806317caf6f11461023d57806318d007fc1461025b575b600080fd5b610220600480360360408110156101ea57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061087a565b604051808381526020018281526020019250505060405180910390f35b6102456108ab565b6040518082815260200191505060405180910390f35b6102636108b1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102fd600480360360608110156102bb57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506108d7565b005b6103416004803603602081101561031557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b61034b610cb9565b6040518082815260200191505060405180910390f35b61038f6004803603602081101561037757600080fd5b81019080803515159060200190929190505050610cc6565b005b6103c7600480360360408110156103a757600080fd5b810190808035906020019092919080359060200190929190505050610d78565b005b6103f5600480360360208110156103df57600080fd5b8101908080359060200190929190505050610fc2565b005b6103ff6115f2565b6040518082815260200191505060405180910390f35b61041d6115f8565b005b61046b6004803603604081101561043557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611628565b6040518082815260200191505060405180910390f35b6104c36004803603606081101561049757600080fd5b81019080803590602001909291908035906020019092919080351515906020019092919050505061188d565b005b6104cd6119d8565b005b6104d7611b60565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105456004803603602081101561052f57600080fd5b8101908080359060200190929190505050611b86565b005b6105936004803603604081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f27565b005b61059d6120be565b6040518082815260200191505060405180910390f35b6105bb6120c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106056120ed565b6040518082815260200191505060405180910390f35b6106476004803603602081101561063157600080fd5b81019080803590602001909291905050506120f3565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b6106a6612150565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612156565b604051808215151515815260200191505060405180910390f35b6107446004803603602081101561072e57600080fd5b8101908080359060200190929190505050612176565b005b61077c6004803603604081101561075c57600080fd5b8101908080359060200190929190803590602001909291905050506122a8565b005b610786612488565b6040518082815260200191505060405180910390f35b6107de600480360360208110156107b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061248e565b005b6107e861269b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108786004803603604081101561084057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506126c1565b005b6007602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60085481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108df6127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806134c36029913960400191505060405180910390fd5b8015610a5257610a516115f8565b5b60006009544311610a6557600954610a67565b435b9050610a7e846008546127ed90919063ffffffff16565b600881905550600560405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018381526020016000815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015550506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b610bb46127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600580549050905090565b600b5460035411610cd657610d75565b6000600a54600c54014311905080610cee5750610d75565b6000610d06600260035461287590919063ffffffff16565b9050600b548110610d72578060038190555043600c819055507f757a5d62748298563ed8cef6be1d0fdd42752f59a03f5be31295b83a696baf3381600a544301604051808381526020018281526020019250505060405180910390a18215610d7157610d706115f8565b5b5b50505b50565b600060058381548110610d8757fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015610e65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e73756666696369656e7420416d6f756e7420746f2077697468647261770081525060200191505060405180910390fd5b610e6e84611b86565b6000610eb88260010154610eaa64e8d4a51000610e9c876003015487600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b61294590919063ffffffff16565b9050610ec4338261298f565b610edb84836000015461294590919063ffffffff16565b8260000181905550610f1564e8d4a51000610f07856003015485600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b8260010181905550610f6c33858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c4a9092919063ffffffff16565b843373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568866040518082815260200191505060405180910390a35050505050565b610fca6127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f41646472657373206f66206d69677261746f72206973206e756c6c000000000081525060200191505060405180910390fd5b60006005828154811061115f57fe5b9060005260206000209060040201905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561121757600080fd5b505afa15801561122b573d6000803e3d6000fd5b505050506040513d602081101561124157600080fd5b810190808051906020019092919050505090506112a1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d029092919063ffffffff16565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5494bb846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561134457600080fd5b505af1158015611358573d6000803e3d6000fd5b505050506040513d602081101561136e57600080fd5b81019080805190602001909291905050509050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061350d602d913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114a157600080fd5b505afa1580156114b5573d6000803e3d6000fd5b505050506040513d60208110156114cb57600080fd5b81019080805190602001909291905050508214611550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6577204c5020546f6b656e2062616c616e636520696e636f7272656374000081525060200191505060405180910390fd5b808460000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050565b60095481565b6000600580549050905060008090505b818110156116245761161981611b86565b806001019050611608565b5050565b6000806005848154811061163857fe5b9060005260206000209060040201905060006007600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008260030154905060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561174857600080fd5b505afa15801561175c573d6000803e3d6000fd5b505050506040513d602081101561177257600080fd5b81019080805190602001909291905050509050836002015443118015611799575060008114155b1561183d5760006117b785600201544361294590919063ffffffff16565b905060006117fa6008546117ec88600101546117de600354876128bf90919063ffffffff16565b6128bf90919063ffffffff16565b61287590919063ffffffff16565b90506118386118298461181b64e8d4a51000856128bf90919063ffffffff16565b61287590919063ffffffff16565b856127ed90919063ffffffff16565b935050505b611881836001015461187364e8d4a510006118658688600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b61294590919063ffffffff16565b94505050505092915050565b6118956127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611956576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8015611965576119646115f8565b5b6119aa8261199c6005868154811061197957fe5b90600052602060002090600402016001015460085461294590919063ffffffff16565b6127ed90919063ffffffff16565b60088190555081600584815481106119be57fe5b906000526020600020906004020160010181905550505050565b6119e06127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b906000610cc6565b600060058281548110611b9f57fe5b9060005260206000209060040201905080600201544311611bc05750611f24565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c6357600080fd5b505afa158015611c77573d6000803e3d6000fd5b505050506040513d6020811015611c8d57600080fd5b810190808051906020019092919050505090506000811415611cb9574382600201819055505050611f24565b6000611cd283600201544361294590919063ffffffff16565b90506000611d15600854611d078660010154611cf9600354876128bf90919063ffffffff16565b6128bf90919063ffffffff16565b61287590919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d8c600a8561287590919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611df557600080fd5b505af1158015611e09573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611eb657600080fd5b505af1158015611eca573d6000803e3d6000fd5b50505050611f0e611efb84611eed64e8d4a51000856128bf90919063ffffffff16565b61287590919063ffffffff16565b85600301546127ed90919063ffffffff16565b8460030181905550438460020181905550505050505b50565b611f2f6127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ff0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6120146120c4565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561207e57600080fd5b505af1158015612092573d6000803e3d6000fd5b505050506040513d60208110156120a857600080fd5b8101908080519060200190929190505050505050565b60035481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b6005818154811061210057fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b600b5481565b60066020528060005260406000206000915054906101000a900460ff1681565b60006005828154811061218557fe5b9060005260206000209060040201905060006007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061223c3382600001548460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c4a9092919063ffffffff16565b823373ffffffffffffffffffffffffffffffffffffffff167fd0cf62f93a95adfc3c2596c535ebb28f7eb248410ca1df6e338fa0eba8199a8483600001546040518082815260200191505060405180910390a36000816000018190555060008160010181905550505050565b6000600583815481106122b757fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061232484611b86565b60008160000154111561238957600061237b826001015461236d64e8d4a5100061235f876003015487600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b61294590919063ffffffff16565b9050612387338261298f565b505b6123da3330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f09909392919063ffffffff16565b6123f18382600001546127ed90919063ffffffff16565b816000018190555061242b64e8d4a5100061241d846003015484600001546128bf90919063ffffffff16565b61287590919063ffffffff16565b8160010181905550833373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15856040518082815260200191505060405180910390a350505050565b600a5481565b6124966127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612557576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061349d6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6126c96127e5565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461278a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b60008082840190508381101561286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006128b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff6565b905092915050565b6000808314156128d2576000905061293f565b60008284029050828482816128e357fe5b041461293a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134ec6021913960400191505060405180910390fd5b809150505b92915050565b600061298783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130bc565b905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a3057600080fd5b505afa158015612a44573d6000803e3d6000fd5b505050506040513d6020811015612a5a57600080fd5b8101908080519060200190929190505050905080821115612b5f57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050506040513d6020811015612b4857600080fd5b810190808051906020019092919050505050612c45565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b8101908080519060200190929190505050505b505050565b612cfd8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061317c565b505050565b6000811480612dfc575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dbf57600080fd5b505afa158015612dd3573d6000803e3d6000fd5b505050506040513d6020811015612de957600080fd5b8101908080519060200190929190505050145b612e51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806135646036913960400191505060405180910390fd5b612f048363095ea7b360e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061317c565b505050565b612ff0846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061317c565b50505050565b600080831182906130a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561306757808201518184015260208101905061304c565b50505050905090810190601f1680156130945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816130ae57fe5b049050809150509392505050565b6000838311158290613169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312e578082015181840152602081019050613113565b50505050905090810190601f16801561315b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60606131de826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661326b9092919063ffffffff16565b9050600081511115613266578080602001905160208110156131ff57600080fd5b8101908080519060200190929190505050613265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061353a602a913960400191505060405180910390fd5b5b505050565b606061327a8484600085613283565b90509392505050565b606061328e85613489565b613300576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613350578051825260208201915060208101905060208303925061332d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146133b2576040519150601f19603f3d011682016040523d82523d6000602084013e6133b7565b606091505b509150915081156133cc578092505050613481565b6000815111156133df5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561344657808201518184015260208101905061342b565b50505050905090810190601f1680156134735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b600080823b90506000811191505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c5020546f6b656e204164647265737320616c72656164792065786973747320696e20707564646c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774e6577204c5020546f6b656e204164647265737320616c72656164792065786973747320696e20707564646c655361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220366a035648fef0d5bab964b659cff86af3ccd3bc9db6d97ea564f51eca0b721064736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000037e808f084101f75783612407e7c3f5f92d8ee3f0000000000000000000000004825f4c1b651ece01955f2f6f80e4f33862d18370000000000000000000000000000000000000000000000000000000000a5dc14
-----Decoded View---------------
Arg [0] : _ri (address): 0x37E808F084101F75783612407e7C3f5F92d8ee3F
Arg [1] : _administrator (address): 0x4825f4C1B651eCe01955f2f6f80E4f33862d1837
Arg [2] : _startBlock (uint256): 10869780
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000037e808f084101f75783612407e7c3f5f92d8ee3f
Arg [1] : 0000000000000000000000004825f4c1b651ece01955f2f6f80e4f33862d1837
Arg [2] : 0000000000000000000000000000000000000000000000000000000000a5dc14
Deployed Bytecode Sourcemap
12734:8453:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12734:8453:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;13343:62:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13343:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;13414:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13095:16;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14993:748;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14993:748:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16240:106;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16240:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14886:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14225:653;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14225:653:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19857:674;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;19857:674:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16354:755;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16354:755:0;;;;;;;;;;;;;;;;;:::i;:::-;;13457:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17998:186;;;:::i;:::-;;17117:873;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17117:873:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15921:311;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15921:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12091:148;;;:::i;:::-;;13195:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18192:912;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18192:912:0;;;;;;;;;;;;;;;;;:::i;:::-;;12575:152;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12575:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13157:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11877:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13591:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13239:30;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13239:30:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13534:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13278:56;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13278:56:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20539:373;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;20539:373:0;;;;;;;;;;;;;;;;;:::i;:::-;;19112:737;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;19112:737:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13491:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12247:281;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12247:281:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13120:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15749:164;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15749:164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13343:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13414:34::-;;;;:::o;13095:16::-;;;;;;;;;;;;;:::o;14993:748::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15102:24:::1;:46;15135:11;15102:46;;;;;;;;;;;;;;;;;;;;;;;;;15101:47;15093:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15211:11;15207:63;;;15239:19;:17;:19::i;:::-;15207:63;15280:23;15321:10;;15306:12;:25;:53;;15349:10;;15306:53;;;15334:12;15306:53;15280:79;;15388:32;15408:11;15388:15;;:19;;:32;;;;:::i;:::-;15370:15;:50;;;;15431:10;15461:197;;;;;;;;15503:11;15461:197;;;;;;15545:11;15461:197;;;;15592:15;15461:197;;;;15641:1;15461:197;;::::0;15431:238:::1;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;15431:238:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15729:4;15680:24;:46;15713:11;15680:46;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;12074:1;14993:748:::0;;;:::o;16240:106::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16329:9:::1;16318:8;;:20;;;;;;;;;;;;;;;;;;16240:106:::0;:::o;14886:99::-;14933:7;14960:10;:17;;;;14953:24;;14886:99;:::o;14225:653::-;14307:21;;14289:14;;:39;14285:78;;14345:7;;14285:78;14373:12;14420:11;;14403:14;;:28;14388:12;:43;14373:58;;14447:7;14442:47;;14471:7;;;14442:47;14499:25;14527:21;14546:1;14527:14;;:18;;:21;;;;:::i;:::-;14499:49;;14584:21;;14563:17;:42;14559:312;;14639:17;14622:14;:34;;;;14688:12;14671:14;:29;;;;14720:52;14726:17;14760:11;;14745:12;:26;14720:52;;;;;;;;;;;;;;;;;;;;;;;;14793:11;14789:71;;;14825:19;:17;:19::i;:::-;14789:71;14559:312;14225:653;;;;:::o;19857:674::-;19924:25;19952:10;19963:4;19952:16;;;;;;;;;;;;;;;;;;19924:44;;19979:20;20002:7;:13;20010:4;20002:13;;;;;;;;;;;:25;20016:10;20002:25;;;;;;;;;;;;;;;19979:48;;20061:7;20046:4;:11;;;:22;;20038:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20115:18;20128:4;20115:12;:18::i;:::-;20144:15;20162:68;20214:4;:15;;;20162:47;20204:4;20162:37;20178:6;:20;;;20162:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;:51;;:68;;;;:::i;:::-;20144:86;;20241:35;20256:10;20268:7;20241:14;:35::i;:::-;20301:24;20317:7;20301:4;:11;;;:15;;:24;;;;:::i;:::-;20287:4;:11;;:38;;;;20354:47;20396:4;20354:37;20370:6;:20;;;20354:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;20336:4;:15;;:65;;;;20412:60;20451:10;20464:7;20412:6;:17;;;;;;;;;;;;:30;;;;:60;;;;;:::i;:::-;20509:4;20497:10;20488:35;;;20515:7;20488:35;;;;;;;;;;;;;;;;;;19857:674;;;;;:::o;16354:755::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16450:1:::1;16421:31;;16429:8;;;;;;;;;;;16421:31;;;;16413:71;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16497:25;16525:10;16536:4;16525:16;;;;;;;;;;;;;;;;;;16497:44;;16552:17;16572:6;:17;;;;;;;;;;;;16552:37;;16600:11;16614:10;:20;;;16643:4;16614:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16614:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16614:35:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;16614:35:0;;;;;;;;;;;;;;;;16600:49;;16660:46;16691:8;;;;;;;;;;;16702:3;16660:10;:22;;;;:46;;;;;:::i;:::-;16717:20;16740:8;;;;;;;;;;;:16;;;16757:10;16740:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16740:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16740:28:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;16740:28:0;;;;;;;;;;;;;;;;16717:51;;16790:24;:48;16823:13;16790:48;;;;;;;;;;;;;;;;;;;;;;;;;16789:49;16781:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16914:13;:23;;;16946:4;16914:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16914:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16914:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;16914:38:0;;;;;;;;;;;;;;;;16907:3;:45;16899:88;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17020:13;17000:6;:17;;;:33;;;;;;;;;;;;;;;;;;17097:4;17046:24;:48;17079:13;17046:48;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;12074:1;;;;16354:755:::0;:::o;13457:25::-;;;;:::o;17998:186::-;18045:14;18062:10;:17;;;;18045:34;;18095:11;18109:1;18095:15;;18090:87;18118:6;18112:3;:12;18090:87;;;18148:17;18161:3;18148:12;:17::i;:::-;18126:5;;;;;18090:87;;;;17998:186;:::o;17117:873::-;17188:7;17208:25;17236:10;17247:4;17236:16;;;;;;;;;;;;;;;;;;17208:44;;17263:20;17286:7;:13;17294:4;17286:13;;;;;;;;;;;:20;17300:5;17286:20;;;;;;;;;;;;;;;17263:43;;17317:21;17341:6;:20;;;17317:44;;17372:23;17398:6;:17;;;;;;;;;;;;:27;;;17434:4;17398:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17398:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17398:42:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17398:42:0;;;;;;;;;;;;;;;;17372:68;;17470:6;:22;;;17455:12;:37;:61;;;;;17515:1;17496:15;:20;;17455:61;17451:440;;;17533:19;17555:40;17572:6;:22;;;17555:12;:16;;:40;;;;:::i;:::-;17533:62;;17610:16;17629:129;17742:15;;17629:90;17701:6;:17;;;17629:49;17663:14;;17629:11;:33;;:49;;;;:::i;:::-;:71;;:90;;;;:::i;:::-;:112;;:129;;;;:::i;:::-;17610:148;;17789:90;17825:39;17848:15;17825:18;17838:4;17825:8;:12;;:18;;;;:::i;:::-;:22;;:39;;;;:::i;:::-;17789:13;:17;;:90;;;;:::i;:::-;17773:106;;17451:440;;;17921:61;17966:4;:15;;;17921:40;17956:4;17921:30;17937:13;17921:4;:11;;;:15;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;:44;;:61;;;;:::i;:::-;17901:81;;;;;;17117:873;;;;:::o;15921:311::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16019:11:::1;16015:63;;;16047:19;:17;:19::i;:::-;16015:63;16106:66;16160:11;16106:48;16126:10;16137:4;16126:16;;;;;;;;;;;;;;;;;;:27;;;16106:15;;:19;;:48;;;;:::i;:::-;:52;;:66;;;;:::i;:::-;16088:15;:84;;;;16213:11;16183:10;16194:4;16183:16;;;;;;;;;;;;;;;;;;:27;;:41;;;;15921:311:::0;;;:::o;12091:148::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12198:1:::1;12161:40;;12182:6;::::0;::::1;;;;;;;;;12161:40;;;;;;;;;;;;12229:1;12212:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;12091:148::o:0;13195:33::-;;;;;;;;;;;;;:::o;18192:912::-;18246:21;18261:5;18246:14;:21::i;:::-;18278:25;18306:10;18317:4;18306:16;;;;;;;;;;;;;;;;;;18278:44;;18353:6;:22;;;18337:12;:38;18333:77;;18392:7;;;18333:77;18422:23;18448:6;:17;;;;;;;;;;;;:27;;;18484:4;18448:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18448:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18448:42:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18448:42:0;;;;;;;;;;;;;;;;18422:68;;18524:1;18505:15;:20;18501:111;;;18567:12;18542:6;:22;;:37;;;;18594:7;;;;18501:111;18622:19;18644:40;18661:6;:22;;;18644:12;:16;;:40;;;;:::i;:::-;18622:62;;18695:16;18714:117;18815:15;;18714:82;18778:6;:17;;;18714:45;18744:14;;18714:11;:29;;:45;;;;:::i;:::-;:63;;:82;;;;:::i;:::-;:100;;:117;;;;:::i;:::-;18695:136;;18842:2;;;;;;;;;;;:7;;;18850:13;;;;;;;;;;;18865:16;18878:2;18865:8;:12;;:16;;;;:::i;:::-;18842:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18842:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18842:40:0;;;;18893:2;;;;;;;;;;;:7;;;18909:4;18916:8;18893:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18893:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18893:32:0;;;;18959:89;18998:39;19021:15;18998:18;19011:4;18998:8;:12;;:18;;;;:::i;:::-;:22;;:39;;;;:::i;:::-;18959:6;:20;;;:24;;:89;;;;:::i;:::-;18936:6;:20;;:112;;;;19084:12;19059:6;:22;;:37;;;;18192:912;;;;;;:::o;12575:152::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12675:12:::1;12668:29;;;12698:7;:5;:7::i;:::-;12707:11;12668:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12668:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12668:51:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;12668:51:0;;;;;;;;;;;;;;;;;12575:152:::0;;:::o;13157:29::-;;;;:::o;11877:79::-;11915:7;11942:6;;;;;;;;;;;11935:13;;11877:79;:::o;13591:29::-;;;;:::o;13239:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13534:50::-;;;;:::o;13278:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;20539:373::-;20602:25;20630:10;20641:4;20630:16;;;;;;;;;;;;;;;;;;20602:44;;20657:20;20680:7;:13;20688:4;20680:13;;;;;;;;;;;:25;20694:10;20680:25;;;;;;;;;;;;;;;20657:48;;20716:64;20755:10;20768:4;:11;;;20716:6;:17;;;;;;;;;;;;:30;;;;:64;;;;;:::i;:::-;20830:4;20818:10;20796:52;;;20836:4;:11;;;20796:52;;;;;;;;;;;;;;;;;;20873:1;20859:4;:11;;:15;;;;20903:1;20885:4;:15;;:19;;;;20539:373;;;:::o;19112:737::-;19178:25;19206:10;19217:4;19206:16;;;;;;;;;;;;;;;;;;19178:44;;19233:20;19256:7;:13;19264:4;19256:13;;;;;;;;;;;:25;19270:10;19256:25;;;;;;;;;;;;;;;19233:48;;19292:18;19305:4;19292:12;:18::i;:::-;19339:1;19325:4;:11;;;:15;19321:256;;;19357:15;19375:140;19499:4;:15;;;19375:101;19471:4;19375:73;19427:6;:20;;;19375:4;:29;;;:51;;:73;;;;:::i;:::-;:95;;:101;;;;:::i;:::-;:123;;:140;;;;:::i;:::-;19357:158;;19530:35;19545:10;19557:7;19530:14;:35::i;:::-;19321:256;;19587:79;19630:10;19651:4;19658:7;19587:6;:17;;;;;;;;;;;;:34;;;;:79;;;;;;:::i;:::-;19691:24;19707:7;19691:4;:11;;;:15;;:24;;;;:::i;:::-;19677:4;:11;;:38;;;;19744:47;19786:4;19744:37;19760:6;:20;;;19744:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;19726:4;:15;;:65;;;;19827:4;19815:10;19807:34;;;19833:7;19807:34;;;;;;;;;;;;;;;;;;19112:737;;;;:::o;13491:36::-;;;;:::o;12247:281::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12370:1:::1;12350:22;;:8;:22;;;;12328:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12483:8;12454:38;;12475:6;::::0;::::1;;;;;;;;;12454:38;;;;;;;;;;;;12512:8;12503:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;12247:281:::0;:::o;13120:28::-;;;;;;;;;;;;;:::o;15749:164::-;12014:12;:10;:12::i;:::-;12004:22;;:6;;;;;;;;;;;:22;;;11996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15896:9:::1;15852:24;:41;15877:15;15852:41;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;15749:164:::0;;:::o;3354:106::-;3407:15;3442:10;3435:17;;3354:106;:::o;4482:181::-;4540:7;4560:9;4576:1;4572;:5;4560:17;;4601:1;4596;:6;;4588:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4654:1;4647:8;;;4482:181;;;;:::o;5307:132::-;5365:7;5392:39;5396:1;5399;5392:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5385:46;;5307:132;;;;:::o;5049:250::-;5107:7;5136:1;5131;:6;5127:47;;;5161:1;5154:8;;;;5127:47;5186:9;5202:1;5198;:5;5186:17;;5231:1;5226;5222;:5;;;;;;:10;5214:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5290:1;5283:8;;;5049:250;;;;;:::o;4671:136::-;4729:7;4756:43;4760:1;4763;4756:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4749:50;;4671:136;;;;:::o;20920:264::-;20994:13;21010:2;;;;;;;;;;;:12;;;21031:4;21010:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21010:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21010:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;21010:27:0;;;;;;;;;;;;;;;;20994:43;;21062:5;21052:7;:15;21048:129;;;21084:2;;;;;;;;;;;:11;;;21096:3;21101:5;21084:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21084:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21084:23:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;21084:23:0;;;;;;;;;;;;;;;;;21048:129;;;21140:2;;;;;;;;;;;:11;;;21152:3;21157:7;21140:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21140:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21140:25:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;21140:25:0;;;;;;;;;;;;;;;;;21048:129;20920:264;;;:::o;9080:248::-;9197:123;9231:5;9274:23;;;9299:2;9303:5;9251:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9251:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;9251:58:0;9197:19;:123::i;:::-;9080:248;;;:::o;9629:433::-;9782:1;9773:5;:10;9772:62;;;;9832:1;9789:5;:15;;;9813:4;9820:7;9789:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9789:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9789:39:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9789:39:0;;;;;;;;;;;;;;;;:44;9772:62;9750:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9927:127;9961:5;10004:22;;;10028:7;10037:5;9981:62;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9981:62:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;9981:62:0;9927:19;:127::i;:::-;9629:433;;;:::o;9336:285::-;9480:133;9514:5;9557:27;;;9586:4;9592:2;9596:5;9534:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9534:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;9534:68:0;9480:19;:133::i;:::-;9336:285;;;;:::o;5447:223::-;5567:7;5599:1;5595;:5;5602:12;5587:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5587:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5626:9;5642:1;5638;:5;;;;;;5626:17;;5661:1;5654:8;;;5447:223;;;;;:::o;4815:226::-;4935:7;4968:1;4963;:6;;4971:12;4955:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4995:9;5011:1;5007;:5;4995:17;;5032:1;5025:8;;;4815:226;;;;;:::o;11040:477::-;11121:23;11147:106;11189:4;11147:106;;;;;;;;;;;;;;;;;11155:5;11147:27;;;;:106;;;;;:::i;:::-;11121:132;;11288:1;11268:10;:17;:21;11264:246;;;11401:10;11390:30;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11390:30:0;;;;;;;;;;;;;;;;11364:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11264:246;11040:477;;;:::o;7093:230::-;7230:12;7262:53;7285:6;7293:4;7299:1;7302:12;7262:22;:53::i;:::-;7255:60;;7093:230;;;;;:::o;8099:882::-;8272:12;8305:18;8316:6;8305:10;:18::i;:::-;8297:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8431:12;8445:23;8472:6;:11;;8491:8;8515:4;8472:58;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8472:58:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;8430:100:0;;;;8545:7;8541:433;;;8576:10;8569:17;;;;;;8541:433;8643:1;8623:10;:17;:21;8619:344;;;8791:10;8785:17;8852:15;8839:10;8835:2;8831:19;8824:44;8739:148;8934:12;8927:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8927:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8099:882;;;;;;;:::o;6147:255::-;6207:4;6226:12;6350:7;6338:20;6330:28;;6393:1;6386:4;:8;6379:15;;;6147:255;;;:::o
Swarm Source
ipfs://366a035648fef0d5bab964b659cff86af3ccd3bc9db6d97ea564f51eca0b7210
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.518796 | 146.5089 | $76.01 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.