S Price: $0.067838 (+1.74%)
Gas: 55 Gwei

Contract

0xB921549a28F9D3575899e96Fbb443902908D7B75

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Fire Up574272852025-12-08 6:37:1449 days ago1765175834IN
0xB921549a...2908D7B75
0 S0.0164772851
Fire Up507161162025-10-15 10:35:50103 days ago1760524550IN
0xB921549a...2908D7B75
0 S0.0062870650.0001
Fire Up507139122025-10-15 10:06:51103 days ago1760522811IN
0xB921549a...2908D7B75
0 S0.0200840652
Fire Up102563062025-02-26 8:43:53334 days ago1740559433IN
0xB921549a...2908D7B75
0 S0.0057116955
Fire Up102562712025-02-26 8:43:41334 days ago1740559421IN
0xB921549a...2908D7B75
0 S0.0057116955
Fire Up102562452025-02-26 8:43:31334 days ago1740559411IN
0xB921549a...2908D7B75
0 S0.0057116955
Fire Up102562122025-02-26 8:43:17334 days ago1740559397IN
0xB921549a...2908D7B75
0 S0.0066521955
Fire Up102561742025-02-26 8:43:04334 days ago1740559384IN
0xB921549a...2908D7B75
0 S0.0067621955
Fire Up102561542025-02-26 8:42:55334 days ago1740559375IN
0xB921549a...2908D7B75
0 S0.0107999655
Fire Up102560182025-02-26 8:42:02334 days ago1740559322IN
0xB921549a...2908D7B75
0 S0.0035906755
Fire Up102559952025-02-26 8:41:52334 days ago1740559312IN
0xB921549a...2908D7B75
0 S0.0035906755
Fire Up102559672025-02-26 8:41:42334 days ago1740559302IN
0xB921549a...2908D7B75
0 S0.0035906755
Fire Up102559352025-02-26 8:41:29334 days ago1740559289IN
0xB921549a...2908D7B75
0 S0.0057103755
Fire Up102559122025-02-26 8:41:20334 days ago1740559280IN
0xB921549a...2908D7B75
0 S0.0057103755
Fire Up102558602025-02-26 8:41:01334 days ago1740559261IN
0xB921549a...2908D7B75
0 S0.0066508755
Fire Up102558332025-02-26 8:40:51334 days ago1740559251IN
0xB921549a...2908D7B75
0 S0.0116460355
Fire Up101080912025-02-25 17:58:36335 days ago1740506316IN
0xB921549a...2908D7B75
0 S0.00945455
Fire Up98589212025-02-24 17:37:48336 days ago1740418668IN
0xB921549a...2908D7B75
0 S0.0037335655
Fire Up98588882025-02-24 17:37:36336 days ago1740418656IN
0xB921549a...2908D7B75
0 S0.0037335655
Fire Up98588532025-02-24 17:37:24336 days ago1740418644IN
0xB921549a...2908D7B75
0 S0.0037335655
Fire Up98588212025-02-24 17:37:11336 days ago1740418631IN
0xB921549a...2908D7B75
0 S0.0037335655
Fire Up98588072025-02-24 17:37:05336 days ago1740418625IN
0xB921549a...2908D7B75
0 S0.0037335655
Fire Up98587632025-02-24 17:36:50336 days ago1740418610IN
0xB921549a...2908D7B75
0 S0.0037335655
Fire Up98586892025-02-24 17:36:23336 days ago1740418583IN
0xB921549a...2908D7B75
0 S0.0037335655
Fire Up98586652025-02-24 17:36:15336 days ago1740418575IN
0xB921549a...2908D7B75
0 S0.0037335655
View all transactions

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DxFire

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2024-12-30
*/

// SPDX-License-Identifier: MIT
//DX Fire Rank
pragma solidity ^0.8.17;


interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}



library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


/**
 * @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 OwnershipRenounced(address indexed previousOwner);
  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 relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @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 {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

contract Consts {

    address public  platformTokenETH = 0xF063fE1aB7a291c5d06a86e14730b00BF24cB589; // Sale token address valid for mainnet ETH
    address public  platformTokenBSC = 0x04F73A09e2eb410205BE256054794fB452f0D245; // Sale token address valid for mainnet BSC
    address public team_acc = 0xC14fb72518E67B008f1BD8E195861472f8128090;    //valid for mainnet
    uint256  public minPlatTokenReq = 1000000000000000000000;  //1000 sale tokens
    address public dead = 0x000000000000000000000000000000000000dEaD;
    address public deadzero = 0x0000000000000000000000000000000000000000;
    bool public burn = true;
    bool public feesEnabled = false;
    uint256 public fireFees = 100000000000000;
}



contract DxFire is Consts,Ownable {
    
    using SafeMath for uint256;
   

//address payable platformAddress;



    
    mapping(address => mapping(address => uint256)) public voterPresale;
    mapping(address => mapping(address => uint256)) public voterToken;
    mapping(address => mapping(address => uint256)) public voteCount;
    mapping(address => address) public tokenToPresaleAddr;
    mapping(address => address) public presaleToTokenAddr;
    mapping(address => bool) public embargo;
    mapping(address => bool) public tokenDisabled;
    mapping(address => bool) public presaleDisabled;
    mapping(address => bool) public Moderator;
    mapping(address => uint256) public tokenIndex;
    mapping(address => bool) public tokenIndexed;
    //mapping(address => uint256) public upvote;
    mapping(address => uint256) public upvoteToken;
    //mapping(address => uint256) public proUpvote;
    //mapping(address => uint256) public proDownvote;    
    mapping(uint256 => uint256) public top10;
    //address[] public top10PreAddr = new address[](11);
    //address[] public top10TokAddr = new address[](11);
    mapping(uint256 => address) public top10TokAddr;
    uint256 public lastReset = block.timestamp;
    uint256 public fireDownThreshold = 18000;
    uint256 public voteReductionAmount = 1;
    uint256 public votingTimeout = 0;
    bool public fireMeterDisabled;
    bool public reductionDisabled;
/*
 function swapPresaleAddr(address addrIn, address addrOut, uint256 index) internal {
     
     
     top10PreAddr[index] = addrIn;
     top10PreAddr[index.add(1)] = addrOut;
     
     
 }
*/
 function swapTokenAddr(address addrIn, address addrOut, uint256 index) internal {
     
     
     top10TokAddr[index] = addrIn;
     top10TokAddr[index+1] = addrOut;
     if(tokenIndex[addrIn] > 0){
        tokenIndex[addrIn] = tokenIndex[addrIn].sub(1);
     }
     if(addrOut != address(0x0)){
        tokenIndex[addrOut] = tokenIndex[addrOut].add(1);
     }
 }
 /*
  function enableVote(address _presale) public {
      
    require(!presaleVoteStruct[_presale].votingEnabled, "Voting already enabled!");
    presaleVotes memory votingPresalesData = presaleVotes({
                          votingEnabled:true,
                          upvotes:0,
                          downvotes:0,
                          proupvotes:0,
                          prodownvotes:0
            });
            
    presaleVoteStruct[_presale] = votingPresalesData;
      
      
  }

*/
    function FireUp(address _presale, address _token) public payable{
        require(msg.sender == tx.origin,"can't vote via contracts");
        require(!fireMeterDisabled,"fire meter disabled");
        require(!tokenDisabled[_token],"this token is not eligible");
        require(!presaleDisabled[_presale],"this presale is not eligible");        
        require(_presale != address(0),"cant vote on zero presale addrs!");
        require(_token != address(0),"cant vote on zero token addrs!");
        require(!embargo[msg.sender],"voter is not allowed!");
        
        if(feesEnabled){
            if(burn){
                require(IERC20(platformTokenETH).transferFrom(msg.sender,dead,minPlatTokenReq), "sale token transfer fail");
            }
            else{
                require(msg.value >= fireFees,"msg.value must be >= drop fees");
                payable(team_acc).transfer(fireFees);
            }
        } 
 //       require(block.timestamp > voterPresale[_presale][msg.sender], "presale voting timeout");
        require(block.timestamp > voterToken[_token][msg.sender], "token voting timeout");
        if(!reductionDisabled){
            if(block.timestamp > lastReset.add(fireDownThreshold)){           
                reduceTopVote();    
                lastReset = block.timestamp;
            }
        } 
        
//        voterPresale[_presale][msg.sender] = block.timestamp.add(votingTimeout);
        voterToken[_token][msg.sender] = block.timestamp.add(votingTimeout);
//    presaleVoteStruct[_presale].upvotes++;
//        upvote[_presale]++;
        upvoteToken[_token]++;
        voteCount[msg.sender][_token]++;
        if(presaleToTokenAddr[_presale] == address(0)){
            presaleToTokenAddr[_presale] = _token;
            tokenToPresaleAddr[_token] = _presale;
        }
/*        
//        uint i = 9;
//        while(i < 10){
        for(uint i = 9;i >= 0; i--){
        
            if(upvoteToken[_token] >= top10[i]){
                if(i == 0){
//                    swapPresaleAddr(_presale, top10PreAddr[i],i);
//                    swapTokenAddr(_token,top10TokAddr[i],i);
                    top10[i] = upvoteToken[_token];

                }
            }
            else{
//                    swapPresaleAddr(_presale, top10PreAddr[i-1],i-1);
//                    swapTokenAddr(_token,top10TokAddr[i-1],i-1);
                    top10[i] = upvoteToken[_token];                
//                    break;
            
            }
            
//            i--;        
        }
        */
    if(!tokenIndexed[_token]) {
//        if(upvoteToken[_token] >= top10[10]){

//                    swapPresaleAddr(_presale, top10PreAddr[i],i);
//                    swapTokenAddr(_token,top10TokAddr[i],i);
//                    top10[9] = upvoteToken[_token];
                    tokenIndex[_token] = 10;
                
//            }       
        tokenIndexed[_token] = true;
   }
    else {
        if(tokenIndex[_token] > 0){
            if(upvoteToken[_token] >= top10[tokenIndex[_token].sub(1)]){
           
                swapTokenAddr(_token,top10TokAddr[tokenIndex[_token].sub(1)],tokenIndex[_token].sub(1)); 
                top10[tokenIndex[_token]] = upvoteToken[_token];
                top10[tokenIndex[top10TokAddr[tokenIndex[_token].add(1)]]] = upvoteToken[top10TokAddr[tokenIndex[_token].add(1)]];           
                }
            }
            
            else {
                
                top10[tokenIndex[_token]] = upvoteToken[_token];
                
            }
        }
    }
    function reduceTopVote() internal {
//        uint i = 9;    
//       while(i >= 0){
        for(uint256 i = 0;i <= 9;i++){
        if(top10[i] >= voteReductionAmount){
            top10[i] = top10[i].sub(voteReductionAmount); 
//          upvote[top10PreAddr[i]] = upvote[top10PreAddr[i]].sub(voteReductionAmount);
            upvoteToken[top10TokAddr[i]] = top10[i];
        }
           else{
               
             top10[i] = 0;  
             upvoteToken[top10TokAddr[i]] = 0;  
           }
//          i--;
       } 
        

    }


    function reduceTopVoteOwner() public onlyOwner {
//        uint i = 9;    
//       while(i >= 0){
        for(uint256 i = 0;i <= 9;i++){
        if(top10[i] >= voteReductionAmount){
            uint256 tempTop10 = top10[i].sub(voteReductionAmount);
            uint256 tempUpVote = upvoteToken[top10TokAddr[i]].sub(voteReductionAmount);
            top10[i] = tempTop10; 
//          upvote[top10PreAddr[i]] = upvote[top10PreAddr[i]].sub(voteReductionAmount);
//            upvoteToken[top10TokAddr[i]] = tempUpVote;
            upvoteToken[top10TokAddr[i]] = top10[i];
        }
           else{
               
             top10[i] = 0;  
             upvoteToken[top10TokAddr[i]] = 0;  
           }
//          i--;
       } 
        

    }    
    /*
    function PROUPVOTE(address _presale) public{
        require(!embargo[msg.sender],"voter is not allowed!");
        require(proVoter[msg.sender],"voter is not pro!");
        //require(IERC20(platformToken).balanceOf(msg.sender) >= minPlatTokenReq, "User doesnt have enough sale token to vote!");
        require(!voter[_presale][msg.sender], "User already voted!");
        

            
    voter[_presale][msg.sender] = true;
//    presaleVoteStruct[_presale].proupvotes++;
    proUpvote[_presale]++;

   
 
    }
*/    
    /*
    function DOWNVOTE(address _presale) public payable{

        require(!embargo[msg.sender],"voter is not allowed!");
        
        if(feesEnabled){
            if(burn){
                require(IERC20(platformTokenETH).transferFrom(msg.sender,dead,minPlatTokenReq), "sale token transfer fail");
            }
            else{
                require(msg.value >= dropFees,"msg.value must be >= drop fees");
                payable(team_acc).transfer(dropFees);
            }
        }
        
        
        require(presaleVoteStruct[_presale].votingEnabled, "Voting not enabled!");
        require(!voter[_presale][msg.sender].alreadyVoted, "User already voted!");
        

            
    voter[_presale][msg.sender] = true;
    presaleVoteStruct[_presale].downvotes++;
    downvote[_presale]++;

   
 
    }
    
    */
    
    /*
    function PRODOWNVOTE(address _presale) public{
        require(!embargo[msg.sender],"voter is not allowed!");
        require(proVoter[msg.sender],"voter is not pro!");
        //require(IERC20(platformToken).balanceOf(msg.sender) >= minPlatTokenReq, "User doesnt have enough sale token to vote!");
        require(presaleVoteStruct[_presale].votingEnabled, "Voting not enabled!");
        require(!voter[_presale][msg.sender].alreadyVoted, "User already voted!");
        

            
    voter[_presale][msg.sender] = true;
    presaleVoteStruct[_presale].prodownvotes++;
    proDownvote[_presale]++;

   
 
    } 
    
    */
    
 /*   
    function addToProVoter(address _walletAddress)  onlyOwner public{
        
        proVoter[_walletAddress]=true;
        
        
    }
    
    function removeFromProVoter(address _walletAddress)  onlyOwner public{
        
        proVoter[_walletAddress]=false;
        
        
    }
*/    
    function updateDeadAddress(address _newDeadAddress) onlyOwner public {
        
        dead = _newDeadAddress;
        
        
    }    
     function updatePlatformTokenAddress(address _newTokenAddress) onlyOwner public {
        
        platformTokenETH = _newTokenAddress;
        
        
    }    
    function addToEmbargo(address _embargoAddress) onlyOwner public {
        
        require(!embargo[_embargoAddress],"voter is already embargoed");
        
        embargo[_embargoAddress] = true;
        
        
    }
    function removeFromEmbargo(address _embargoAddress) onlyOwner public {
        
        require(embargo[_embargoAddress],"voter is not in embargo list");
        
        embargo[_embargoAddress] = false;
        
        
    }
    
 function AddToWhitelist(address[] memory _whitelistAddress) public onlyOwner{
     
    for(uint256 i = 0; i < _whitelistAddress.length; i++){
        addToEmbargo(_whitelistAddress[i]);
    }
     
 }
 
 function RemoveFromWhitelist(address[] memory _whitelistAddress) public onlyOwner{
     
    for(uint256 i = 0; i < _whitelistAddress.length; i++){
        removeFromEmbargo(_whitelistAddress[i]);
    }
 }
 
function changeSaleRequired(uint256 _newFeeAmount) public onlyOwner {
    
    require(_newFeeAmount >= 0,"invalid amount");
    minPlatTokenReq = _newFeeAmount;
    
    
    
}

function changeFees(uint256 _newFeeAmount) public onlyOwner {
    
    require(_newFeeAmount >= 0,"invalid amount");
    fireFees = _newFeeAmount;
    
   
    
}
    function enableFees() public onlyOwner{
        
        
        feesEnabled = true;
        
    }
    function disableFees() public onlyOwner{
        
        
        feesEnabled = false;
        
    }    
    function enableBurn() public onlyOwner{
        
        
        burn = true;
        
    }
    function disableBurn() public onlyOwner{
        
        
        burn = false;
        
    }
    function getTop() public view returns (address[] memory,address[] memory, uint256 [] memory){
        
        address[] memory top10PreAddress = new address[](10);
        address[] memory top10TokAddress = new address[](10);
        uint256[] memory top10TokScore = new uint256[](10);
        for(uint i = 0;i <= 9;i++){
          top10PreAddress[i] = tokenToPresaleAddr[top10TokAddr[i]];
          top10TokAddress[i] = top10TokAddr[i];
          top10TokScore[i] = top10[i];
//          i--;
       } 
        return (top10PreAddress,top10TokAddress, top10TokScore);
        
        
    }
     function getTopToken() public view returns (address[] memory){
        
        address[] memory top10TokAddress = new address[](10);
        for(uint i = 0;i <= 9;i++){
          top10TokAddress[i] = top10TokAddr[i];

//          i--;
       } 
        return (top10TokAddress);
        
        
    }

     function getTopTokenScore() public view returns (uint256[] memory){
        
        uint256[] memory top10TokScore = new uint256[](10);
        for(uint i = 0;i <= 9;i++){
          top10TokScore[i] = top10[i];

//          i--;
       } 
        return (top10TokScore);
        
        
    }
    function changeVoteReduceAmount(uint256 _newAmount) public onlyOwner {
        
        
        voteReductionAmount = _newAmount;
        
        
        
    }
    function changefireDownThreshold(uint256 _newThreshold) public onlyOwner {
        
        
        fireDownThreshold = _newThreshold;
        
        
        
    }
    function changeVotingTimeout(uint256 _newTimeout) public onlyOwner {
        
        
        votingTimeout = _newTimeout;
        
        
        
    }
    function EnableFireMeter() public onlyOwner {
        
        require(fireMeterDisabled,"already enabled");
        fireMeterDisabled = false;
        
        
        
    }
    function DisableFireMeter() public onlyOwner {
        
        require(!fireMeterDisabled,"already disabled");
        fireMeterDisabled = true;
        
        
        
    }

    function EnableVoteReduction() public onlyOwner {
        
        require(reductionDisabled,"already enabled");
        reductionDisabled = false;
        
        
        
    }
    function DisableVoteReduction() public onlyOwner {
        
        require(!reductionDisabled,"already disabled");
        reductionDisabled = true;
        
        
    }
    function DisableToken(address _token) public {
        require(Moderator[msg.sender],"not moderator");
        require(!tokenDisabled[_token],"already disabled");
        tokenDisabled[_token] = true;
        presaleDisabled[tokenToPresaleAddr[_token]] = true;
        
        
    }
    function EnableToken(address _token) public {
        require(Moderator[msg.sender],"not moderator");        
        require(tokenDisabled[_token],"already enabled");
        tokenDisabled[_token] = false;
        presaleDisabled[tokenToPresaleAddr[_token]] = false;        
        
    }

    function addToModerator(address _newModerator) public onlyOwner {
        require(!Moderator[_newModerator],"already added");
        Moderator[_newModerator] = true;
    
    }    
    function removeFromModerator(address _oldModerator) public onlyOwner {
        require(Moderator[_oldModerator],"already removed or never added");
        Moderator[_oldModerator] = false;
    
    }
    
    function updateListScore(uint256 _index,  uint256 _updateScore) public onlyOwner {
        top10[_index] = _updateScore;
    
    }
    function updateListTokenAddress(uint256 _index,  address _updateAddress) public onlyOwner {
        top10TokAddr[_index] = _updateAddress;
    
    }
    function updateListPresaleAddress(address _indexTokenAddress,  address _updatePresaleAddress) public onlyOwner {
        tokenToPresaleAddr[_indexTokenAddress] = _updatePresaleAddress;
    
    }
    function removeFromList(address _token) public onlyOwner {
        top10[tokenIndex[_token]] = 0;
        tokenToPresaleAddr[_token] = deadzero;
        top10TokAddr[tokenIndex[_token]] = deadzero;
        tokenIndex[_token] = 10;
    }    
    function getTimeStamp() public view returns(uint256) {
        return block.timestamp;
    
    }
    function withdrawToken(address _token) public onlyOwner {
        IERC20(_token).transfer(team_acc, IERC20(_token).balanceOf(address(this)));
    
    }
    function withdrawNative(uint256 _amount) public payable onlyOwner {
        payable(team_acc).transfer(_amount);
    
    }

    function updateTeamAcc(address _newAcc) public onlyOwner {
        team_acc = _newAcc;
    
    }   
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address[]","name":"_whitelistAddress","type":"address[]"}],"name":"AddToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DisableFireMeter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"DisableToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DisableVoteReduction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableFireMeter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"EnableToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableVoteReduction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_presale","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"FireUp","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Moderator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_whitelistAddress","type":"address[]"}],"name":"RemoveFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_embargoAddress","type":"address"}],"name":"addToEmbargo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newModerator","type":"address"}],"name":"addToModerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFeeAmount","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFeeAmount","type":"uint256"}],"name":"changeSaleRequired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"name":"changeVoteReduceAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTimeout","type":"uint256"}],"name":"changeVotingTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"name":"changefireDownThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadzero","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"embargo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fireDownThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fireFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fireMeterDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTop","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTopToken","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTopTokenScore","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastReset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPlatTokenReq","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"platformTokenBSC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"platformTokenETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presaleDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presaleToTokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceTopVoteOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reductionDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_embargoAddress","type":"address"}],"name":"removeFromEmbargo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeFromList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oldModerator","type":"address"}],"name":"removeFromModerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"team_acc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenIndexed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenToPresaleAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"top10","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"top10TokAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDeadAddress","type":"address"}],"name":"updateDeadAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_indexTokenAddress","type":"address"},{"internalType":"address","name":"_updatePresaleAddress","type":"address"}],"name":"updateListPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint256","name":"_updateScore","type":"uint256"}],"name":"updateListScore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"address","name":"_updateAddress","type":"address"}],"name":"updateListTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTokenAddress","type":"address"}],"name":"updatePlatformTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAcc","type":"address"}],"name":"updateTeamAcc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"upvoteToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"voteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteReductionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"voterPresale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"voterToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingTimeout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawNative","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600080546001600160a01b031990811673f063fe1ab7a291c5d06a86e14730b00bf24cb5891782556001805482167304f73a09e2eb410205be256054794fb452f0d24517815560028054831673c14fb72518e67b008f1bd8e195861472f8128090179055683635c9adc5dea000006003556004805490921661dead17909155600580546001600160b01b031916600160a01b179055655af3107a4000600655426016556146506017556018556019553480156100bf57600080fd5b50600780546001600160a01b03191633179055612a04806100e16000396000f3fe6080604052600436106103ef5760003560e01c8063884a00ec11610208578063bd73f07c11610118578063d2668187116100ab578063e71001fc1161007a578063e71001fc14610c54578063edcd48e514610c84578063f1bc33b414610c99578063f2fde38b14610caf578063f67403af14610ccf57600080fd5b8063d266818714610bf5578063d503022c14610c0b578063d66299c014610c2b578063da235b2214610c4157600080fd5b8063c9a1e7b2116100e7578063c9a1e7b214610b72578063ca89974d14610b88578063ce404b2314610ba8578063d2639dbf14610bbd57600080fd5b8063bd73f07c14610ac4578063bded69be14610afc578063bf3270e114610b1c578063c241ae0814610b5257600080fd5b80639ca736d91161019b578063af51f6d61161016a578063af51f6d614610a20578063b15d971e14610a40578063bbea88aa14610a5f578063bc2d464614610a74578063bd5e6cee14610aa457600080fd5b80639ca736d91461099f578063a09e34f7146109bf578063a64e4f8a146109df578063af33208e14610a0057600080fd5b80638db1212e116101d75780638db1212e1461091d5780638df7ace71461093d5780638e5d842c1461095f5780638f5dedab1461097f57600080fd5b8063884a00ec1461088d57806389476069146108bd5780638a64d65e146108dd5780638da5cb5b146108fd57600080fd5b8063368f5bd511610303578063513b9a411161029657806362dcd09a1161026557806362dcd09a146107f557806363277ff91461080f5780636cda375b14610845578063715018a61461086557806384276d811461087a57600080fd5b8063513b9a411461073357806358e09bdd146107695780635c2b111914610799578063622b947f146107bd57600080fd5b8063427f91a6116102d2578063427f91a6146106af57806344df8e70146106dc578063498cb4b5146106fd5780634ed661c31461071357600080fd5b8063368f5bd51461062d57806336cf7c87146106425780633907c2f21461067a5780633b37d1d61461069a57600080fd5b80632403c08e116103865780632a546b8f116103555780632a546b8f146105985780632abe2e94146105b85780632b15c49c146105d8578063329a0816146105f85780633567e5ee1461061a57600080fd5b80632403c08e1461052d578063257f9abf146105425780632583d8051461056257806328c4dd0c1461057857600080fd5b806314e048b3116103c257806314e048b3146104ab5780631e0e4b15146104c05780631f4b6598146104ed5780632199b56e1461050d57600080fd5b806302276474146103f457806306332b9a146104345780630b594a2d1461044b5780631416059c1461048b575b600080fd5b34801561040057600080fd5b5061042161040f366004612607565b60146020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561044057600080fd5b50610449610ce4565b005b34801561045757600080fd5b5061047b61046636600461263c565b600f6020526000908152604090205460ff1681565b604051901515815260200161042b565b34801561049757600080fd5b506104496104a636600461266d565b610d38565b3480156104b757600080fd5b50610449610d93565b3480156104cc57600080fd5b506104216104db36600461263c565b60136020526000908152604090205481565b3480156104f957600080fd5b5061044961050836600461263c565b610de3565b34801561051957600080fd5b5061044961052836600461263c565b610eae565b34801561053957600080fd5b50610449610f4e565b34801561054e57600080fd5b5061044961055d36600461263c565b610f74565b34801561056e57600080fd5b5061042160175481565b34801561058457600080fd5b5061044961059336600461266d565b610fff565b3480156105a457600080fd5b506104496105b336600461263c565b611056565b3480156105c457600080fd5b506104496105d3366004612607565b61108f565b3480156105e457600080fd5b506104496105f336600461263c565b6110ab565b34801561060457600080fd5b5061060d61114b565b60405161042b9190612776565b610449610628366004612789565b6111de565b34801561063957600080fd5b5061044961199e565b34801561064e57600080fd5b50600454610662906001600160a01b031681565b6040516001600160a01b03909116815260200161042b565b34801561068657600080fd5b5061044961069536600461263c565b6119ca565b3480156106a657600080fd5b50610449611a9c565b3480156106bb57600080fd5b506104216106ca36600461263c565b60116020526000908152604090205481565b3480156106e857600080fd5b5060055461047b90600160a01b900460ff1681565b34801561070957600080fd5b5061042160035481565b34801561071f57600080fd5b5061044961072e366004612607565b611ac8565b34801561073f57600080fd5b5061066261074e366004612607565b6015602052600090815260409020546001600160a01b031681565b34801561077557600080fd5b5061047b61078436600461263c565b600e6020526000908152604090205460ff1681565b3480156107a557600080fd5b506107ae611ae4565b60405161042b939291906127ec565b3480156107c957600080fd5b506104216107d8366004612789565b600960209081526000928352604080842090915290825290205481565b34801561080157600080fd5b50601a5461047b9060ff1681565b34801561081b57600080fd5b5061066261082a36600461263c565b600b602052600090815260409020546001600160a01b031681565b34801561085157600080fd5b50610449610860366004612607565b611c4b565b34801561087157600080fd5b50610449611c67565b610449610888366004612607565b611cc8565b34801561089957600080fd5b5061047b6108a836600461263c565b60126020526000908152604090205460ff1681565b3480156108c957600080fd5b506104496108d836600461263c565b611d19565b3480156108e957600080fd5b50600254610662906001600160a01b031681565b34801561090957600080fd5b50600754610662906001600160a01b031681565b34801561092957600080fd5b50610449610938366004612607565b611e16565b34801561094957600080fd5b50610952611e32565b60405161042b919061282f565b34801561096b57600080fd5b5061044961097a36600461263c565b611ea6565b34801561098b57600080fd5b5061044961099a366004612842565b611edf565b3480156109ab57600080fd5b506104496109ba366004612607565b611f08565b3480156109cb57600080fd5b506104496109da366004612789565b611f24565b3480156109eb57600080fd5b5060055461047b90600160a81b900460ff1681565b348015610a0c57600080fd5b50610449610a1b366004612864565b611f69565b348015610a2c57600080fd5b50610449610a3b36600461263c565b611fae565b348015610a4c57600080fd5b50601a5461047b90610100900460ff1681565b348015610a6b57600080fd5b50610449611fe7565b348015610a8057600080fd5b5061047b610a8f36600461263c565b60106020526000908152604090205460ff1681565b348015610ab057600080fd5b50610449610abf36600461263c565b612030565b348015610ad057600080fd5b50610421610adf366004612789565b600a60209081526000928352604080842090915290825290205481565b348015610b0857600080fd5b50600554610662906001600160a01b031681565b348015610b2857600080fd5b50610662610b3736600461263c565b600c602052600090815260409020546001600160a01b031681565b348015610b5e57600080fd5b50600054610662906001600160a01b031681565b348015610b7e57600080fd5b5061042160165481565b348015610b9457600080fd5b50610449610ba336600461263c565b6120c4565b348015610bb457600080fd5b50610449612168565b348015610bc957600080fd5b50610421610bd8366004612789565b600860209081526000928352604080842090915290825290205481565b348015610c0157600080fd5b5061042160185481565b348015610c1757600080fd5b50600154610662906001600160a01b031681565b348015610c3757600080fd5b5061042160065481565b348015610c4d57600080fd5b5042610421565b348015610c6057600080fd5b5061047b610c6f36600461263c565b600d6020526000908152604090205460ff1681565b348015610c9057600080fd5b5061044961218e565b348015610ca557600080fd5b5061042160195481565b348015610cbb57600080fd5b50610449610cca36600461263c565b612295565b348015610cdb57600080fd5b506104496122b5565b6007546001600160a01b03163314610cfb57600080fd5b601a54610100900460ff16610d2b5760405162461bcd60e51b8152600401610d2290612887565b60405180910390fd5b601a805461ff0019169055565b6007546001600160a01b03163314610d4f57600080fd5b60005b8151811015610d8f57610d7d828281518110610d7057610d706128b0565b60200260200101516120c4565b80610d87816128dc565b915050610d52565b5050565b6007546001600160a01b03163314610daa57600080fd5b601a54610100900460ff1615610dd25760405162461bcd60e51b8152600401610d22906128f5565b601a805461ff001916610100179055565b3360009081526010602052604090205460ff16610e325760405162461bcd60e51b815260206004820152600d60248201526c3737ba1036b7b232b930ba37b960991b6044820152606401610d22565b6001600160a01b0381166000908152600e602052604090205460ff16610e6a5760405162461bcd60e51b8152600401610d2290612887565b6001600160a01b039081166000908152600e60209081526040808320805460ff19908116909155600b8352818420549094168352600f909152902080549091169055565b6007546001600160a01b03163314610ec557600080fd5b6001600160a01b0381166000908152600d602052604090205460ff16610f2d5760405162461bcd60e51b815260206004820152601c60248201527f766f746572206973206e6f7420696e20656d626172676f206c697374000000006044820152606401610d22565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b6007546001600160a01b03163314610f6557600080fd5b6005805460ff60a01b19169055565b6007546001600160a01b03163314610f8b57600080fd5b6001600160a01b039081166000818152601160208181526040808420805485526014835281852085905560058054878752600b85528387208054918a166001600160a01b031992831617905590548254875260158552928620805493909816921691909117909555929091529052600a9055565b6007546001600160a01b0316331461101657600080fd5b60005b8151811015610d8f57611044828281518110611037576110376128b0565b6020026020010151610eae565b8061104e816128dc565b915050611019565b6007546001600160a01b0316331461106d57600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b031633146110a657600080fd5b600355565b6007546001600160a01b031633146110c257600080fd5b6001600160a01b03811660009081526010602052604090205460ff1661112a5760405162461bcd60e51b815260206004820152601e60248201527f616c72656164792072656d6f766564206f72206e6576657220616464656400006044820152606401610d22565b6001600160a01b03166000908152601060205260409020805460ff19169055565b60408051600a808252610160820190925260609160009190602082016101408036833701905050905060005b600981116111d85760008181526015602052604090205482516001600160a01b03909116908390839081106111ae576111ae6128b0565b6001600160a01b0390921660209283029190910190910152806111d0816128dc565b915050611177565b50919050565b33321461122d5760405162461bcd60e51b815260206004820152601860248201527f63616e277420766f74652076696120636f6e74726163747300000000000000006044820152606401610d22565b601a5460ff16156112765760405162461bcd60e51b8152602060048201526013602482015272199a5c99481b595d195c88191a5cd8589b1959606a1b6044820152606401610d22565b6001600160a01b0381166000908152600e602052604090205460ff16156112df5760405162461bcd60e51b815260206004820152601a60248201527f7468697320746f6b656e206973206e6f7420656c696769626c650000000000006044820152606401610d22565b6001600160a01b0382166000908152600f602052604090205460ff16156113485760405162461bcd60e51b815260206004820152601c60248201527f746869732070726573616c65206973206e6f7420656c696769626c65000000006044820152606401610d22565b6001600160a01b03821661139e5760405162461bcd60e51b815260206004820181905260248201527f63616e7420766f7465206f6e207a65726f2070726573616c65206164647273216044820152606401610d22565b6001600160a01b0381166113f45760405162461bcd60e51b815260206004820152601e60248201527f63616e7420766f7465206f6e207a65726f20746f6b656e2061646472732100006044820152606401610d22565b336000908152600d602052604090205460ff161561144c5760405162461bcd60e51b8152602060048201526015602482015274766f746572206973206e6f7420616c6c6f7765642160581b6044820152606401610d22565b600554600160a81b900460ff16156115d557600554600160a01b900460ff161561154557600054600480546003546040516323b872dd60e01b815233938101939093526001600160a01b0391821660248401526044830152909116906323b872dd906064016020604051808303816000875af11580156114d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f4919061291f565b6115405760405162461bcd60e51b815260206004820152601860248201527f73616c6520746f6b656e207472616e73666572206661696c00000000000000006044820152606401610d22565b6115d5565b6006543410156115975760405162461bcd60e51b815260206004820152601e60248201527f6d73672e76616c7565206d757374206265203e3d2064726f70206665657300006044820152606401610d22565b6002546006546040516001600160a01b039092169181156108fc0291906000818181858888f193505050501580156115d3573d6000803e3d6000fd5b505b6001600160a01b0381166000908152600960209081526040808320338452909152902054421161163e5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881d9bdd1a5b99c81d1a5b595bdd5d60621b6044820152606401610d22565b601a54610100900460ff166116705760175460165461165c916122fa565b4211156116705761166b612362565b426016555b60195461167e9042906122fa565b6001600160a01b038216600081815260096020908152604080832033845282528083209490945591815260139091529081208054916116bc836128dc565b9091555050336000908152600a602090815260408083206001600160a01b038516845290915281208054916116f0836128dc565b90915550506001600160a01b038281166000908152600c602052604090205416611758576001600160a01b038083166000818152600c6020908152604080832080549587166001600160a01b031996871681179091558352600b909152902080549092161790555b6001600160a01b03811660009081526012602052604090205460ff166117ad576001600160a01b0381166000908152601160209081526040808320600a905560129091529020805460ff191660011790555050565b6001600160a01b0381166000908152601160205260409020541561196d576001600160a01b038116600090815260116020526040812054601491906117f3906001612415565b815260208082019290925260409081016000908120546001600160a01b03851682526013909352205410610d8f576001600160a01b03811660009081526011602052604081205461188e9183916015919061184f906001612415565b815260208082019290925260409081016000908120546001600160a01b038781168352601190945291902054911690611889906001612415565b612457565b6001600160a01b0381166000818152601360208181526040808420546011808452828620805487526014855292862091909155948452939052915460159082906118d99060016122fa565b815260208082019290925260409081016000908120546001600160a01b03908116855284840195909552928101832054938516835260119182905282205460149291908290601590829061192e9060016122fa565b815260208082019290925260409081016000908120546001600160a01b0316845283830194909452918201832054845283019390935291019020555050565b6001600160a01b03166000908152601360209081526040808320546011835281842054845260149092529091205550565b6007546001600160a01b031633146119b557600080fd5b6005805460ff60a81b1916600160a81b179055565b3360009081526010602052604090205460ff16611a195760405162461bcd60e51b815260206004820152600d60248201526c3737ba1036b7b232b930ba37b960991b6044820152606401610d22565b6001600160a01b0381166000908152600e602052604090205460ff1615611a525760405162461bcd60e51b8152600401610d22906128f5565b6001600160a01b039081166000908152600e602090815260408083208054600160ff199182168117909255600b8452828520549095168452600f9092529091208054909216179055565b6007546001600160a01b03163314611ab357600080fd5b6005805460ff60a01b1916600160a01b179055565b6007546001600160a01b03163314611adf57600080fd5b601955565b60408051600a808252610160820190925260609182918291600091906020820161014080368337505060408051600a808252610160820190925292935060009291506020820161014080368337505060408051600a80825261016082019092529293506000929150602082016101408036833701905050905060005b60098111611c3e576000818152601560209081526040808320546001600160a01b039081168452600b909252909120548551911690859083908110611ba757611ba76128b0565b6001600160a01b039283166020918202929092018101919091526000838152601590915260409020548451911690849083908110611be757611be76128b0565b6001600160a01b039092166020928302919091018201526000828152601490915260409020548251839083908110611c2157611c216128b0565b602090810291909101015280611c36816128dc565b915050611b60565b5091959094509092509050565b6007546001600160a01b03163314611c6257600080fd5b600655565b6007546001600160a01b03163314611c7e57600080fd5b6007546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600780546001600160a01b0319169055565b6007546001600160a01b03163314611cdf57600080fd5b6002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d8f573d6000803e3d6000fd5b6007546001600160a01b03163314611d3057600080fd5b6002546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015611d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da79190612941565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8f919061291f565b6007546001600160a01b03163314611e2d57600080fd5b601755565b60408051600a808252610160820190925260609160009190602082016101408036833701905050905060005b600981116111d8576000818152601460205260409020548251839083908110611e8957611e896128b0565b602090810291909101015280611e9e816128dc565b915050611e5e565b6007546001600160a01b03163314611ebd57600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314611ef657600080fd5b60009182526014602052604090912055565b6007546001600160a01b03163314611f1f57600080fd5b601855565b6007546001600160a01b03163314611f3b57600080fd5b6001600160a01b039182166000908152600b6020526040902080546001600160a01b03191691909216179055565b6007546001600160a01b03163314611f8057600080fd5b60009182526015602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6007546001600160a01b03163314611fc557600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314611ffe57600080fd5b601a5460ff16156120215760405162461bcd60e51b8152600401610d22906128f5565b601a805460ff19166001179055565b6007546001600160a01b0316331461204757600080fd5b6001600160a01b03811660009081526010602052604090205460ff16156120a05760405162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481859191959609a1b6044820152606401610d22565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6007546001600160a01b031633146120db57600080fd5b6001600160a01b0381166000908152600d602052604090205460ff16156121445760405162461bcd60e51b815260206004820152601a60248201527f766f74657220697320616c726561647920656d626172676f65640000000000006044820152606401610d22565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6007546001600160a01b0316331461217f57600080fd5b6005805460ff60a81b19169055565b6007546001600160a01b031633146121a557600080fd5b60005b6009811161229257601854600082815260146020526040902054106122505760185460008281526014602052604081205490916121e59190612415565b6018546000848152601560209081526040808320546001600160a01b0316835260139091528120549293509161221a91612415565b5050600082815260146020908152604080832084905560158252808320546001600160a01b031683526013909152902055612280565b600081815260146020908152604080832083905560158252808320546001600160a01b0316835260139091528120555b8061228a816128dc565b9150506121a8565b50565b6007546001600160a01b031633146122ac57600080fd5b6122928161255e565b6007546001600160a01b031633146122cc57600080fd5b601a5460ff166122ee5760405162461bcd60e51b8152600401610d2290612887565b601a805460ff19169055565b600080612307838561295a565b9050838110156123595760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d22565b90505b92915050565b60005b6009811161229257601854600082815260146020526040902054106123d35760185460008281526014602052604090205461239f91612415565b600082815260146020908152604080832084905560158252808320546001600160a01b031683526013909152902055612403565b600081815260146020908152604080832083905560158252808320546001600160a01b0316835260139091528120555b8061240d816128dc565b915050612365565b600061235983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125cd565b6000818152601560208190526040822080546001600160a01b0319166001600160a01b038716179055839161248d84600161295a565b81526020808201929092526040908101600090812080546001600160a01b0319166001600160a01b03958616179055928616835260119091529020541561250c576001600160a01b0383166000908152601160205260409020546124f2906001612415565b6001600160a01b0384166000908152601160205260409020555b6001600160a01b03821615612559576001600160a01b03821660009081526011602052604090205461253f9060016122fa565b6001600160a01b0383166000908152601160205260409020555b505050565b6001600160a01b03811661257157600080fd5b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b600081848411156125f15760405162461bcd60e51b8152600401610d22919061296d565b5060006125fe84866129bb565b95945050505050565b60006020828403121561261957600080fd5b5035919050565b80356001600160a01b038116811461263757600080fd5b919050565b60006020828403121561264e57600080fd5b61235982612620565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561268057600080fd5b823567ffffffffffffffff8082111561269857600080fd5b818501915085601f8301126126ac57600080fd5b8135818111156126be576126be612657565b8060051b604051601f19603f830116810181811085821117156126e3576126e3612657565b60405291825284820192508381018501918883111561270157600080fd5b938501935b828510156127265761271785612620565b84529385019392850192612706565b98975050505050505050565b600081518084526020808501945080840160005b8381101561276b5781516001600160a01b031687529582019590820190600101612746565b509495945050505050565b6020815260006123596020830184612732565b6000806040838503121561279c57600080fd5b6127a583612620565b91506127b360208401612620565b90509250929050565b600081518084526020808501945080840160005b8381101561276b578151875295820195908201906001016127d0565b6060815260006127ff6060830186612732565b82810360208401526128118186612732565b9050828103604084015261282581856127bc565b9695505050505050565b60208152600061235960208301846127bc565b6000806040838503121561285557600080fd5b50508035926020909101359150565b6000806040838503121561287757600080fd5b823591506127b360208401612620565b6020808252600f908201526e185b1c9958591e48195b98589b1959608a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016128ee576128ee6128c6565b5060010190565b60208082526010908201526f185b1c9958591e48191a5cd8589b195960821b604082015260600190565b60006020828403121561293157600080fd5b8151801515811461235957600080fd5b60006020828403121561295357600080fd5b5051919050565b8082018082111561235c5761235c6128c6565b600060208083528351808285015260005b8181101561299a5785810183015185820160400152820161297e565b506000604082860101526040601f19601f8301168501019250505092915050565b8181038181111561235c5761235c6128c656fea264697066735822122089d795470c12f9755c7a0fa7a4f526bfa6dde187080bf75e6766c688e39eef7064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106103ef5760003560e01c8063884a00ec11610208578063bd73f07c11610118578063d2668187116100ab578063e71001fc1161007a578063e71001fc14610c54578063edcd48e514610c84578063f1bc33b414610c99578063f2fde38b14610caf578063f67403af14610ccf57600080fd5b8063d266818714610bf5578063d503022c14610c0b578063d66299c014610c2b578063da235b2214610c4157600080fd5b8063c9a1e7b2116100e7578063c9a1e7b214610b72578063ca89974d14610b88578063ce404b2314610ba8578063d2639dbf14610bbd57600080fd5b8063bd73f07c14610ac4578063bded69be14610afc578063bf3270e114610b1c578063c241ae0814610b5257600080fd5b80639ca736d91161019b578063af51f6d61161016a578063af51f6d614610a20578063b15d971e14610a40578063bbea88aa14610a5f578063bc2d464614610a74578063bd5e6cee14610aa457600080fd5b80639ca736d91461099f578063a09e34f7146109bf578063a64e4f8a146109df578063af33208e14610a0057600080fd5b80638db1212e116101d75780638db1212e1461091d5780638df7ace71461093d5780638e5d842c1461095f5780638f5dedab1461097f57600080fd5b8063884a00ec1461088d57806389476069146108bd5780638a64d65e146108dd5780638da5cb5b146108fd57600080fd5b8063368f5bd511610303578063513b9a411161029657806362dcd09a1161026557806362dcd09a146107f557806363277ff91461080f5780636cda375b14610845578063715018a61461086557806384276d811461087a57600080fd5b8063513b9a411461073357806358e09bdd146107695780635c2b111914610799578063622b947f146107bd57600080fd5b8063427f91a6116102d2578063427f91a6146106af57806344df8e70146106dc578063498cb4b5146106fd5780634ed661c31461071357600080fd5b8063368f5bd51461062d57806336cf7c87146106425780633907c2f21461067a5780633b37d1d61461069a57600080fd5b80632403c08e116103865780632a546b8f116103555780632a546b8f146105985780632abe2e94146105b85780632b15c49c146105d8578063329a0816146105f85780633567e5ee1461061a57600080fd5b80632403c08e1461052d578063257f9abf146105425780632583d8051461056257806328c4dd0c1461057857600080fd5b806314e048b3116103c257806314e048b3146104ab5780631e0e4b15146104c05780631f4b6598146104ed5780632199b56e1461050d57600080fd5b806302276474146103f457806306332b9a146104345780630b594a2d1461044b5780631416059c1461048b575b600080fd5b34801561040057600080fd5b5061042161040f366004612607565b60146020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561044057600080fd5b50610449610ce4565b005b34801561045757600080fd5b5061047b61046636600461263c565b600f6020526000908152604090205460ff1681565b604051901515815260200161042b565b34801561049757600080fd5b506104496104a636600461266d565b610d38565b3480156104b757600080fd5b50610449610d93565b3480156104cc57600080fd5b506104216104db36600461263c565b60136020526000908152604090205481565b3480156104f957600080fd5b5061044961050836600461263c565b610de3565b34801561051957600080fd5b5061044961052836600461263c565b610eae565b34801561053957600080fd5b50610449610f4e565b34801561054e57600080fd5b5061044961055d36600461263c565b610f74565b34801561056e57600080fd5b5061042160175481565b34801561058457600080fd5b5061044961059336600461266d565b610fff565b3480156105a457600080fd5b506104496105b336600461263c565b611056565b3480156105c457600080fd5b506104496105d3366004612607565b61108f565b3480156105e457600080fd5b506104496105f336600461263c565b6110ab565b34801561060457600080fd5b5061060d61114b565b60405161042b9190612776565b610449610628366004612789565b6111de565b34801561063957600080fd5b5061044961199e565b34801561064e57600080fd5b50600454610662906001600160a01b031681565b6040516001600160a01b03909116815260200161042b565b34801561068657600080fd5b5061044961069536600461263c565b6119ca565b3480156106a657600080fd5b50610449611a9c565b3480156106bb57600080fd5b506104216106ca36600461263c565b60116020526000908152604090205481565b3480156106e857600080fd5b5060055461047b90600160a01b900460ff1681565b34801561070957600080fd5b5061042160035481565b34801561071f57600080fd5b5061044961072e366004612607565b611ac8565b34801561073f57600080fd5b5061066261074e366004612607565b6015602052600090815260409020546001600160a01b031681565b34801561077557600080fd5b5061047b61078436600461263c565b600e6020526000908152604090205460ff1681565b3480156107a557600080fd5b506107ae611ae4565b60405161042b939291906127ec565b3480156107c957600080fd5b506104216107d8366004612789565b600960209081526000928352604080842090915290825290205481565b34801561080157600080fd5b50601a5461047b9060ff1681565b34801561081b57600080fd5b5061066261082a36600461263c565b600b602052600090815260409020546001600160a01b031681565b34801561085157600080fd5b50610449610860366004612607565b611c4b565b34801561087157600080fd5b50610449611c67565b610449610888366004612607565b611cc8565b34801561089957600080fd5b5061047b6108a836600461263c565b60126020526000908152604090205460ff1681565b3480156108c957600080fd5b506104496108d836600461263c565b611d19565b3480156108e957600080fd5b50600254610662906001600160a01b031681565b34801561090957600080fd5b50600754610662906001600160a01b031681565b34801561092957600080fd5b50610449610938366004612607565b611e16565b34801561094957600080fd5b50610952611e32565b60405161042b919061282f565b34801561096b57600080fd5b5061044961097a36600461263c565b611ea6565b34801561098b57600080fd5b5061044961099a366004612842565b611edf565b3480156109ab57600080fd5b506104496109ba366004612607565b611f08565b3480156109cb57600080fd5b506104496109da366004612789565b611f24565b3480156109eb57600080fd5b5060055461047b90600160a81b900460ff1681565b348015610a0c57600080fd5b50610449610a1b366004612864565b611f69565b348015610a2c57600080fd5b50610449610a3b36600461263c565b611fae565b348015610a4c57600080fd5b50601a5461047b90610100900460ff1681565b348015610a6b57600080fd5b50610449611fe7565b348015610a8057600080fd5b5061047b610a8f36600461263c565b60106020526000908152604090205460ff1681565b348015610ab057600080fd5b50610449610abf36600461263c565b612030565b348015610ad057600080fd5b50610421610adf366004612789565b600a60209081526000928352604080842090915290825290205481565b348015610b0857600080fd5b50600554610662906001600160a01b031681565b348015610b2857600080fd5b50610662610b3736600461263c565b600c602052600090815260409020546001600160a01b031681565b348015610b5e57600080fd5b50600054610662906001600160a01b031681565b348015610b7e57600080fd5b5061042160165481565b348015610b9457600080fd5b50610449610ba336600461263c565b6120c4565b348015610bb457600080fd5b50610449612168565b348015610bc957600080fd5b50610421610bd8366004612789565b600860209081526000928352604080842090915290825290205481565b348015610c0157600080fd5b5061042160185481565b348015610c1757600080fd5b50600154610662906001600160a01b031681565b348015610c3757600080fd5b5061042160065481565b348015610c4d57600080fd5b5042610421565b348015610c6057600080fd5b5061047b610c6f36600461263c565b600d6020526000908152604090205460ff1681565b348015610c9057600080fd5b5061044961218e565b348015610ca557600080fd5b5061042160195481565b348015610cbb57600080fd5b50610449610cca36600461263c565b612295565b348015610cdb57600080fd5b506104496122b5565b6007546001600160a01b03163314610cfb57600080fd5b601a54610100900460ff16610d2b5760405162461bcd60e51b8152600401610d2290612887565b60405180910390fd5b601a805461ff0019169055565b6007546001600160a01b03163314610d4f57600080fd5b60005b8151811015610d8f57610d7d828281518110610d7057610d706128b0565b60200260200101516120c4565b80610d87816128dc565b915050610d52565b5050565b6007546001600160a01b03163314610daa57600080fd5b601a54610100900460ff1615610dd25760405162461bcd60e51b8152600401610d22906128f5565b601a805461ff001916610100179055565b3360009081526010602052604090205460ff16610e325760405162461bcd60e51b815260206004820152600d60248201526c3737ba1036b7b232b930ba37b960991b6044820152606401610d22565b6001600160a01b0381166000908152600e602052604090205460ff16610e6a5760405162461bcd60e51b8152600401610d2290612887565b6001600160a01b039081166000908152600e60209081526040808320805460ff19908116909155600b8352818420549094168352600f909152902080549091169055565b6007546001600160a01b03163314610ec557600080fd5b6001600160a01b0381166000908152600d602052604090205460ff16610f2d5760405162461bcd60e51b815260206004820152601c60248201527f766f746572206973206e6f7420696e20656d626172676f206c697374000000006044820152606401610d22565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b6007546001600160a01b03163314610f6557600080fd5b6005805460ff60a01b19169055565b6007546001600160a01b03163314610f8b57600080fd5b6001600160a01b039081166000818152601160208181526040808420805485526014835281852085905560058054878752600b85528387208054918a166001600160a01b031992831617905590548254875260158552928620805493909816921691909117909555929091529052600a9055565b6007546001600160a01b0316331461101657600080fd5b60005b8151811015610d8f57611044828281518110611037576110376128b0565b6020026020010151610eae565b8061104e816128dc565b915050611019565b6007546001600160a01b0316331461106d57600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b031633146110a657600080fd5b600355565b6007546001600160a01b031633146110c257600080fd5b6001600160a01b03811660009081526010602052604090205460ff1661112a5760405162461bcd60e51b815260206004820152601e60248201527f616c72656164792072656d6f766564206f72206e6576657220616464656400006044820152606401610d22565b6001600160a01b03166000908152601060205260409020805460ff19169055565b60408051600a808252610160820190925260609160009190602082016101408036833701905050905060005b600981116111d85760008181526015602052604090205482516001600160a01b03909116908390839081106111ae576111ae6128b0565b6001600160a01b0390921660209283029190910190910152806111d0816128dc565b915050611177565b50919050565b33321461122d5760405162461bcd60e51b815260206004820152601860248201527f63616e277420766f74652076696120636f6e74726163747300000000000000006044820152606401610d22565b601a5460ff16156112765760405162461bcd60e51b8152602060048201526013602482015272199a5c99481b595d195c88191a5cd8589b1959606a1b6044820152606401610d22565b6001600160a01b0381166000908152600e602052604090205460ff16156112df5760405162461bcd60e51b815260206004820152601a60248201527f7468697320746f6b656e206973206e6f7420656c696769626c650000000000006044820152606401610d22565b6001600160a01b0382166000908152600f602052604090205460ff16156113485760405162461bcd60e51b815260206004820152601c60248201527f746869732070726573616c65206973206e6f7420656c696769626c65000000006044820152606401610d22565b6001600160a01b03821661139e5760405162461bcd60e51b815260206004820181905260248201527f63616e7420766f7465206f6e207a65726f2070726573616c65206164647273216044820152606401610d22565b6001600160a01b0381166113f45760405162461bcd60e51b815260206004820152601e60248201527f63616e7420766f7465206f6e207a65726f20746f6b656e2061646472732100006044820152606401610d22565b336000908152600d602052604090205460ff161561144c5760405162461bcd60e51b8152602060048201526015602482015274766f746572206973206e6f7420616c6c6f7765642160581b6044820152606401610d22565b600554600160a81b900460ff16156115d557600554600160a01b900460ff161561154557600054600480546003546040516323b872dd60e01b815233938101939093526001600160a01b0391821660248401526044830152909116906323b872dd906064016020604051808303816000875af11580156114d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f4919061291f565b6115405760405162461bcd60e51b815260206004820152601860248201527f73616c6520746f6b656e207472616e73666572206661696c00000000000000006044820152606401610d22565b6115d5565b6006543410156115975760405162461bcd60e51b815260206004820152601e60248201527f6d73672e76616c7565206d757374206265203e3d2064726f70206665657300006044820152606401610d22565b6002546006546040516001600160a01b039092169181156108fc0291906000818181858888f193505050501580156115d3573d6000803e3d6000fd5b505b6001600160a01b0381166000908152600960209081526040808320338452909152902054421161163e5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881d9bdd1a5b99c81d1a5b595bdd5d60621b6044820152606401610d22565b601a54610100900460ff166116705760175460165461165c916122fa565b4211156116705761166b612362565b426016555b60195461167e9042906122fa565b6001600160a01b038216600081815260096020908152604080832033845282528083209490945591815260139091529081208054916116bc836128dc565b9091555050336000908152600a602090815260408083206001600160a01b038516845290915281208054916116f0836128dc565b90915550506001600160a01b038281166000908152600c602052604090205416611758576001600160a01b038083166000818152600c6020908152604080832080549587166001600160a01b031996871681179091558352600b909152902080549092161790555b6001600160a01b03811660009081526012602052604090205460ff166117ad576001600160a01b0381166000908152601160209081526040808320600a905560129091529020805460ff191660011790555050565b6001600160a01b0381166000908152601160205260409020541561196d576001600160a01b038116600090815260116020526040812054601491906117f3906001612415565b815260208082019290925260409081016000908120546001600160a01b03851682526013909352205410610d8f576001600160a01b03811660009081526011602052604081205461188e9183916015919061184f906001612415565b815260208082019290925260409081016000908120546001600160a01b038781168352601190945291902054911690611889906001612415565b612457565b6001600160a01b0381166000818152601360208181526040808420546011808452828620805487526014855292862091909155948452939052915460159082906118d99060016122fa565b815260208082019290925260409081016000908120546001600160a01b03908116855284840195909552928101832054938516835260119182905282205460149291908290601590829061192e9060016122fa565b815260208082019290925260409081016000908120546001600160a01b0316845283830194909452918201832054845283019390935291019020555050565b6001600160a01b03166000908152601360209081526040808320546011835281842054845260149092529091205550565b6007546001600160a01b031633146119b557600080fd5b6005805460ff60a81b1916600160a81b179055565b3360009081526010602052604090205460ff16611a195760405162461bcd60e51b815260206004820152600d60248201526c3737ba1036b7b232b930ba37b960991b6044820152606401610d22565b6001600160a01b0381166000908152600e602052604090205460ff1615611a525760405162461bcd60e51b8152600401610d22906128f5565b6001600160a01b039081166000908152600e602090815260408083208054600160ff199182168117909255600b8452828520549095168452600f9092529091208054909216179055565b6007546001600160a01b03163314611ab357600080fd5b6005805460ff60a01b1916600160a01b179055565b6007546001600160a01b03163314611adf57600080fd5b601955565b60408051600a808252610160820190925260609182918291600091906020820161014080368337505060408051600a808252610160820190925292935060009291506020820161014080368337505060408051600a80825261016082019092529293506000929150602082016101408036833701905050905060005b60098111611c3e576000818152601560209081526040808320546001600160a01b039081168452600b909252909120548551911690859083908110611ba757611ba76128b0565b6001600160a01b039283166020918202929092018101919091526000838152601590915260409020548451911690849083908110611be757611be76128b0565b6001600160a01b039092166020928302919091018201526000828152601490915260409020548251839083908110611c2157611c216128b0565b602090810291909101015280611c36816128dc565b915050611b60565b5091959094509092509050565b6007546001600160a01b03163314611c6257600080fd5b600655565b6007546001600160a01b03163314611c7e57600080fd5b6007546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600780546001600160a01b0319169055565b6007546001600160a01b03163314611cdf57600080fd5b6002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d8f573d6000803e3d6000fd5b6007546001600160a01b03163314611d3057600080fd5b6002546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015611d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da79190612941565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8f919061291f565b6007546001600160a01b03163314611e2d57600080fd5b601755565b60408051600a808252610160820190925260609160009190602082016101408036833701905050905060005b600981116111d8576000818152601460205260409020548251839083908110611e8957611e896128b0565b602090810291909101015280611e9e816128dc565b915050611e5e565b6007546001600160a01b03163314611ebd57600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314611ef657600080fd5b60009182526014602052604090912055565b6007546001600160a01b03163314611f1f57600080fd5b601855565b6007546001600160a01b03163314611f3b57600080fd5b6001600160a01b039182166000908152600b6020526040902080546001600160a01b03191691909216179055565b6007546001600160a01b03163314611f8057600080fd5b60009182526015602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6007546001600160a01b03163314611fc557600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314611ffe57600080fd5b601a5460ff16156120215760405162461bcd60e51b8152600401610d22906128f5565b601a805460ff19166001179055565b6007546001600160a01b0316331461204757600080fd5b6001600160a01b03811660009081526010602052604090205460ff16156120a05760405162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481859191959609a1b6044820152606401610d22565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6007546001600160a01b031633146120db57600080fd5b6001600160a01b0381166000908152600d602052604090205460ff16156121445760405162461bcd60e51b815260206004820152601a60248201527f766f74657220697320616c726561647920656d626172676f65640000000000006044820152606401610d22565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6007546001600160a01b0316331461217f57600080fd5b6005805460ff60a81b19169055565b6007546001600160a01b031633146121a557600080fd5b60005b6009811161229257601854600082815260146020526040902054106122505760185460008281526014602052604081205490916121e59190612415565b6018546000848152601560209081526040808320546001600160a01b0316835260139091528120549293509161221a91612415565b5050600082815260146020908152604080832084905560158252808320546001600160a01b031683526013909152902055612280565b600081815260146020908152604080832083905560158252808320546001600160a01b0316835260139091528120555b8061228a816128dc565b9150506121a8565b50565b6007546001600160a01b031633146122ac57600080fd5b6122928161255e565b6007546001600160a01b031633146122cc57600080fd5b601a5460ff166122ee5760405162461bcd60e51b8152600401610d2290612887565b601a805460ff19169055565b600080612307838561295a565b9050838110156123595760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d22565b90505b92915050565b60005b6009811161229257601854600082815260146020526040902054106123d35760185460008281526014602052604090205461239f91612415565b600082815260146020908152604080832084905560158252808320546001600160a01b031683526013909152902055612403565b600081815260146020908152604080832083905560158252808320546001600160a01b0316835260139091528120555b8061240d816128dc565b915050612365565b600061235983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125cd565b6000818152601560208190526040822080546001600160a01b0319166001600160a01b038716179055839161248d84600161295a565b81526020808201929092526040908101600090812080546001600160a01b0319166001600160a01b03958616179055928616835260119091529020541561250c576001600160a01b0383166000908152601160205260409020546124f2906001612415565b6001600160a01b0384166000908152601160205260409020555b6001600160a01b03821615612559576001600160a01b03821660009081526011602052604090205461253f9060016122fa565b6001600160a01b0383166000908152601160205260409020555b505050565b6001600160a01b03811661257157600080fd5b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b600081848411156125f15760405162461bcd60e51b8152600401610d22919061296d565b5060006125fe84866129bb565b95945050505050565b60006020828403121561261957600080fd5b5035919050565b80356001600160a01b038116811461263757600080fd5b919050565b60006020828403121561264e57600080fd5b61235982612620565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561268057600080fd5b823567ffffffffffffffff8082111561269857600080fd5b818501915085601f8301126126ac57600080fd5b8135818111156126be576126be612657565b8060051b604051601f19603f830116810181811085821117156126e3576126e3612657565b60405291825284820192508381018501918883111561270157600080fd5b938501935b828510156127265761271785612620565b84529385019392850192612706565b98975050505050505050565b600081518084526020808501945080840160005b8381101561276b5781516001600160a01b031687529582019590820190600101612746565b509495945050505050565b6020815260006123596020830184612732565b6000806040838503121561279c57600080fd5b6127a583612620565b91506127b360208401612620565b90509250929050565b600081518084526020808501945080840160005b8381101561276b578151875295820195908201906001016127d0565b6060815260006127ff6060830186612732565b82810360208401526128118186612732565b9050828103604084015261282581856127bc565b9695505050505050565b60208152600061235960208301846127bc565b6000806040838503121561285557600080fd5b50508035926020909101359150565b6000806040838503121561287757600080fd5b823591506127b360208401612620565b6020808252600f908201526e185b1c9958591e48195b98589b1959608a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016128ee576128ee6128c6565b5060010190565b60208082526010908201526f185b1c9958591e48191a5cd8589b195960821b604082015260600190565b60006020828403121561293157600080fd5b8151801515811461235957600080fd5b60006020828403121561295357600080fd5b5051919050565b8082018082111561235c5761235c6128c6565b600060208083528351808285015260005b8181101561299a5785810183015185820160400152820161297e565b506000604082860101526040601f19601f8301168501019250505092915050565b8181038181111561235c5761235c6128c656fea264697066735822122089d795470c12f9755c7a0fa7a4f526bfa6dde187080bf75e6766c688e39eef7064736f6c63430008110033

Deployed Bytecode Sourcemap

7750:16868:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8740:40;;;;;;;;;;-1:-1:-1;8740:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;345:25:1;;;333:2;318:18;8740:40:0;;;;;;;;21973:187;;;;;;;;;;;;;:::i;:::-;;8320:47;;;;;;;;;;-1:-1:-1;8320:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;915:14:1;;908:22;890:41;;878:2;863:18;8320:47:0;750:187:1;18586:207:0;;;;;;;;;;-1:-1:-1;18586:207:0;;;;;:::i;:::-;;:::i;22166:179::-;;;;;;;;;;;;;:::i;8575:46::-;;;;;;;;;;-1:-1:-1;8575:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;22648:296;;;;;;;;;;-1:-1:-1;22648:296:0;;;;;:::i;:::-;;:::i;18342:235::-;;;;;;;;;;-1:-1:-1;18342:235:0;;;;;:::i;:::-;;:::i;19710:100::-;;;;;;;;;;;;;:::i;23860:241::-;;;;;;;;;;-1:-1:-1;23860:241:0;;;;;:::i;:::-;;:::i;9006:40::-;;;;;;;;;;;;;;;;18799:210;;;;;;;;;;-1:-1:-1;18799:210:0;;;;;:::i;:::-;;:::i;24512:100::-;;;;;;;;;;-1:-1:-1;24512:100:0;;;;;:::i;:::-;;:::i;19014:185::-;;;;;;;;;;-1:-1:-1;19014:185:0;;;;;:::i;:::-;;:::i;23143:203::-;;;;;;;;;;-1:-1:-1;23143:203:0;;;;;:::i;:::-;;:::i;20430:314::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10323:3681::-;;;;;;:::i;:::-;;:::i;19378:105::-;;;;;;;;;;;;;:::i;7483:64::-;;;;;;;;;;-1:-1:-1;7483:64:0;;;;-1:-1:-1;;;;;7483:64:0;;;;;;-1:-1:-1;;;;;3361:32:1;;;3343:51;;3331:2;3316:18;7483:64:0;3197:203:1;22351:291:0;;;;;;;;;;-1:-1:-1;22351:291:0;;;;;:::i;:::-;;:::i;19606:98::-;;;;;;;;;;;;;:::i;8422:45::-;;;;;;;;;;-1:-1:-1;8422:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;7629:23;;;;;;;;;;-1:-1:-1;7629:23:0;;;;-1:-1:-1;;;7629:23:0;;;;;;7400:56;;;;;;;;;;;;;;;;21422:163;;;;;;;;;;-1:-1:-1;21422:163:0;;;;;:::i;:::-;;:::i;8903:47::-;;;;;;;;;;-1:-1:-1;8903:47:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;8903:47:0;;;8268:45;;;;;;;;;;-1:-1:-1;8268:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19816:607;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;7959:65::-;;;;;;;;;;-1:-1:-1;7959:65:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;9137:29;;;;;;;;;;-1:-1:-1;9137:29:0;;;;;;;;8102:53;;;;;;;;;;-1:-1:-1;8102:53:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;8102:53:0;;;19203:169;;;;;;;;;;-1:-1:-1;19203:169:0;;;;;:::i;:::-;;:::i;6311:114::-;;;;;;;;;;;;;:::i;24378:126::-;;;;;;:::i;:::-;;:::i;8474:44::-;;;;;;;;;;-1:-1:-1;8474:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24217:155;;;;;;;;;;-1:-1:-1;24217:155:0;;;;;:::i;:::-;;:::i;7302:68::-;;;;;;;;;;-1:-1:-1;7302:68:0;;;;-1:-1:-1;;;;;7302:68:0;;;5693:20;;;;;;;;;;-1:-1:-1;5693:20:0;;;;-1:-1:-1;;;;;5693:20:0;;;21241:175;;;;;;;;;;-1:-1:-1;21241:175:0;;;;;:::i;:::-;;:::i;20753:306::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17935:163::-;;;;;;;;;;-1:-1:-1;17935:163:0;;;;;:::i;:::-;;:::i;23358:134::-;;;;;;;;;;-1:-1:-1;23358:134:0;;;;;:::i;:::-;;:::i;21065:170::-;;;;;;;;;;-1:-1:-1;21065:170:0;;;;;:::i;:::-;;:::i;23656:198::-;;;;;;;;;;-1:-1:-1;23656:198:0;;;;;:::i;:::-;;:::i;7659:31::-;;;;;;;;;;-1:-1:-1;7659:31:0;;;;-1:-1:-1;;;7659:31:0;;;;;;23498:152;;;;;;;;;;-1:-1:-1;23498:152:0;;;;;:::i;:::-;;:::i;17784:140::-;;;;;;;;;;-1:-1:-1;17784:140:0;;;;;:::i;:::-;;:::i;9173:29::-;;;;;;;;;;-1:-1:-1;9173:29:0;;;;;;;;;;;21780:185;;;;;;;;;;;;;:::i;8374:41::-;;;;;;;;;;-1:-1:-1;8374:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22952:181;;;;;;;;;;-1:-1:-1;22952:181:0;;;;;:::i;:::-;;:::i;8031:64::-;;;;;;;;;;-1:-1:-1;8031:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7554:68;;;;;;;;;;-1:-1:-1;7554:68:0;;;;-1:-1:-1;;;;;7554:68:0;;;8162:53;;;;;;;;;;-1:-1:-1;8162:53:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;8162:53:0;;;7046:77;;;;;;;;;;-1:-1:-1;7046:77:0;;;;-1:-1:-1;;;;;7046:77:0;;;8957:42;;;;;;;;;;;;;;;;18108:228;;;;;;;;;;-1:-1:-1;18108:228:0;;;;;:::i;:::-;;:::i;19489:107::-;;;;;;;;;;;;;:::i;7885:67::-;;;;;;;;;;-1:-1:-1;7885:67:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;9053:38;;;;;;;;;;;;;;;;7174:77;;;;;;;;;;-1:-1:-1;7174:77:0;;;;-1:-1:-1;;;;;7174:77:0;;;7697:41;;;;;;;;;;;;;;;;24111:100;;;;;;;;;;-1:-1:-1;24182:15:0;24111:100;;8222:39;;;;;;;;;;-1:-1:-1;8222:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14584:768;;;;;;;;;;;;;:::i;9098:32::-;;;;;;;;;;;;;;;;6593:105;;;;;;;;;;-1:-1:-1;6593:105:0;;;;;:::i;:::-;;:::i;21591:183::-;;;;;;;;;;;;;:::i;21973:187::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;22050:17:::1;::::0;::::1;::::0;::::1;;;22042:44;;;;-1:-1:-1::0;;;22042:44:0::1;;;;;;;:::i;:::-;;;;;;;;;22097:17;:25:::0;;-1:-1:-1;;22097:25:0::1;::::0;;21973:187::o;18586:207::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;18680:9:::1;18676:106;18699:17;:24;18695:1;:28;18676:106;;;18740:34;18753:17;18771:1;18753:20;;;;;;;;:::i;:::-;;;;;;;18740:12;:34::i;:::-;18725:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18676:106;;;;18586:207:::0;:::o;22166:179::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;22245:17:::1;::::0;::::1;::::0;::::1;;;22244:18;22236:46;;;;-1:-1:-1::0;;;22236:46:0::1;;;;;;;:::i;:::-;22293:17;:24:::0;;-1:-1:-1;;22293:24:0::1;;;::::0;;22166:179::o;22648:296::-;22721:10;22711:21;;;;:9;:21;;;;;;;;22703:46;;;;-1:-1:-1;;;22703:46:0;;6592:2:1;22703:46:0;;;6574:21:1;6631:2;6611:18;;;6604:30;-1:-1:-1;;;6650:18:1;;;6643:43;6703:18;;22703:46:0;6390:337:1;22703:46:0;-1:-1:-1;;;;;22776:21:0;;;;;;:13;:21;;;;;;;;22768:48;;;;-1:-1:-1;;;22768:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22827:21:0;;;22851:5;22827:21;;;:13;:21;;;;;;;;:29;;-1:-1:-1;;22827:29:0;;;;;;22883:18;:26;;;;;;;;;22867:43;;:15;:43;;;;;:51;;;;;;;22648:296::o;18342:235::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;-1:-1:-1;;;;;18440:24:0;::::1;;::::0;;;:7:::1;:24;::::0;;;;;::::1;;18432:64;;;::::0;-1:-1:-1;;;18432:64:0;;6934:2:1;18432:64:0::1;::::0;::::1;6916:21:1::0;6973:2;6953:18;;;6946:30;7012;6992:18;;;6985:58;7060:18;;18432:64:0::1;6732:352:1::0;18432:64:0::1;-1:-1:-1::0;;;;;18517:24:0::1;18544:5;18517:24:::0;;;:7:::1;:24;::::0;;;;:32;;-1:-1:-1;;18517:32:0::1;::::0;;18342:235::o;19710:100::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;19780:4:::1;:12:::0;;-1:-1:-1;;;;19780:12:0::1;::::0;;19710:100::o;23860:241::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;-1:-1:-1;;;;;23934:18:0;;::::1;23956:1;23934:18:::0;;;:10:::1;:18;::::0;;;;;;;;;23928:25;;:5:::1;:25:::0;;;;;:29;;;23997:8:::1;::::0;;23968:26;;;:18:::1;:26:::0;;;;;:37;;23997:8;;::::1;-1:-1:-1::0;;;;;;23968:37:0;;::::1;;::::0;;24051:8;;24029:18;;24016:32;;:12:::1;:32:::0;;;;;:43;;24051:8;;;::::1;24016:43:::0;::::1;::::0;;;::::1;::::0;;;24070:18;;;;;;24091:2:::1;24070:23:::0;;23860:241::o;18799:210::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;18898:9:::1;18894:111;18917:17;:24;18913:1;:28;18894:111;;;18958:39;18976:17;18994:1;18976:20;;;;;;;;:::i;:::-;;;;;;;18958:17;:39::i;:::-;18943:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18894:111;;24512:100:::0;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;24580:8:::1;:18:::0;;-1:-1:-1;;;;;;24580:18:0::1;-1:-1:-1::0;;;;;24580:18:0;;;::::1;::::0;;;::::1;::::0;;24512:100::o;19014:185::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;19146:15:::1;:31:::0;19014:185::o;23143:203::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;-1:-1:-1;;;;;23231:24:0;::::1;;::::0;;;:9:::1;:24;::::0;;;;;::::1;;23223:66;;;::::0;-1:-1:-1;;;23223:66:0;;7634:2:1;23223:66:0::1;::::0;::::1;7616:21:1::0;7673:2;7653:18;;;7646:30;7712:32;7692:18;;;7685:60;7762:18;;23223:66:0::1;7432:354:1::0;23223:66:0::1;-1:-1:-1::0;;;;;23300:24:0::1;23327:5;23300:24:::0;;;:9:::1;:24;::::0;;;;:32;;-1:-1:-1;;23300:32:0::1;::::0;;23143:203::o;20430:314::-;20547:17;;;20561:2;20547:17;;;;;;;;;20474:16;;20512:32;;20547:17;;;;;;;;;;;-1:-1:-1;20547:17:0;20512:52;;20579:6;20575:106;20595:1;20590;:6;20575:106;;20635:15;;;;:12;:15;;;;;;20614:18;;-1:-1:-1;;;;;20635:15:0;;;;20614;;20648:1;;20614:18;;;;;;:::i;:::-;-1:-1:-1;;;;;20614:36:0;;;:18;;;;;;;;;;;:36;20597:3;;;;:::i;:::-;;;;20575:106;;;-1:-1:-1;20700:15:0;20430:314;-1:-1:-1;20430:314:0:o;10323:3681::-;10406:10;10420:9;10406:23;10398:59;;;;-1:-1:-1;;;10398:59:0;;7993:2:1;10398:59:0;;;7975:21:1;8032:2;8012:18;;;8005:30;8071:26;8051:18;;;8044:54;8115:18;;10398:59:0;7791:348:1;10398:59:0;10477:17;;;;10476:18;10468:49;;;;-1:-1:-1;;;10468:49:0;;8346:2:1;10468:49:0;;;8328:21:1;8385:2;8365:18;;;8358:30;-1:-1:-1;;;8404:18:1;;;8397:49;8463:18;;10468:49:0;8144:343:1;10468:49:0;-1:-1:-1;;;;;10537:21:0;;;;;;:13;:21;;;;;;;;10536:22;10528:60;;;;-1:-1:-1;;;10528:60:0;;8694:2:1;10528:60:0;;;8676:21:1;8733:2;8713:18;;;8706:30;8772:28;8752:18;;;8745:56;8818:18;;10528:60:0;8492:350:1;10528:60:0;-1:-1:-1;;;;;10608:25:0;;;;;;:15;:25;;;;;;;;10607:26;10599:66;;;;-1:-1:-1;;;10599:66:0;;9049:2:1;10599:66:0;;;9031:21:1;9088:2;9068:18;;;9061:30;9127;9107:18;;;9100:58;9175:18;;10599:66:0;8847:352:1;10599:66:0;-1:-1:-1;;;;;10692:22:0;;10684:66;;;;-1:-1:-1;;;10684:66:0;;9406:2:1;10684:66:0;;;9388:21:1;;;9425:18;;;9418:30;9484:34;9464:18;;;9457:62;9536:18;;10684:66:0;9204:356:1;10684:66:0;-1:-1:-1;;;;;10769:20:0;;10761:62;;;;-1:-1:-1;;;10761:62:0;;9767:2:1;10761:62:0;;;9749:21:1;9806:2;9786:18;;;9779:30;9845:32;9825:18;;;9818:60;9895:18;;10761:62:0;9565:354:1;10761:62:0;10851:10;10843:19;;;;:7;:19;;;;;;;;10842:20;10834:53;;;;-1:-1:-1;;;10834:53:0;;10126:2:1;10834:53:0;;;10108:21:1;10165:2;10145:18;;;10138:30;-1:-1:-1;;;10184:18:1;;;10177:51;10245:18;;10834:53:0;9924:345:1;10834:53:0;10911:11;;-1:-1:-1;;;10911:11:0;;;;10908:362;;;10941:4;;-1:-1:-1;;;10941:4:0;;;;10938:321;;;10980:16;;11022:4;;;11027:15;;10973:70;;-1:-1:-1;;;10973:70:0;;11011:10;10973:70;;;10514:34:1;;;;-1:-1:-1;;;;;11022:4:0;;;10564:18:1;;;10557:43;10616:18;;;10609:34;10980:16:0;;;;10973:37;;10449:18:1;;10973:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10965:107;;;;-1:-1:-1;;;10965:107:0;;11138:2:1;10965:107:0;;;11120:21:1;11177:2;11157:18;;;11150:30;11216:26;11196:18;;;11189:54;11260:18;;10965:107:0;10936:348:1;10965:107:0;10938:321;;;11146:8;;11133:9;:21;;11125:63;;;;-1:-1:-1;;;11125:63:0;;11491:2:1;11125:63:0;;;11473:21:1;11530:2;11510:18;;;11503:30;11569:32;11549:18;;;11542:60;11619:18;;11125:63:0;11289:354:1;11125:63:0;11215:8;;11234;;11207:36;;-1:-1:-1;;;;;11215:8:0;;;;11207:36;;;;;11234:8;11215;11207:36;11215:8;11207:36;11234:8;11215;11207:36;;;;;;;;;;;;;;;;;;;;;10938:321;-1:-1:-1;;;;;11407:18:0;;;;;;:10;:18;;;;;;;;11426:10;11407:30;;;;;;;;11389:15;:48;11381:81;;;;-1:-1:-1;;;11381:81:0;;11850:2:1;11381:81:0;;;11832:21:1;11889:2;11869:18;;;11862:30;-1:-1:-1;;;11908:18:1;;;11901:50;11968:18;;11381:81:0;11648:344:1;11381:81:0;11477:17;;;;;;;11473:213;;11545:17;;11531:9;;:32;;:13;:32::i;:::-;11513:15;:50;11510:165;;;11594:15;:13;:15::i;:::-;11644;11632:9;:27;11510:165;11844:13;;11824:34;;:15;;:19;:34::i;:::-;-1:-1:-1;;;;;11791:18:0;;;;;;:10;:18;;;;;;;;11810:10;11791:30;;;;;;;:67;;;;11946:19;;;:11;:19;;;;;;:21;;;;;;:::i;:::-;;;;-1:-1:-1;;11988:10:0;11978:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;11978:29:0;;;;;;;;;:31;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12023:28:0;;;12063:1;12023:28;;;:18;:28;;;;;;;12020:162;;-1:-1:-1;;;;;12081:28:0;;;;;;;:18;:28;;;;;;;;:37;;;;;-1:-1:-1;;;;;;12081:37:0;;;;;;;;12133:26;;:18;:26;;;;;:37;;;;;;;;12020:162;-1:-1:-1;;;;;12955:20:0;;;;;;:12;:20;;;;;;;;12951:1046;;-1:-1:-1;;;;;13239:18:0;;;;;;:10;:18;;;;;;;;13260:2;13239:23;;13315:12;:20;;;;;:27;;-1:-1:-1;;13315:27:0;13338:4;13315:27;;;18676:106:::1;18586:207:::0;:::o;12951:1046::-;-1:-1:-1;;;;;13374:18:0;;13395:1;13374:18;;;:10;:18;;;;;;:22;13371:615;;-1:-1:-1;;;;;13444:18:0;;13438:32;13444:18;;;:10;:18;;;;;;13438:5;;:32;13444:25;;13467:1;13444:22;:25::i;:::-;13438:32;;;;;;;;;;;;;;-1:-1:-1;13438:32:0;;;;-1:-1:-1;;;;;13415:19:0;;;;:11;:19;;;;;:55;13412:408;;-1:-1:-1;;;;;13537:18:0;;13524:39;13537:18;;;:10;:18;;;;;;13503:87;;13517:6;;13524:12;;:39;13537:25;;13560:1;13537:22;:25::i;:::-;13524:39;;;;;;;;;;;;;;-1:-1:-1;13524:39:0;;;;-1:-1:-1;;;;;13564:18:0;;;;;:10;:18;;;;;;;13524:39;;;13564:25;;13524:39;13564:22;:25::i;:::-;13503:13;:87::i;:::-;-1:-1:-1;;;;;13638:19:0;;;;;;:11;:19;;;;;;;;;13616:10;:18;;;;;;;;13610:25;;:5;:25;;;;;:47;;;;13762:18;;;;;;;;13749:12;;13638:19;;13762:25;;13785:1;13762:22;:25::i;:::-;13749:39;;;;;;;;;;;;;;-1:-1:-1;13749:39:0;;;;-1:-1:-1;;;;;13749:39:0;;;13737:52;;;;;;;;;;;;;;;13706:18;;;;;13682:10;13706:18;;;;;;;13676:5;;-1:-1:-1;13682:10:0;-1:-1:-1;;13693:12:0;;-1:-1:-1;;13706:25:0;;13749:39;13706:22;:25::i;:::-;13693:39;;;;;;;;;;;;;;-1:-1:-1;13693:39:0;;;;-1:-1:-1;;;;;13693:39:0;13682:51;;;;;;;;;;;;;;;13676:58;;;;;;;;;;;;:113;18676:106:::1;18586:207:::0;:::o;13371:615::-;-1:-1:-1;;;;;13933:19:0;;;;;:11;:19;;;;;;;;;13911:10;:18;;;;;;13905:25;;:5;:25;;;;;;:47;-1:-1:-1;10323:3681:0:o;19378:105::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;19447:11:::1;:18:::0;;-1:-1:-1;;;;19447:18:0::1;-1:-1:-1::0;;;19447:18:0::1;::::0;;19378:105::o;22351:291::-;22425:10;22415:21;;;;:9;:21;;;;;;;;22407:46;;;;-1:-1:-1;;;22407:46:0;;6592:2:1;22407:46:0;;;6574:21:1;6631:2;6611:18;;;6604:30;-1:-1:-1;;;6650:18:1;;;6643:43;6703:18;;22407:46:0;6390:337:1;22407:46:0;-1:-1:-1;;;;;22473:21:0;;;;;;:13;:21;;;;;;;;22472:22;22464:50;;;;-1:-1:-1;;;22464:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22525:21:0;;;;;;;:13;:21;;;;;;;;:28;;22549:4;-1:-1:-1;;22525:28:0;;;;;;;;22580:18;:26;;;;;;;;;22564:43;;:15;:43;;;;;;:50;;;;;;;;22351:291::o;19606:98::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;19675:4:::1;:11:::0;;-1:-1:-1;;;;19675:11:0::1;-1:-1:-1::0;;;19675:11:0::1;::::0;;19606:98::o;21422:163::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;21520:13:::1;:27:::0;21422:163::o;19816:607::-;19964:17;;;19978:2;19964:17;;;;;;;;;19855:16;;;;;;19929:32;;19964:17;;;;;;;;;-1:-1:-1;;20027:17:0;;;20041:2;20027:17;;;;;;;;;19929:52;;-1:-1:-1;19992:32:0;;20027:17;-1:-1:-1;20027:17:0;;;;;;;;-1:-1:-1;;20088:17:0;;;20102:2;20088:17;;;;;;;;;19992:52;;-1:-1:-1;20055:30:0;;20088:17;-1:-1:-1;20088:17:0;;;;;;;;;;-1:-1:-1;20088:17:0;20055:50;;20120:6;20116:213;20136:1;20131;:6;20116:213;;20176:35;20195:15;;;:12;:15;;;;;;;;;-1:-1:-1;;;;;20195:15:0;;;20176:35;;:18;:35;;;;;;;20155:18;;20176:35;;;20155:15;;20208:1;;20155:18;;;;;;:::i;:::-;-1:-1:-1;;;;;20155:56:0;;;:18;;;;;;;;;;:56;;;;20245:15;;;;:12;:15;;;;;;;20224:18;;20245:15;;;20224;;20258:1;;20224:18;;;;;;:::i;:::-;-1:-1:-1;;;;;20224:36:0;;;:18;;;;;;;;;;:36;20292:8;;;;:5;:8;;;;;;;20273:16;;:13;;20298:1;;20273:16;;;;;;:::i;:::-;;;;;;;;;;:27;20138:3;;;;:::i;:::-;;;;20116:213;;;-1:-1:-1;20348:15:0;;20364;;-1:-1:-1;20381:13:0;;-1:-1:-1;19816:607:0;-1:-1:-1;19816:607:0:o;19203:169::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;19327:8:::1;:24:::0;19203:169::o;6311:114::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;6388:5:::1;::::0;6369:25:::1;::::0;-1:-1:-1;;;;;6388:5:0;;::::1;::::0;6369:25:::1;::::0;6388:5:::1;::::0;6369:25:::1;6401:5;:18:::0;;-1:-1:-1;;;;;;6401:18:0::1;::::0;;6311:114::o;24378:126::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;24463:8:::1;::::0;24455:35:::1;::::0;-1:-1:-1;;;;;24463:8:0;;::::1;::::0;24455:35;::::1;;;::::0;24482:7;;24463:8:::1;24455:35:::0;24463:8;24455:35;24482:7;24463:8;24455:35;::::1;;;;;;;;;;;;;::::0;::::1;;;;24217:155:::0;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;24308:8:::1;::::0;24318:39:::1;::::0;-1:-1:-1;;;24318:39:0;;24351:4:::1;24318:39;::::0;::::1;3343:51:1::0;-1:-1:-1;;;;;24284:23:0;;::::1;::::0;::::1;::::0;24308:8;::::1;::::0;24284:23;;24318:24:::1;::::0;3316:18:1;;24318:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24284:74;::::0;-1:-1:-1;;;;;;24284:74:0::1;::::0;;;;;;-1:-1:-1;;;;;12378:32:1;;;24284:74:0::1;::::0;::::1;12360:51:1::0;12427:18;;;12420:34;12333:18;;24284:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21241:175::-:0;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;21345:17:::1;:33:::0;21241:175::o;20753:306::-;20873:17;;;20887:2;20873:17;;;;;;;;;20802:16;;20840:30;;20873:17;;;;;;;;;;;-1:-1:-1;20873:17:0;20840:50;;20905:6;20901:97;20921:1;20916;:6;20901:97;;20959:8;;;;:5;:8;;;;;;20940:16;;:13;;20965:1;;20940:16;;;;;;:::i;:::-;;;;;;;;;;:27;20923:3;;;;:::i;:::-;;;;20901:97;;17935:163;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;18035:16:::1;:35:::0;;-1:-1:-1;;;;;;18035:35:0::1;-1:-1:-1::0;;;;;18035:35:0;;;::::1;::::0;;;::::1;::::0;;17935:163::o;23358:134::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;23450:13:::1;::::0;;;:5:::1;:13;::::0;;;;;:28;23358:134::o;21065:170::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;21165:19:::1;:32:::0;21065:170::o;23656:198::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;-1:-1:-1;;;;;23778:38:0;;::::1;;::::0;;;:18:::1;:38;::::0;;;;:62;;-1:-1:-1;;;;;;23778:62:0::1;::::0;;;::::1;;::::0;;23656:198::o;23498:152::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;23599:20:::1;::::0;;;:12:::1;:20;::::0;;;;;:37;;-1:-1:-1;;;;;;23599:37:0::1;-1:-1:-1::0;;;;;23599:37:0;;::::1;::::0;;;::::1;::::0;;23498:152::o;17784:140::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;17874:4:::1;:22:::0;;-1:-1:-1;;;;;;17874:22:0::1;-1:-1:-1::0;;;;;17874:22:0;;;::::1;::::0;;;::::1;::::0;;17784:140::o;21780:185::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;21855:17:::1;::::0;::::1;;21854:18;21846:46;;;;-1:-1:-1::0;;;21846:46:0::1;;;;;;;:::i;:::-;21903:17;:24:::0;;-1:-1:-1;;21903:24:0::1;21923:4;21903:24;::::0;;21780:185::o;22952:181::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;-1:-1:-1;;;;;23036:24:0;::::1;;::::0;;;:9:::1;:24;::::0;;;;;::::1;;23035:25;23027:50;;;::::0;-1:-1:-1;;;23027:50:0;;12667:2:1;23027:50:0::1;::::0;::::1;12649:21:1::0;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:43;12778:18;;23027:50:0::1;12465:337:1::0;23027:50:0::1;-1:-1:-1::0;;;;;23088:24:0::1;;::::0;;;:9:::1;:24;::::0;;;;:31;;-1:-1:-1;;23088:31:0::1;23115:4;23088:31;::::0;;22952:181::o;18108:228::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;-1:-1:-1;;;;;18202:24:0;::::1;;::::0;;;:7:::1;:24;::::0;;;;;::::1;;18201:25;18193:63;;;::::0;-1:-1:-1;;;18193:63:0;;13009:2:1;18193:63:0::1;::::0;::::1;12991:21:1::0;13048:2;13028:18;;;13021:30;13087:28;13067:18;;;13060:56;13133:18;;18193:63:0::1;12807:350:1::0;18193:63:0::1;-1:-1:-1::0;;;;;18277:24:0::1;;::::0;;;:7:::1;:24;::::0;;;;:31;;-1:-1:-1;;18277:31:0::1;18304:4;18277:31;::::0;;18108:228::o;19489:107::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;19559:11:::1;:19:::0;;-1:-1:-1;;;;19559:19:0::1;::::0;;19489:107::o;14584:768::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;14698:9:::1;14694:638;14717:1;14712;:6;14694:638;;14749:19;::::0;14737:8:::1;::::0;;;:5:::1;:8;::::0;;;;;:31:::1;14734:570;;14817:19;::::0;14784:17:::1;14804:8:::0;;;:5:::1;:8;::::0;;;;;14784:17;;14804:33:::1;::::0;:8;:12:::1;:33::i;:::-;14906:19;::::0;14852:18:::1;14885:15:::0;;;:12:::1;:15;::::0;;;;;;;;-1:-1:-1;;;;;14885:15:0::1;14873:28:::0;;:11:::1;:28:::0;;;;;;14784:53;;-1:-1:-1;14852:18:0;14873:53:::1;::::0;:32:::1;:53::i;:::-;-1:-1:-1::0;;14941:8:0::1;::::0;;;:5:::1;:8;::::0;;;;;;;:20;;;15136:12:::1;:15:::0;;;;;;-1:-1:-1;;;;;15136:15:0::1;15124:28:::0;;:11:::1;:28:::0;;;;;:39;14734:570:::1;;;15236:1;15225:8:::0;;;:5:::1;:8;::::0;;;;;;;:12;;;15267::::1;:15:::0;;;;;;-1:-1:-1;;;;;15267:15:0::1;15255:28:::0;;:11:::1;:28:::0;;;;;:32;14734:570:::1;14719:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14694:638;;;;14584:768::o:0;6593:105::-;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;6663:29:::1;6682:9;6663:18;:29::i;21591:183::-:0;6196:5;;-1:-1:-1;;;;;6196:5:0;6182:10;:19;6174:28;;;;;;21664:17:::1;::::0;::::1;;21656:44;;;;-1:-1:-1::0;;;21656:44:0::1;;;;;;;:::i;:::-;21711:17;:25:::0;;-1:-1:-1;;21711:25:0::1;::::0;;21591:183::o;1014:181::-;1072:7;;1104:5;1108:1;1104;:5;:::i;:::-;1092:17;;1133:1;1128;:6;;1120:46;;;;-1:-1:-1;;;1120:46:0;;13494:2:1;1120:46:0;;;13476:21:1;13533:2;13513:18;;;13506:30;13572:29;13552:18;;;13545:57;13619:18;;1120:46:0;13292:351:1;1120:46:0;1186:1;-1:-1:-1;1014:181:0;;;;;:::o;14010:564::-;14111:9;14107:447;14130:1;14125;:6;14107:447;;14162:19;;14150:8;;;;:5;:8;;;;;;:31;14147:379;;14221:19;;14208:8;;;;:5;:8;;;;;;:33;;:12;:33::i;:::-;14197:8;;;;:5;:8;;;;;;;;:44;;;14358:12;:15;;;;;;-1:-1:-1;;;;;14358:15:0;14346:28;;:11;:28;;;;;:39;14147:379;;;14458:1;14447:8;;;:5;:8;;;;;;;;:12;;;14489;:15;;;;;;-1:-1:-1;;;;;14489:15:0;14477:28;;:11;:28;;;;;:32;14147:379;14132:3;;;;:::i;:::-;;;;14107:447;;1478:136;1536:7;1563:43;1567:1;1570;1563:43;;;;;;;;;;;;;;;;;:3;:43::i;9412:375::-;9514:19;;;;:12;:19;;;;;;;:28;;-1:-1:-1;;;;;;9514:28:0;-1:-1:-1;;;;;9514:28:0;;;;;9574:7;;9563;9514:19;-1:-1:-1;9563:7:0;:::i;:::-;9550:21;;;;;;;;;;;;;;-1:-1:-1;9550:21:0;;;:31;;-1:-1:-1;;;;;;9550:31:0;-1:-1:-1;;;;;9550:31:0;;;;;;9592:18;;;;;:10;:18;;;;;;:22;9589:92;;-1:-1:-1;;;;;9647:18:0;;;;;;:10;:18;;;;;;:25;;9670:1;9647:22;:25::i;:::-;-1:-1:-1;;;;;9626:18:0;;;;;;:10;:18;;;;;:46;9589:92;-1:-1:-1;;;;;9691:23:0;;;9688:95;;-1:-1:-1;;;;;9748:19:0;;;;;;:10;:19;;;;;;:26;;9772:1;9748:23;:26::i;:::-;-1:-1:-1;;;;;9726:19:0;;;;;;:10;:19;;;;;:48;9688:95;9412:375;;;:::o;6839:175::-;-1:-1:-1;;;;;6910:23:0;;6902:32;;;;;;6967:5;;6946:38;;-1:-1:-1;;;;;6946:38:0;;;;6967:5;;6946:38;;6967:5;;6946:38;6991:5;:17;;-1:-1:-1;;;;;;6991:17:0;-1:-1:-1;;;;;6991:17:0;;;;;;;;;;6839:175::o;1917:192::-;2003:7;2039:12;2031:6;;;;2023:29;;;;-1:-1:-1;;;2023:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2063:9:0;2075:5;2079:1;2075;:5;:::i;:::-;2063:17;1917:192;-1:-1:-1;;;;;1917:192:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;381:173::-;449:20;;-1:-1:-1;;;;;498:31:1;;488:42;;478:70;;544:1;541;534:12;478:70;381:173;;;:::o;559:186::-;618:6;671:2;659:9;650:7;646:23;642:32;639:52;;;687:1;684;677:12;639:52;710:29;729:9;710:29;:::i;942:127::-;1003:10;998:3;994:20;991:1;984:31;1034:4;1031:1;1024:15;1058:4;1055:1;1048:15;1074:1121;1158:6;1189:2;1232;1220:9;1211:7;1207:23;1203:32;1200:52;;;1248:1;1245;1238:12;1200:52;1288:9;1275:23;1317:18;1358:2;1350:6;1347:14;1344:34;;;1374:1;1371;1364:12;1344:34;1412:6;1401:9;1397:22;1387:32;;1457:7;1450:4;1446:2;1442:13;1438:27;1428:55;;1479:1;1476;1469:12;1428:55;1515:2;1502:16;1537:2;1533;1530:10;1527:36;;;1543:18;;:::i;:::-;1589:2;1586:1;1582:10;1621:2;1615:9;1684:2;1680:7;1675:2;1671;1667:11;1663:25;1655:6;1651:38;1739:6;1727:10;1724:22;1719:2;1707:10;1704:18;1701:46;1698:72;;;1750:18;;:::i;:::-;1786:2;1779:22;1836:18;;;1870:15;;;;-1:-1:-1;1912:11:1;;;1908:20;;;1940:19;;;1937:39;;;1972:1;1969;1962:12;1937:39;1996:11;;;;2016:148;2032:6;2027:3;2024:15;2016:148;;;2098:23;2117:3;2098:23;:::i;:::-;2086:36;;2049:12;;;;2142;;;;2016:148;;;2183:6;1074:1121;-1:-1:-1;;;;;;;;1074:1121:1:o;2200:461::-;2253:3;2291:5;2285:12;2318:6;2313:3;2306:19;2344:4;2373:2;2368:3;2364:12;2357:19;;2410:2;2403:5;2399:14;2431:1;2441:195;2455:6;2452:1;2449:13;2441:195;;;2520:13;;-1:-1:-1;;;;;2516:39:1;2504:52;;2576:12;;;;2611:15;;;;2552:1;2470:9;2441:195;;;-1:-1:-1;2652:3:1;;2200:461;-1:-1:-1;;;;;2200:461:1:o;2666:261::-;2845:2;2834:9;2827:21;2808:4;2865:56;2917:2;2906:9;2902:18;2894:6;2865:56;:::i;2932:260::-;3000:6;3008;3061:2;3049:9;3040:7;3036:23;3032:32;3029:52;;;3077:1;3074;3067:12;3029:52;3100:29;3119:9;3100:29;:::i;:::-;3090:39;;3148:38;3182:2;3171:9;3167:18;3148:38;:::i;:::-;3138:48;;2932:260;;;;;:::o;3405:435::-;3458:3;3496:5;3490:12;3523:6;3518:3;3511:19;3549:4;3578:2;3573:3;3569:12;3562:19;;3615:2;3608:5;3604:14;3636:1;3646:169;3660:6;3657:1;3654:13;3646:169;;;3721:13;;3709:26;;3755:12;;;;3790:15;;;;3682:1;3675:9;3646:169;;3845:669;4180:2;4169:9;4162:21;4143:4;4206:56;4258:2;4247:9;4243:18;4235:6;4206:56;:::i;:::-;4310:9;4302:6;4298:22;4293:2;4282:9;4278:18;4271:50;4344:44;4381:6;4373;4344:44;:::i;:::-;4330:58;;4436:9;4428:6;4424:22;4419:2;4408:9;4404:18;4397:50;4464:44;4501:6;4493;4464:44;:::i;:::-;4456:52;3845:669;-1:-1:-1;;;;;;3845:669:1:o;4519:261::-;4698:2;4687:9;4680:21;4661:4;4718:56;4770:2;4759:9;4755:18;4747:6;4718:56;:::i;4785:248::-;4853:6;4861;4914:2;4902:9;4893:7;4889:23;4885:32;4882:52;;;4930:1;4927;4920:12;4882:52;-1:-1:-1;;4953:23:1;;;5023:2;5008:18;;;4995:32;;-1:-1:-1;4785:248:1:o;5038:254::-;5106:6;5114;5167:2;5155:9;5146:7;5142:23;5138:32;5135:52;;;5183:1;5180;5173:12;5135:52;5219:9;5206:23;5196:33;;5248:38;5282:2;5271:9;5267:18;5248:38;:::i;5297:339::-;5499:2;5481:21;;;5538:2;5518:18;;;5511:30;-1:-1:-1;;;5572:2:1;5557:18;;5550:45;5627:2;5612:18;;5297:339::o;5641:127::-;5702:10;5697:3;5693:20;5690:1;5683:31;5733:4;5730:1;5723:15;5757:4;5754:1;5747:15;5773:127;5834:10;5829:3;5825:20;5822:1;5815:31;5865:4;5862:1;5855:15;5889:4;5886:1;5879:15;5905:135;5944:3;5965:17;;;5962:43;;5985:18;;:::i;:::-;-1:-1:-1;6032:1:1;6021:13;;5905:135::o;6045:340::-;6247:2;6229:21;;;6286:2;6266:18;;;6259:30;-1:-1:-1;;;6320:2:1;6305:18;;6298:46;6376:2;6361:18;;6045:340::o;10654:277::-;10721:6;10774:2;10762:9;10753:7;10749:23;10745:32;10742:52;;;10790:1;10787;10780:12;10742:52;10822:9;10816:16;10875:5;10868:13;10861:21;10854:5;10851:32;10841:60;;10897:1;10894;10887:12;11997:184;12067:6;12120:2;12108:9;12099:7;12095:23;12091:32;12088:52;;;12136:1;12133;12126:12;12088:52;-1:-1:-1;12159:16:1;;11997:184;-1:-1:-1;11997:184:1:o;13162:125::-;13227:9;;;13248:10;;;13245:36;;;13261:18;;:::i;13648:548::-;13760:4;13789:2;13818;13807:9;13800:21;13850:6;13844:13;13893:6;13888:2;13877:9;13873:18;13866:34;13918:1;13928:140;13942:6;13939:1;13936:13;13928:140;;;14037:14;;;14033:23;;14027:30;14003:17;;;14022:2;13999:26;13992:66;13957:10;;13928:140;;;13932:3;14117:1;14112:2;14103:6;14092:9;14088:22;14084:31;14077:42;14187:2;14180;14176:7;14171:2;14163:6;14159:15;14155:29;14144:9;14140:45;14136:54;14128:62;;;;13648:548;;;;:::o;14201:128::-;14268:9;;;14289:11;;;14286:37;;;14303:18;;:::i

Swarm Source

ipfs://89d795470c12f9755c7a0fa7a4f526bfa6dde187080bf75e6766c688e39eef70

Block Transaction Gas Used Reward
view all blocks ##produced##

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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  ]

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.