Contract 0x2C2391F793f4f81475D87fffE366458Ce5380A13

 

TxHash Block Age From To Value [TxFee]
0xbb1b5dd1659e2d6af32981fd80ae7c2a673b71d52b10edb51dcf381e12a2707372022799 days 8 hrs ago0x516523ac1a1dc40fcb451a03802d9c3daa7d6112 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.02335338 Ether0.000747808
0x60cd9dba08938c5e8462596916d0c3859b4e25c02e0bcfcb948c006867b3d19772022799 days 8 hrs ago0x516523ac1a1dc40fcb451a03802d9c3daa7d6112 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0242649025 Ether0.000677701
0x736c3f459aa0b964868b5ab891b18eec3c8bf4bee215cb2eebb1e076197325db72018879 days 11 hrs ago0x516523ac1a1dc40fcb451a03802d9c3daa7d6112 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0360500425 Ether0.000584225
0xfec3e7f7397d5929d755422fa5bc18d2b62124989138f30e054cd1e59f157adb714009522 days 2 hrs ago0xd06ad843d7b450e10bd77b2fe0a1d0e3223cf6d7 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.065061 Ether0.000511302
0x3872ad2783b15db965515f65bb2a4a33125e2007b2be3c97f0f7ecb6033e8808708933031 days 22 hrs ago0x0f61f88ba80063897fa71908336da54424ff43e1 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.0000585072
0x37992f7557b68adad616f91d24217c3e997c693b0436413d63304a1a4c58553b703517741 days 14 hrs ago0x069ad48d189974d5329b5f794acc227150356350 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.026388 Ether0.000116525
0x716b93819ee9fa76caa7f19c36d5339ed757a075c5a32e9261cf19b32128da05696709253 days 11 hrs ago0x8acaf4c318803cca315cc63339ef5765628b31a4 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.000093042
0x4a74c84ae1a9f579fc1e09f5a8281e749faa4d9e813250128cb195d185f4a35a696708253 days 11 hrs ago0x8acaf4c318803cca315cc63339ef5765628b31a4 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.000085458
0x4eb05098978cde741d37b38857594fcf29f425abe4f944dd6a4bcf3af3f16088681792878 days 9 hrs ago0x6512cb9040d91a9f8f08e0b8e29dcd9d814e7c49 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.000146268
0xea288d84976fdcae3701612d10e995e2adaf4485cd387694ff305ec595e9991e681771478 days 10 hrs ago0x6512cb9040d91a9f8f08e0b8e29dcd9d814e7c49 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130 Ether0.0002523123
0xeb13f6e7026874db7be4214f1df8f5939a94f3e55290077790aa2307b04f4f38669305298 days 22 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xcfe44fd39594cb4c66ca95f74705a9bd4780f1ddf54c1271c79644a85194dbb3669301998 days 22 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0x75f925c29ea4565440d06b3edf70ec454460b31eabca841eb3100ee044a3f351669301598 days 22 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xac8272ee7d6330313430cea6db05c79ad50a722c3d1e8114005cc7a0848fd298669299198 days 22 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xc2b335035a24000c4aeb00eec95894d525c96d2248a9a6b1d09840be22ad5e57669298798 days 22 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.162392422485351 Ether0.000046738
0xf7279decf5c4d7bc8c5493034c5329652d0f43ea108d574048577b4a5bd098bf669292898 days 22 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0930065 Ether0.000046482
0x69b684e0b50b5d3e3e5ed23ef83321055ab882265af8bea67ca2bce8afea6fd0669280698 days 23 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.0003532632
0xbc411a141ad5ff3f0ad2c51de50734f92ed8bfd3101fe86f4825e1e7a0e6dc79669280698 days 23 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.0000976122
0x5f10cbf24ab916326da73fb90eb5f8312d817ac8f37a58977cce5d7610c951de669280498 days 23 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.00100726494
0x178f13eb56dd7ec528a1caa38c11c29f07713e9a2e5e7759660b314520f557aa669280298 days 23 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.000371856
0xa301ed9e13bacee4316db6968d805e4e475551d77866da5e76ac975e18e3ee3c669280098 days 23 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.000092964
0x2c00bd65299dfacd87d434ade0c9c932f9bdd4f4a8a6f1dee86e5f37b7274b44669279798 days 23 hrs ago0x2f78a21ad4d1edb484f217d60d459ca8c5f473fb IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.0956753125 Ether0.0000743712
0xc941453318162d0ac4e4ff2b553d6e71003448db5c3f2098d072c0bdac209d326575317118 days 5 hrs ago0x9fe75c81a1dadd4c96ccf2e5a18ce43f40521018 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.015 Ether0.00107203
0xadc0d7b70eb8bff4620795735c4ea2d4d2863279c26c17471bede93070f8d25e6575315118 days 5 hrs ago0x9fe75c81a1dadd4c96ccf2e5a18ce43f40521018 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.019791 Ether0.00153813
0xd9633004b432a559e86206a64ca2705e76514001e5547d2c0dc68512be720a776575314118 days 5 hrs ago0x9fe75c81a1dadd4c96ccf2e5a18ce43f40521018 IN  0x2c2391f793f4f81475d87fffe366458ce5380a130.019791 Ether0.001425509
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x716b93819ee9fa76caa7f19c36d5339ed757a075c5a32e9261cf19b32128da05696709253 days 11 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xe4952e54e0797f90eb119464aaa54d30a34011a530 Ether
0x1319355f6aa3f34febe843283e077ab48a7c1db07e17eba5cf45f709d7c63ac26519304127 days 8 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x703daf46a6c10f7c5a4706c7384a38b11b87ccea15.0394 Ether
0x69da90f6430ae208a0d69ad946ea56cab5bd561112299be0abf010b54cd9bd086490121132 days 2 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x703daf46a6c10f7c5a4706c7384a38b11b87ccea5 Ether
0x80d23547bdb9d86977a675bdd436823677309adc26b7ddee7bcca5f08898462a6487631132 days 12 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x5f24b98ad804e6e87b1d90ff843f6a46b3feab4e0.02 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd30352236486324132 days 17 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x6b5ddb54c1686a8b92254acc3f501fa1afb19b160.027496 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd30352236486324132 days 17 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x2d51cab9ce3dbacda14aa65c5236d73b583bd1560.0025 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd30352236486324132 days 17 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xb25a900f979c69bc1da3cfcf7ba605a8830610570.0025 Ether
0x74f2aa32730c42d11663ffb6aaff314edd84736ec2a9e91f9e5247ebd30352236486324132 days 17 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xb6a9777344ddb1999d8062f1e7edb34f2aa69a590.0032985 Ether
0x8a41cb923cc93144e6efca042ceb78b646a63fd0caa14dff043d8f92361b697e6485054132 days 22 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x80add382c114d29cf77d06c88215442a615c1e4b0.0083608 Ether
0x8a41cb923cc93144e6efca042ceb78b646a63fd0caa14dff043d8f92361b697e6485054132 days 22 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x0f59fff9764d77434ba3204ac0dc2f63bd6f894c0.004393490625 Ether
0x05a07ff725b035ae44d3332a1575122039d5637017f20446eb4e303a41c09ee26484159133 days 1 hr ago0x2c2391f793f4f81475d87fffe366458ce5380a130x0e1bc5b221ba4705c94d143705cb1432caed3dfa29.336066400000000746 Ether
0xc74270d851568f0d1a806e54afee0282b3b2f66da6b11fd0a4168e74cf2330fe6484126133 days 1 hr ago0x2c2391f793f4f81475d87fffe366458ce5380a130x703daf46a6c10f7c5a4706c7384a38b11b87ccea36.20226 Ether
0x4ff6379fc2e229d1d1a24254203c36f5f1f32d932e3cd6fcbc97d349941be94b6483640133 days 3 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x1b35120ef171b4c9c8f212c974021f61068b39040.0107496 Ether
0x4ff6379fc2e229d1d1a24254203c36f5f1f32d932e3cd6fcbc97d349941be94b6483640133 days 3 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x93129f03ad1b455be8a856648af60463324913380.002375 Ether
0xde989ea4020acae2b51d1bcfa1a1d7e78bace048df8421defcaaf0466af94fcb6483627133 days 3 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xe2bc19c6526ce073586f53962bb55e9440e7bc680.02961124 Ether
0x48d775b20e1552c920ea0ff1731511d971b71620f596766ed8b97b6acdfe4c086483621133 days 3 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x5641519cc28def80d631baa28b949f17a6a22ad10.00871024 Ether
0x48d775b20e1552c920ea0ff1731511d971b71620f596766ed8b97b6acdfe4c086483621133 days 3 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x93129f03ad1b455be8a856648af60463324913380.0015625 Ether
0x48d775b20e1552c920ea0ff1731511d971b71620f596766ed8b97b6acdfe4c086483621133 days 3 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x93129f03ad1b455be8a856648af60463324913380.0020615625 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a3946483556133 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x5641519cc28def80d631baa28b949f17a6a22ad10.01347304 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a3946483556133 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x576a3737e00ee7d8b7e1ad06ba791e5e87fa3c2c0.0015625 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a3946483556133 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x9a14607407fca133a9fa354ec588b08b48a2d5e40.003168125 Ether
0xc61a274274953cf5ade376a2bbc8246c5e065302b52d0b69ffffc0fcc897a3946483556133 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x674933d412d047004e5c9b6f50a068f273f71c910.0015625 Ether
0xd139d34e51ea352f72a6a0a2fe5140501000e530c4266c17bab4dccd9061eab86483437133 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x39ebaa70d97a83940ca567d91d293e6c2db5d7870.022854 Ether
0xd139d34e51ea352f72a6a0a2fe5140501000e530c4266c17bab4dccd9061eab86483437133 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130x39ebaa70d97a83940ca567d91d293e6c2db5d7870.00895430822265625 Ether
0xd139d34e51ea352f72a6a0a2fe5140501000e530c4266c17bab4dccd9061eab86483437133 days 4 hrs ago0x2c2391f793f4f81475d87fffe366458ce5380a130xd1d30ff06bbdd9d0f71677632a6ed3edc8d19f840.00808001578125 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: MCPSale
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.24;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }


    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }


    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract Beneficiary is Ownable {

    address public beneficiary;

    constructor() public {
        beneficiary = msg.sender;
    }

    function setBeneficiary(address _beneficiary) onlyOwner public {
        beneficiary = _beneficiary;
    }

    function withdrawal(uint256 amount) public onlyOwner {
        if (amount > address(this).balance) {
            revert();
        }

        beneficiary.transfer(amount);
    }

    function withdrawalAll() public onlyOwner {
        beneficiary.transfer(address(this).balance);
    }
}

contract MCPSale is Beneficiary {

    mapping(address => uint256) public balances;
    mapping(uint256 => address) public approved;
    mapping(int32 => mapping(int32 => uint256)) public zone;
    mapping(uint256 => Coordinates) public zone_reverse;
    mapping(uint16 => Region) public regions;
    mapping(uint16 => RegionBid) public region_bids;

    bool public constant implementsERC721 = true;

    uint256 constant MINIMAL_RAISE = 0.5 ether;
    uint256 constant AUCTION_DURATION = 7 * 24 * 60 * 60; // 7 Days

    bool public SaleActive = true;

    struct MapLand {
        uint8 resources;
        uint16 region;
        uint256 buyPrice;
        address owner;
    }

    struct Coordinates {
        int32 x;
        int32 y;
    }

    struct RegionBid {
        address currentBuyer;
        uint256 bid;
        uint256 activeTill;
    }

    struct Region {
        address owner;
        uint8 tax;
        uint256 startPrice;
        string regionName;
        bool onSale;
        bool allowSaleLands;
        bool created;
    }


    uint256 public basePrice = 0.01 ether;
    uint256 public minMargin = 0.001944 ether;
    uint32 public divider = 8;
    uint8 public defaultRegionTax = 10;

    MapLand[] public tokens;

    address public mapMaster;

    modifier isTokenOwner(uint256 _tokenId) {
        if (tokens[_tokenId].owner != msg.sender) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;

        }

        _;
    }

    modifier onlyRegionOwner(uint16 _regionId) {
        if (regions[_regionId].owner != msg.sender) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;

        }

        _;
    }

    modifier isNotNullAddress(address _address) {
        require(address(0) != _address);
        _;
    }

    modifier isApproved(uint256 _tokenId, address _to) {
        require(approved[_tokenId] == _to);
        _;
    }

    modifier onlyMapMaster() {
        require(mapMaster == msg.sender);
        _;
    }

    modifier onlyOnActiveSale() {
        require(SaleActive);
        _;
    }

    modifier canMakeBid(uint16 regionId) {
        if ((region_bids[regionId].activeTill != 0 && region_bids[regionId].activeTill < now)
        || regions[regionId].owner != address(0) || !regions[regionId].onSale
        ) {
            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }
            return;
        }

        _;
    }

    constructor() public {
        mapMaster = msg.sender;
        tokens.length++;
        //reserve 0 token - no binding, no sale
        MapLand storage reserve = tokens[tokens.length - 1];
        reserve.owner = msg.sender;
    }

    function setMapMaster(address _mapMaster) public onlyOwner {
        mapMaster = _mapMaster;
    }

    function setMinMargin(uint256 _amount) public onlyOwner {
        minMargin = _amount;
    }

    function setBasePrice(uint256 _amount) public onlyOwner {
        basePrice = _amount;
    }

    function setRegionTax(uint16 regionId, uint8 tax) public onlyRegionOwner(regionId) onlyOnActiveSale {
        require(tax <= 100 && tax >= 0);
        regions[regionId].tax = tax;

        emit TaxUpdate(regionId, regions[regionId].tax);
    }

    function setRegionName(uint16 regionId, string regionName) public onlyOwner {
        regions[regionId].regionName = regionName;
        emit ChangeRegionName(regionId, regionName);
    }

    function setRegionOnSale(uint16 regionId) public onlyMapMaster {
        regions[regionId].onSale = true;

        emit RegionOnSale(regionId);
    }

    function setAllowSellLands(uint16 regionId) public onlyMapMaster {
        regions[regionId].allowSaleLands = true;

        emit RegionAllowSaleLands(regionId);
    }

    function setRegionPrice(uint16 regionId, uint256 price) public onlyOwner {
        if(regions[regionId].owner == address(0) && !regions[regionId].onSale) {
            regions[regionId].startPrice = price;
            emit UpdateRegionPrice(regionId, price);
        }
    }

    function addRegion(uint16 _regionId, uint256 _startPrice, string _regionName) public onlyMapMaster onlyOnActiveSale {

        if (regions[_regionId].created) {
            return;
        }

        Region storage newRegion = regions[_regionId];
        newRegion.startPrice = _startPrice;
        newRegion.tax = defaultRegionTax;
        newRegion.owner = address(0);
        newRegion.regionName = _regionName;
        newRegion.created = true;

        emit AddRegion(_regionId);
    }

    function regionExists(uint16 _regionId) public view returns (bool) {
        return regions[_regionId].created;
    }

    function makeBid(uint16 regionId) payable public
    onlyOnActiveSale
    canMakeBid(regionId) {

        uint256 minimal_bid;

        if (region_bids[regionId].currentBuyer != address(0)) {//If have bid already
            minimal_bid = region_bids[regionId].bid + MINIMAL_RAISE;
        } else {
            minimal_bid = regions[regionId].startPrice;
        }

        if (minimal_bid > msg.value) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        }

        RegionBid storage bid = region_bids[regionId];

        if (bid.currentBuyer != address(0)) {
            //Return funds to old buyer
            bid.currentBuyer.transfer(bid.bid);
        } else {
            emit AuctionStarts(regionId);
        }

        // Auction will be active for 7 days if no one make a new bid
        bid.activeTill = now + AUCTION_DURATION;


        bid.currentBuyer = msg.sender;
        bid.bid = msg.value;

        emit RegionNewBid(regionId, msg.sender, msg.value, region_bids[regionId].activeTill);
    }

    function completeRegionAuction(uint16 regionId) public onlyMapMaster {
        if (region_bids[regionId].currentBuyer == address(0)) {
            return;
        }

        if (region_bids[regionId].activeTill > now || region_bids[regionId].activeTill == 0) {
            return;
        }

        transferRegion(regionId, region_bids[regionId].currentBuyer);
    }

    function takeRegion(uint16 regionId) public {
        require(regions[regionId].owner == address(0));
        require(region_bids[regionId].currentBuyer == msg.sender);
        require(region_bids[regionId].activeTill < now);

        transferRegion(regionId, region_bids[regionId].currentBuyer);
    }

    function transferRegion(uint16 regionId, address newOwner) internal {
        regions[regionId].owner = newOwner;
        regions[regionId].onSale = false;

        emit RegionSold(regionId, regions[regionId].owner);
    }

    // returns next minimal bid or final bid on auctions that already end
    function getRegionPrice(uint16 regionId) public view returns (uint256 next_bid) {
        if(regions[regionId].owner != address(0)) {
            return region_bids[regionId].bid;
        }

        if (region_bids[regionId].currentBuyer != address(0)) {//If have bid already
            next_bid = region_bids[regionId].bid + MINIMAL_RAISE;
        } else {
            next_bid = regions[regionId].startPrice;
        }
    }

    function _activateZoneLand(int32 x, int32 y, uint8 region, uint8 resources) internal {
        tokens.length++;
        MapLand storage tmp = tokens[tokens.length - 1];

        tmp.region = region;
        tmp.resources = resources;
        tmp.buyPrice = 0;
        zone[x][y] = tokens.length - 1;
        zone_reverse[tokens.length - 1] = Coordinates(x, y);

        emit ActivateMap(x, y, tokens.length - 1);
    }

    function activateZone(int32[] x, int32[] y, uint8[] region, uint8[] resources) public onlyMapMaster {
        for (uint index = 0; index < x.length; index++) {
            _activateZoneLand(x[index], y[index], region[index], resources[index]);
        }
    }

    function buyLand(int32 x, int32 y) payable public onlyOnActiveSale {
        MapLand storage token = tokens[zone[x][y]];
        if (zone[x][y] == 0 || token.buyPrice > 0 || token.owner != address(0)
        || !regions[token.region].allowSaleLands) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        }

        uint256 buyPrice = getLandPrice(x, y);

        if (buyPrice == 0) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        }

        uint256[49] memory payouts;
        address[49] memory addresses;
        uint8 tokenBought;


        if (buyPrice > msg.value) {

            if (msg.value > 0) {
                msg.sender.transfer(msg.value);
            }

            return;
        } else if (buyPrice < msg.value) {
            msg.sender.transfer(msg.value - buyPrice);
        }

        (payouts, addresses, tokenBought) = getPayouts(x, y);


        token.owner = msg.sender;
        token.buyPrice = buyPrice;
        balances[msg.sender]++;

        doPayouts(payouts, addresses, buyPrice);

        uint256 tax = getRegionTax(token.region);

        if (regions[token.region].owner != address(0) && tax > 100) {
            uint256 taxValue = ((basePrice * (tax - 100) + ((tokenBought ** 2) * minMargin * (tax - 100))) / 100);
            regions[token.region].owner.transfer(taxValue);
            emit RegionPayout(regions[token.region].owner, taxValue);
        }

        emit Transfer(address(0), msg.sender, zone[x][y]);

    }

    function doPayouts(uint256[49] payouts, address[49] addresses, uint256 fullValue) internal returns (uint256){
        for (uint8 i = 0; i < addresses.length; i++) {
            if (addresses[i] == address(0)) {
                continue;
            }
            addresses[i].transfer(payouts[i]);
            emit Payout(addresses[i], payouts[i]);
            fullValue -= payouts[i];
        }


        return fullValue;
    }

    function getPayouts(int32 x, int32 y) public view returns (uint256[49] payouts, address[49] addresses, uint8 tokenBought) {

        for (int32 xi = x - 3; xi <= x + 3; xi++) {
            for (int32 yi = y - 3; yi <= y + 3; yi++) {
                if (x == xi && y == yi) {
                    continue;
                }
                MapLand memory token = tokens[zone[xi][yi]];

                if (token.buyPrice > 0) {
                    payouts[tokenBought] = (token.buyPrice / divider);
                    addresses[tokenBought] = (token.owner);
                    tokenBought++;

                }
            }
        }


        return (payouts, addresses, tokenBought);
    }

    function getLandPrice(int32 x, int32 y) public view returns (uint256 price){

        if (zone[x][y] == 0) {
            return;
        }

        MapLand memory token = tokens[zone[x][y]];

        int256[2] memory start;
        start[0] = x - 3;
        start[1] = y - 3;
        uint256[2] memory counters = [uint256(0), 0];
        for (int32 xi = x - 3; xi <= x + 3; xi++) {
            for (int32 yi = y - 3; yi <= y + 3; yi++) {
                if (x == xi && y == yi) {
                    continue;
                }

                if (tokens[zone[xi][yi]].buyPrice > 0) {
                    counters[1] += tokens[zone[xi][yi]].buyPrice;
                    counters[0]++;
                }
            }
        }

        uint16 regionId = token.region;

        uint8 taxValue = getRegionTax(regionId);

        if (counters[0] == 0) {
            price = ((basePrice * taxValue) / 100);
        } else {
            price = ((basePrice * taxValue) / 100) + (uint(counters[1]) / divider) + (((counters[0] ** 2) * minMargin * taxValue) / 100);
        }
    }


    function getRegionTax(uint16 regionId) internal view returns (uint8) {
        if (regions[regionId].owner != address(0)) {
            return (100 + regions[regionId].tax);
        }
        return (100 + defaultRegionTax);
    }

    function approve(address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isNotNullAddress(_to) {
        approved[_tokenId] = _to;
        emit Approval(msg.sender, _to, _tokenId);
    }

    function setRegionOwner(uint16 regionId, address owner, uint256 viewPrice) public onlyOwner {
        require(regions[regionId].owner == address(0) && !regions[regionId].onSale);

        regions[regionId].owner = owner;

        RegionBid storage bid = region_bids[regionId];
        bid.activeTill = now;
        bid.currentBuyer = owner;
        bid.bid = viewPrice;

        emit RegionSold(regionId, owner);

    }

    function transfer(address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isNotNullAddress(_to) isApproved(_tokenId, _to) {
        tokens[_tokenId].owner = _to;

        balances[msg.sender]--;
        balances[_to]++;

        emit Transfer(msg.sender, _to, _tokenId);
    }


    function transferFrom(address _from, address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isApproved(_tokenId, _to) {
        tokens[_tokenId].owner = _to;

        emit Transfer(_from, _to, _tokenId);
    }

    function ownerOf(uint256 _tokenId) public view returns (address owner) {
        owner = tokens[_tokenId].owner;
    }

    function totalSupply() public view returns (uint256) {
        return tokens.length;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        balance = balances[_owner];
    }

    function setSaleEnd() public onlyOwner {
        SaleActive = false;
        emit EndSale(true);
    }

    function isActive() public view returns (bool) {
        return SaleActive;
    }


    // Events
    event Transfer(address indexed from, address indexed to, uint256 tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 tokenId);

    event RegionAllowSaleLands(uint16 regionId);
    event ActivateMap(int256 x, int256 y, uint256 tokenId);
    event AddRegion(uint16 indexed regionId);
    event UpdateRegionPrice(uint16 indexed regionId, uint256 price);
    event ChangeRegionName(uint16 indexed regionId, string regionName);
    event TaxUpdate(uint16 indexed regionId, uint8 tax);
    event RegionOnSale(uint16 indexed regionId);
    event RegionNewBid(uint16 indexed regionId, address buyer, uint256 value, uint256 activeTill);
    event AuctionStarts(uint16 indexed regionId);
    event RegionSold(uint16 indexed regionId, address owner);
    event Payout(address indexed to, uint256 value);
    event RegionPayout(address indexed to, uint256 value);
    event EndSale(bool isEnded);
}

Contract ABI
[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setMinMargin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"completeRegionAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"regionId","type":"uint16"}],"name":"getRegionPrice","outputs":[{"name":"next_bid","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"getPayouts","outputs":[{"name":"payouts","type":"uint256[49]"},{"name":"addresses","type":"address[49]"},{"name":"tokenBought","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"divider","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"buyLand","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minMargin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokens","outputs":[{"name":"resources","type":"uint8"},{"name":"region","type":"uint16"},{"name":"buyPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"makeBid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"setAllowSellLands","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"regionName","type":"string"}],"name":"setRegionName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int32[]"},{"name":"y","type":"int32[]"},{"name":"region","type":"uint8[]"},{"name":"resources","type":"uint8[]"}],"name":"activateZone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_regionId","type":"uint16"},{"name":"_startPrice","type":"uint256"},{"name":"_regionName","type":"string"}],"name":"addRegion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"approved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"int32"},{"name":"","type":"int32"}],"name":"zone","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"setRegionOnSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"regions","outputs":[{"name":"owner","type":"address"},{"name":"tax","type":"uint8"},{"name":"startPrice","type":"uint256"},{"name":"regionName","type":"string"},{"name":"onSale","type":"bool"},{"name":"allowSaleLands","type":"bool"},{"name":"created","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"region_bids","outputs":[{"name":"currentBuyer","type":"address"},{"name":"bid","type":"uint256"},{"name":"activeTill","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"getLandPrice","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_mapMaster","type":"address"}],"name":"setMapMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"takeRegion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"owner","type":"address"},{"name":"viewPrice","type":"uint256"}],"name":"setRegionOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"basePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"defaultRegionTax","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_regionId","type":"uint16"}],"name":"regionExists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setBasePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"tax","type":"uint8"}],"name":"setRegionTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"price","type":"uint256"}],"name":"setRegionPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SaleActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawalAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mapMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setSaleEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"zone_reverse","outputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"regionId","type":"uint16"}],"name":"RegionAllowSaleLands","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"x","type":"int256"},{"indexed":false,"name":"y","type":"int256"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"ActivateMap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"AddRegion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"}],"name":"UpdateRegionPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"regionName","type":"string"}],"name":"ChangeRegionName","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"tax","type":"uint8"}],"name":"TaxUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"RegionOnSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"activeTill","type":"uint256"}],"name":"RegionNewBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"AuctionStarts","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"owner","type":"address"}],"name":"RegionSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"RegionPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"isEnded","type":"bool"}],"name":"EndSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Contract Creation Code
60806040526001600860006101000a81548160ff021916908315150217905550662386f26fc100006009556606e80ec5718000600a556008600b60006101000a81548163ffffffff021916908363ffffffff160217905550600a600b60046101000a81548160ff021916908360ff1602179055503480156200008057600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c80548091906001016200015b9190620001ce565b50600c6001600c80549050038154811015156200017457fe5b90600052602060002090600302019050338160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027d565b815481835581811115620001fe57600302816003028360005260206000209182019101620001fd919062000203565b5b505050565b6200027a91905b808211156200027657600080820160006101000a81549060ff02191690556000820160016101000a81549061ffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506003016200020a565b5090565b90565b61499f806200028d6000396000f30060806040526004361061023b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146102405780631051db341461028d57806318160ddd146102bc5780631c31f710146102e757806322f3e2d41461032a57806323b872dd1461035957806327e235e3146103c65780632cc273411461041d5780632ce2d7c01461044a578063301f2dac1461047b578063301fdb54146104c0578063378efa371461057557806338af3eed146105ac57806338e998a71461060357806339c294be146106335780634f64b2be1461065e57806351c03b85146106ee57806360bd409e146107125780636352211e146107435780636b55264d146107b05780636eebb73f1461082757806370a0823114610956578063792a152d146109ad5780637d4061e614610a2e578063835fc6ca14610a9b5780638d3f1e4414610ac85780638da5cb5b14610b19578063969bece314610b705780639a877fb314610ba15780639fe0b36714610cb3578063a9059cbb14610d32578063ab07f05414610d7f578063b43d9ede14610dd0578063b5dcbb6914610e13578063b68e855214610e44578063c7876ea414610e9f578063cd9a27ba14610eca578063d5a506d014610efb578063de4b326214610f44578063e850efaf14610f71578063eb0bfa3814610faf578063f1d2165f14610fea578063f2fde38b14611019578063f44b79b31461105c578063f4d176e114611073578063f835a686146110ca578063fa5d174d146110e1575b600080fd5b34801561024c57600080fd5b5061028b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611135565b005b34801561029957600080fd5b506102a26112fc565b604051808215151515815260200191505060405180910390f35b3480156102c857600080fd5b506102d1611301565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610328600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130e565b005b34801561033657600080fd5b5061033f6113ad565b604051808215151515815260200191505060405180910390f35b34801561036557600080fd5b506103c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c4565b005b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115cc565b6040518082815260200191505060405180910390f35b34801561042957600080fd5b50610448600480360381019080803590602001909291905050506115e4565b005b34801561045657600080fd5b50610479600480360381019080803561ffff169060200190929190505050611649565b005b34801561048757600080fd5b506104aa600480360381019080803561ffff1690602001909291905050506117bd565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b506104fb600480360381019080803560030b9060200190929190803560030b9060200190929190505050611924565b6040518084603160200280838360005b8381101561052657808201518184015260208101905061050b565b5050505090500183603160200280838360005b83811015610554578082015181840152602081019050610539565b505050509050018260ff1660ff168152602001935050505060405180910390f35b34801561058157600080fd5b5061058a611b62565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156105b857600080fd5b506105c1611b78565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610631600480360381019080803560030b9060200190929190803560030b9060200190929190505050611b9e565b005b34801561063f57600080fd5b506106486121e8565b6040518082815260200191505060405180910390f35b34801561066a57600080fd5b50610689600480360381019080803590602001909291905050506121ee565b604051808560ff1660ff1681526020018461ffff1661ffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b610710600480360381019080803561ffff169060200190929190505050612268565b005b34801561071e57600080fd5b50610741600480360381019080803561ffff169060200190929190505050612711565b005b34801561074f57600080fd5b5061076e600480360381019080803590602001909291905050506127e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107bc57600080fd5b50610825600480360381019080803561ffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612830565b005b34801561083357600080fd5b5061095460048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612963565b005b34801561096257600080fd5b50610997600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a4b565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b50610a2c600480360381019080803561ffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612a94565b005b348015610a3a57600080fd5b50610a5960048036038101908080359060200190929190505050612c47565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aa757600080fd5b50610ac660048036038101908080359060200190929190505050612c7a565b005b348015610ad457600080fd5b50610b03600480360381019080803560030b9060200190929190803560030b9060200190929190505050612d65565b6040518082815260200191505060405180910390f35b348015610b2557600080fd5b50610b2e612d8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7c57600080fd5b50610b9f600480360381019080803561ffff169060200190929190505050612daf565b005b348015610bad57600080fd5b50610bd0600480360381019080803561ffff169060200190929190505050612e76565b604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018760ff1660ff16815260200186815260200180602001851515151581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c72578082015181840152602081019050610c57565b50505050905090810190601f168015610c9f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b348015610cbf57600080fd5b50610ce2600480360381019080803561ffff169060200190929190505050612fa4565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b348015610d3e57600080fd5b50610d7d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fee565b005b348015610d8b57600080fd5b50610dba600480360381019080803560030b9060200190929190803560030b90602001909291905050506132d2565b6040518082815260200191505060405180910390f35b348015610ddc57600080fd5b50610e11600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136ab565b005b348015610e1f57600080fd5b50610e42600480360381019080803561ffff16906020019092919050505061374a565b005b348015610e5057600080fd5b50610e9d600480360381019080803561ffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506138b2565b005b348015610eab57600080fd5b50610eb4613afa565b6040518082815260200191505060405180910390f35b348015610ed657600080fd5b50610edf613b00565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f0757600080fd5b50610f2a600480360381019080803561ffff169060200190929190505050613b13565b604051808215151515815260200191505060405180910390f35b348015610f5057600080fd5b50610f6f60048036038101908080359060200190929190505050613b48565b005b348015610f7d57600080fd5b50610fad600480360381019080803561ffff169060200190929190803560ff169060200190929190505050613bad565b005b348015610fbb57600080fd5b50610fe8600480360381019080803561ffff16906020019092919080359060200190929190505050613d5f565b005b348015610ff657600080fd5b50610fff613ec6565b604051808215151515815260200191505060405180910390f35b34801561102557600080fd5b5061105a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ed9565b005b34801561106857600080fd5b5061107161402e565b005b34801561107f57600080fd5b5061108861410b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110d657600080fd5b506110df614131565b005b3480156110ed57600080fd5b5061110c600480360381019080803590602001909291905050506141e5565b604051808360030b60030b81526020018260030b60030b81526020019250505060405180910390f35b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561115c57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112015760003411156111fc573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156111fa573d6000803e3d6000fd5b505b6112f7565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415151561123e57600080fd5b836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3505b505050565b600181565b6000600c80549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900460ff16905090565b803373ffffffffffffffffffffffffffffffffffffffff16600c828154811015156113eb57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149057600034111561148b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611489573d6000803e3d6000fd5b505b6115c6565b81838073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114ff57600080fd5b84600c8581548110151561150f57fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350505b50505050565b60026020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163f57600080fd5b80600a8190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116a557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561171d576117ba565b42600760008361ffff1661ffff16815260200190815260200160002060020154118061176757506000600760008361ffff1661ffff16815260200190815260200160002060020154145b15611771576117ba565b6117b981600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b5b50565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561185857600760008361ffff1661ffff16815260200190815260200160002060010154905061191f565b600073ffffffffffffffffffffffffffffffffffffffff16600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118fc576706f05b59d3b20000600760008461ffff1661ffff1681526020019081526020016000206001015401905061191e565b600660008361ffff1661ffff1681526020019081526020016000206001015490505b5b919050565b61192c614753565b611934614777565b600080600061194161479b565b6003880392505b6003880160030b8360030b131515611b4f576003870391505b6003870160030b8260030b131515611b42578260030b8860030b14801561198d57508160030b8760030b145b1561199757611b35565b600c600460008560030b60030b815260200190815260200160002060008460030b60030b8152602001908152602001600020548154811015156119d657fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081604001511115611b3457600b60009054906101000a900463ffffffff1663ffffffff168160400151811515611ac357fe5b04868560ff16603181101515611ad557fe5b6020020181815250508060600151858560ff16603181101515611af457fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083806001019450505b5b8180600101925050611961565b8280600101935050611948565b8585859550955095505050509250925092565b600b60009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611ba9614753565b611bb1614777565b6000806000600860009054906101000a900460ff161515611bd157600080fd5b600c600460008b60030b60030b815260200190815260200160002060008a60030b60030b815260200190815260200160002054815481101515611c1057fe5b906000526020600020906003020196506000600460008b60030b60030b815260200190815260200160002060008a60030b60030b8152602001908152602001600020541480611c63575060008760010154115b80611cbf5750600073ffffffffffffffffffffffffffffffffffffffff168760020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80611d055750600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060030160019054906101000a900460ff16155b15611d60576000341115611d5b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611d59573d6000803e3d6000fd5b505b6121dd565b611d6a89896132d2565b95506000861415611dcb576000341115611dc6573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611dc4573d6000803e3d6000fd5b505b6121dd565b34861115611e29576000341115611e24573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611e22573d6000803e3d6000fd5b505b6121dd565b34861015611e7b573373ffffffffffffffffffffffffffffffffffffffff166108fc8734039081150290604051600060405180830381858888f19350505050158015611e79573d6000803e3d6000fd5b505b611e858989611924565b809550819650829750505050338760020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550858760010181905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550611f37858588614361565b50611f538760000160019054906101000a900461ffff166144e0565b60ff169150600073ffffffffffffffffffffffffffffffffffffffff16600660008960000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611fe55750606482115b15612146576064808303600a546002860a60ff16020260648403600954020181151561200d57fe5b049050600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120a6573d6000803e3d6000fd5b50600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e20eee8794e3a490330b424b5875ba62ffefb32b4ae48090cb82edfc2d2ec89826040518082815260200191505060405180910390a25b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460008d60030b60030b815260200190815260200160002060008c60030b60030b8152602001908152602001600020546040518082815260200191505060405180910390a35b505050505050505050565b600a5481565b600c818154811015156121fd57fe5b90600052602060002090600302016000915090508060000160009054906101000a900460ff16908060000160019054906101000a900461ffff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b600080600860009054906101000a900460ff16151561228657600080fd5b826000600760008361ffff1661ffff16815260200190815260200160002060020154141580156122d3575042600760008361ffff1661ffff16815260200190815260200160002060020154105b806123495750600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8061237d5750600660008261ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b156123d85760003411156123d3573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156123d1573d6000803e3d6000fd5b505b61270b565b600073ffffffffffffffffffffffffffffffffffffffff16600760008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561247c576706f05b59d3b20000600760008661ffff1661ffff1681526020019081526020016000206001015401925061249e565b600660008561ffff1661ffff1681526020019081526020016000206001015492505b348311156124fc5760003411156124f7573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156124f5573d6000803e3d6000fd5b505b61270a565b600760008561ffff1661ffff1681526020019081526020016000209150600073ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125e7578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc83600101549081150290604051600060405180830381858888f193505050501580156125e1573d6000803e3d6000fd5b50612619565b8361ffff167ff6e8b71db70830e39e2c98f38b929b65c3521e6479cc5fa19b21567574f2b7a460405160405180910390a25b62093a8042018260020181905550338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503482600101819055508361ffff167f29a276aafcd155473a77c82e5c2a4ccc84d83bac0fcd454d1e9ca6dacecf0c1f3334600760008961ffff1661ffff16815260200190815260200160002060020154604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a25b5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561276d57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160016101000a81548160ff0219169083151502179055507fb51fb8bbfa3da24418034519117a50979b837f70e121296bc026ee665ce79b2381604051808261ffff1661ffff16815260200191505060405180910390a150565b6000600c828154811015156127f757fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561288b57600080fd5b80600660008461ffff1661ffff16815260200190815260200160002060020190805190602001906128bd9291906147e1565b508161ffff167fb06f576e825ec000eb0407092b3150b13f3c68cc964d0a5a8405c0b715e714ac826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561292557808201518184015260208101905061290a565b50505050905090810190601f1680156129525780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156129c157600080fd5b600090505b8451811015612a4457612a3785828151811015156129e057fe5b9060200190602002015185838151811015156129f857fe5b906020019060200201518584815181101515612a1057fe5b906020019060200201518585815181101515612a2857fe5b906020019060200201516145a6565b80806001019150506129c6565b5050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612af257600080fd5b600860009054906101000a900460ff161515612b0d57600080fd5b600660008561ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff1615612b4357612c41565b600660008561ffff1661ffff1681526020019081526020016000209050828160010181905550600b60049054906101000a900460ff168160000160146101000a81548160ff021916908360ff16021790555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816002019080519060200190612bf19291906147e1565b5060018160030160026101000a81548160ff0219169083151502179055508361ffff167f399f06325e5cc0f4ee1fb06491dbac3bb10e0b26fe872a831673a1b84e326c3560405160405180910390a25b50505050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cd557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115612cf957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d61573d6000803e3d6000fd5b5050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e0b57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508061ffff167f1f4df03e985a1c2625c2bb5c99d6baabdcf19970943fc02c21110cf810fe48ed60405160405180910390a250565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff1690806001015490806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f615780601f10612f3657610100808354040283529160200191612f61565b820191906000526020600020905b815481529060010190602001808311612f4457829003601f168201915b5050505050908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16908060030160029054906101000a900460ff16905087565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561301557fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130ba5760003411156130b5573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156130b3573d6000803e3d6000fd5b505b6132cd565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141515156130f757600080fd5b82848073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561316657600080fd5b85600c8681548110151561317657fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35050505b505050565b60006132dc61479b565b6132e4614861565b6132ec614883565b6000806000806000600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205414156133305761369e565b600c600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205481548110151561336f57fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050965060038a0360030b86600060028110151561343e57fe5b6020020181815250506003890360030b86600160028110151561345d57fe5b6020020181815250506040805190810160405280600081526020016000815250945060038a0393505b60038a0160030b8460030b1315156135d8576003890392505b6003890160030b8360030b1315156135cb578360030b8a60030b1480156134cb57508260030b8960030b145b156134d5576135be565b6000600c600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000205481548110151561351657fe5b90600052602060002090600302016001015411156135bd57600c600460008660030b60030b815260200190815260200160002060008560030b60030b81526020019081526020016000205481548110151561356d57fe5b90600052602060002090600302016001015485600160028110151561358e57fe5b6020020181815101915081815250508460006002811015156135ac57fe5b602002018051809190600101815250505b5b828060010193505061349f565b8380600101945050613486565b866020015191506135e8826144e0565b905060008560006002811015156135fb57fe5b602002015114156136215760648160ff166009540281151561361957fe5b04975061369d565b60648160ff16600a54600288600060028110151561363b57fe5b60200201510a020281151561364c57fe5b04600b60009054906101000a900463ffffffff1663ffffffff1686600160028110151561367557fe5b602002015181151561368357fe5b0460648360ff166009540281151561369757fe5b04010197505b5b5050505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561370657600080fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156137c357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561383b57600080fd5b42600760008361ffff1661ffff1681526020019081526020016000206002015410151561386757600080fd5b6138af81600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561390f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156139b25750600660008561ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15156139bd57600080fd5b82600660008661ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008561ffff1661ffff1681526020019081526020016000209050428160020181905550828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508181600101819055508361ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b60095481565b600b60049054906101000a900460ff1681565b6000600660008361ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ba357600080fd5b8060098190555050565b813373ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c77576000341115613c72573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015613c70573d6000803e3d6000fd5b505b613d5a565b600860009054906101000a900460ff161515613c9257600080fd5b60648260ff1611158015613caa575060008260ff1610155b1515613cb557600080fd5b81600660008561ffff1661ffff16815260200190815260200160002060000160146101000a81548160ff021916908360ff1602179055508261ffff167fc72bc3ebe54db6ad5d04be20eb76955c1fbdfc05fc89a45d3959eca9f75e77cb600660008661ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff16604051808260ff1660ff16815260200191505060405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dba57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015613e5d5750600660008361ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15613ec25780600660008461ffff1661ffff168152602001908152602001600020600101819055508161ffff167f334cd32957a0eb9f4c727ed73fab8a13424e9da07e864bd7beb3f84c7650b3e8826040518082815260200191505060405180910390a25b5050565b600860009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613f3457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613f7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561408957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015614108573d6000803e3d6000fd5b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561418c57600080fd5b6000600860006101000a81548160ff0219169083151502179055507f75db2c8af3a77c8f79f1e5f6f7606c455d1d3d974acad372b8f4c38d0b541a396001604051808215151515815260200191505060405180910390a1565b60056020528060005260406000206000915090508060000160009054906101000a900460030b908060000160049054906101000a900460030b905082565b80600660008461ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008461ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508161ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e600660008561ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b600080600090505b60318160ff1610156144d557600073ffffffffffffffffffffffffffffffffffffffff16848260ff1660318110151561439e57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1614156143c4576144c8565b838160ff166031811015156143d557fe5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc868360ff1660318110151561440457fe5b60200201519081150290604051600060405180830381858888f19350505050158015614434573d6000803e3d6000fd5b50838160ff1660318110151561444657fe5b602002015173ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6868360ff1660318110151561449357fe5b60200201516040518082815260200191505060405180910390a2848160ff166031811015156144be57fe5b6020020151830392505b8080600101915050614369565b829150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561458b57600660008361ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff1660640190506145a1565b600b60049054906101000a900460ff1660640190505b919050565b6000600c80548091906001016145bc91906148a5565b50600c6001600c80549050038154811015156145d457fe5b906000526020600020906003020190508260ff168160000160016101000a81548161ffff021916908361ffff160217905550818160000160006101000a81548160ff021916908360ff160217905550600081600101819055506001600c8054905003600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000208190555060408051908101604052808660030b81526020018560030b815250600560006001600c8054905003815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908360030b63ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908360030b63ffffffff1602179055509050507f8f32e652c6806b682ac4685b78efed8695949d3dc61a1d22e96fedea32bab1f385856001600c8054905003604051808460030b81526020018360030b8152602001828152602001935050505060405180910390a15050505050565b61062060405190810160405280603190602082028038833980820191505090505090565b61062060405190810160405280603190602082028038833980820191505090505090565b608060405190810160405280600060ff168152602001600061ffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061482257805160ff1916838001178555614850565b82800160010185558215614850579182015b8281111561484f578251825591602001919060010190614834565b5b50905061485d91906148d7565b5090565b6040805190810160405280600290602082028038833980820191505090505090565b6040805190810160405280600290602082028038833980820191505090505090565b8154818355818111156148d2576003028160030283600052602060002091820191016148d191906148fc565b5b505050565b6148f991905b808211156148f55760008160009055506001016148dd565b5090565b90565b61497091905b8082111561496c57600080820160006101000a81549060ff02191690556000820160016101000a81549061ffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600301614902565b5090565b905600a165627a7a72305820be3d31cf1b4ded27c2bcd792c5a6fae0969aad5c77f55fcd0f7ed783874846fd0029


   Swarm Source:
bzzr://be3d31cf1b4ded27c2bcd792c5a6fae0969aad5c77f55fcd0f7ed783874846fd
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.