ETH Price: $2,657.99 (+1.21%)

Contract

0x93B7Fa538913201066A262C03179C342262a7c76
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Unicorn F...69991732019-01-02 18:52:532059 days ago1546455173IN
0x93B7Fa53...2262a7c76
0.003 ETH0.000026751.1
Create Unicorn F...67504312018-11-22 7:45:002101 days ago1542872700IN
0x93B7Fa53...2262a7c76
0.003 ETH0.000048642
Sell Unicorn64605452018-10-05 22:46:292148 days ago1538779589IN
0x93B7Fa53...2262a7c76
0 ETH0.000013430.1
Accept Hybridiza...64603762018-10-05 22:06:582148 days ago1538777218IN
0x93B7Fa53...2262a7c76
0.003 ETH0.000002530.1
Make Hybridizati...64603752018-10-05 22:06:272148 days ago1538777187IN
0x93B7Fa53...2262a7c76
0 ETH0.000011680.1
Make Hybridizati...60498202018-07-29 6:43:432217 days ago1532846623IN
0x93B7Fa53...2262a7c76
0 ETH0.000116751
Make Hybridizati...60498202018-07-29 6:43:432217 days ago1532846623IN
0x93B7Fa53...2262a7c76
0 ETH0.000029231
Make Hybridizati...60498202018-07-29 6:43:432217 days ago1532846623IN
0x93B7Fa53...2262a7c76
0 ETH0.000023330.2
Transfer Ethers ...58572462018-06-26 11:38:562250 days ago1530013136IN
0x93B7Fa53...2262a7c76
0 ETH0.001059976
Make Hybridizati...58432362018-06-24 1:07:442252 days ago1529802464IN
0x93B7Fa53...2262a7c76
0 ETH0.000058592
Make Hybridizati...58432342018-06-24 1:07:142252 days ago1529802434IN
0x93B7Fa53...2262a7c76
0 ETH0.000007320.25
Make Hybridizati...58432322018-06-24 1:07:022252 days ago1529802422IN
0x93B7Fa53...2262a7c76
0 ETH0.000029180.25
Make Hybridizati...58432232018-06-24 1:04:252252 days ago1529802265IN
0x93B7Fa53...2262a7c76
0 ETH0.000029180.25
Sell Unicorn58431942018-06-24 0:57:192252 days ago1529801839IN
0x93B7Fa53...2262a7c76
0 ETH0.000033560.25
Create Unicorn F...58422722018-06-23 21:18:122252 days ago1529788692IN
0x93B7Fa53...2262a7c76
0.003 ETH0.000131974
Make Hybridizati...58422722018-06-23 21:18:122252 days ago1529788692IN
0x93B7Fa53...2262a7c76
0 ETH0.000087893
Create Unicorn F...58422722018-06-23 21:18:122252 days ago1529788692IN
0x93B7Fa53...2262a7c76
0.003 ETH0.000009890.3
Make Hybridizati...58420442018-06-23 20:28:072252 days ago1529785687IN
0x93B7Fa53...2262a7c76
0 ETH0.000035020.3
Make Hybridizati...57773522018-06-12 18:33:232263 days ago1528828403IN
0x93B7Fa53...2262a7c76
0 ETH0.000116751
Sell Unicorn57676512018-06-11 1:31:172265 days ago1528680677IN
0x93B7Fa53...2262a7c76
0 ETH0.000033560.25
Make Hybridizati...55744232018-05-07 22:15:092299 days ago1525731309IN
0x93B7Fa53...2262a7c76
0 ETH0.000058370.5
Make Hybridizati...55687742018-05-06 22:58:082300 days ago1525647488IN
0x93B7Fa53...2262a7c76
0 ETH0.000116751
Make Hybridizati...55682572018-05-06 20:48:152300 days ago1525639695IN
0x93B7Fa53...2262a7c76
0 ETH0.000116751
Make Hybridizati...55672102018-05-06 16:27:372300 days ago1525624057IN
0x93B7Fa53...2262a7c76
0 ETH0.000198591.7
Make Hybridizati...55528082018-05-04 3:51:242303 days ago1525405884IN
0x93B7Fa53...2262a7c76
0 ETH0.00009340.8
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
58572462018-06-26 11:38:562250 days ago1530013136
0x93B7Fa53...2262a7c76
0.17276 ETH
55333552018-04-30 17:55:112306 days ago1525110911
0x93B7Fa53...2262a7c76
0.0079 ETH
55331502018-04-30 16:58:502306 days ago1525107530
0x93B7Fa53...2262a7c76
0.003 ETH
55330782018-04-30 16:39:462306 days ago1525106386
0x93B7Fa53...2262a7c76
0.003 ETH
55329372018-04-30 16:02:252306 days ago1525104145
0x93B7Fa53...2262a7c76
0.003 ETH
55319922018-04-30 11:58:042307 days ago1525089484
0x93B7Fa53...2262a7c76
0.003 ETH
55317122018-04-30 10:50:002307 days ago1525085400
0x93B7Fa53...2262a7c76
0.003 ETH
55317062018-04-30 10:48:272307 days ago1525085307
0x93B7Fa53...2262a7c76
0.008 ETH
55308912018-04-30 7:17:472307 days ago1525072667
0x93B7Fa53...2262a7c76
0.003 ETH
55304162018-04-30 5:23:302307 days ago1525065810
0x93B7Fa53...2262a7c76
0.003 ETH
55303522018-04-30 5:04:572307 days ago1525064697
0x93B7Fa53...2262a7c76
0.003 ETH
55303442018-04-30 5:02:422307 days ago1525064562
0x93B7Fa53...2262a7c76
0.003 ETH
55293452018-04-30 0:50:442307 days ago1525049444
0x93B7Fa53...2262a7c76
0.003 ETH
55292952018-04-30 0:37:072307 days ago1525048627
0x93B7Fa53...2262a7c76
0.003 ETH
55292232018-04-30 0:18:512307 days ago1525047531
0x93B7Fa53...2262a7c76
0.003 ETH
55290952018-04-29 23:50:012307 days ago1525045801
0x93B7Fa53...2262a7c76
0.003 ETH
55290572018-04-29 23:38:092307 days ago1525045089
0x93B7Fa53...2262a7c76
0.003 ETH
55290432018-04-29 23:34:382307 days ago1525044878
0x93B7Fa53...2262a7c76
0.003 ETH
55290142018-04-29 23:29:292307 days ago1525044569
0x93B7Fa53...2262a7c76
0.003 ETH
55290112018-04-29 23:29:012307 days ago1525044541
0x93B7Fa53...2262a7c76
0.003 ETH
55290012018-04-29 23:26:082307 days ago1525044368
0x93B7Fa53...2262a7c76
0.003 ETH
55289982018-04-29 23:25:272307 days ago1525044327
0x93B7Fa53...2262a7c76
0.003 ETH
55289952018-04-29 23:24:442307 days ago1525044284
0x93B7Fa53...2262a7c76
0.003 ETH
55289892018-04-29 23:23:412307 days ago1525044221
0x93B7Fa53...2262a7c76
0.003 ETH
55289862018-04-29 23:22:292307 days ago1525044149
0x93B7Fa53...2262a7c76
0.003 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UnicornBreeding

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-09
*/

pragma solidity ^0.4.21;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

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



contract UnicornManagementInterface {

    function ownerAddress() external view returns (address);
    function managerAddress() external view returns (address);
    function communityAddress() external view returns (address);
    function dividendManagerAddress() external view returns (address);
    function walletAddress() external view returns (address);
    function blackBoxAddress() external view returns (address);
    function unicornBreedingAddress() external view returns (address);
    function geneLabAddress() external view returns (address);
    function unicornTokenAddress() external view returns (address);
    function candyToken() external view returns (address);
    function candyPowerToken() external view returns (address);

    function createDividendPercent() external view returns (uint);
    function sellDividendPercent() external view returns (uint);
    function subFreezingPrice() external view returns (uint);
    function subFreezingTime() external view returns (uint64);
    function subTourFreezingPrice() external view returns (uint);
    function subTourFreezingTime() external view returns (uint64);
    function createUnicornPrice() external view returns (uint);
    function createUnicornPriceInCandy() external view returns (uint);
    function oraclizeFee() external view returns (uint);

    function paused() external view returns (bool);
    //    function locked() external view returns (bool);

    function isTournament(address _tournamentAddress) external view returns (bool);

    function getCreateUnicornFullPrice() external view returns (uint);
    function getHybridizationFullPrice(uint _price) external view returns (uint);
    function getSellUnicornFullPrice(uint _price) external view returns (uint);
    function getCreateUnicornFullPriceInCandy() external view returns (uint);


    //service
    function registerInit(address _contract) external;

}

contract ERC20 {
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
}

contract megaCandyInterface is ERC20 {
    function transferFromSystem(address _from, address _to, uint256 _value) public returns (bool);
    function burn(address _from, uint256 _value) public returns (bool);
    function mint(address _to, uint256 _amount) public returns (bool);
}

contract DividendManagerInterface {
    function payDividend() external payable;
}

contract BlackBoxInterface {
    function createGen0(uint _unicornId) public payable;
    function geneCore(uint _childUnicornId, uint _parent1UnicornId, uint _parent2UnicornId) public payable;
}

contract UnicornTokenInterface {

    //ERC721
    function balanceOf(address _owner) public view returns (uint256 _balance);
    function ownerOf(uint256 _unicornId) public view returns (address _owner);
    function transfer(address _to, uint256 _unicornId) public;
    function approve(address _to, uint256 _unicornId) public;
    function takeOwnership(uint256 _unicornId) public;
    function totalSupply() public constant returns (uint);
    function owns(address _claimant, uint256 _unicornId) public view returns (bool);
    function allowance(address _claimant, uint256 _unicornId) public view returns (bool);
    function transferFrom(address _from, address _to, uint256 _unicornId) public;

    //specific
    function createUnicorn(address _owner) external returns (uint);
    //    function burnUnicorn(uint256 _unicornId) external;
    function getGen(uint _unicornId) external view returns (bytes);
    function setGene(uint _unicornId, bytes _gene) external;
    function updateGene(uint _unicornId, bytes _gene) external;
    function getUnicornGenByte(uint _unicornId, uint _byteNo) external view returns (uint8);

    function setName(uint256 _unicornId, string _name ) external returns (bool);
    function plusFreezingTime(uint _unicornId) external;
    function plusTourFreezingTime(uint _unicornId) external;
    function minusFreezingTime(uint _unicornId, uint64 _time) external;
    function minusTourFreezingTime(uint _unicornId, uint64 _time) external;
    function isUnfreezed(uint _unicornId) external view returns (bool);
    function isTourUnfreezed(uint _unicornId) external view returns (bool);

    function marketTransfer(address _from, address _to, uint256 _unicornId) external;
}



contract UnicornAccessControl {

    UnicornManagementInterface public unicornManagement;

    function UnicornAccessControl(address _unicornManagementAddress) public {
        unicornManagement = UnicornManagementInterface(_unicornManagementAddress);
        unicornManagement.registerInit(this);
    }

    modifier onlyOwner() {
        require(msg.sender == unicornManagement.ownerAddress());
        _;
    }

    modifier onlyManager() {
        require(msg.sender == unicornManagement.managerAddress());
        _;
    }

    modifier onlyCommunity() {
        require(msg.sender == unicornManagement.communityAddress());
        _;
    }

    modifier onlyTournament() {
        require(unicornManagement.isTournament(msg.sender));
        _;
    }

    modifier whenNotPaused() {
        require(!unicornManagement.paused());
        _;
    }

    modifier whenPaused {
        require(unicornManagement.paused());
        _;
    }


    modifier onlyManagement() {
        require(msg.sender == address(unicornManagement));
        _;
    }

    modifier onlyBreeding() {
        require(msg.sender == unicornManagement.unicornBreedingAddress());
        _;
    }

    modifier onlyGeneLab() {
        require(msg.sender == unicornManagement.geneLabAddress());
        _;
    }

    modifier onlyBlackBox() {
        require(msg.sender == unicornManagement.blackBoxAddress());
        _;
    }

    modifier onlyUnicornToken() {
        require(msg.sender == unicornManagement.unicornTokenAddress());
        _;
    }

    function isGamePaused() external view returns (bool) {
        return unicornManagement.paused();
    }
}

contract UnicornBreeding is UnicornAccessControl {
    using SafeMath for uint;
    //onlyOwner
    UnicornTokenInterface public unicornToken; //only on deploy
    BlackBoxInterface public blackBox;

    event HybridizationAdd(uint indexed unicornId, uint price);
    event HybridizationAccept(uint indexed firstUnicornId, uint indexed secondUnicornId, uint newUnicornId);
    event HybridizationDelete(uint indexed unicornId);
    event FundsTransferred(address dividendManager, uint value);
    event CreateUnicorn(address indexed owner, uint indexed unicornId, uint parent1, uint  parent2);
    event NewGen0Limit(uint limit);
    event NewGen0Step(uint step);


    event OfferAdd(uint256 indexed unicornId, uint priceEth, uint priceCandy);
    event OfferDelete(uint256 indexed unicornId);
    event UnicornSold(uint256 indexed unicornId);

    event NewSellDividendPercent(uint percentCandy, uint percentCandyEth);

    ERC20 public candyToken;
    megaCandyInterface public megaCandyToken;

    uint public sellDividendPercentCandy = 375; //OnlyManager 4 digits. 10.5% = 1050
    uint public sellDividendPercentEth = 375; //OnlyManager 4 digits. 10.5% = 1050

    //counter for gen0
    uint public gen0Limit = 30000;
    uint public gen0Count = 1805;
    uint public gen0Step = 1000;

    //counter for presale gen0
    uint public gen0PresaleLimit = 1000;
    uint public gen0PresaleCount = 0;

    struct Hybridization{
        uint listIndex;
        uint price;
        //        uint second_unicorn_id;
        //        bool accepted;
        bool exists;
    }

    // Mapping from unicorn ID to Hybridization struct
    mapping (uint => Hybridization) public hybridizations;
    mapping(uint => uint) public hybridizationList;
    uint public hybridizationListSize = 0;


    function() public payable {

    }

    function UnicornBreeding(address _unicornManagementAddress) UnicornAccessControl(_unicornManagementAddress) public {
        candyToken = ERC20(unicornManagement.candyToken());

    }

    function init() onlyManagement whenPaused external {
        unicornToken = UnicornTokenInterface(unicornManagement.unicornTokenAddress());
        blackBox = BlackBoxInterface(unicornManagement.blackBoxAddress());
        megaCandyToken = megaCandyInterface(unicornManagement.candyPowerToken());
    }

    function makeHybridization(uint _unicornId, uint _price) public {
        require(unicornToken.owns(msg.sender, _unicornId));
        require(unicornToken.isUnfreezed(_unicornId));
        require(!hybridizations[_unicornId].exists);

        hybridizations[_unicornId] = Hybridization({
            price: _price,
            exists: true,
            listIndex: hybridizationListSize
            });
        hybridizationList[hybridizationListSize++] = _unicornId;

        emit HybridizationAdd(_unicornId, _price);
    }


    function acceptHybridization(uint _firstUnicornId, uint _secondUnicornId) whenNotPaused public payable {
        require(unicornToken.owns(msg.sender, _secondUnicornId));
        require(_secondUnicornId != _firstUnicornId);
        require(unicornToken.isUnfreezed(_firstUnicornId) && unicornToken.isUnfreezed(_secondUnicornId));
        require(hybridizations[_firstUnicornId].exists);
        require(msg.value == unicornManagement.oraclizeFee());
        if (hybridizations[_firstUnicornId].price > 0) {
            require(candyToken.transferFrom(msg.sender, this, getHybridizationPrice(_firstUnicornId)));
        }

        plusFreezingTime(_firstUnicornId);
        plusFreezingTime(_secondUnicornId);
        uint256 newUnicornId = unicornToken.createUnicorn(msg.sender);
        //        BlackBoxInterface blackBox = BlackBoxInterface(unicornManagement.blackBoxAddress());
        blackBox.geneCore.value(unicornManagement.oraclizeFee())(newUnicornId, _firstUnicornId, _secondUnicornId);
        emit CreateUnicorn(msg.sender, newUnicornId, _firstUnicornId, _secondUnicornId);
        if (hybridizations[_firstUnicornId].price > 0) {
            candyToken.transfer(unicornToken.ownerOf(_firstUnicornId), hybridizations[_firstUnicornId].price);
        }
        emit HybridizationAccept(_firstUnicornId, _secondUnicornId, newUnicornId);
        _deleteHybridization(_firstUnicornId);
    }


    function cancelHybridization (uint _unicornId) public {
        require(unicornToken.owns(msg.sender,_unicornId));
        require(hybridizations[_unicornId].exists);
        _deleteHybridization(_unicornId);
    }

    function deleteHybridization(uint _unicornId) onlyUnicornToken external {
        _deleteHybridization(_unicornId);
    }

    function _deleteHybridization(uint _unicornId) internal {
        if (hybridizations[_unicornId].exists) {
            hybridizations[hybridizationList[--hybridizationListSize]].listIndex = hybridizations[_unicornId].listIndex;
            hybridizationList[hybridizations[_unicornId].listIndex] = hybridizationList[hybridizationListSize];
            delete hybridizationList[hybridizationListSize];
            delete hybridizations[_unicornId];
            emit HybridizationDelete(_unicornId);
        }
    }

    //Create new 0 gen
    function createUnicorn() public payable whenNotPaused returns(uint256)   {
        require(msg.value == getCreateUnicornPrice());
        return _createUnicorn(msg.sender);
    }

    function createUnicornForCandy() public payable whenNotPaused returns(uint256)   {
        require(msg.value == unicornManagement.oraclizeFee());
        require(candyToken.transferFrom(msg.sender, this, getCreateUnicornPriceInCandy()));
        return _createUnicorn(msg.sender);
    }

    function createPresaleUnicorns(uint _count, address _owner) public payable onlyManager whenPaused returns(bool) {
        require(gen0PresaleCount.add(_count) <= gen0PresaleLimit);
        uint256 newUnicornId;
        address owner = _owner == address(0) ? msg.sender : _owner;
        for (uint i = 0; i < _count; i++){
            newUnicornId = unicornToken.createUnicorn(owner);
            blackBox.createGen0(newUnicornId);
            emit CreateUnicorn(owner, newUnicornId, 0, 0);
            gen0Count = gen0Count.add(1);
            gen0PresaleCount = gen0PresaleCount.add(1);
        }
        return true;
    }

    function _createUnicorn(address _owner) private returns(uint256) {
        require(gen0Count < gen0Limit);
        uint256 newUnicornId = unicornToken.createUnicorn(_owner);
        //        BlackBoxInterface blackBox = BlackBoxInterface(unicornManagement.blackBoxAddress());
        blackBox.createGen0.value(unicornManagement.oraclizeFee())(newUnicornId);
        emit CreateUnicorn(_owner, newUnicornId, 0, 0);
        gen0Count = gen0Count.add(1);
        return newUnicornId;
    }

    function plusFreezingTime(uint _unicornId) private {
        unicornToken.plusFreezingTime(_unicornId);
    }

    function plusTourFreezingTime(uint _unicornId) onlyTournament public {
        unicornToken.plusTourFreezingTime(_unicornId);
    }

    //change freezing time for megacandy
    function minusFreezingTime(uint _unicornId, uint _count) public { 
        require(megaCandyToken.burn(msg.sender,   unicornManagement.subFreezingPrice().mul(_count)));
        unicornToken.minusFreezingTime(_unicornId,  unicornManagement.subFreezingTime() * uint64(_count));
    }

    //change tour freezing time for megacandy
    function minusTourFreezingTime(uint _unicornId, uint _count) public { 
        require(megaCandyToken.burn(msg.sender, unicornManagement.subTourFreezingPrice().mul(_count)));
        unicornToken.minusTourFreezingTime(_unicornId, unicornManagement.subTourFreezingTime() * uint64(_count));
    }

    function getHybridizationPrice(uint _unicornId) public view returns (uint) {
        return unicornManagement.getHybridizationFullPrice(hybridizations[_unicornId].price);
    }

    function getEtherFeeForPriceInCandy() public view returns (uint) {
        return unicornManagement.oraclizeFee();
    }

    function getCreateUnicornPriceInCandy() public view returns (uint) {
        return unicornManagement.getCreateUnicornFullPriceInCandy();
    }


    function getCreateUnicornPrice() public view returns (uint) {
        return unicornManagement.getCreateUnicornFullPrice();
    }


    function withdrawTokens() onlyManager public {
        require(candyToken.balanceOf(this) > 0); 
        candyToken.transfer(unicornManagement.walletAddress(), candyToken.balanceOf(this)); 
    }


    function transferEthersToDividendManager(uint _value) onlyManager public {
        require(address(this).balance >= _value);
        DividendManagerInterface dividendManager = DividendManagerInterface(unicornManagement.dividendManagerAddress());
        dividendManager.payDividend.value(_value)();
        emit FundsTransferred(unicornManagement.dividendManagerAddress(), _value);
    }


    function setGen0Limit() external onlyCommunity {
        require(gen0Count == gen0Limit);
        gen0Limit = gen0Limit.add(gen0Step);
        emit NewGen0Limit(gen0Limit);
    }
 

    ////MARKET
    struct Offer{
        uint marketIndex;
        uint priceEth;
        uint priceCandy;
        bool exists;
    }

    // Mapping from unicorn ID to Offer struct
    mapping (uint => Offer) public offers;
    // Mapping from unicorn ID to offer ID
    //    mapping (uint => uint) public unicornOffer;
    // market index => offerId
    mapping(uint => uint) public market;
    uint public marketSize = 0;


    function sellUnicorn(uint _unicornId, uint _priceEth, uint _priceCandy) public {
        require(unicornToken.owns(msg.sender, _unicornId));
        require(!offers[_unicornId].exists);

        offers[_unicornId] = Offer({
            priceEth: _priceEth,
            priceCandy: _priceCandy,
            exists: true,
            marketIndex: marketSize
            });

        market[marketSize++] = _unicornId;

        emit OfferAdd(_unicornId, _priceEth, _priceCandy);
    }


    function buyUnicornWithEth(uint _unicornId) public payable {
        require(offers[_unicornId].exists);
        uint price = offers[_unicornId].priceEth;
        //Выставлять на продажу за 0 можно. Но нужно проверить чтобы и вторая цена также была 0
        if (price == 0) {
            require(offers[_unicornId].priceCandy == 0);
        }
        require(msg.value == getOfferPriceEth(_unicornId));

        address owner = unicornToken.ownerOf(_unicornId);

        emit UnicornSold(_unicornId);
        //deleteoffer вызовется внутри transfer
        unicornToken.marketTransfer(owner, msg.sender, _unicornId);
        owner.transfer(price);
    }


    function buyUnicornWithCandy(uint _unicornId) public {
        require(offers[_unicornId].exists);
        uint price = offers[_unicornId].priceCandy;
        //Выставлять на продажу за 0 можно. Но нужно проверить чтобы и вторая цена также была 0
        if (price == 0) {
            require(offers[_unicornId].priceEth == 0);
        }

        address owner = unicornToken.ownerOf(_unicornId);

        if (price > 0) {
            require(candyToken.transferFrom(msg.sender, this, getOfferPriceCandy(_unicornId)));
            candyToken.transfer(owner, price);
        }

        emit UnicornSold(_unicornId);
        //deleteoffer вызовется внутри transfer
        unicornToken.marketTransfer(owner, msg.sender, _unicornId);
    }


    function revokeUnicorn(uint _unicornId) public {
        require(unicornToken.owns(msg.sender, _unicornId));
        require(offers[_unicornId].exists);
        _deleteOffer(_unicornId);
    }


    function deleteOffer(uint _unicornId) onlyUnicornToken external {
        _deleteOffer(_unicornId);
    }


    function _deleteOffer(uint _unicornId) internal {
        if (offers[_unicornId].exists) {
            offers[market[--marketSize]].marketIndex = offers[_unicornId].marketIndex;
            market[offers[_unicornId].marketIndex] = market[marketSize];
            delete market[marketSize];
            delete offers[_unicornId];
            emit OfferDelete(_unicornId);
        }
    }


    function getOfferPriceEth(uint _unicornId) public view returns (uint) {
        return offers[_unicornId].priceEth.add(valueFromPercent(offers[_unicornId].priceEth, sellDividendPercentEth));
    }


    function getOfferPriceCandy(uint _unicornId) public view returns (uint) {
        return offers[_unicornId].priceCandy.add(valueFromPercent(offers[_unicornId].priceCandy, sellDividendPercentCandy));
    }


    function setSellDividendPercent(uint _percentCandy, uint _percentEth) public onlyManager {
        //no more then 25%
        require(_percentCandy < 2500 && _percentEth < 2500);

        sellDividendPercentCandy = _percentCandy;
        sellDividendPercentEth = _percentEth;
        emit NewSellDividendPercent(_percentCandy, _percentEth);
    }


    //1% - 100, 10% - 1000 50% - 5000
    function valueFromPercent(uint _value, uint _percent) internal pure returns (uint amount)    {
        uint _amount = _value.mul(_percent).div(10000);
        return (_amount);
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"isGamePaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"hybridizations","outputs":[{"name":"listIndex","type":"uint256"},{"name":"price","type":"uint256"},{"name":"exists","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"getHybridizationPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"makeHybridization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"getOfferPriceCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"market","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_priceEth","type":"uint256"},{"name":"_priceCandy","type":"uint256"}],"name":"sellUnicorn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"cancelHybridization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCreateUnicornPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"buyUnicornWithEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_count","type":"uint256"}],"name":"minusFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_count","type":"uint256"}],"name":"minusTourFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_count","type":"uint256"},{"name":"_owner","type":"address"}],"name":"createPresaleUnicorns","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"createUnicornForCandy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"unicornToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"hybridizationList","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"getOfferPriceEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"deleteOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gen0PresaleLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gen0PresaleCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"offers","outputs":[{"name":"marketIndex","type":"uint256"},{"name":"priceEth","type":"uint256"},{"name":"priceCandy","type":"uint256"},{"name":"exists","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createUnicorn","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"unicornManagement","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_percentCandy","type":"uint256"},{"name":"_percentEth","type":"uint256"}],"name":"setSellDividendPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"candyToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"revokeUnicorn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gen0Count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellDividendPercentCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blackBox","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"deleteHybridization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"buyUnicornWithCandy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"plusTourFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gen0Step","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_firstUnicornId","type":"uint256"},{"name":"_secondUnicornId","type":"uint256"}],"name":"acceptHybridization","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getEtherFeeForPriceInCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gen0Limit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellDividendPercentEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hybridizationListSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setGen0Limit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCreateUnicornPriceInCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"transferEthersToDividendManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"megaCandyToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_unicornManagementAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"HybridizationAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"firstUnicornId","type":"uint256"},{"indexed":true,"name":"secondUnicornId","type":"uint256"},{"indexed":false,"name":"newUnicornId","type":"uint256"}],"name":"HybridizationAccept","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"HybridizationDelete","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dividendManager","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"FundsTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"parent1","type":"uint256"},{"indexed":false,"name":"parent2","type":"uint256"}],"name":"CreateUnicorn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"limit","type":"uint256"}],"name":"NewGen0Limit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"step","type":"uint256"}],"name":"NewGen0Step","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"priceEth","type":"uint256"},{"indexed":false,"name":"priceCandy","type":"uint256"}],"name":"OfferAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"OfferDelete","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"UnicornSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"percentCandy","type":"uint256"},{"indexed":false,"name":"percentCandyEth","type":"uint256"}],"name":"NewSellDividendPercent","type":"event"}]

606060405261017760055561017760065561753060075561070d6008556103e86009556103e8600a556000600b556000600e55600060115534156200004357600080fd5b60405160208062004e318339810160405280805190602001909190505080806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a70d1e7306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156200015d57600080fd5b5af115156200016b57600080fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a63f5e2a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620001f457600080fd5b5af115156200020257600080fd5b50505060405180519050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050614bd4806200025d6000396000f300606060405260043610610225576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630422ddf3146102275780631327d383146102545780631ed378a11461029d5780632394a797146102d457806323d9ea801461030057806328861d221461033757806329cf90f31461036e5780632cf42a6c146103a3578063317ffcf2146103c6578063383a194c146103ef5780633900f8f61461040757806339dad8f5146104335780633ae50ce71461045f57806352fa1ac2146104ae578063544447bb146104cc57806367ae9e8f14610521578063699f0c721461055857806374268ff21461058f5780637cd022d4146105b25780638091fbe1146105db5780638a72ea6a146106045780638d8d50d0146106545780638d8f2adb146106725780638dca7a01146106875780638fe2eb9e146106dc578063a63f5e2a14610708578063af40ce201461075d578063b30387a414610780578063b93c7d42146107a9578063bd1723e5146107d2578063c7024b9814610827578063d029a5301461084a578063d03e9fff1461086d578063d224c3e014610890578063da9287d1146108b9578063de763a40146108da578063e1c7392a14610903578063e515a4d114610918578063e5a0741914610941578063eb1bb9d91461096a578063eb56105d14610993578063ec7bb2ac146109bc578063ee81f57c146109d1578063ff394153146109fa578063ff8028b314610a1d575b005b341561023257600080fd5b61023a610a72565b604051808215151515815260200191505060405180910390f35b341561025f57600080fd5b6102756004808035906020019091905050610b14565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34156102a857600080fd5b6102be6004808035906020019091905050610b4b565b6040518082815260200191505060405180910390f35b34156102df57600080fd5b6102fe6004808035906020019091908035906020019091905050610c10565b005b341561030b57600080fd5b6103216004808035906020019091905050610ea7565b6040518082815260200191505060405180910390f35b341561034257600080fd5b6103586004808035906020019091905050610efa565b6040518082815260200191505060405180910390f35b341561037957600080fd5b6103a16004808035906020019091908035906020019091908035906020019091905050610f12565b005b34156103ae57600080fd5b6103c46004808035906020019091905050611110565b005b34156103d157600080fd5b6103d9611231565b6040518082815260200191505060405180910390f35b61040560048080359060200190919050506112d3565b005b341561041257600080fd5b6104316004808035906020019091908035906020019091905050611586565b005b341561043e57600080fd5b61045d6004808035906020019091908035906020019091905050611874565b005b610494600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b62565b604051808215151515815260200191505060405180910390f35b6104b6611f71565b6040518082815260200191505060405180910390f35b34156104d757600080fd5b6104df6121f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052c57600080fd5b6105426004808035906020019091905050612217565b6040518082815260200191505060405180910390f35b341561056357600080fd5b610579600480803590602001909190505061222f565b6040518082815260200191505060405180910390f35b341561059a57600080fd5b6105b06004808035906020019091905050612282565b005b34156105bd57600080fd5b6105c5612362565b6040518082815260200191505060405180910390f35b34156105e657600080fd5b6105ee612368565b6040518082815260200191505060405180910390f35b341561060f57600080fd5b610625600480803590602001909190505061236e565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b61065c6123ab565b6040518082815260200191505060405180910390f35b341561067d57600080fd5b610685612477565b005b341561069257600080fd5b61069a612876565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106e757600080fd5b610706600480803590602001909190803590602001909190505061289b565b005b341561071357600080fd5b61071b6129dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561076857600080fd5b61077e6004808035906020019091905050612a03565b005b341561078b57600080fd5b610793612b24565b6040518082815260200191505060405180910390f35b34156107b457600080fd5b6107bc612b2a565b6040518082815260200191505060405180910390f35b34156107dd57600080fd5b6107e5612b30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083257600080fd5b6108486004808035906020019091905050612b56565b005b341561085557600080fd5b61086b6004808035906020019091905050612c36565b005b341561087857600080fd5b61088e600480803590602001909190505061309b565b005b341561089b57600080fd5b6108a361321b565b6040518082815260200191505060405180910390f35b6108d86004808035906020019091908035906020019091905050613221565b005b34156108e557600080fd5b6108ed613bc1565b6040518082815260200191505060405180910390f35b341561090e57600080fd5b610916613c63565b005b341561092357600080fd5b61092b613ff7565b6040518082815260200191505060405180910390f35b341561094c57600080fd5b610954613ffd565b6040518082815260200191505060405180910390f35b341561097557600080fd5b61097d614003565b6040518082815260200191505060405180910390f35b341561099e57600080fd5b6109a6614009565b6040518082815260200191505060405180910390f35b34156109c757600080fd5b6109cf61400f565b005b34156109dc57600080fd5b6109e461414d565b6040518082815260200191505060405180910390f35b3415610a0557600080fd5b610a1b60048080359060200190919050506141ef565b005b3415610a2857600080fd5b610a30614505565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610af857600080fd5b5af11515610b0557600080fd5b50505060405180519050905090565b600c6020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8474230600c6000858152602001908152602001600020600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610bf257600080fd5b5af11515610bff57600080fd5b505050604051805190509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cd457600080fd5b5af11515610ce157600080fd5b505050604051805190501515610cf657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610d8657600080fd5b5af11515610d9357600080fd5b505050604051805190501515610da857600080fd5b600c600083815260200190815260200160002060020160009054906101000a900460ff16151515610dd857600080fd5b606060405190810160405280600e54815260200182815260200160011515815250600c6000848152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505081600d6000600e600081548092919060010191905055815260200190815260200160002081905550817f84abd4d356237b35dfca5b88dc4e394c7e9f4cb3b214adcabfabdc6fe1f5f76c826040518082815260200191505060405180910390a25050565b6000610ef3610ece600f60008581526020019081526020016000206002015460055461452b565b600f60008581526020019081526020016000206002015461456190919063ffffffff16565b9050919050565b60106020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610fd657600080fd5b5af11515610fe357600080fd5b505050604051805190501515610ff857600080fd5b600f600084815260200190815260200160002060030160009054906101000a900460ff1615151561102857600080fd5b608060405190810160405280601154815260200183815260200182815260200160011515815250600f600085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555090505082601060006011600081548092919060010191905055815260200190815260200160002081905550827f13e4d00e26244f0e870ff787588c0980bf9d98eb39577648b77788542f19292a8383604051808381526020018281526020019250505060405180910390a2505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111d457600080fd5b5af115156111e157600080fd5b5050506040518051905015156111f657600080fd5b600c600082815260200190815260200160002060020160009054906101000a900460ff16151561122557600080fd5b61122e8161457f565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a96c63e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156112b757600080fd5b5af115156112c457600080fd5b50505060405180519050905090565b600080600f600084815260200190815260200160002060030160009054906101000a900460ff16151561130557600080fd5b600f6000848152602001908152602001600020600101549150600082141561134d576000600f60008581526020019081526020016000206002015414151561134c57600080fd5b5b6113568361222f565b3414151561136357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156113f357600080fd5b5af1151561140057600080fd5b505050604051805190509050827f4061e21996e5679778d872d5b99ef37970aa24194d370815ff0e224e58dff1a460405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bcf0dd8e8233866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561153157600080fd5b5af1151561153e57600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561158157600080fd5b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33611672846000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373def2b76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561164d57600080fd5b5af1151561165a57600080fd5b505050604051805190506146c290919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156116f657600080fd5b5af1151561170357600080fd5b50505060405180519050151561171857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a3a92f683836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639ea764756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156117dc57600080fd5b5af115156117e957600080fd5b50505060405180519050026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561186057600080fd5b5af1151561186d57600080fd5b5050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33611960846000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636b308ee76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561193b57600080fd5b5af1151561194857600080fd5b505050604051805190506146c290919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119e457600080fd5b5af115156119f157600080fd5b505050604051805190501515611a0657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a60b8aa983836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166392491f216040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611aca57600080fd5b5af11515611ad757600080fd5b50505060405180519050026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b1515611b4e57600080fd5b5af11515611b5b57600080fd5b5050505050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611bec57600080fd5b5af11515611bf957600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c3c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611cc057600080fd5b5af11515611ccd57600080fd5b505050604051805190501515611ce257600080fd5b600a54611cfa87600b5461456190919063ffffffff16565b11151515611d0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611d415784611d43565b335b9150600090505b85811015611f6457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611e0e57600080fd5b5af11515611e1b57600080fd5b505050604051805190509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a9caab9846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515611eb757600080fd5b5af11515611ec457600080fd5b505050828273ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d0600080604051808381526020018281526020019250505060405180910390a3611f35600160085461456190919063ffffffff16565b600881905550611f516001600b5461456190919063ffffffff16565b600b819055508080600101915050611d4a565b6001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611ff757600080fd5b5af1151561200457600080fd5b5050506040518051905015151561201a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561209e57600080fd5b5af115156120ab57600080fd5b50505060405180519050341415156120c257600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333061210a61414d565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156121c157600080fd5b5af115156121ce57600080fd5b5050506040518051905015156121e357600080fd5b6121ec336146fd565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915090505481565b600061227b612256600f60008581526020019081526020016000206001015460065461452b565b600f60008581526020019081526020016000206001015461456190919063ffffffff16565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561230657600080fd5b5af1151561231357600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561235657600080fd5b61235f8161499f565b50565b600a5481565b600b5481565b600f6020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561243157600080fd5b5af1151561243e57600080fd5b5050506040518051905015151561245457600080fd5b61245c611231565b3414151561246957600080fd5b612472336146fd565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156124fb57600080fd5b5af1151561250857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561254b57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561260957600080fd5b5af1151561261657600080fd5b5050506040518051905011151561262c57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ad5b3ea6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156126ee57600080fd5b5af115156126fb57600080fd5b50505060405180519050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156127c157600080fd5b5af115156127ce57600080fd5b505050604051805190506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561285c57600080fd5b5af1151561286957600080fd5b5050506040518051905050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561291f57600080fd5b5af1151561292c57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561296f57600080fd5b6109c48210801561298157506109c481105b151561298c57600080fd5b81600581905550806006819055507f30c8ebfc35cc822986e28f932b0a3ec7ddeb7d22b2e2069c8418b8f6bb2be6648282604051808381526020018281526020019250505060405180910390a15050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612ac757600080fd5b5af11515612ad457600080fd5b505050604051805190501515612ae957600080fd5b600f600082815260200190815260200160002060030160009054906101000a900460ff161515612b1857600080fd5b612b218161499f565b50565b60085481565b60055481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612bda57600080fd5b5af11515612be757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c2a57600080fd5b612c338161457f565b50565b600080600f600084815260200190815260200160002060030160009054906101000a900460ff161515612c6857600080fd5b600f60008481526020019081526020016000206002015491506000821415612cb0576000600f600085815260200190815260200160002060010154141515612caf57600080fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612d4057600080fd5b5af11515612d4d57600080fd5b5050506040518051905090506000821115612f6157600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330612dab87610ea7565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515612e6257600080fd5b5af11515612e6f57600080fd5b505050604051805190501515612e8457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612f4857600080fd5b5af11515612f5557600080fd5b50505060405180519050505b827f4061e21996e5679778d872d5b99ef37970aa24194d370815ff0e224e58dff1a460405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bcf0dd8e8233866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561308657600080fd5b5af1151561309357600080fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e10f1b06336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561315657600080fd5b5af1151561316357600080fd5b50505060405180519050151561317857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d03e9fff826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561320857600080fd5b5af1151561321557600080fd5b50505050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156132a757600080fd5b5af115156132b457600080fd5b505050604051805190501515156132ca57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561338e57600080fd5b5af1151561339b57600080fd5b5050506040518051905015156133b057600080fd5b8282141515156133bf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561344f57600080fd5b5af1151561345c57600080fd5b5050506040518051905080156135155750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156134fd57600080fd5b5af1151561350a57600080fd5b505050604051805190505b151561352057600080fd5b600c600084815260200190815260200160002060020160009054906101000a900460ff16151561354f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156135d357600080fd5b5af115156135e057600080fd5b50505060405180519050341415156135f757600080fd5b6000600c600085815260200190815260200160002060010154111561373957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333061365f87610b4b565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561371657600080fd5b5af1151561372357600080fd5b50505060405180519050151561373857600080fd5b5b61374283614aea565b61374b82614aea565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561380757600080fd5b5af1151561381457600080fd5b505050604051805190509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631e5d2e416000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156138e257600080fd5b5af115156138ef57600080fd5b505050604051805190508386866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303818588803b151561395a57600080fd5b5af1151561396757600080fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d08585604051808381526020018281526020019250505060405180910390a36000600c6000858152602001908152602001600020600101541115613b7a57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515613aaf57600080fd5b5af11515613abc57600080fd5b50505060405180519050600c6000878152602001908152602001600020600101546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613b6157600080fd5b5af11515613b6e57600080fd5b50505060405180519050505b81837f5b4cde6dd262ac8adc9c9dc9abd965f7fdc5f1b7e3a97db5fd06aa922540cfbf836040518082815260200191505060405180910390a3613bbc8361457f565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613c4757600080fd5b5af11515613c5457600080fd5b50505060405180519050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613cbe57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613d4257600080fd5b5af11515613d4f57600080fd5b505050604051805190501515613d6457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613de857600080fd5b5af11515613df557600080fd5b50505060405180519050600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635550e4f36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613ec357600080fd5b5af11515613ed057600080fd5b50505060405180519050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a76d368a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613f9e57600080fd5b5af11515613fab57600080fd5b50505060405180519050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b60065481565b600e5481565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166386e476dd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561409357600080fd5b5af115156140a057600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156140e357600080fd5b6007546008541415156140f557600080fd5b61410c60095460075461456190919063ffffffff16565b6007819055507f82a435bab9dac7abe42e365cda0c3cb0f64bf2b839af282f9e312d2d66145c846007546040518082815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a2c174596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156141d357600080fd5b5af115156141e057600080fd5b50505060405180519050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561427557600080fd5b5af1151561428257600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156142c557600080fd5b813073ffffffffffffffffffffffffffffffffffffffff1631101515156142eb57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349b7a9c26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561436f57600080fd5b5af1151561437c57600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff16630b6826ca836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b15156143eb57600080fd5b5af115156143f857600080fd5b505050507f8c9a4f13b67cb64d7c6aa1ae0c9bf07694af521a28b93e7060020810ab4bc59f6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349b7a9c26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156144a157600080fd5b5af115156144ae57600080fd5b5050506040518051905083604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061455561271061454785876146c290919063ffffffff16565b614b8d90919063ffffffff16565b90508091505092915050565b600080828401905083811015151561457557fe5b8091505092915050565b600c600082815260200190815260200160002060020160009054906101000a900460ff16156146bf57600c600082815260200190815260200160002060000154600c6000600d6000600e6000815460019003919050819055815260200190815260200160002054815260200190815260200160002060000181905550600d6000600e54815260200190815260200160002054600d6000600c600085815260200190815260200160002060000154815260200190815260200160002081905550600d6000600e54815260200190815260200160002060009055600c600082815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690555050807f868a9e71dfb115bed3ee872d882e85e6054c40386de4fbb9b016f78717d7b9ed60405160405180910390a25b50565b60008060008414156146d757600091506146f6565b82840290508284828115156146e857fe5b041415156146f257fe5b8091505b5092915050565b60008060075460085410151561471257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156147ce57600080fd5b5af115156147db57600080fd5b505050604051805190509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a9caab96000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156148a957600080fd5b5af115156148b657600080fd5b50505060405180519050836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506000604051808303818588803b151561491157600080fd5b5af1151561491e57600080fd5b50505050808373ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d0600080604051808381526020018281526020019250505060405180910390a3614990600160085461456190919063ffffffff16565b60088190555080915050919050565b600f600082815260200190815260200160002060030160009054906101000a900460ff1615614ae757600f600082815260200190815260200160002060000154600f600060106000601160008154600190039190508190558152602001908152602001600020548152602001908152602001600020600001819055506010600060115481526020019081526020016000205460106000600f60008581526020019081526020016000206000015481526020019081526020016000208190555060106000601154815260200190815260200160002060009055600f6000828152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff02191690555050807f5ea1bcce7d1009a8f5578c7ae0fb858880637a891d4e67851c12e37b35f59c6360405160405180910390a25b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e8eca23826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515614b7a57600080fd5b5af11515614b8757600080fd5b50505050565b6000808284811515614b9b57fe5b04905080915050929150505600a165627a7a7230582002fbaec93aa6785fe1ba1594dd1f9e6ec59a1d479aeff95bac55bd7183d68cf6002900000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73

Deployed Bytecode

0x606060405260043610610225576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630422ddf3146102275780631327d383146102545780631ed378a11461029d5780632394a797146102d457806323d9ea801461030057806328861d221461033757806329cf90f31461036e5780632cf42a6c146103a3578063317ffcf2146103c6578063383a194c146103ef5780633900f8f61461040757806339dad8f5146104335780633ae50ce71461045f57806352fa1ac2146104ae578063544447bb146104cc57806367ae9e8f14610521578063699f0c721461055857806374268ff21461058f5780637cd022d4146105b25780638091fbe1146105db5780638a72ea6a146106045780638d8d50d0146106545780638d8f2adb146106725780638dca7a01146106875780638fe2eb9e146106dc578063a63f5e2a14610708578063af40ce201461075d578063b30387a414610780578063b93c7d42146107a9578063bd1723e5146107d2578063c7024b9814610827578063d029a5301461084a578063d03e9fff1461086d578063d224c3e014610890578063da9287d1146108b9578063de763a40146108da578063e1c7392a14610903578063e515a4d114610918578063e5a0741914610941578063eb1bb9d91461096a578063eb56105d14610993578063ec7bb2ac146109bc578063ee81f57c146109d1578063ff394153146109fa578063ff8028b314610a1d575b005b341561023257600080fd5b61023a610a72565b604051808215151515815260200191505060405180910390f35b341561025f57600080fd5b6102756004808035906020019091905050610b14565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34156102a857600080fd5b6102be6004808035906020019091905050610b4b565b6040518082815260200191505060405180910390f35b34156102df57600080fd5b6102fe6004808035906020019091908035906020019091905050610c10565b005b341561030b57600080fd5b6103216004808035906020019091905050610ea7565b6040518082815260200191505060405180910390f35b341561034257600080fd5b6103586004808035906020019091905050610efa565b6040518082815260200191505060405180910390f35b341561037957600080fd5b6103a16004808035906020019091908035906020019091908035906020019091905050610f12565b005b34156103ae57600080fd5b6103c46004808035906020019091905050611110565b005b34156103d157600080fd5b6103d9611231565b6040518082815260200191505060405180910390f35b61040560048080359060200190919050506112d3565b005b341561041257600080fd5b6104316004808035906020019091908035906020019091905050611586565b005b341561043e57600080fd5b61045d6004808035906020019091908035906020019091905050611874565b005b610494600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b62565b604051808215151515815260200191505060405180910390f35b6104b6611f71565b6040518082815260200191505060405180910390f35b34156104d757600080fd5b6104df6121f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052c57600080fd5b6105426004808035906020019091905050612217565b6040518082815260200191505060405180910390f35b341561056357600080fd5b610579600480803590602001909190505061222f565b6040518082815260200191505060405180910390f35b341561059a57600080fd5b6105b06004808035906020019091905050612282565b005b34156105bd57600080fd5b6105c5612362565b6040518082815260200191505060405180910390f35b34156105e657600080fd5b6105ee612368565b6040518082815260200191505060405180910390f35b341561060f57600080fd5b610625600480803590602001909190505061236e565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b61065c6123ab565b6040518082815260200191505060405180910390f35b341561067d57600080fd5b610685612477565b005b341561069257600080fd5b61069a612876565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106e757600080fd5b610706600480803590602001909190803590602001909190505061289b565b005b341561071357600080fd5b61071b6129dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561076857600080fd5b61077e6004808035906020019091905050612a03565b005b341561078b57600080fd5b610793612b24565b6040518082815260200191505060405180910390f35b34156107b457600080fd5b6107bc612b2a565b6040518082815260200191505060405180910390f35b34156107dd57600080fd5b6107e5612b30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083257600080fd5b6108486004808035906020019091905050612b56565b005b341561085557600080fd5b61086b6004808035906020019091905050612c36565b005b341561087857600080fd5b61088e600480803590602001909190505061309b565b005b341561089b57600080fd5b6108a361321b565b6040518082815260200191505060405180910390f35b6108d86004808035906020019091908035906020019091905050613221565b005b34156108e557600080fd5b6108ed613bc1565b6040518082815260200191505060405180910390f35b341561090e57600080fd5b610916613c63565b005b341561092357600080fd5b61092b613ff7565b6040518082815260200191505060405180910390f35b341561094c57600080fd5b610954613ffd565b6040518082815260200191505060405180910390f35b341561097557600080fd5b61097d614003565b6040518082815260200191505060405180910390f35b341561099e57600080fd5b6109a6614009565b6040518082815260200191505060405180910390f35b34156109c757600080fd5b6109cf61400f565b005b34156109dc57600080fd5b6109e461414d565b6040518082815260200191505060405180910390f35b3415610a0557600080fd5b610a1b60048080359060200190919050506141ef565b005b3415610a2857600080fd5b610a30614505565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610af857600080fd5b5af11515610b0557600080fd5b50505060405180519050905090565b600c6020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8474230600c6000858152602001908152602001600020600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610bf257600080fd5b5af11515610bff57600080fd5b505050604051805190509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cd457600080fd5b5af11515610ce157600080fd5b505050604051805190501515610cf657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610d8657600080fd5b5af11515610d9357600080fd5b505050604051805190501515610da857600080fd5b600c600083815260200190815260200160002060020160009054906101000a900460ff16151515610dd857600080fd5b606060405190810160405280600e54815260200182815260200160011515815250600c6000848152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505081600d6000600e600081548092919060010191905055815260200190815260200160002081905550817f84abd4d356237b35dfca5b88dc4e394c7e9f4cb3b214adcabfabdc6fe1f5f76c826040518082815260200191505060405180910390a25050565b6000610ef3610ece600f60008581526020019081526020016000206002015460055461452b565b600f60008581526020019081526020016000206002015461456190919063ffffffff16565b9050919050565b60106020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610fd657600080fd5b5af11515610fe357600080fd5b505050604051805190501515610ff857600080fd5b600f600084815260200190815260200160002060030160009054906101000a900460ff1615151561102857600080fd5b608060405190810160405280601154815260200183815260200182815260200160011515815250600f600085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555090505082601060006011600081548092919060010191905055815260200190815260200160002081905550827f13e4d00e26244f0e870ff787588c0980bf9d98eb39577648b77788542f19292a8383604051808381526020018281526020019250505060405180910390a2505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111d457600080fd5b5af115156111e157600080fd5b5050506040518051905015156111f657600080fd5b600c600082815260200190815260200160002060020160009054906101000a900460ff16151561122557600080fd5b61122e8161457f565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a96c63e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156112b757600080fd5b5af115156112c457600080fd5b50505060405180519050905090565b600080600f600084815260200190815260200160002060030160009054906101000a900460ff16151561130557600080fd5b600f6000848152602001908152602001600020600101549150600082141561134d576000600f60008581526020019081526020016000206002015414151561134c57600080fd5b5b6113568361222f565b3414151561136357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156113f357600080fd5b5af1151561140057600080fd5b505050604051805190509050827f4061e21996e5679778d872d5b99ef37970aa24194d370815ff0e224e58dff1a460405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bcf0dd8e8233866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561153157600080fd5b5af1151561153e57600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561158157600080fd5b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33611672846000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373def2b76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561164d57600080fd5b5af1151561165a57600080fd5b505050604051805190506146c290919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156116f657600080fd5b5af1151561170357600080fd5b50505060405180519050151561171857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a3a92f683836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639ea764756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156117dc57600080fd5b5af115156117e957600080fd5b50505060405180519050026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561186057600080fd5b5af1151561186d57600080fd5b5050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33611960846000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636b308ee76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561193b57600080fd5b5af1151561194857600080fd5b505050604051805190506146c290919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119e457600080fd5b5af115156119f157600080fd5b505050604051805190501515611a0657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a60b8aa983836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166392491f216040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611aca57600080fd5b5af11515611ad757600080fd5b50505060405180519050026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b1515611b4e57600080fd5b5af11515611b5b57600080fd5b5050505050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611bec57600080fd5b5af11515611bf957600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c3c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611cc057600080fd5b5af11515611ccd57600080fd5b505050604051805190501515611ce257600080fd5b600a54611cfa87600b5461456190919063ffffffff16565b11151515611d0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611d415784611d43565b335b9150600090505b85811015611f6457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611e0e57600080fd5b5af11515611e1b57600080fd5b505050604051805190509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a9caab9846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515611eb757600080fd5b5af11515611ec457600080fd5b505050828273ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d0600080604051808381526020018281526020019250505060405180910390a3611f35600160085461456190919063ffffffff16565b600881905550611f516001600b5461456190919063ffffffff16565b600b819055508080600101915050611d4a565b6001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611ff757600080fd5b5af1151561200457600080fd5b5050506040518051905015151561201a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561209e57600080fd5b5af115156120ab57600080fd5b50505060405180519050341415156120c257600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333061210a61414d565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156121c157600080fd5b5af115156121ce57600080fd5b5050506040518051905015156121e357600080fd5b6121ec336146fd565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915090505481565b600061227b612256600f60008581526020019081526020016000206001015460065461452b565b600f60008581526020019081526020016000206001015461456190919063ffffffff16565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561230657600080fd5b5af1151561231357600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561235657600080fd5b61235f8161499f565b50565b600a5481565b600b5481565b600f6020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561243157600080fd5b5af1151561243e57600080fd5b5050506040518051905015151561245457600080fd5b61245c611231565b3414151561246957600080fd5b612472336146fd565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156124fb57600080fd5b5af1151561250857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561254b57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561260957600080fd5b5af1151561261657600080fd5b5050506040518051905011151561262c57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ad5b3ea6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156126ee57600080fd5b5af115156126fb57600080fd5b50505060405180519050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156127c157600080fd5b5af115156127ce57600080fd5b505050604051805190506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561285c57600080fd5b5af1151561286957600080fd5b5050506040518051905050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561291f57600080fd5b5af1151561292c57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561296f57600080fd5b6109c48210801561298157506109c481105b151561298c57600080fd5b81600581905550806006819055507f30c8ebfc35cc822986e28f932b0a3ec7ddeb7d22b2e2069c8418b8f6bb2be6648282604051808381526020018281526020019250505060405180910390a15050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612ac757600080fd5b5af11515612ad457600080fd5b505050604051805190501515612ae957600080fd5b600f600082815260200190815260200160002060030160009054906101000a900460ff161515612b1857600080fd5b612b218161499f565b50565b60085481565b60055481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612bda57600080fd5b5af11515612be757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c2a57600080fd5b612c338161457f565b50565b600080600f600084815260200190815260200160002060030160009054906101000a900460ff161515612c6857600080fd5b600f60008481526020019081526020016000206002015491506000821415612cb0576000600f600085815260200190815260200160002060010154141515612caf57600080fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612d4057600080fd5b5af11515612d4d57600080fd5b5050506040518051905090506000821115612f6157600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330612dab87610ea7565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515612e6257600080fd5b5af11515612e6f57600080fd5b505050604051805190501515612e8457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612f4857600080fd5b5af11515612f5557600080fd5b50505060405180519050505b827f4061e21996e5679778d872d5b99ef37970aa24194d370815ff0e224e58dff1a460405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bcf0dd8e8233866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561308657600080fd5b5af1151561309357600080fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e10f1b06336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561315657600080fd5b5af1151561316357600080fd5b50505060405180519050151561317857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d03e9fff826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561320857600080fd5b5af1151561321557600080fd5b50505050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156132a757600080fd5b5af115156132b457600080fd5b505050604051805190501515156132ca57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561338e57600080fd5b5af1151561339b57600080fd5b5050506040518051905015156133b057600080fd5b8282141515156133bf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561344f57600080fd5b5af1151561345c57600080fd5b5050506040518051905080156135155750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156134fd57600080fd5b5af1151561350a57600080fd5b505050604051805190505b151561352057600080fd5b600c600084815260200190815260200160002060020160009054906101000a900460ff16151561354f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156135d357600080fd5b5af115156135e057600080fd5b50505060405180519050341415156135f757600080fd5b6000600c600085815260200190815260200160002060010154111561373957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333061365f87610b4b565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561371657600080fd5b5af1151561372357600080fd5b50505060405180519050151561373857600080fd5b5b61374283614aea565b61374b82614aea565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561380757600080fd5b5af1151561381457600080fd5b505050604051805190509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631e5d2e416000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156138e257600080fd5b5af115156138ef57600080fd5b505050604051805190508386866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303818588803b151561395a57600080fd5b5af1151561396757600080fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d08585604051808381526020018281526020019250505060405180910390a36000600c6000858152602001908152602001600020600101541115613b7a57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515613aaf57600080fd5b5af11515613abc57600080fd5b50505060405180519050600c6000878152602001908152602001600020600101546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613b6157600080fd5b5af11515613b6e57600080fd5b50505060405180519050505b81837f5b4cde6dd262ac8adc9c9dc9abd965f7fdc5f1b7e3a97db5fd06aa922540cfbf836040518082815260200191505060405180910390a3613bbc8361457f565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613c4757600080fd5b5af11515613c5457600080fd5b50505060405180519050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613cbe57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613d4257600080fd5b5af11515613d4f57600080fd5b505050604051805190501515613d6457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613de857600080fd5b5af11515613df557600080fd5b50505060405180519050600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635550e4f36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613ec357600080fd5b5af11515613ed057600080fd5b50505060405180519050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a76d368a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613f9e57600080fd5b5af11515613fab57600080fd5b50505060405180519050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b60065481565b600e5481565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166386e476dd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561409357600080fd5b5af115156140a057600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156140e357600080fd5b6007546008541415156140f557600080fd5b61410c60095460075461456190919063ffffffff16565b6007819055507f82a435bab9dac7abe42e365cda0c3cb0f64bf2b839af282f9e312d2d66145c846007546040518082815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a2c174596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156141d357600080fd5b5af115156141e057600080fd5b50505060405180519050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561427557600080fd5b5af1151561428257600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156142c557600080fd5b813073ffffffffffffffffffffffffffffffffffffffff1631101515156142eb57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349b7a9c26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561436f57600080fd5b5af1151561437c57600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff16630b6826ca836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b15156143eb57600080fd5b5af115156143f857600080fd5b505050507f8c9a4f13b67cb64d7c6aa1ae0c9bf07694af521a28b93e7060020810ab4bc59f6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349b7a9c26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156144a157600080fd5b5af115156144ae57600080fd5b5050506040518051905083604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061455561271061454785876146c290919063ffffffff16565b614b8d90919063ffffffff16565b90508091505092915050565b600080828401905083811015151561457557fe5b8091505092915050565b600c600082815260200190815260200160002060020160009054906101000a900460ff16156146bf57600c600082815260200190815260200160002060000154600c6000600d6000600e6000815460019003919050819055815260200190815260200160002054815260200190815260200160002060000181905550600d6000600e54815260200190815260200160002054600d6000600c600085815260200190815260200160002060000154815260200190815260200160002081905550600d6000600e54815260200190815260200160002060009055600c600082815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690555050807f868a9e71dfb115bed3ee872d882e85e6054c40386de4fbb9b016f78717d7b9ed60405160405180910390a25b50565b60008060008414156146d757600091506146f6565b82840290508284828115156146e857fe5b041415156146f257fe5b8091505b5092915050565b60008060075460085410151561471257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156147ce57600080fd5b5af115156147db57600080fd5b505050604051805190509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a9caab96000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156148a957600080fd5b5af115156148b657600080fd5b50505060405180519050836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506000604051808303818588803b151561491157600080fd5b5af1151561491e57600080fd5b50505050808373ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d0600080604051808381526020018281526020019250505060405180910390a3614990600160085461456190919063ffffffff16565b60088190555080915050919050565b600f600082815260200190815260200160002060030160009054906101000a900460ff1615614ae757600f600082815260200190815260200160002060000154600f600060106000601160008154600190039190508190558152602001908152602001600020548152602001908152602001600020600001819055506010600060115481526020019081526020016000205460106000600f60008581526020019081526020016000206000015481526020019081526020016000208190555060106000601154815260200190815260200160002060009055600f6000828152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff02191690555050807f5ea1bcce7d1009a8f5578c7ae0fb858880637a891d4e67851c12e37b35f59c6360405160405180910390a25b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e8eca23826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515614b7a57600080fd5b5af11515614b8757600080fd5b50505050565b6000808284811515614b9b57fe5b04905080915050929150505600a165627a7a7230582002fbaec93aa6785fe1ba1594dd1f9e6ec59a1d479aeff95bac55bd7183d68cf60029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73

-----Decoded View---------------
Arg [0] : _unicornManagementAddress (address): 0x10CC060f6f9B2E5DCDB23F1361E4b368A7DAeC73

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73


Swarm Source

bzzr://02fbaec93aa6785fe1ba1594dd1f9e6ec59a1d479aeff95bac55bd7183d68cf6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.