BNB Price: $703.89 (-2.86%)
Gas: 1 GWei
 

Overview

BNB Balance

BNB Smart Chain LogoBNB Smart Chain LogoBNB Smart Chain Logo0.02 BNB

BNB Value

$14.08 (@ $703.89/BNB)

Token Holdings

Transaction Hash
Method
Block
From
To
Approve458529782025-01-17 18:57:0126 hrs ago1737140221IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000139953
Approve458528402025-01-17 18:50:0726 hrs ago1737139807IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000046651
Approve458458272025-01-17 12:59:2832 hrs ago1737118768IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000027071.111
Approve458458042025-01-17 12:58:1932 hrs ago1737118699IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve458457942025-01-17 12:57:4932 hrs ago1737118669IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve458017322025-01-16 0:14:422 days ago1736986482IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000050931.1
Transfer458003232025-01-15 23:04:152 days ago1736982255IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000061591.2
Approve457899022025-01-15 14:23:123 days ago1736950992IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve457828152025-01-15 8:28:513 days ago1736929731IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000139953
Approve457473902025-01-14 2:57:344 days ago1736823454IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000031671.3
Approve457473892025-01-14 2:57:314 days ago1736823451IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve457060142025-01-12 16:28:336 days ago1736699313IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve455762892025-01-08 4:21:1610 days ago1736310076IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000046351
Approve455526882025-01-07 8:40:4811 days ago1736239248IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve455082282025-01-05 19:37:3513 days ago1736105855IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve454611322025-01-04 4:22:4214 days ago1735964562IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000046831.01
Approve454502102025-01-03 19:16:3615 days ago1735931796IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000046581
Approve453930292025-01-01 19:37:2717 days ago1735760247IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve452114292024-12-26 12:16:1123 days ago1735215371IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000046581
Transfer452009592024-12-26 3:32:3523 days ago1735183955IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000051331
Transfer450509422024-12-20 22:30:5928 days ago1734733859IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000102612
Transfer449911802024-12-18 20:42:3131 days ago1734554551IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00003741.1
Approve448955962024-12-15 13:02:4834 days ago1734267768IN
Spartan Protocol: Old SPARTA Token
0 BNB0.00002681.1
Approve448789392024-12-14 23:09:5634 days ago1734217796IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000046581
Transfer447547612024-12-10 15:40:0439 days ago1733845204IN
Spartan Protocol: Old SPARTA Token
0 BNB0.000256785
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711752021-03-07 11:51:421413 days ago1615117902
Spartan Protocol: Old SPARTA Token
0 BNB
54711632021-03-07 11:51:061413 days ago1615117866
Spartan Protocol: Old SPARTA Token
0 BNB
54711622021-03-07 11:51:031413 days ago1615117863
Spartan Protocol: Old SPARTA Token
0 BNB
54711622021-03-07 11:51:031413 days ago1615117863
Spartan Protocol: Old SPARTA Token
0 BNB
54711622021-03-07 11:51:031413 days ago1615117863
Spartan Protocol: Old SPARTA Token
0 BNB
54711622021-03-07 11:51:031413 days ago1615117863
Spartan Protocol: Old SPARTA Token
0 BNB
54711622021-03-07 11:51:031413 days ago1615117863
Spartan Protocol: Old SPARTA Token
0 BNB
54711622021-03-07 11:51:031413 days ago1615117863
Spartan Protocol: Old SPARTA Token
0 BNB
54711552021-03-07 11:50:421413 days ago1615117842
Spartan Protocol: Old SPARTA Token
0 BNB
54711552021-03-07 11:50:421413 days ago1615117842
Spartan Protocol: Old SPARTA Token
0 BNB
54711552021-03-07 11:50:421413 days ago1615117842
Spartan Protocol: Old SPARTA Token
0 BNB
54711532021-03-07 11:50:361413 days ago1615117836
Spartan Protocol: Old SPARTA Token
0 BNB
54711532021-03-07 11:50:361413 days ago1615117836
Spartan Protocol: Old SPARTA Token
0 BNB
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Sparta

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2020-09-10
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.6.8;
pragma experimental ABIEncoderV2;
//iBEP20 Interface
interface iBEP20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint);
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address, uint) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address, uint) external returns (bool);
    function transferFrom(address, address, uint) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
}
    //======================================SPARTA=========================================//
contract Sparta is iBEP20 {
    using SafeMath for uint256;

    // ERC-20 Parameters
    string public override name; string public override symbol;
    uint256 public override decimals; uint256 public override totalSupply;

    // ERC-20 Mappings
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    // Parameters
    uint256 one;
    bool public emitting;
    uint256 public emissionCurve;
    uint256 public _100m;
    uint256 public totalCap;
    uint256 public secondsPerEra;
    uint256 public currentEra;
    uint256 public nextEraTime;

    address public incentiveAddress;
    address public DAO;
    address public burnAddress;
    address public DEPLOYER;

    address[] public assetArray;
    mapping(address => bool) public isListed;
    mapping(address => uint256) public mapAsset_claimRate;
    mapping(address => uint256) public mapAsset_claimed;
    mapping(address => uint256) public mapAsset_allocation;

    struct AssetDetailsStruct {
        bool listed;
        uint256 claimRate;
        uint256 claimed;
        uint256 allocation;
    }

    // Events
    event ListedAsset(address indexed DAO, address indexed asset, uint256 claimRate, uint256 allocation);
    event DelistedAsset(address indexed DAO, address indexed asset);
    event NewCurve(address indexed DAO, uint256 newCurve);
    event NewIncentiveAddress(address indexed DAO, address newIncentiveAddress);
    event NewDuration(address indexed DAO, uint256 newDuration);
    event NewDAO(address indexed DAO, address newOwner);
    event NewEra(uint256 currentEra, uint256 nextEraTime, uint256 emission);

    // Only DAO can execute
    modifier onlyDAO() {
        require(msg.sender == DAO || msg.sender == DEPLOYER, "Must be DAO");
        _;
    }

    //=====================================CREATION=========================================//
    // Constructor
    constructor() public {
        name = 'SPARTAN PROTOCOL TOKEN';
        symbol = 'SPARTA';
        decimals = 18;
        one = 10 ** decimals;
        _100m = 100 * 10**6 * one;
        totalSupply = 0;
        totalCap = 300 * 10**6 * one;
        emissionCurve = 2048;
        emitting = false;
        currentEra = 1;
        secondsPerEra = 86400;
        nextEraTime = now + secondsPerEra;
        DEPLOYER = msg.sender;
        burnAddress = 0x000000000000000000000000000000000000dEaD;
    }

    receive() external payable {
        claim(address(0), msg.value);
    }

    //========================================iBEP20=========================================//
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    // iBEP20 Transfer function
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    // iBEP20 Approve, change allowance functions
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "iBEP20: decreased allowance below zero"));
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "iBEP20: approve from the zero address");
        require(spender != address(0), "iBEP20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    // iBEP20 TransferFrom function
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "iBEP20: transfer amount exceeds allowance"));
        return true;
    }

    // TransferTo function
    function transferTo(address recipient, uint256 amount) public returns (bool) {
        _transfer(tx.origin, recipient, amount);
        return true;
    }

    // Internal transfer function
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "iBEP20: transfer from the zero address");
        _balances[sender] = _balances[sender].sub(amount, "iBEP20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        _checkEmission();
    }
    // Internal mint (upgrading and daily emissions)
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "iBEP20: mint to the zero address");
        totalSupply = totalSupply.add(amount);
        require(totalSupply <= totalCap, "Must not mint more than the cap");
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    // Burn supply
    function burn(uint256 amount) public virtual {
        _burn(msg.sender, amount);
    }
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 decreasedAllowance = allowance(account, msg.sender).sub(amount, "iBEP20: burn amount exceeds allowance");
        _approve(account, msg.sender, decreasedAllowance);
        _burn(account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "iBEP20: burn from the zero address");
        _balances[account] = _balances[account].sub(amount, "iBEP20: burn amount exceeds balance");
        totalSupply = totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    //=========================================DAO=========================================//
    // Can list
    function listAsset(address asset, uint256 claimRate, uint256 allocation) public onlyDAO returns(bool){
        if(!isListed[asset]){
            isListed[asset] = true;
            assetArray.push(asset);
        }
        mapAsset_claimRate[asset] = claimRate;
        mapAsset_allocation[asset] = allocation;
        emit ListedAsset(msg.sender, asset, claimRate, allocation);
        return true;
    }
    // Can delist
    function delistAsset(address asset) public onlyDAO returns(bool){
        isListed[asset] = false;
        mapAsset_claimRate[asset] = 0;
        mapAsset_allocation[asset] = 0;
        emit DelistedAsset(msg.sender, asset);
        return true;
    }
    // Can start
    function startEmissions() public onlyDAO returns(bool){
        emitting = true;
        return true;
    }
    // Can stop
    function stopEmissions() public onlyDAO returns(bool){
        emitting = false;
        return true;
    }
    // Can change emissionCurve
    function changeEmissionCurve(uint256 newCurve) public onlyDAO returns(bool){
        emissionCurve = newCurve;
        emit NewCurve(msg.sender, newCurve);
        return true;
    }
    // Can change daily time
    function changeEraDuration(uint256 newDuration) public onlyDAO returns(bool) {
        secondsPerEra = newDuration;
        emit NewDuration(msg.sender, newDuration);
        return true;
    }
    // Can change Incentive Address
    function changeIncentiveAddress(address newIncentiveAddress) public onlyDAO returns(bool) {
        incentiveAddress = newIncentiveAddress;
        emit NewIncentiveAddress(msg.sender, newIncentiveAddress);
        return true;
    }
    // Can change DAO
    function changeDAO(address newDAO) public onlyDAO returns(bool){
        require(newDAO != address(0), "Must not be zero address");
        DAO = newDAO;
        emit NewDAO(msg.sender, newDAO);
        return true;
    }
    // Can purge DAO
    function purgeDAO() public onlyDAO returns(bool){
        DAO = address(0);
        emit NewDAO(msg.sender, address(0));
        return true;
    }
    // Can purge DEPLOYER
    function purgeDeployer() public onlyDAO returns(bool){
        DEPLOYER = address(0);
        return true;
    }

   //======================================EMISSION========================================//
    // Internal - Update emission function
    function _checkEmission() private {
        if ((now >= nextEraTime) && emitting) {                                            // If new Era and allowed to emit
            currentEra += 1;                                                               // Increment Era
            nextEraTime = now + secondsPerEra;                                             // Set next Era time
            uint256 _emission = getDailyEmission();                                        // Get Daily Dmission
            _mint(incentiveAddress, _emission);                                            // Mint to the Incentive Address
            emit NewEra(currentEra, nextEraTime, _emission);                               // Emit Event
        }
    }
    // Calculate Daily Emission
    function getDailyEmission() public view returns (uint256) {
        uint _adjustedCap;
        if(totalSupply <= _100m){ // If less than 100m, then adjust cap down
            _adjustedCap = (totalCap.mul(totalSupply)).div(_100m); // 300m * 50m / 100m = 300m * 50% = 150m
        } else {
            _adjustedCap = totalCap;  // 300m
        }
        return (_adjustedCap.sub(totalSupply)).div(emissionCurve); // outstanding / 2048 
    }
    //======================================CLAIM========================================//
    // Anyone to Claim
    function claim(address asset, uint amount) public payable {
        
        uint _claim = amount;
        if(mapAsset_claimed[asset].add(amount) > mapAsset_allocation[asset]){
            _claim = mapAsset_allocation[asset].sub(mapAsset_claimed[asset]);
        }

        if(asset == address(0)){
            require(amount == msg.value, "Must get BNB");
            payable(burnAddress).call{value:_claim}("");
            payable(msg.sender).call{value:amount.sub(_claim)}("");
        } else {
            iBEP20(asset).transferFrom(msg.sender, burnAddress, _claim);
        }
        
        mapAsset_claimed[asset] = mapAsset_claimed[asset].add(amount);
        uint256 _adjustedClaimRate = getAdjustedClaimRate(asset);
        // sparta = rate * claim / 1e8
        uint256 _sparta = (_adjustedClaimRate.mul(_claim)).div(one);
        _mint(msg.sender, _sparta);
    }
     // Calculate Adjusted Claim Rate
    function getAdjustedClaimRate(address asset) public view returns (uint256 adjustedClaimRate) {
        uint256 _claimRate = mapAsset_claimRate[asset];                           // Get Claim Rate
        if(totalSupply <= _100m){
            // return 100%
            return _claimRate;
        } else {
            // (claim*(200-(totalSupply-_100m)))/200 -> starts 100% then goes to 0 at 300m. 
            uint256 _200m = totalCap.sub(_100m);
            return _claimRate.mul(_200m.sub((totalSupply.sub(_100m)))).div(_200m);
        }
    }
    //======================================HELPERS========================================//
    // Helper Functions

    function assetCount() public view returns (uint256 count){
        return assetArray.length;
    }
    function allAssets() public view returns (address[] memory _allAssets){
        return assetArray;
    }
    function assetsInRange(uint start, uint count) public view returns (address[] memory someAssets){
        if(count > assetCount()){count = assetCount();}
        address[] memory result = new address[](count);
        for (uint i = start; i<start.add(count); i++){
            result[i] = assetArray[i];
        }
        return result;
    }

    function getAssetDetails(address asset) public view returns (AssetDetailsStruct memory assetDetails){
        assetDetails.listed = isListed[asset];
        assetDetails.claimRate = mapAsset_claimRate[asset];
        assetDetails.claimed = mapAsset_claimed[asset];
        assetDetails.allocation = mapAsset_allocation[asset];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"}],"name":"DelistedAsset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"claimRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocation","type":"uint256"}],"name":"ListedAsset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"uint256","name":"newCurve","type":"uint256"}],"name":"NewCurve","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"NewDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"NewDuration","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"currentEra","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nextEraTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emission","type":"uint256"}],"name":"NewEra","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"address","name":"newIncentiveAddress","type":"address"}],"name":"NewIncentiveAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPLOYER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_100m","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allAssets","outputs":[{"internalType":"address[]","name":"_allAssets","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"assetArray","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetCount","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"assetsInRange","outputs":[{"internalType":"address[]","name":"someAssets","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDAO","type":"address"}],"name":"changeDAO","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newCurve","type":"uint256"}],"name":"changeEmissionCurve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"changeEraDuration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newIncentiveAddress","type":"address"}],"name":"changeIncentiveAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"delistAsset","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emissionCurve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emitting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getAdjustedClaimRate","outputs":[{"internalType":"uint256","name":"adjustedClaimRate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getAssetDetails","outputs":[{"components":[{"internalType":"bool","name":"listed","type":"bool"},{"internalType":"uint256","name":"claimRate","type":"uint256"},{"internalType":"uint256","name":"claimed","type":"uint256"},{"internalType":"uint256","name":"allocation","type":"uint256"}],"internalType":"struct Sparta.AssetDetailsStruct","name":"assetDetails","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDailyEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incentiveAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"claimRate","type":"uint256"},{"internalType":"uint256","name":"allocation","type":"uint256"}],"name":"listAsset","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAsset_allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAsset_claimRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAsset_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEraTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purgeDAO","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"purgeDeployer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondsPerEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startEmissions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopEmissions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040805180820190915260168082527f5350415254414e2050524f544f434f4c20544f4b454e000000000000000000006020909201918252620000589160009162000108565b506040805180820190915260068082526553504152544160d01b6020909201918252620000889160019162000108565b506012600255670de0b6b3a76400006006556a52b7d2dcc80cd2e400000060095560006003556af8277896582678ac000000600a556108006008556007805460ff191690556001600c5562015180600b8190554201600d55601180546001600160a01b031990811633179091556010805490911661dead179055620001ad565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014b57805160ff19168380011785556200017b565b828001600101855582156200017b579182015b828111156200017b5782518255916020019190600101906200015e565b50620001899291506200018d565b5090565b620001aa91905b8082111562000189576000815560010162000194565b90565b6121ce80620001bd6000396000f3fe60806040526004361061028c5760003560e01c80637605bbb01161015a578063aad3ec96116100c1578063dd62ed3e1161007a578063dd62ed3e14610731578063e86dad2914610751578063eae9fd6d14610771578063eafe7a7414610791578063f293e675146107a6578063f794062e146107bb5761029e565b8063aad3ec9614610694578063acf4db86146106a7578063ba0f6566146106c7578063be8051c9146106e7578063c1b8411a14610707578063c91b6b461461071c5761029e565b8063973628f611610113578063973628f6146105e857806398fabd3a146105fd5780639a67759b146106125780639c9b645114610627578063a457c2d714610654578063a9059cbb146106745761029e565b80637605bbb01461053157806376d708d71461055157806379cc6790146105735780638377e89a1461059357806395d89b41146105b35780639620e222146105c85761029e565b806328957be2116101fe57806342966c68116101b757806342966c68146104875780636b92a3b6146104a757806370a08231146104bc57806370d5ae05146104dc5780637299626d146104f1578063745fda9b146105115761029e565b806328957be2146103e65780632ccb1b30146104085780632eabea0214610428578063313ce5671461043d5780633950935114610452578063405b6587146104725761029e565b8063095ea7b311610250578063095ea7b314610347578063164500921461036757806318160ddd1461037c5780631b02f845146103915780631d007f5f146103a657806323b872dd146103c65761029e565b806303a82138146102a357806306f8b189146102ce57806306fdde03146102ee5780630781f4d214610310578063090bbb01146103255761029e565b3661029e5761029c6000346107db565b005b600080fd5b3480156102af57600080fd5b506102b8610a63565b6040516102c59190611d97565b60405180910390f35b3480156102da57600080fd5b506102b86102e9366004611c83565b610abb565b3480156102fa57600080fd5b50610303610bf1565b6040516102c59190611da2565b34801561031c57600080fd5b506102b8610c7f565b34801561033157600080fd5b5061033a610c88565b6040516102c59190612098565b34801561035357600080fd5b506102b8610362366004611c59565b610c8e565b34801561037357600080fd5b5061033a610ca5565b34801561038857600080fd5b5061033a610cab565b34801561039d57600080fd5b506102b8610cb1565b3480156103b257600080fd5b506102b86103c1366004611bca565b610d07565b3480156103d257600080fd5b506102b86103e1366004611c19565b610dcd565b3480156103f257600080fd5b506103fb610e3c565b6040516102c59190611d12565b34801561041457600080fd5b506102b8610423366004611c59565b610e4b565b34801561043457600080fd5b506102b8610e58565b34801561044957600080fd5b5061033a610eaa565b34801561045e57600080fd5b506102b861046d366004611c59565b610eb0565b34801561047e57600080fd5b5061033a610eec565b34801561049357600080fd5b5061029c6104a2366004611cd6565b610ef2565b3480156104b357600080fd5b5061033a610eff565b3480156104c857600080fd5b5061033a6104d7366004611bca565b610f05565b3480156104e857600080fd5b506103fb610f20565b3480156104fd57600080fd5b506102b861050c366004611cd6565b610f2f565b34801561051d57600080fd5b5061033a61052c366004611bca565b610fa8565b34801561053d57600080fd5b506102b861054c366004611bca565b611032565b34801561055d57600080fd5b506105666110da565b6040516102c59190611d4a565b34801561057f57600080fd5b5061029c61058e366004611c59565b61113c565b34801561059f57600080fd5b506102b86105ae366004611bca565b61118e565b3480156105bf57600080fd5b5061030361121d565b3480156105d457600080fd5b5061033a6105e3366004611bca565b611277565b3480156105f457600080fd5b5061033a611289565b34801561060957600080fd5b506103fb61128f565b34801561061e57600080fd5b5061033a61129e565b34801561063357600080fd5b50610647610642366004611bca565b6112a4565b6040516102c5919061206b565b34801561066057600080fd5b506102b861066f366004611c59565b6112ff565b34801561068057600080fd5b506102b861068f366004611c59565b611354565b61029c6106a2366004611c59565b6107db565b3480156106b357600080fd5b506102b86106c2366004611cd6565b611361565b3480156106d357600080fd5b5061033a6106e2366004611bca565b6113da565b3480156106f357600080fd5b5061033a610702366004611bca565b6113ec565b34801561071357600080fd5b506103fb6113fe565b34801561072857600080fd5b506102b861140d565b34801561073d57600080fd5b5061033a61074c366004611be5565b6114a0565b34801561075d57600080fd5b506103fb61076c366004611cd6565b6114cb565b34801561077d57600080fd5b5061056661078c366004611cee565b6114f2565b34801561079d57600080fd5b5061033a6115cc565b3480156107b257600080fd5b5061033a6115d2565b3480156107c757600080fd5b506102b86107d6366004611bca565b61162a565b6001600160a01b038216600090815260166020908152604080832054601590925290912054829190610813908363ffffffff61163f16565b1115610850576001600160a01b03831660009081526015602090815260408083205460169092529091205461084d9163ffffffff61166b16565b90505b6001600160a01b038316610951573482146108865760405162461bcd60e51b815260040161087d90611ed9565b60405180910390fd5b6010546040516001600160a01b039091169082906108a390611d0f565b60006040518083038185875af1925050503d80600081146108e0576040519150601f19603f3d011682016040523d82523d6000602084013e6108e5565b606091505b503391506108fb9050838363ffffffff61166b16565b60405161090790611d0f565b60006040518083038185875af1925050503d8060008114610944576040519150601f19603f3d011682016040523d82523d6000602084013e610949565b606091505b5050506109d9565b6010546040516323b872dd60e01b81526001600160a01b03808616926323b872dd9261098592339216908690600401611d26565b602060405180830381600087803b15801561099f57600080fd5b505af11580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190611cb6565b505b6001600160a01b038316600090815260156020526040902054610a02908363ffffffff61163f16565b6001600160a01b038416600090815260156020526040812091909155610a2784610fa8565b90506000610a50600654610a4485856116ad90919063ffffffff16565b9063ffffffff6116e716565b9050610a5c3382611729565b5050505050565b600f546000906001600160a01b0316331480610a8957506011546001600160a01b031633145b610aa55760405162461bcd60e51b815260040161087d90611e6f565b50601180546001600160a01b0319169055600190565b600f546000906001600160a01b0316331480610ae157506011546001600160a01b031633145b610afd5760405162461bcd60e51b815260040161087d90611e6f565b6001600160a01b03841660009081526013602052604090205460ff16610b83576001600160a01b0384166000818152601360205260408120805460ff191660019081179091556012805491820181559091527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180546001600160a01b03191690911790555b6001600160a01b03841660008181526014602090815260408083208790556016909152908190208490555133907f1adc5ea472d4a0b01604de1a7e973f26d81a58b0dafb186558bdf15e1af8479b90610bdf90879087906120a1565b60405180910390a35060019392505050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c775780601f10610c4c57610100808354040283529160200191610c77565b820191906000526020600020905b815481529060010190602001808311610c5a57829003601f168201915b505050505081565b60075460ff1681565b600d5481565b6000610c9b33848461180c565b5060015b92915050565b600a5481565b60035481565b600f546000906001600160a01b0316331480610cd757506011546001600160a01b031633145b610cf35760405162461bcd60e51b815260040161087d90611e6f565b506007805460ff1916600190811790915590565b600f546000906001600160a01b0316331480610d2d57506011546001600160a01b031633145b610d495760405162461bcd60e51b815260040161087d90611e6f565b6001600160a01b038216610d6f5760405162461bcd60e51b815260040161087d90611f75565b600f80546001600160a01b0319166001600160a01b03841617905560405133907f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f190610dbc908590611d12565b60405180910390a25060015b919050565b6000610dda8484846118c0565b610e328433610e2d856040518060600160405280602981526020016120db602991396001600160a01b038a166000908152600560209081526040808320338452909152902054919063ffffffff6119c016565b61180c565b5060019392505050565b600e546001600160a01b031681565b6000610c9b3284846118c0565b600f546000906001600160a01b0316331480610e7e57506011546001600160a01b031633145b610e9a5760405162461bcd60e51b815260040161087d90611e6f565b506007805460ff19169055600190565b60025481565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c9b918590610e2d908663ffffffff61163f16565b60095481565b610efc33826119ec565b50565b600b5481565b6001600160a01b031660009081526004602052604090205490565b6010546001600160a01b031681565b600f546000906001600160a01b0316331480610f5557506011546001600160a01b031633145b610f715760405162461bcd60e51b815260040161087d90611e6f565b600b82905560405133907fc0473c2cbb9705ca96e7d892f51ae51b81f597dab7ed6eb25f0a3e7c75d4663990610dbc908590612098565b6001600160a01b03811660009081526014602052604081205460095460035411610fd3579050610dc8565b6000610fec600954600a5461166b90919063ffffffff16565b905061102981610a4461101c61100f60095460035461166b90919063ffffffff16565b859063ffffffff61166b16565b859063ffffffff6116ad16565b92505050610dc8565b600f546000906001600160a01b031633148061105857506011546001600160a01b031633145b6110745760405162461bcd60e51b815260040161087d90611e6f565b6001600160a01b0382166000818152601360209081526040808320805460ff191690556014825280832083905560169091528082208290555133917ff487c2322baa448cfa506b983134d9dd9f27d0bbfe0b48119a3908d4f0dde89f91a3506001919050565b6060601280548060200260200160405190810160405280929190818152602001828054801561113257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611114575b5050505050905090565b6000611172826040518060600160405280602581526020016121046025913961116586336114a0565b919063ffffffff6119c016565b905061117f83338361180c565b61118983836119ec565b505050565b600f546000906001600160a01b03163314806111b457506011546001600160a01b031633145b6111d05760405162461bcd60e51b815260040161087d90611e6f565b600e80546001600160a01b0319166001600160a01b03841617905560405133907f5b536d33bf72072f3abff40e9c9bc550f83025bbc9b8cc36972c166d8b568b4390610dbc908590611d12565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c775780601f10610c4c57610100808354040283529160200191610c77565b60166020526000908152604090205481565b600c5481565b600f546001600160a01b031681565b60085481565b6112ac611b89565b6001600160a01b0390911660008181526013602090815260408083205460ff1615158552838352601482528083205485830152838352601582528083205485820152928252601690522054606082015290565b6000610c9b3384610e2d85604051806060016040528060268152602001612173602691393360009081526005602090815260408083206001600160a01b038d168452909152902054919063ffffffff6119c016565b6000610c9b3384846118c0565b600f546000906001600160a01b031633148061138757506011546001600160a01b031633145b6113a35760405162461bcd60e51b815260040161087d90611e6f565b600882905560405133907fe61d471656d849b230e45307bce5f71d00383888866b992d6a6993b72361e79990610dbc908590612098565b60146020526000908152604090205481565b60156020526000908152604090205481565b6011546001600160a01b031681565b600f546000906001600160a01b031633148061143357506011546001600160a01b031633145b61144f5760405162461bcd60e51b815260040161087d90611e6f565b600f80546001600160a01b031916905560405133907f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f19061149290600090611d12565b60405180910390a250600190565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b601281815481106114d857fe5b6000918252602090912001546001600160a01b0316905081565b60606114fc6115cc565b82111561150e5761150b6115cc565b91505b60608267ffffffffffffffff8111801561152757600080fd5b50604051908082528060200260200182016040528015611551578160200160208202803683370190505b509050835b611566858563ffffffff61163f16565b8110156115c4576012818154811061157a57fe5b9060005260206000200160009054906101000a90046001600160a01b03168282815181106115a457fe5b6001600160a01b0390921660209283029190910190910152600101611556565b509392505050565b60125490565b60008060095460035411611604576115fd600954610a44600354600a546116ad90919063ffffffff16565b9050611609565b50600a545b611624600854610a446003548461166b90919063ffffffff16565b91505090565b60136020526000908152604090205460ff1681565b6000828201838110156116645760405162461bcd60e51b815260040161087d90611df5565b9392505050565b600061166483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119c0565b6000826116bc57506000610c9f565b828202828482816116c957fe5b04146116645760405162461bcd60e51b815260040161087d90611eff565b600061166483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac2565b6001600160a01b03821661174f5760405162461bcd60e51b815260040161087d90611f40565b600354611762908263ffffffff61163f16565b6003819055600a5410156117885760405162461bcd60e51b815260040161087d90611fac565b6001600160a01b0382166000908152600460205260409020546117b1908263ffffffff61163f16565b6001600160a01b0383166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611800908590612098565b60405180910390a35050565b6001600160a01b0383166118325760405162461bcd60e51b815260040161087d90611e94565b6001600160a01b0382166118585760405162461bcd60e51b815260040161087d90611e2c565b6001600160a01b0380841660008181526005602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906118b3908590612098565b60405180910390a3505050565b6001600160a01b0383166118e65760405162461bcd60e51b815260040161087d90612025565b61192981604051806060016040528060278152602001612129602791396001600160a01b038616600090815260046020526040902054919063ffffffff6119c016565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461195e908263ffffffff61163f16565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119b0908590612098565b60405180910390a3611189611af9565b600081848411156119e45760405162461bcd60e51b815260040161087d9190611da2565b505050900390565b6001600160a01b038216611a125760405162461bcd60e51b815260040161087d90611fe3565b611a5581604051806060016040528060238152602001612150602391396001600160a01b038516600090815260046020526040902054919063ffffffff6119c016565b6001600160a01b038316600090815260046020526040902055600354611a81908263ffffffff61166b16565b6003556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611800908590612098565b60008183611ae35760405162461bcd60e51b815260040161087d9190611da2565b506000838581611aef57fe5b0495945050505050565b600d544210158015611b0d575060075460ff165b15611b8757600c80546001019055600b544201600d556000611b2d6115d2565b600e54909150611b46906001600160a01b031682611729565b7f9d472bcf372fce01fd875c3296e8e5ae0a08bfca42dedac19e202271ce8f39c5600c54600d5483604051611b7d939291906120af565b60405180910390a1505b565b60405180608001604052806000151581526020016000815260200160008152602001600081525090565b80356001600160a01b0381168114610c9f57600080fd5b600060208284031215611bdb578081fd5b6116648383611bb3565b60008060408385031215611bf7578081fd5b611c018484611bb3565b9150611c108460208501611bb3565b90509250929050565b600080600060608486031215611c2d578081fd5b8335611c38816120c5565b92506020840135611c48816120c5565b929592945050506040919091013590565b60008060408385031215611c6b578182fd5b611c758484611bb3565b946020939093013593505050565b600080600060608486031215611c97578283fd5b611ca18585611bb3565b95602085013595506040909401359392505050565b600060208284031215611cc7578081fd5b81518015158114611664578182fd5b600060208284031215611ce7578081fd5b5035919050565b60008060408385031215611d00578182fd5b50508035926020909101359150565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b81811015611d8b5783516001600160a01b031683529284019291840191600101611d66565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611dce57858101830151858201604001528201611db2565b81811115611ddf5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526023908201527f6942455032303a20617070726f766520746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252600b908201526a4d7573742062652044414f60a81b604082015260600190565b60208082526025908201527f6942455032303a20617070726f76652066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252600c908201526b26bab9ba1033b2ba1021272160a11b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f6942455032303a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526018908201527f4d757374206e6f74206265207a65726f20616464726573730000000000000000604082015260600190565b6020808252601f908201527f4d757374206e6f74206d696e74206d6f7265207468616e207468652063617000604082015260600190565b60208082526022908201527f6942455032303a206275726e2066726f6d20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f6942455032303a207472616e736665722066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b81511515815260208083015190820152604080830151908201526060918201519181019190915260800190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b6001600160a01b0381168114610efc57600080fdfe6942455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63656942455032303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656942455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656942455032303a206275726e20616d6f756e7420657863656564732062616c616e63656942455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f1c453259ae38ef9559a5604262e6f8abcfa4c285d98640fb489ddf63f94741064736f6c63430006080033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80637605bbb01161015a578063aad3ec96116100c1578063dd62ed3e1161007a578063dd62ed3e14610731578063e86dad2914610751578063eae9fd6d14610771578063eafe7a7414610791578063f293e675146107a6578063f794062e146107bb5761029e565b8063aad3ec9614610694578063acf4db86146106a7578063ba0f6566146106c7578063be8051c9146106e7578063c1b8411a14610707578063c91b6b461461071c5761029e565b8063973628f611610113578063973628f6146105e857806398fabd3a146105fd5780639a67759b146106125780639c9b645114610627578063a457c2d714610654578063a9059cbb146106745761029e565b80637605bbb01461053157806376d708d71461055157806379cc6790146105735780638377e89a1461059357806395d89b41146105b35780639620e222146105c85761029e565b806328957be2116101fe57806342966c68116101b757806342966c68146104875780636b92a3b6146104a757806370a08231146104bc57806370d5ae05146104dc5780637299626d146104f1578063745fda9b146105115761029e565b806328957be2146103e65780632ccb1b30146104085780632eabea0214610428578063313ce5671461043d5780633950935114610452578063405b6587146104725761029e565b8063095ea7b311610250578063095ea7b314610347578063164500921461036757806318160ddd1461037c5780631b02f845146103915780631d007f5f146103a657806323b872dd146103c65761029e565b806303a82138146102a357806306f8b189146102ce57806306fdde03146102ee5780630781f4d214610310578063090bbb01146103255761029e565b3661029e5761029c6000346107db565b005b600080fd5b3480156102af57600080fd5b506102b8610a63565b6040516102c59190611d97565b60405180910390f35b3480156102da57600080fd5b506102b86102e9366004611c83565b610abb565b3480156102fa57600080fd5b50610303610bf1565b6040516102c59190611da2565b34801561031c57600080fd5b506102b8610c7f565b34801561033157600080fd5b5061033a610c88565b6040516102c59190612098565b34801561035357600080fd5b506102b8610362366004611c59565b610c8e565b34801561037357600080fd5b5061033a610ca5565b34801561038857600080fd5b5061033a610cab565b34801561039d57600080fd5b506102b8610cb1565b3480156103b257600080fd5b506102b86103c1366004611bca565b610d07565b3480156103d257600080fd5b506102b86103e1366004611c19565b610dcd565b3480156103f257600080fd5b506103fb610e3c565b6040516102c59190611d12565b34801561041457600080fd5b506102b8610423366004611c59565b610e4b565b34801561043457600080fd5b506102b8610e58565b34801561044957600080fd5b5061033a610eaa565b34801561045e57600080fd5b506102b861046d366004611c59565b610eb0565b34801561047e57600080fd5b5061033a610eec565b34801561049357600080fd5b5061029c6104a2366004611cd6565b610ef2565b3480156104b357600080fd5b5061033a610eff565b3480156104c857600080fd5b5061033a6104d7366004611bca565b610f05565b3480156104e857600080fd5b506103fb610f20565b3480156104fd57600080fd5b506102b861050c366004611cd6565b610f2f565b34801561051d57600080fd5b5061033a61052c366004611bca565b610fa8565b34801561053d57600080fd5b506102b861054c366004611bca565b611032565b34801561055d57600080fd5b506105666110da565b6040516102c59190611d4a565b34801561057f57600080fd5b5061029c61058e366004611c59565b61113c565b34801561059f57600080fd5b506102b86105ae366004611bca565b61118e565b3480156105bf57600080fd5b5061030361121d565b3480156105d457600080fd5b5061033a6105e3366004611bca565b611277565b3480156105f457600080fd5b5061033a611289565b34801561060957600080fd5b506103fb61128f565b34801561061e57600080fd5b5061033a61129e565b34801561063357600080fd5b50610647610642366004611bca565b6112a4565b6040516102c5919061206b565b34801561066057600080fd5b506102b861066f366004611c59565b6112ff565b34801561068057600080fd5b506102b861068f366004611c59565b611354565b61029c6106a2366004611c59565b6107db565b3480156106b357600080fd5b506102b86106c2366004611cd6565b611361565b3480156106d357600080fd5b5061033a6106e2366004611bca565b6113da565b3480156106f357600080fd5b5061033a610702366004611bca565b6113ec565b34801561071357600080fd5b506103fb6113fe565b34801561072857600080fd5b506102b861140d565b34801561073d57600080fd5b5061033a61074c366004611be5565b6114a0565b34801561075d57600080fd5b506103fb61076c366004611cd6565b6114cb565b34801561077d57600080fd5b5061056661078c366004611cee565b6114f2565b34801561079d57600080fd5b5061033a6115cc565b3480156107b257600080fd5b5061033a6115d2565b3480156107c757600080fd5b506102b86107d6366004611bca565b61162a565b6001600160a01b038216600090815260166020908152604080832054601590925290912054829190610813908363ffffffff61163f16565b1115610850576001600160a01b03831660009081526015602090815260408083205460169092529091205461084d9163ffffffff61166b16565b90505b6001600160a01b038316610951573482146108865760405162461bcd60e51b815260040161087d90611ed9565b60405180910390fd5b6010546040516001600160a01b039091169082906108a390611d0f565b60006040518083038185875af1925050503d80600081146108e0576040519150601f19603f3d011682016040523d82523d6000602084013e6108e5565b606091505b503391506108fb9050838363ffffffff61166b16565b60405161090790611d0f565b60006040518083038185875af1925050503d8060008114610944576040519150601f19603f3d011682016040523d82523d6000602084013e610949565b606091505b5050506109d9565b6010546040516323b872dd60e01b81526001600160a01b03808616926323b872dd9261098592339216908690600401611d26565b602060405180830381600087803b15801561099f57600080fd5b505af11580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190611cb6565b505b6001600160a01b038316600090815260156020526040902054610a02908363ffffffff61163f16565b6001600160a01b038416600090815260156020526040812091909155610a2784610fa8565b90506000610a50600654610a4485856116ad90919063ffffffff16565b9063ffffffff6116e716565b9050610a5c3382611729565b5050505050565b600f546000906001600160a01b0316331480610a8957506011546001600160a01b031633145b610aa55760405162461bcd60e51b815260040161087d90611e6f565b50601180546001600160a01b0319169055600190565b600f546000906001600160a01b0316331480610ae157506011546001600160a01b031633145b610afd5760405162461bcd60e51b815260040161087d90611e6f565b6001600160a01b03841660009081526013602052604090205460ff16610b83576001600160a01b0384166000818152601360205260408120805460ff191660019081179091556012805491820181559091527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180546001600160a01b03191690911790555b6001600160a01b03841660008181526014602090815260408083208790556016909152908190208490555133907f1adc5ea472d4a0b01604de1a7e973f26d81a58b0dafb186558bdf15e1af8479b90610bdf90879087906120a1565b60405180910390a35060019392505050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c775780601f10610c4c57610100808354040283529160200191610c77565b820191906000526020600020905b815481529060010190602001808311610c5a57829003601f168201915b505050505081565b60075460ff1681565b600d5481565b6000610c9b33848461180c565b5060015b92915050565b600a5481565b60035481565b600f546000906001600160a01b0316331480610cd757506011546001600160a01b031633145b610cf35760405162461bcd60e51b815260040161087d90611e6f565b506007805460ff1916600190811790915590565b600f546000906001600160a01b0316331480610d2d57506011546001600160a01b031633145b610d495760405162461bcd60e51b815260040161087d90611e6f565b6001600160a01b038216610d6f5760405162461bcd60e51b815260040161087d90611f75565b600f80546001600160a01b0319166001600160a01b03841617905560405133907f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f190610dbc908590611d12565b60405180910390a25060015b919050565b6000610dda8484846118c0565b610e328433610e2d856040518060600160405280602981526020016120db602991396001600160a01b038a166000908152600560209081526040808320338452909152902054919063ffffffff6119c016565b61180c565b5060019392505050565b600e546001600160a01b031681565b6000610c9b3284846118c0565b600f546000906001600160a01b0316331480610e7e57506011546001600160a01b031633145b610e9a5760405162461bcd60e51b815260040161087d90611e6f565b506007805460ff19169055600190565b60025481565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c9b918590610e2d908663ffffffff61163f16565b60095481565b610efc33826119ec565b50565b600b5481565b6001600160a01b031660009081526004602052604090205490565b6010546001600160a01b031681565b600f546000906001600160a01b0316331480610f5557506011546001600160a01b031633145b610f715760405162461bcd60e51b815260040161087d90611e6f565b600b82905560405133907fc0473c2cbb9705ca96e7d892f51ae51b81f597dab7ed6eb25f0a3e7c75d4663990610dbc908590612098565b6001600160a01b03811660009081526014602052604081205460095460035411610fd3579050610dc8565b6000610fec600954600a5461166b90919063ffffffff16565b905061102981610a4461101c61100f60095460035461166b90919063ffffffff16565b859063ffffffff61166b16565b859063ffffffff6116ad16565b92505050610dc8565b600f546000906001600160a01b031633148061105857506011546001600160a01b031633145b6110745760405162461bcd60e51b815260040161087d90611e6f565b6001600160a01b0382166000818152601360209081526040808320805460ff191690556014825280832083905560169091528082208290555133917ff487c2322baa448cfa506b983134d9dd9f27d0bbfe0b48119a3908d4f0dde89f91a3506001919050565b6060601280548060200260200160405190810160405280929190818152602001828054801561113257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611114575b5050505050905090565b6000611172826040518060600160405280602581526020016121046025913961116586336114a0565b919063ffffffff6119c016565b905061117f83338361180c565b61118983836119ec565b505050565b600f546000906001600160a01b03163314806111b457506011546001600160a01b031633145b6111d05760405162461bcd60e51b815260040161087d90611e6f565b600e80546001600160a01b0319166001600160a01b03841617905560405133907f5b536d33bf72072f3abff40e9c9bc550f83025bbc9b8cc36972c166d8b568b4390610dbc908590611d12565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c775780601f10610c4c57610100808354040283529160200191610c77565b60166020526000908152604090205481565b600c5481565b600f546001600160a01b031681565b60085481565b6112ac611b89565b6001600160a01b0390911660008181526013602090815260408083205460ff1615158552838352601482528083205485830152838352601582528083205485820152928252601690522054606082015290565b6000610c9b3384610e2d85604051806060016040528060268152602001612173602691393360009081526005602090815260408083206001600160a01b038d168452909152902054919063ffffffff6119c016565b6000610c9b3384846118c0565b600f546000906001600160a01b031633148061138757506011546001600160a01b031633145b6113a35760405162461bcd60e51b815260040161087d90611e6f565b600882905560405133907fe61d471656d849b230e45307bce5f71d00383888866b992d6a6993b72361e79990610dbc908590612098565b60146020526000908152604090205481565b60156020526000908152604090205481565b6011546001600160a01b031681565b600f546000906001600160a01b031633148061143357506011546001600160a01b031633145b61144f5760405162461bcd60e51b815260040161087d90611e6f565b600f80546001600160a01b031916905560405133907f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f19061149290600090611d12565b60405180910390a250600190565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b601281815481106114d857fe5b6000918252602090912001546001600160a01b0316905081565b60606114fc6115cc565b82111561150e5761150b6115cc565b91505b60608267ffffffffffffffff8111801561152757600080fd5b50604051908082528060200260200182016040528015611551578160200160208202803683370190505b509050835b611566858563ffffffff61163f16565b8110156115c4576012818154811061157a57fe5b9060005260206000200160009054906101000a90046001600160a01b03168282815181106115a457fe5b6001600160a01b0390921660209283029190910190910152600101611556565b509392505050565b60125490565b60008060095460035411611604576115fd600954610a44600354600a546116ad90919063ffffffff16565b9050611609565b50600a545b611624600854610a446003548461166b90919063ffffffff16565b91505090565b60136020526000908152604090205460ff1681565b6000828201838110156116645760405162461bcd60e51b815260040161087d90611df5565b9392505050565b600061166483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119c0565b6000826116bc57506000610c9f565b828202828482816116c957fe5b04146116645760405162461bcd60e51b815260040161087d90611eff565b600061166483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac2565b6001600160a01b03821661174f5760405162461bcd60e51b815260040161087d90611f40565b600354611762908263ffffffff61163f16565b6003819055600a5410156117885760405162461bcd60e51b815260040161087d90611fac565b6001600160a01b0382166000908152600460205260409020546117b1908263ffffffff61163f16565b6001600160a01b0383166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611800908590612098565b60405180910390a35050565b6001600160a01b0383166118325760405162461bcd60e51b815260040161087d90611e94565b6001600160a01b0382166118585760405162461bcd60e51b815260040161087d90611e2c565b6001600160a01b0380841660008181526005602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906118b3908590612098565b60405180910390a3505050565b6001600160a01b0383166118e65760405162461bcd60e51b815260040161087d90612025565b61192981604051806060016040528060278152602001612129602791396001600160a01b038616600090815260046020526040902054919063ffffffff6119c016565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461195e908263ffffffff61163f16565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119b0908590612098565b60405180910390a3611189611af9565b600081848411156119e45760405162461bcd60e51b815260040161087d9190611da2565b505050900390565b6001600160a01b038216611a125760405162461bcd60e51b815260040161087d90611fe3565b611a5581604051806060016040528060238152602001612150602391396001600160a01b038516600090815260046020526040902054919063ffffffff6119c016565b6001600160a01b038316600090815260046020526040902055600354611a81908263ffffffff61166b16565b6003556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611800908590612098565b60008183611ae35760405162461bcd60e51b815260040161087d9190611da2565b506000838581611aef57fe5b0495945050505050565b600d544210158015611b0d575060075460ff165b15611b8757600c80546001019055600b544201600d556000611b2d6115d2565b600e54909150611b46906001600160a01b031682611729565b7f9d472bcf372fce01fd875c3296e8e5ae0a08bfca42dedac19e202271ce8f39c5600c54600d5483604051611b7d939291906120af565b60405180910390a1505b565b60405180608001604052806000151581526020016000815260200160008152602001600081525090565b80356001600160a01b0381168114610c9f57600080fd5b600060208284031215611bdb578081fd5b6116648383611bb3565b60008060408385031215611bf7578081fd5b611c018484611bb3565b9150611c108460208501611bb3565b90509250929050565b600080600060608486031215611c2d578081fd5b8335611c38816120c5565b92506020840135611c48816120c5565b929592945050506040919091013590565b60008060408385031215611c6b578182fd5b611c758484611bb3565b946020939093013593505050565b600080600060608486031215611c97578283fd5b611ca18585611bb3565b95602085013595506040909401359392505050565b600060208284031215611cc7578081fd5b81518015158114611664578182fd5b600060208284031215611ce7578081fd5b5035919050565b60008060408385031215611d00578182fd5b50508035926020909101359150565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b81811015611d8b5783516001600160a01b031683529284019291840191600101611d66565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611dce57858101830151858201604001528201611db2565b81811115611ddf5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526023908201527f6942455032303a20617070726f766520746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252600b908201526a4d7573742062652044414f60a81b604082015260600190565b60208082526025908201527f6942455032303a20617070726f76652066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252600c908201526b26bab9ba1033b2ba1021272160a11b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f6942455032303a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526018908201527f4d757374206e6f74206265207a65726f20616464726573730000000000000000604082015260600190565b6020808252601f908201527f4d757374206e6f74206d696e74206d6f7265207468616e207468652063617000604082015260600190565b60208082526022908201527f6942455032303a206275726e2066726f6d20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f6942455032303a207472616e736665722066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b81511515815260208083015190820152604080830151908201526060918201519181019190915260800190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b6001600160a01b0381168114610efc57600080fdfe6942455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63656942455032303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656942455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656942455032303a206275726e20616d6f756e7420657863656564732062616c616e63656942455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f1c453259ae38ef9559a5604262e6f8abcfa4c285d98640fb489ddf63f94741064736f6c63430006080033

Deployed Bytecode Sourcemap

2119:12942:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4670:28;4684:1;4688:9;4670:5;:28::i;:::-;2119:12942;;12:1:-1;9;2:12;10904:115:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10904:115:0;;;:::i;:::-;;;;;;;;;;;;;;;;8736:414;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;8736:414:0;;;;;;;;:::i;2213:27::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2213:27:0;;;:::i;:::-;;;;;;;;2545:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2545:20:0;;;:::i;2731:26::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2731:26:0;;;:::i;:::-;;;;;;;;5356:167;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5356:167:0;;;;;;;;:::i;2634:23::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2634:23:0;;;:::i;2312:35::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2312:35:0;;;:::i;9456:110::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9456:110:0;;;:::i;10466:226::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;10466:226:0;;;;;;;;:::i;6416:318::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;6416:318:0;;;;;;;;:::i;2766:31::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2766:31:0;;;:::i;:::-;;;;;;;;6770:157;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;6770:157:0;;;;;;;;:::i;9589:110::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9589:110:0;;;:::i;2278:32::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2278:32:0;;;:::i;5529:214::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5529:214:0;;;;;;;;:::i;2607:20::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2607:20:0;;;:::i;7871:89::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;7871:89:0;;;;;;;;:::i;2664:28::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2664:28:0;;;:::i;4811:119::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;4811:119:0;;;;;;;;:::i;2829:26::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2829:26:0;;;:::i;9960:197::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;9960:197:0;;;;;;;;:::i;13464:554::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;13464:554:0;;;;;;;;:::i;9175:257::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;9175:257:0;;;;;;;;:::i;14252:106::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14252:106:0;;;:::i;:::-;;;;;;;;7966:290;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;7966:290:0;;;;;;;;:::i;10200:237::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;10200:237:0;;;;;;;;:::i;2242:29::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2242:29:0;;;:::i;3093:54::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;3093:54:0;;;;;;;;:::i;2699:25::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2699:25:0;;;:::i;2804:18::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2804:18:0;;;:::i;2572:28::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2572:28:0;;;:::i;14721:337::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14721:337:0;;;;;;;;:::i;:::-;;;;;;;;5749:266;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5749:266:0;;;;;;;;:::i;5126:173::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5126:173:0;;;;;;;;:::i;12522:897::-;;;;;;;;;:::i;9738:186::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;9738:186:0;;;;;;;;:::i;2975:53::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;2975:53:0;;;;;;;;:::i;3035:51::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;3035:51:0;;;;;;;;:::i;2862:23::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2862:23:0;;;:::i;10720:151::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10720:151:0;;;:::i;4936:::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;4936:151:0;;;;;;;;:::i;2894:27::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;2894:27:0;;;;;;;;:::i;14364:349::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14364:349:0;;;;;;;;:::i;14146:100::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14146:100:0;;;:::i;11951:448::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11951:448:0;;;:::i;2928:40::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;2928:40:0;;;;;;;;:::i;12522:897::-;-1:-1:-1;;;;;12673:26:0;;12601:11;12673:26;;;:19;:26;;;;;;;;;12635:16;:23;;;;;;;12615:6;;12673:26;12635:35;;12615:6;12635:35;:27;:35;:::i;:::-;:64;12632:159;;;-1:-1:-1;;;;;12755:23:0;;;;;;:16;:23;;;;;;;;;12724:19;:26;;;;;;;:55;;;:30;:55;:::i;:::-;12715:64;;12632:159;-1:-1:-1;;;;;12806:19:0;;12803:313;;12859:9;12849:6;:19;12841:44;;;;-1:-1:-1;;;12841:44:0;;;;;;;;;;;;;;;;;12908:11;;12900:43;;-1:-1:-1;;;;;12908:11:0;;;;12932:6;;12900:43;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;-1:-1;12966:10:0;;-1:-1:-1;12989:18:0;;-1:-1:-1;12989:6:0;13000;12989:18;:10;:18;:::i;:::-;12958:54;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;12958:54:0;;12803:313;;;13084:11;;13045:59;;-1:-1:-1;;;13045:59:0;;-1:-1:-1;;;;;13045:26:0;;;;;;:59;;13072:10;;13084:11;;13097:6;;13045:59;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13045:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13045:59:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13045:59:0;;;;;;;;;;12803:313;-1:-1:-1;;;;;13162:23:0;;;;;;:16;:23;;;;;;:35;;13190:6;13162:35;:27;:35;:::i;:::-;-1:-1:-1;;;;;13136:23:0;;;;;;:16;:23;;;;;:61;;;;13237:27;13153:5;13237:20;:27::i;:::-;13208:56;;13315:15;13333:41;13370:3;;13334:30;13357:6;13334:18;:22;;:30;;;;:::i;:::-;13333:36;:41;:36;:41;:::i;:::-;13315:59;;13385:26;13391:10;13403:7;13385:5;:26::i;:::-;12522:897;;;;;:::o;10904:115::-;3922:3;;10952:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;-1:-1:-1;10968:8:0::1;:21:::0;;-1:-1:-1;;;;;;10968:21:0::1;::::0;;;10904:115;:::o;8736:414::-;3922:3;;8832:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;-1:-1:-1;;;;;8852:15:0;::::1;;::::0;;;:8:::1;:15;::::0;;;;;::::1;;8848:106;;-1:-1:-1::0;;;;;8883:15:0;::::1;;::::0;;;:8:::1;:15;::::0;;;;:22;;-1:-1:-1;;8883:22:0::1;8901:4;8883:22:::0;;::::1;::::0;;;8920:10:::1;27::-1::0;;23:18;;::::1;45:23:::0;;8920:22:0;;;;::::1;::::0;;-1:-1:-1;;;;;;8920:22:0::1;::::0;;::::1;::::0;;8848:106:::1;-1:-1:-1::0;;;;;8964:25:0;::::1;;::::0;;;:18:::1;:25;::::0;;;;;;;:37;;;9012:19:::1;:26:::0;;;;;;;:39;;;9067:53;9079:10:::1;::::0;9067:53:::1;::::0;::::1;::::0;8992:9;;9041:10;;9067:53:::1;;;;;;;;;;-1:-1:-1::0;9138:4:0::1;8736:414:::0;;;;;:::o;2213:27::-;;;;;;;;;;;;;;;-1:-1:-1;;2213:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2545:20::-;;;;;;:::o;2731:26::-;;;;:::o;5356:167::-;5439:4;5456:37;5465:10;5477:7;5486:6;5456:8;:37::i;:::-;-1:-1:-1;5511:4:0;5356:167;;;;;:::o;2634:23::-;;;;:::o;2312:35::-;;;;:::o;9456:110::-;3922:3;;9505:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;-1:-1:-1;9521:8:0::1;:15:::0;;-1:-1:-1;;9521:15:0::1;9532:4;9521:15:::0;;::::1;::::0;;;9456:110;:::o;10466:226::-;3922:3;;10524:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;-1:-1:-1;;;;;10548:20:0;::::1;10540:57;;;;-1:-1:-1::0;;;10540:57:0::1;;;;;;;;;10608:3;:12:::0;;-1:-1:-1;;;;;;10608:12:0::1;-1:-1:-1::0;;;;;10608:12:0;::::1;;::::0;;10636:26:::1;::::0;10643:10:::1;::::0;10636:26:::1;::::0;::::1;::::0;10608:12;;10636:26:::1;;;;;;;;;;-1:-1:-1::0;10680:4:0::1;3978:1;10466:226:::0;;;:::o;6416:318::-;6522:4;6539:36;6549:6;6557:9;6568:6;6539:9;:36::i;:::-;6586:118;6595:6;6603:10;6615:88;6651:6;6615:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6615:19:0;;;;;;:11;:19;;;;;;;;6635:10;6615:31;;;;;;;;;:88;;:35;:88;:::i;:::-;6586:8;:118::i;:::-;-1:-1:-1;6722:4:0;6416:318;;;;;:::o;2766:31::-;;;-1:-1:-1;;;;;2766:31:0;;:::o;6770:157::-;6841:4;6858:39;6868:9;6879;6890:6;6858:9;:39::i;9589:110::-;3922:3;;9637:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;-1:-1:-1;9653:8:0::1;:16:::0;;-1:-1:-1;;9653:16:0::1;::::0;;;9589:110;:::o;2278:32::-;;;;:::o;5529:214::-;5643:10;5617:4;5664:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5664:32:0;;;;;;;;;;5617:4;;5634:79;;5655:7;;5664:48;;5701:10;5664:48;:36;:48;:::i;2607:20::-;;;;:::o;7871:89::-;7927:25;7933:10;7945:6;7927:5;:25::i;:::-;7871:89;:::o;2664:28::-;;;;:::o;4811:119::-;-1:-1:-1;;;;;4904:18:0;4877:7;4904:18;;;:9;:18;;;;;;;4811:119::o;2829:26::-;;;-1:-1:-1;;;;;2829:26:0;;:::o;9960:197::-;3922:3;;10031:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;10048:13:::1;:27:::0;;;10091:36:::1;::::0;10103:10:::1;::::0;10091:36:::1;::::0;::::1;::::0;10064:11;;10091:36:::1;;13464:554:::0;-1:-1:-1;;;;;13589:25:0;;13530;13589;;;:18;:25;;;;;;13687:5;;13672:11;;:20;13669:342;;13743:10;-1:-1:-1;13736:17:0;;13669:342;13880:13;13896:19;13909:5;;13896:8;;:12;;:19;;;;:::i;:::-;13880:35;;13937:62;13993:5;13937:51;13952:35;13963:22;13979:5;;13963:11;;:15;;:22;;;;:::i;:::-;13952:5;;:35;:9;:35;:::i;:::-;13937:10;;:51;:14;:51;:::i;:62::-;13930:69;;;;;;9175:257;3922:3;;9234:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;-1:-1:-1;;;;;9250:15:0;::::1;9268:5;9250:15:::0;;;:8:::1;:15;::::0;;;;;;;:23;;-1:-1:-1;;9250:23:0::1;::::0;;9284:18:::1;:25:::0;;;;;:29;;;9324:19:::1;:26:::0;;;;;;:30;;;9370:32;9384:10:::1;::::0;9370:32:::1;::::0;::::1;-1:-1:-1::0;9420:4:0::1;9175:257:::0;;;:::o;14252:106::-;14294:27;14340:10;14333:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14333:17:0;;;;;;;;;;;;;;;;;;;;;;;14252:106;:::o;7966:290::-;8043:26;8072:83;8107:6;8072:83;;;;;;;;;;;;;;;;;:30;8082:7;8091:10;8072:9;:30::i;:::-;:34;:83;;:34;:83;:::i;:::-;8043:112;;8166:49;8175:7;8184:10;8196:18;8166:8;:49::i;:::-;8226:22;8232:7;8241:6;8226:5;:22::i;:::-;7966:290;;;:::o;10200:237::-;3922:3;;10284:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;10301:16:::1;:38:::0;;-1:-1:-1;;;;;;10301:38:0::1;-1:-1:-1::0;;;;;10301:38:0;::::1;;::::0;;10355:52:::1;::::0;10375:10:::1;::::0;10355:52:::1;::::0;::::1;::::0;10301:38;;10355:52:::1;;2242:29:::0;;;;;;;;;;;;;;;-1:-1:-1;;2242:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3093:54;;;;;;;;;;;;;:::o;2699:25::-;;;;:::o;2804:18::-;;;-1:-1:-1;;;;;2804:18:0;;:::o;2572:28::-;;;;:::o;14721:337::-;14782:38;;:::i;:::-;-1:-1:-1;;;;;14854:15:0;;;;;;;:8;:15;;;;;;;;;;;14832:37;;;;14905:25;;;:18;:25;;;;;;14880:22;;;:50;14964:23;;;:16;:23;;;;;;14941:20;;;:46;15024:26;;;:19;:26;;;;14998:23;;;:52;14832:12;14721:337::o;5749:266::-;5842:4;5859:126;5868:10;5880:7;5889:95;5926:15;5889:95;;;;;;;;;;;;;;;;;5901:10;5889:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5889:32:0;;;;;;;;;;;:95;;:36;:95;:::i;5126:173::-;5212:4;5229:40;5239:10;5251:9;5262:6;5229:9;:40::i;9738:186::-;3922:3;;9808:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;9824:13:::1;:24:::0;;;9864:30:::1;::::0;9873:10:::1;::::0;9864:30:::1;::::0;::::1;::::0;9840:8;;9864:30:::1;;2975:53:::0;;;;;;;;;;;;;:::o;3035:51::-;;;;;;;;;;;;;:::o;2862:23::-;;;-1:-1:-1;;;;;2862:23:0;;:::o;10720:151::-;3922:3;;10763:4;;-1:-1:-1;;;;;3922:3:0;3908:10;:17;;:43;;-1:-1:-1;3943:8:0;;-1:-1:-1;;;;;3943:8:0;3929:10;:22;3908:43;3900:67;;;;-1:-1:-1;;;3900:67:0;;;;;;;;;10779:3:::1;:16:::0;;-1:-1:-1;;;;;;10779:16:0::1;::::0;;10811:30:::1;::::0;10818:10:::1;::::0;10811:30:::1;::::0;::::1;::::0;10793:1:::1;::::0;10811:30:::1;;;;;;;;;;-1:-1:-1::0;10859:4:0::1;10720:151:::0;:::o;4936:::-;-1:-1:-1;;;;;5052:18:0;;;5025:7;5052:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4936:151::o;2894:27::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2894:27:0;;-1:-1:-1;2894:27:0;:::o;14364:349::-;14432:27;14482:12;:10;:12::i;:::-;14474:5;:20;14471:47;;;14504:12;:10;:12::i;:::-;14496:20;;14471:47;14528:23;14568:5;14554:20;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14554:20:0;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;14554:20:0;-1:-1:-1;14528:46:0;-1:-1:-1;14599:5:0;14585:97;14608:16;:5;14618;14608:16;:9;:16;:::i;:::-;14606:1;:18;14585:97;;;14657:10;14668:1;14657:13;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14657:13:0;14645:6;14652:1;14645:9;;;;;;;;-1:-1:-1;;;;;14645:25:0;;;:9;;;;;;;;;;;:25;14626:3;;14585:97;;;-1:-1:-1;14699:6:0;14364:349;-1:-1:-1;;;14364:349:0:o;14146:100::-;14221:10;:17;14146:100;:::o;11951:448::-;12000:7;12020:17;12066:5;;12051:11;;:20;12048:253;;12145:38;12177:5;;12146:25;12159:11;;12146:8;;:12;;:25;;;;:::i;12145:38::-;12130:53;;12048:253;;;-1:-1:-1;12272:8:0;;12048:253;12318:50;12354:13;;12319:29;12336:11;;12319:12;:16;;:29;;;;:::i;12318:50::-;12311:57;;;11951:448;:::o;2928:40::-;;;;;;;;;;;;;;;:::o;917:179::-;975:7;1007:5;;;1031:6;;;;1023:46;;;;-1:-1:-1;;;1023:46:0;;;;;;;;;1087:1;917:179;-1:-1:-1;;;917:179:0:o;1102:136::-;1160:7;1187:43;1191:1;1194;1187:43;;;;;;;;;;;;;;;;;:3;:43::i;1773:246::-;1831:7;1855:6;1851:47;;-1:-1:-1;1885:1:0;1878:8;;1851:47;1920:5;;;1924:1;1920;:5;:1;1944:5;;;;;:10;1936:56;;;;-1:-1:-1;;;1936:56:0;;;;;;;;1440:132;1498:7;1525:39;1529:1;1532;1525:39;;;;;;;;;;;;;;;;;:3;:39::i;7454:391::-;-1:-1:-1;;;;;7538:21:0;;7530:66;;;;-1:-1:-1;;;7530:66:0;;;;;;;;;7621:11;;:23;;7637:6;7621:23;:15;:23;:::i;:::-;7607:11;:37;;;7678:8;;-1:-1:-1;7663:23:0;7655:67;;;;-1:-1:-1;;;7655:67:0;;;;;;;;;-1:-1:-1;;;;;7754:18:0;;;;;;:9;:18;;;;;;:30;;7777:6;7754:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;7733:18:0;;;;;;:9;:18;;;;;;:51;;;;7800:37;;7733:18;;;7800:37;;;;7830:6;;7800:37;;;;;;;;;;7454:391;;:::o;6021:346::-;-1:-1:-1;;;;;6123:19:0;;6115:69;;;;-1:-1:-1;;;6115:69:0;;;;;;;;;-1:-1:-1;;;;;6203:21:0;;6195:69;;;;-1:-1:-1;;;6195:69:0;;;;;;;;;-1:-1:-1;;;;;6275:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;6327:32;;;;;6305:6;;6327:32;;;;;;;;;;6021:346;;;:::o;6970:424::-;-1:-1:-1;;;;;7076:20:0;;7068:71;;;;-1:-1:-1;;;7068:71:0;;;;;;;;;7170:72;7192:6;7170:72;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7170:17:0;;;;;;:9;:17;;;;;;;:72;;:21;:72;:::i;:::-;-1:-1:-1;;;;;7150:17:0;;;;;;;:9;:17;;;;;;:92;;;;7276:20;;;;;;;:32;;7301:6;7276:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;7253:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7324:35;;;;;;;;;;7352:6;;7324:35;;;;;;;;;;7370:16;:14;:16::i;1244:190::-;1330:7;1366:12;1358:6;;;;1350:29;;;;-1:-1:-1;;;1350:29:0;;;;;;;;;;-1:-1:-1;;;1402:5:0;;;1244:190::o;8262:354::-;-1:-1:-1;;;;;8346:21:0;;8338:68;;;;-1:-1:-1;;;8338:68:0;;;;;;;;;8438:69;8461:6;8438:69;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8438:18:0;;;;;;:9;:18;;;;;;;:69;;:22;:69;:::i;:::-;-1:-1:-1;;;;;8417:18:0;;;;;;:9;:18;;;;;:90;8532:11;;:23;;8548:6;8532:23;:15;:23;:::i;:::-;8518:11;:37;8571;;8597:1;;-1:-1:-1;;;;;8571:37:0;;;;;;;8601:6;;8571:37;;1578:189;1664:7;1699:12;1692:5;1684:28;;;;-1:-1:-1;;;1684:28:0;;;;;;;;;;;1723:9;1739:1;1735;:5;;;;;;;1578:189;-1:-1:-1;;;;;1578:189:0:o;11166:746::-;11223:11;;11216:3;:18;;11215:32;;;;-1:-1:-1;11239:8:0;;;;11215:32;11211:694;;;11341:10;:15;;11355:1;11341:15;;;11470:13;;11464:3;:19;11450:11;:33;11341:10;11583:18;:16;:18::i;:::-;11683:16;;11563:38;;-1:-1:-1;11677:34:0;;-1:-1:-1;;;;;11683:16:0;11563:38;11677:5;:34::i;:::-;11807:42;11814:10;;11826:11;;11839:9;11807:42;;;;;;;;;;;;;;;;;11211:694;;11166:746::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;72:20;;-1:-1;;;;;20065:54;;21030:35;;21020:2;;21079:1;;21069:12;414:241;;518:2;506:9;497:7;493:23;489:32;486:2;;;-1:-1;;524:12;486:2;586:53;631:7;607:22;586:53;;662:366;;;783:2;771:9;762:7;758:23;754:32;751:2;;;-1:-1;;789:12;751:2;851:53;896:7;872:22;851:53;;;841:63;;959:53;1004:7;941:2;984:9;980:22;959:53;;;949:63;;745:283;;;;;;1035:491;;;;1173:2;1161:9;1152:7;1148:23;1144:32;1141:2;;;-1:-1;;1179:12;1141:2;85:6;72:20;97:33;124:5;97:33;;;1231:63;-1:-1;1331:2;1370:22;;72:20;97:33;72:20;97:33;;;1135:391;;1339:63;;-1:-1;;;1439:2;1478:22;;;;344:20;;1135:391;1533:366;;;1654:2;1642:9;1633:7;1629:23;1625:32;1622:2;;;-1:-1;;1660:12;1622:2;1722:53;1767:7;1743:22;1722:53;;;1712:63;1812:2;1851:22;;;;344:20;;-1:-1;;;1616:283;1906:491;;;;2044:2;2032:9;2023:7;2019:23;2015:32;2012:2;;;-1:-1;;2050:12;2012:2;2112:53;2157:7;2133:22;2112:53;;;2102:63;2202:2;2241:22;;344:20;;-1:-1;2310:2;2349:22;;;344:20;;2006:391;-1:-1;;;2006:391;2404:257;;2516:2;2504:9;2495:7;2491:23;2487:32;2484:2;;;-1:-1;;2522:12;2484:2;223:6;217:13;21176:5;19977:13;19970:21;21154:5;21151:32;21141:2;;-1:-1;;21187:12;2668:241;;2772:2;2760:9;2751:7;2747:23;2743:32;2740:2;;;-1:-1;;2778:12;2740:2;-1:-1;344:20;;2734:175;-1:-1;2734:175;2916:366;;;3037:2;3025:9;3016:7;3012:23;3008:32;3005:2;;;-1:-1;;3043:12;3005:2;-1:-1;;344:20;;;3195:2;3234:22;;;344:20;;-1:-1;2999:283;10474:379;10838:10;10662:191;10860:222;-1:-1;;;;;20065:54;;;;3681:37;;10987:2;10972:18;;10958:124;11334:460;-1:-1;;;;;20065:54;;;3550:58;;20065:54;;;;11697:2;11682:18;;3681:37;11780:2;11765:18;;10305:37;;;;11525:2;11510:18;;11496:298;11801:370;11978:2;11992:47;;;19016:12;;11963:18;;;19420:19;;;11801:370;;11978:2;18870:14;;;;19460;;;;11801:370;4289:260;4314:6;4311:1;4308:13;4289:260;;;4375:13;;-1:-1;;;;;20065:54;3681:37;;19275:14;;;;3443;;;;20076:42;4329:9;4289:260;;;-1:-1;12045:116;;11949:222;-1:-1;;;;;;11949:222;12178:210;19977:13;;19970:21;4634:34;;12299:2;12284:18;;12270:118;12395:310;;12542:2;;12563:17;12556:47;4936:5;19016:12;19432:6;12542:2;12531:9;12527:18;19420:19;-1:-1;20662:101;20676:6;20673:1;20670:13;20662:101;;;20743:11;;;;;20737:18;20724:11;;;19460:14;20724:11;20717:39;20691:10;;20662:101;;;20778:6;20775:1;20772:13;20769:2;;;-1:-1;19460:14;20834:6;12531:9;20825:16;;20818:27;20769:2;-1:-1;20950:7;20934:14;-1:-1;;20930:28;5094:39;;;;19460:14;5094:39;;12513:192;-1:-1;;;12513:192;12712:416;12912:2;12926:47;;;5370:2;12897:18;;;19420:19;5406:29;19460:14;;;5386:50;5455:12;;;12883:245;13135:416;13335:2;13349:47;;;5706:2;13320:18;;;19420:19;5742:34;19460:14;;;5722:55;-1:-1;;;5797:12;;;5790:27;5836:12;;;13306:245;13558:416;13758:2;13772:47;;;6087:2;13743:18;;;19420:19;-1:-1;;;19460:14;;;6103:34;6156:12;;;13729:245;13981:416;14181:2;14195:47;;;6407:2;14166:18;;;19420:19;6443:34;19460:14;;;6423:55;-1:-1;;;6498:12;;;6491:29;6539:12;;;14152:245;14404:416;14604:2;14618:47;;;6790:2;14589:18;;;19420:19;-1:-1;;;19460:14;;;6806:35;6860:12;;;14575:245;14827:416;15027:2;15041:47;;;7111:2;15012:18;;;19420:19;7147:34;19460:14;;;7127:55;-1:-1;;;7202:12;;;7195:25;7239:12;;;14998:245;15250:416;15450:2;15464:47;;;15435:18;;;19420:19;7526:34;19460:14;;;7506:55;7580:12;;;15421:245;15673:416;15873:2;15887:47;;;7831:2;15858:18;;;19420:19;7867:26;19460:14;;;7847:47;7913:12;;;15844:245;16096:416;16296:2;16310:47;;;8469:2;16281:18;;;19420:19;8505:33;19460:14;;;8485:54;8558:12;;;16267:245;16519:416;16719:2;16733:47;;;8809:2;16704:18;;;19420:19;8845:34;19460:14;;;8825:55;-1:-1;;;8900:12;;;8893:26;8938:12;;;16690:245;16942:416;17142:2;17156:47;;;9189:2;17127:18;;;19420:19;9225:34;19460:14;;;9205:55;-1:-1;;;9280:12;;;9273:30;9322:12;;;17113:245;17365:363;9654:23;;19977:13;19970:21;4634:34;;9824:4;9813:16;;;9807:23;9884:14;;;10305:37;9981:4;9970:16;;;9964:23;10041:14;;;10305:37;10141:4;10130:16;;;10124:23;10201:14;;;10305:37;;;;17562:3;17547:19;;17533:195;17735:222;10305:37;;;17862:2;17847:18;;17833:124;17964:333;10305:37;;;18283:2;18268:18;;10305:37;18119:2;18104:18;;18090:207;18304:444;10305:37;;;18651:2;18636:18;;10305:37;;;;18734:2;18719:18;;10305:37;18487:2;18472:18;;18458:290;20971:117;-1:-1;;;;;20065:54;;21030:35;;21020:2;;21079:1;;21069:12

Swarm Source

ipfs://f1c453259ae38ef9559a5604262e6f8abcfa4c285d98640fb489ddf63f947410

Block Transaction Gas Used Reward
view all blocks produced
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
View All Validatorset

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

OVERVIEW

The Spartan token contract has migrated to 0x3910db0600ea925f63c36ddb1351ab6e2c6eb102

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.