ETH Price: $1,971.46 (+0.47%)
 

Overview

ETH Balance

772 wei

Eth Value

Less Than $0.01 (@ $1,971.46/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer98464982020-04-10 19:50:102143 days ago1586548210IN
Onyx: Old OUSD Stablecoin
0 ETH0.000038171.0300001
USD Burn95114252020-02-19 4:19:262195 days ago1582085966IN
Onyx: Old OUSD Stablecoin
0 ETH0.000021791
USD Burn95114252020-02-19 4:19:262195 days ago1582085966IN
Onyx: Old OUSD Stablecoin
0 ETH0.000021791
USD Burn95114252020-02-19 4:19:262195 days ago1582085966IN
Onyx: Old OUSD Stablecoin
0 ETH0.000021811
Withdraw Eth95110862020-02-19 3:02:282195 days ago1582081348IN
Onyx: Old OUSD Stablecoin
0 ETH0.000030731
Transfer92940862020-01-16 19:25:422228 days ago1579202742IN
Onyx: Old OUSD Stablecoin
0 ETH0.000037131
Update Withdraw ...92814232020-01-14 20:49:372230 days ago1579034977IN
Onyx: Old OUSD Stablecoin
0 ETH0.000027271
Transfer92808292020-01-14 18:41:272230 days ago1579027287IN
Onyx: Old OUSD Stablecoin
0.00297819 ETH0.000254975
Transfer92771172020-01-14 4:55:342231 days ago1578977734IN
Onyx: Old OUSD Stablecoin
0.00129725 ETH0.000050991
Transfer92755132020-01-13 23:02:012231 days ago1578956521IN
Onyx: Old OUSD Stablecoin
0.00298047 ETH0.000050981
Transfer91920912019-12-31 18:21:212244 days ago1577816481IN
Onyx: Old OUSD Stablecoin
0 ETH0.00008561
Transfer91920472019-12-31 18:09:392244 days ago1577815779IN
Onyx: Old OUSD Stablecoin
0 ETH0.00008561
Update Withdraw ...91895722019-12-31 6:27:212244 days ago1577773641IN
Onyx: Old OUSD Stablecoin
0 ETH0.000054552
Approve90734212019-12-08 19:24:462267 days ago1575833086IN
Onyx: Old OUSD Stablecoin
0 ETH0.0007150316.214
Transfer90697962019-12-08 3:54:342268 days ago1575777274IN
Onyx: Old OUSD Stablecoin
0 ETH0.000052111
Transfer90571112019-12-05 21:51:302270 days ago1575582690IN
Onyx: Old OUSD Stablecoin
0 ETH0.000074933
Transfer90571112019-12-05 21:51:302270 days ago1575582690IN
Onyx: Old OUSD Stablecoin
0 ETH0.0000221
Approve90570312019-12-05 21:32:222270 days ago1575581542IN
Onyx: Old OUSD Stablecoin
0 ETH0.0001423
USD Mint90569122019-12-05 21:05:382270 days ago1575579938IN
Onyx: Old OUSD Stablecoin
0 ETH0.000109353
USD Mint90569112019-12-05 21:05:212270 days ago1575579921IN
Onyx: Old OUSD Stablecoin
0 ETH0.000109353
Transfer90395232019-12-02 18:42:482273 days ago1575312168IN
Onyx: Old OUSD Stablecoin
0 ETH0.000036871
Approve87413062019-10-14 19:21:452322 days ago1571080905IN
Onyx: Old OUSD Stablecoin
0 ETH0.000047331
Transfer87411982019-10-14 18:56:482322 days ago1571079408IN
Onyx: Old OUSD Stablecoin
0 ETH0.000051871
Transfer87026742019-10-08 17:33:042328 days ago1570555984IN
Onyx: Old OUSD Stablecoin
0.00554569 ETH0.000044391
Transfer85828802019-09-20 0:06:192347 days ago1568937979IN
Onyx: Old OUSD Stablecoin
0.00047043 ETH0.000221925
View all transactions

Latest 22 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-95110862020-02-19 3:02:282195 days ago1582081348
Onyx: Old OUSD Stablecoin
0.24500428 ETH
-93076972020-01-18 21:22:352226 days ago1579382555
Onyx: Old OUSD Stablecoin
0.00023201 ETH
-92880512020-01-15 21:13:052229 days ago1579122785
Onyx: Old OUSD Stablecoin
0.001 ETH
-92838612020-01-15 5:37:072230 days ago1579066627
Onyx: Old OUSD Stablecoin
0.002 ETH
-92837822020-01-15 5:24:302230 days ago1579065870
Onyx: Old OUSD Stablecoin
0.00373948 ETH
-92769542020-01-14 4:15:422231 days ago1578975342
Onyx: Old OUSD Stablecoin
0.00650404 ETH
-92767322020-01-14 3:22:502231 days ago1578972170
Onyx: Old OUSD Stablecoin
0.00400655 ETH
-92362352020-01-07 22:33:262237 days ago1578436406
Onyx: Old OUSD Stablecoin
0.00678416 ETH
-91941352020-01-01 4:23:362244 days ago1577852616
Onyx: Old OUSD Stablecoin
0.00978416 ETH
-91941032020-01-01 4:14:462244 days ago1577852086
Onyx: Old OUSD Stablecoin
0.00978416 ETH
-91940772020-01-01 4:05:452244 days ago1577851545
Onyx: Old OUSD Stablecoin
0.00978416 ETH
-91940522020-01-01 3:58:352244 days ago1577851115
Onyx: Old OUSD Stablecoin
0.00978416 ETH
-91940252020-01-01 3:50:162244 days ago1577850616
Onyx: Old OUSD Stablecoin
0.00378416 ETH
-91920912019-12-31 18:21:212244 days ago1577816481
Onyx: Old OUSD Stablecoin
0.00203821 ETH
-91920472019-12-31 18:09:392244 days ago1577815779
Onyx: Old OUSD Stablecoin
0.00106325 ETH
-91915552019-12-31 15:49:352244 days ago1577807375
Onyx: Old OUSD Stablecoin
0.09978416 ETH
-91895722019-12-31 6:27:212244 days ago1577773641
Onyx: Old OUSD Stablecoin
0.04978416 ETH
-87026872019-10-08 17:35:002328 days ago1570556100
Onyx: Old OUSD Stablecoin
0.0053422 ETH
-87026812019-10-08 17:34:052328 days ago1570556045
Onyx: Old OUSD Stablecoin
0.0053422 ETH
-85828742019-09-20 0:05:372347 days ago1568937937
Onyx: Old OUSD Stablecoin
0.00305349 ETH
-85756572019-09-18 20:45:042348 days ago1568839504
Onyx: Old OUSD Stablecoin
0.00682243 ETH
-85751292019-09-18 18:46:412348 days ago1568832401
Onyx: Old OUSD Stablecoin
0.00936441 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MainToken

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-09-17
*/

pragma solidity ^0.5.11;

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 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;}

    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;}
}

contract Secondary {
    address private _primary;
    address private _primaryCandidate;

    constructor () internal {
        _primary = msg.sender;
        _primaryCandidate = address(0);
    }

    modifier onlyPrimary() {
        require(msg.sender == _primary, "Secondary: caller is not the primary account");
        _;
    }

    function primary() public view returns (address) {
        return _primary;
    }
    
    function acceptBeingPrimary() public {
        require(msg.sender == _primaryCandidate, "Secondary: caller is not the primary candidate account");
        require(msg.sender != address(0));
        
        _primary = _primaryCandidate;
        _primaryCandidate = address(0);
    }

    function setPrimaryCandidate(address recipient) public onlyPrimary {
        require(recipient != _primary);
        _primaryCandidate = recipient;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract assetContractable is Secondary{
    mapping(address=>bool) private _assetContracts;
    
    modifier onlyAssetContracts() {
        require(_assetContracts[msg.sender], "You cannot call this function!");
        _;
    }
    
    function assetContracts(address input) public view returns (bool) {
        return _assetContracts[input];
    }
 
    function addAssetContracts(address input) public onlyPrimary{
         require(input != address(this));
         require(input != msg.sender);
         require(input != address(0));
         require(!assetContracts(input));
         
        _assetContracts[input] = true;
    }
    
    function removeAssetContracts(address input) public onlyPrimary{
         require(assetContracts(input));
        _assetContracts[input] = false;
    }
    
}

interface EthPricer{
    function ethUpper() external view returns (uint256);
    function ethLower() external view returns (uint256);
}

contract EthPriceable is assetContractable{
    
    address private _ethPricerAddress;
    
    function ethUpper() internal view returns (uint256) {
        return EthPricer(_ethPricerAddress).ethUpper();
    }
    
    function ethLower() internal view returns (uint256) {
        return EthPricer(_ethPricerAddress).ethLower();
    }
    
    function setEthPricerAddress(address input) public onlyPrimary {
        require(input != address(this));
        require(!assetContracts(input));
        require(input != msg.sender);
        require(input != address(0));
    
        _ethPricerAddress = input;
    }
    
    function ethPricerAddress() public view onlyAssetContracts returns (address) {
        return _ethPricerAddress;
    }

}

interface Assetcontract{
    function assetPricerAddress() external view returns (address payable);
    function AssetMint(address sender, uint256 valuesent) external;
    function isShort() external view returns (bool);
}

interface AssetPricer{
    function updateAssetPrice() external payable returns (bytes32);
    function Fee() external returns (uint256);
    function assetUpper(bool isShort) external view returns (uint256);
    function assetLower(bool isShort) external view returns (uint256);
    function updateGasPrice() external;
}

contract AssetPriceGettable is assetContractable{
    
    using SafeMath for uint256;

    uint256 internal _multiplier = 0;
    
    function multiplier() public view onlyAssetContracts returns (uint256) {
        return _multiplier;
    }
    
    function setMultiplier(uint256 input) public onlyPrimary {
        require(input <= 9999999900);
        _multiplier = input;
    }
    
    function aPA(address assetContractAddress) private view returns (address){
        return Assetcontract(assetContractAddress).assetPricerAddress();
    }

    function Fee(address aCA) internal returns (uint256) {
        AssetPricer(aPA(aCA)).updateGasPrice();
        uint fee = AssetPricer(aPA(aCA)).Fee();
        return (fee.mul(_multiplier.add(100))).div(100);
    }
    
    function assetUpper(address aCA) internal view returns (uint256) {
        bool isShort = Assetcontract(aCA).isShort();
        return AssetPricer(aPA(aCA)).assetUpper(isShort);
    }
    
    function assetLower(address aCA) internal view returns (uint256) {
        bool isShort = Assetcontract(aCA).isShort();
        return AssetPricer(aPA(aCA)).assetLower(isShort);
    }

    function updateAssetPrice(address aCA) internal returns (bytes32) {
        address payable sendto = address(uint160(aPA(aCA)));
        AssetPricer(sendto).updateGasPrice();
        return AssetPricer(sendto).updateAssetPrice.value(AssetPricer(sendto).Fee())();
    }
    
    function isAssetPricerAddress(address aCA, address input) internal view returns (bool) {
        return aPA(aCA) == input;
    }

}

contract ERC20 is IERC20, EthPriceable, AssetPriceGettable{
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private _totalSupply;
    
    uint constant internal DECIMAL = 10**18;
    
    mapping(bytes32=>customer) internal Customers;
    mapping(uint=>uint) private withdrawPerBlock;
    
    enum IdType { gettingAsset, gettingUSD}
    
    struct customer { 
        address sender;
        uint256 valuesent;
        address Assetcontract;
        IdType mytype;
    }
    
    uint256 private withdrawThreshold = 1;
    
    function updateWithdrawThreshold(uint256 _withdrawThreshold) public onlyPrimary {
        withdrawThreshold = _withdrawThreshold;
    }
    
    //Max you can withdraw in USD per block
    function withdrawMAX() public view returns (uint256){
        
        uint usdMAX = (address(this).balance.mul(ethUpper())).div(withdrawThreshold.mul(DECIMAL));
      
        if(withdrawPerBlock[block.number] < usdMAX){
            return usdMAX.sub(withdrawPerBlock[block.number]);
        }else{
            return 0;
        }
    }

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        
        if(recipient == address(this)){
            require(amount <= withdrawMAX(), "Amount sent is too big");
            withdrawPerBlock[block.number] = withdrawPerBlock[block.number].add(amount);
            
            _burn(sender,amount);
            address payable sendto = address(uint160(sender));
            sendto.transfer(amount.mul(DECIMAL).div(ethUpper()));
            
        }else if(assetContracts(recipient)){

           uint USDFee = (Fee(recipient).mul(ethUpper())).div(DECIMAL);
           require(amount > USDFee, "Amount sent is too small");
           
           _burn(sender,amount);
           bytes32 CustomerId = updateAssetPrice(recipient);
           Customers[CustomerId] = customer(sender, amount.sub(USDFee), recipient, IdType.gettingAsset);
            
        }else{
            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
        }
        
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount,address sender ) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(sender, account, amount);
    }

    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(value, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(value);
    }
    
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }
   
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

interface token {
    function balanceOf(address input) external returns (uint256);
    function transfer(address input, uint amount) external;
}

contract MainToken is ERC20, ERC20Detailed{

    constructor () public ERC20Detailed("Onyx USD", "OUSD", 18){
        _mint(primary(),10**18, address(this));
    }
    
    function () external payable {
        uint256 amount = (msg.value.mul(ethLower())).div(DECIMAL);
        _mint(msg.sender,amount,address(this));
    }
    
    function sendFunds() external payable {}
    
    function USDtrade(address sender, uint assetAmount) public onlyAssetContracts{
       bytes32 customerId = updateAssetPrice(msg.sender);
       Customers[customerId] = customer(sender, assetAmount, msg.sender,IdType.gettingUSD);
    }
    
    function assetPriceUpdated(bytes32 customerId, bool marketOpen) public {
       address sender    = Customers[customerId].sender;
       uint256 valuesent = Customers[customerId].valuesent;
       address AC        = Customers[customerId].Assetcontract;
       IdType mytype     = Customers[customerId].mytype;
       
       require(isAssetPricerAddress(AC, msg.sender));
       require(msg.sender != address(0));
       
       if(mytype == IdType.gettingUSD){

            if(marketOpen){
               uint amount = ((valuesent.mul(AssetPricer(msg.sender).assetLower(Assetcontract(AC).isShort())).mul(100)).sub(AssetPricer(msg.sender).Fee().mul(_multiplier+100).mul(ethUpper())))/(10**20);
               _mint(sender, amount, AC);
               
            }else{
               uint amount = valuesent.sub((AssetPricer(msg.sender).Fee().mul(_multiplier+100).mul(ethUpper())).div(AssetPricer(msg.sender).assetLower(Assetcontract(AC).isShort()).mul(100)));
               Assetcontract(AC).AssetMint(sender,amount); 
            }

        }else if(mytype == IdType.gettingAsset){

            if(marketOpen){
               uint amount = (valuesent.mul(DECIMAL)).div(assetUpper(AC));
               Assetcontract(AC).AssetMint(sender,amount);

            }else{
                _mint(sender, valuesent, AC);
            }
        }
    }
    
    function USDMint(address to, uint256 valuesent) public onlyPrimary{
        _mint(to,valuesent, address(this));
    }
 
    function USDBurn(address to, uint256 valuesent) public onlyPrimary {
        _burn(to,valuesent);
        emit Transfer(to, address(this), valuesent);
    }
    
    
    function getStuckTokens(address _tokenAddress) public {
        token(_tokenAddress).transfer(primary(), token(_tokenAddress).balanceOf(address(this)));
    }
   
    function withdrawEth(uint256 amount) public onlyPrimary{
        address payable sendto = address(uint160(primary()));
        sendto.transfer(amount);
    } 
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"ethPricerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"valuesent","type":"uint256"}],"name":"USDMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"getStuckTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"valuesent","type":"uint256"}],"name":"USDBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"assetAmount","type":"uint256"}],"name":"USDtrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"input","type":"address"}],"name":"addAssetContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"customerId","type":"bytes32"},{"internalType":"bool","name":"marketOpen","type":"bool"}],"name":"assetPriceUpdated","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"input","type":"address"}],"name":"setEthPricerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"input","type":"uint256"}],"name":"setMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptBeingPrimary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_withdrawThreshold","type":"uint256"}],"name":"updateWithdrawThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"sendFunds","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"input","type":"address"}],"name":"assetContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawMAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setPrimaryCandidate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"primary","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"input","type":"address"}],"name":"removeAssetContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"},{"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"}]

608060405260006004556001600a553480156200001b57600080fd5b50604080518082018252600881527f4f6e79782055534400000000000000000000000000000000000000000000000060208083019182528351808501909452600484527f4f5553440000000000000000000000000000000000000000000000000000000090840152600080546001600160a01b031990811633179091556001805490911690558151919291601291620000b891600b9190620002c2565b508151620000ce90600c906020850190620002c2565b50600d805460ff191660ff92909216919091179055506200010d9050620000f462000113565b670de0b6b3a7640000306001600160e01b036200012316565b62000364565b6000546001600160a01b03165b90565b6001600160a01b0383166200019957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620001b5826007546200024660201b620019ac1790919060201c565b6007556001600160a01b038316600090815260056020908152604090912054620001ea918490620019ac62000246821b17901c565b6001600160a01b0380851660008181526005602090815260409182902094909455805186815290519193928516927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015620002bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200030557805160ff191683800117855562000335565b8280016001018555821562000335579182015b828111156200033557825182559160200191906001019062000318565b506200034392915062000347565b5090565b6200012091905b808211156200034357600081556001016200034e565b61260080620003746000396000f3fe6080604052600436106101cd5760003560e01c8063641579a6116100f7578063a457c2d711610095578063c311d04911610064578063c311d04914610718578063c6dbdf6114610742578063dd62ed3e14610757578063eea02c3c14610792576101cd565b8063a457c2d71461065e578063a9059cbb14610697578063b328e73c146106d0578063be423626146106e5576101cd565b80638608301d116100d15780638608301d146105e45780638d68cf591461060e57806395d89b41146106165780639feab3761461062b576101cd565b8063641579a61461057257806370a082311461059c5780637f29171c146105cf576101cd565b80631dfa4db01161016f5780632fb7b1561161013e5780632fb7b156146104a9578063313ce567146104db57806339509351146105065780634fde39781461053f576101cd565b80631dfa4db0146103c157806323b872dd146103fa57806327ed9d321461043d5780632985af3714610476576101cd565b80630e222f5e116101ab5780630e222f5e1461031757806318160ddd146103525780631b3ed722146103795780631dd60b181461038e576101cd565b80630108f7fc1461020f57806306fdde0314610240578063095ea7b3146102ca575b60006101ff670de0b6b3a76400006101f36101e66107c5565b349063ffffffff61083c16565b9063ffffffff61089e16565b905061020c3382306108e0565b50005b34801561021b57600080fd5b506102246109d6565b604080516001600160a01b039092168252519081900360200190f35b34801561024c57600080fd5b50610255610a4a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028f578181015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d657600080fd5b50610303600480360360408110156102ed57600080fd5b506001600160a01b038135169060200135610ae0565b604080519115158252519081900360200190f35b34801561032357600080fd5b506103506004803603604081101561033a57600080fd5b506001600160a01b038135169060200135610af6565b005b34801561035e57600080fd5b50610367610b4e565b60408051918252519081900360200190f35b34801561038557600080fd5b50610367610b54565b34801561039a57600080fd5b50610350600480360360208110156103b157600080fd5b50356001600160a01b0316610bbf565b3480156103cd57600080fd5b50610350600480360360408110156103e457600080fd5b506001600160a01b038135169060200135610cb3565b34801561040657600080fd5b506103036004803603606081101561041d57600080fd5b506001600160a01b03813581169160208101359091169060400135610d4a565b34801561044957600080fd5b506103506004803603604081101561046057600080fd5b506001600160a01b038135169060200135610db9565b34801561048257600080fd5b506103506004803603602081101561049957600080fd5b50356001600160a01b0316610ee8565b3480156104b557600080fd5b50610350600480360360408110156104cc57600080fd5b50803590602001351515610fa7565b3480156104e757600080fd5b506104f061138c565b6040805160ff9092168252519081900360200190f35b34801561051257600080fd5b506103036004803603604081101561052957600080fd5b506001600160a01b038135169060200135611395565b34801561054b57600080fd5b506103506004803603602081101561056257600080fd5b50356001600160a01b03166113d1565b34801561057e57600080fd5b506103506004803603602081101561059557600080fd5b503561148e565b3480156105a857600080fd5b50610367600480360360208110156105bf57600080fd5b50356001600160a01b03166114ee565b3480156105db57600080fd5b50610350611509565b3480156105f057600080fd5b506103506004803603602081101561060757600080fd5b5035611583565b6103506115d1565b34801561062257600080fd5b506102556115d3565b34801561063757600080fd5b506103036004803603602081101561064e57600080fd5b50356001600160a01b0316611634565b34801561066a57600080fd5b506103036004803603604081101561068157600080fd5b506001600160a01b038135169060200135611652565b3480156106a357600080fd5b50610303600480360360408110156106ba57600080fd5b506001600160a01b0381351690602001356116a7565b3480156106dc57600080fd5b506103676116b4565b3480156106f157600080fd5b506103506004803603602081101561070857600080fd5b50356001600160a01b031661173d565b34801561072457600080fd5b506103506004803603602081101561073b57600080fd5b50356117c3565b34801561074e57600080fd5b50610224611854565b34801561076357600080fd5b506103676004803603604081101561077a57600080fd5b506001600160a01b0381358116916020013516611863565b34801561079e57600080fd5b50610350600480360360208110156107b557600080fd5b50356001600160a01b031661188e565b60035460408051631632700360e21b815290516000926001600160a01b0316916358c9c00c916004808301926020929190829003018186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b505190505b90565b60008261084b57506000610898565b8282028284828161085857fe5b04146108955760405162461bcd60e51b81526004018080602001828103825260218152602001806124c86021913960400191505060405180910390fd5b90505b92915050565b600061089583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061190a565b6001600160a01b03831661093b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60075461094e908363ffffffff6119ac16565b6007556001600160a01b03831660009081526005602052604090205461097a908363ffffffff6119ac16565b6001600160a01b0380851660008181526005602090815260409182902094909455805186815290519193928516927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b3360009081526002602052604081205460ff16610a3a576040805162461bcd60e51b815260206004820152601e60248201527f596f752063616e6e6f742063616c6c20746869732066756e6374696f6e210000604482015290519081900360640190fd5b506003546001600160a01b031690565b600b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ad65780601f10610aab57610100808354040283529160200191610ad6565b820191906000526020600020905b815481529060010190602001808311610ab957829003601f168201915b5050505050905090565b6000610aed338484611a06565b50600192915050565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b610b4a8282306108e0565b5050565b60075490565b3360009081526002602052604081205460ff16610bb8576040805162461bcd60e51b815260206004820152601e60248201527f596f752063616e6e6f742063616c6c20746869732066756e6374696f6e210000604482015290519081900360640190fd5b5060045490565b806001600160a01b031663a9059cbb610bd6611854565b604080516370a0823160e01b815230600482015290516001600160a01b038616916370a082319160248083019260209291908290030181600087803b158015610c1e57600080fd5b505af1158015610c32573d6000803e3d6000fd5b505050506040513d6020811015610c4857600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610cfc5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b610d068282611af2565b60408051828152905130916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610d57848484611bad565b610daf8433610daa856040518060600160405280602881526020016124e9602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919063ffffffff611f6716565b611a06565b5060019392505050565b3360009081526002602052604090205460ff16610e1d576040805162461bcd60e51b815260206004820152601e60248201527f596f752063616e6e6f742063616c6c20746869732066756e6374696f6e210000604482015290519081900360640190fd5b6000610e2833611fc1565b90506040518060800160405280846001600160a01b03168152602001838152602001336001600160a01b03168152602001600180811115610e6557fe5b9052600082815260086020908152604091829020835181546001600160a01b03199081166001600160a01b0392831617835592850151600180840191909155938501516002830180549094169116178083556060850151919391929160ff60a01b1990911690600160a01b908490811115610edc57fe5b02179055505050505050565b6000546001600160a01b03163314610f315760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6001600160a01b038116301415610f4757600080fd5b6001600160a01b038116331415610f5d57600080fd5b6001600160a01b038116610f7057600080fd5b610f7981611634565b15610f8357600080fd5b6001600160a01b03166000908152600260205260409020805460ff19166001179055565b6000828152600860205260409020805460018201546002909201546001600160a01b039182169291811690600160a01b900460ff16610fe68233612103565b610fef57600080fd5b33610ff957600080fd5b600181600181111561100757fe5b14156113395784156111ce57600068056bc75e2d631000006111b36110b561102d612129565b6110a9600454606401336001600160a01b031663bef7a2f06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d602081101561109b57600080fd5b50519063ffffffff61083c16565b9063ffffffff61083c16565b6111a760646110a9336001600160a01b031663cf307c058a6001600160a01b031663ce83b6396040518163ffffffff1660e01b815260040160206040518083038186803b15801561110557600080fd5b505afa158015611119573d6000803e3d6000fd5b505050506040513d602081101561112f57600080fd5b5051604080516001600160e01b031960e085901b1681529115156004830152516024808301926020929190829003018186803b15801561116e57600080fd5b505afa158015611182573d6000803e3d6000fd5b505050506040513d602081101561119857600080fd5b50518a9063ffffffff61083c16565b9063ffffffff61216e16565b816111ba57fe5b0490506111c88582856108e0565b50611334565b60006112b86112ab6112a06064336001600160a01b031663cf307c05886001600160a01b031663ce83b6396040518163ffffffff1660e01b815260040160206040518083038186803b15801561122357600080fd5b505afa158015611237573d6000803e3d6000fd5b505050506040513d602081101561124d57600080fd5b5051604080516001600160e01b031960e085901b1681529115156004830152516024808301926020929190829003018186803b15801561128c57600080fd5b505afa158015611085573d6000803e3d6000fd5b6101f361102d612129565b859063ffffffff61216e16565b9050826001600160a01b031663c2c6ba0986836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561131a57600080fd5b505af115801561132e573d6000803e3d6000fd5b50505050505b611384565b600081600181111561134757fe5b14156113845784156113795760006112b8611361846121b0565b6101f386670de0b6b3a764000063ffffffff61083c16565b6113848484846108e0565b505050505050565b600d5460ff1690565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610aed918590610daa908663ffffffff6119ac16565b6000546001600160a01b0316331461141a5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6001600160a01b03811630141561143057600080fd5b61143981611634565b1561144357600080fd5b6001600160a01b03811633141561145957600080fd5b6001600160a01b03811661146c57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114d75760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6402540be39c8111156114e957600080fd5b600455565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b031633146115525760405162461bcd60e51b81526004018080602001828103825260368152602001806124286036913960400191505060405180910390fd5b3361155c57600080fd5b60018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146115cc5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b600a55565b565b600c8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ad65780601f10610aab57610100808354040283529160200191610ad6565b6001600160a01b031660009081526002602052604090205460ff1690565b6000610aed3384610daa856040518060600160405280602581526020016125a7602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919063ffffffff611f6716565b6000610aed338484611bad565b6000806116f06116d7670de0b6b3a7640000600a5461083c90919063ffffffff16565b6101f36116e2612129565b30319063ffffffff61083c16565b43600090815260096020526040902054909150811115611733574360009081526009602052604090205461172b90829063ffffffff61216e16565b915050610839565b6000915050610839565b6000546001600160a01b031633146117865760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6000546001600160a01b03828116911614156117a157600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461180c5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6000611816611854565b6040519091506001600160a01b0382169083156108fc029084906000818181858888f1935050505015801561184f573d6000803e3d6000fd5b505050565b6000546001600160a01b031690565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633146118d75760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6118e081611634565b6118e957600080fd5b6001600160a01b03166000908152600260205260409020805460ff19169055565b600081836119965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561195b578181015183820152602001611943565b50505050905090810190601f1680156119885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816119a257fe5b0495945050505050565b600082820183811015610895576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038316611a4b5760405162461bcd60e51b81526004018080602001828103825260248152602001806125836024913960400191505060405180910390fd5b6001600160a01b038216611a905760405162461bcd60e51b81526004018080602001828103825260228152602001806124806022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216611b375760405162461bcd60e51b81526004018080602001828103825260218152602001806125116021913960400191505060405180910390fd5b611b7a8160405180606001604052806022815260200161245e602291396001600160a01b038516600090815260056020526040902054919063ffffffff611f6716565b6001600160a01b038316600090815260056020526040902055600754611ba6908263ffffffff61216e16565b6007555050565b6001600160a01b038316611bf25760405162461bcd60e51b81526004018080602001828103825260258152602001806125326025913960400191505060405180910390fd5b6001600160a01b038216611c375760405162461bcd60e51b81526004018080602001828103825260238152602001806124056023913960400191505060405180910390fd5b6001600160a01b038216301415611d1f57611c506116b4565b811115611c9d576040805162461bcd60e51b8152602060048201526016602482015275416d6f756e742073656e7420697320746f6f2062696760501b604482015290519081900360640190fd5b43600090815260096020526040902054611cbd908263ffffffff6119ac16565b43600090815260096020526040902055611cd78382611af2565b826001600160a01b0381166108fc611cf0611361612129565b6040518115909202916000818181858888f19350505050158015611d18573d6000803e3d6000fd5b5050611f17565b611d2882611634565b15611e85576000611d4f670de0b6b3a76400006101f3611d46612129565b6110a987612294565b9050808211611da5576040805162461bcd60e51b815260206004820152601860248201527f416d6f756e742073656e7420697320746f6f20736d616c6c0000000000000000604482015290519081900360640190fd5b611daf8483611af2565b6000611dba84611fc1565b90506040518060800160405280866001600160a01b03168152602001611de9848661216e90919063ffffffff16565b81526001600160a01b038616602082015260400160009052600082815260086020908152604091829020835181546001600160a01b03199081166001600160a01b0392831617835592850151600180840191909155938501516002830180549094169116178083556060850151919391929160ff60a01b1990911690600160a01b908490811115611e7657fe5b02179055509050505050611f17565b611ec8816040518060600160405280602681526020016124a2602691396001600160a01b038616600090815260056020526040902054919063ffffffff611f6716565b6001600160a01b038085166000908152600560205260408082209390935590841681522054611efd908263ffffffff6119ac16565b6001600160a01b0383166000908152600560205260409020555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008184841115611fb95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561195b578181015183820152602001611943565b505050900390565b600080611fcd83612397565b9050806001600160a01b031663b68bd45e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561200a57600080fd5b505af115801561201e573d6000803e3d6000fd5b50505050806001600160a01b03166353bfe633826001600160a01b031663bef7a2f06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561206c57600080fd5b505af1158015612080573d6000803e3d6000fd5b505050506040513d602081101561209657600080fd5b5051604080516001600160e01b031960e085901b1681529051600480830192602092919082900301818588803b1580156120cf57600080fd5b505af11580156120e3573d6000803e3d6000fd5b50505050506040513d60208110156120fa57600080fd5b50519392505050565b6000816001600160a01b031661211884612397565b6001600160a01b0316149392505050565b60035460408051635b8e266360e11b815290516000926001600160a01b03169163b71c4cc6916004808301926020929190829003018186803b15801561080a57600080fd5b600061089583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f67565b600080826001600160a01b031663ce83b6396040518163ffffffff1660e01b815260040160206040518083038186803b1580156121ec57600080fd5b505afa158015612200573d6000803e3d6000fd5b505050506040513d602081101561221657600080fd5b5051905061222383612397565b6001600160a01b031663c7af3e84826040518263ffffffff1660e01b8152600401808215151515815260200191505060206040518083038186803b15801561226a57600080fd5b505afa15801561227e573d6000803e3d6000fd5b505050506040513d60208110156120fa57600080fd5b600061229f82612397565b6001600160a01b031663b68bd45e6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156122d957600080fd5b505af11580156122ed573d6000803e3d6000fd5b5050505060006122fc83612397565b6001600160a01b031663bef7a2f06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561233657600080fd5b505af115801561234a573d6000803e3d6000fd5b505050506040513d602081101561236057600080fd5b5051600454909150612390906064906101f390612383908363ffffffff6119ac16565b849063ffffffff61083c16565b9392505050565b6000816001600160a01b03166370df97f06040518163ffffffff1660e01b815260040160206040518083038186803b1580156123d257600080fd5b505afa1580156123e6573d6000803e3d6000fd5b505050506040513d60208110156123fc57600080fd5b50519291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735365636f6e646172793a2063616c6c6572206973206e6f7420746865207072696d6172792063616e646964617465206163636f756e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573735365636f6e646172793a2063616c6c6572206973206e6f7420746865207072696d617279206163636f756e7445524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158204aa60cf457e3809d25ed681d5c55b0c8d1158402839a26753da442bd629ad04b64736f6c634300050b0032

Deployed Bytecode

0x6080604052600436106101cd5760003560e01c8063641579a6116100f7578063a457c2d711610095578063c311d04911610064578063c311d04914610718578063c6dbdf6114610742578063dd62ed3e14610757578063eea02c3c14610792576101cd565b8063a457c2d71461065e578063a9059cbb14610697578063b328e73c146106d0578063be423626146106e5576101cd565b80638608301d116100d15780638608301d146105e45780638d68cf591461060e57806395d89b41146106165780639feab3761461062b576101cd565b8063641579a61461057257806370a082311461059c5780637f29171c146105cf576101cd565b80631dfa4db01161016f5780632fb7b1561161013e5780632fb7b156146104a9578063313ce567146104db57806339509351146105065780634fde39781461053f576101cd565b80631dfa4db0146103c157806323b872dd146103fa57806327ed9d321461043d5780632985af3714610476576101cd565b80630e222f5e116101ab5780630e222f5e1461031757806318160ddd146103525780631b3ed722146103795780631dd60b181461038e576101cd565b80630108f7fc1461020f57806306fdde0314610240578063095ea7b3146102ca575b60006101ff670de0b6b3a76400006101f36101e66107c5565b349063ffffffff61083c16565b9063ffffffff61089e16565b905061020c3382306108e0565b50005b34801561021b57600080fd5b506102246109d6565b604080516001600160a01b039092168252519081900360200190f35b34801561024c57600080fd5b50610255610a4a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028f578181015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d657600080fd5b50610303600480360360408110156102ed57600080fd5b506001600160a01b038135169060200135610ae0565b604080519115158252519081900360200190f35b34801561032357600080fd5b506103506004803603604081101561033a57600080fd5b506001600160a01b038135169060200135610af6565b005b34801561035e57600080fd5b50610367610b4e565b60408051918252519081900360200190f35b34801561038557600080fd5b50610367610b54565b34801561039a57600080fd5b50610350600480360360208110156103b157600080fd5b50356001600160a01b0316610bbf565b3480156103cd57600080fd5b50610350600480360360408110156103e457600080fd5b506001600160a01b038135169060200135610cb3565b34801561040657600080fd5b506103036004803603606081101561041d57600080fd5b506001600160a01b03813581169160208101359091169060400135610d4a565b34801561044957600080fd5b506103506004803603604081101561046057600080fd5b506001600160a01b038135169060200135610db9565b34801561048257600080fd5b506103506004803603602081101561049957600080fd5b50356001600160a01b0316610ee8565b3480156104b557600080fd5b50610350600480360360408110156104cc57600080fd5b50803590602001351515610fa7565b3480156104e757600080fd5b506104f061138c565b6040805160ff9092168252519081900360200190f35b34801561051257600080fd5b506103036004803603604081101561052957600080fd5b506001600160a01b038135169060200135611395565b34801561054b57600080fd5b506103506004803603602081101561056257600080fd5b50356001600160a01b03166113d1565b34801561057e57600080fd5b506103506004803603602081101561059557600080fd5b503561148e565b3480156105a857600080fd5b50610367600480360360208110156105bf57600080fd5b50356001600160a01b03166114ee565b3480156105db57600080fd5b50610350611509565b3480156105f057600080fd5b506103506004803603602081101561060757600080fd5b5035611583565b6103506115d1565b34801561062257600080fd5b506102556115d3565b34801561063757600080fd5b506103036004803603602081101561064e57600080fd5b50356001600160a01b0316611634565b34801561066a57600080fd5b506103036004803603604081101561068157600080fd5b506001600160a01b038135169060200135611652565b3480156106a357600080fd5b50610303600480360360408110156106ba57600080fd5b506001600160a01b0381351690602001356116a7565b3480156106dc57600080fd5b506103676116b4565b3480156106f157600080fd5b506103506004803603602081101561070857600080fd5b50356001600160a01b031661173d565b34801561072457600080fd5b506103506004803603602081101561073b57600080fd5b50356117c3565b34801561074e57600080fd5b50610224611854565b34801561076357600080fd5b506103676004803603604081101561077a57600080fd5b506001600160a01b0381358116916020013516611863565b34801561079e57600080fd5b50610350600480360360208110156107b557600080fd5b50356001600160a01b031661188e565b60035460408051631632700360e21b815290516000926001600160a01b0316916358c9c00c916004808301926020929190829003018186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b505190505b90565b60008261084b57506000610898565b8282028284828161085857fe5b04146108955760405162461bcd60e51b81526004018080602001828103825260218152602001806124c86021913960400191505060405180910390fd5b90505b92915050565b600061089583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061190a565b6001600160a01b03831661093b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60075461094e908363ffffffff6119ac16565b6007556001600160a01b03831660009081526005602052604090205461097a908363ffffffff6119ac16565b6001600160a01b0380851660008181526005602090815260409182902094909455805186815290519193928516927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b3360009081526002602052604081205460ff16610a3a576040805162461bcd60e51b815260206004820152601e60248201527f596f752063616e6e6f742063616c6c20746869732066756e6374696f6e210000604482015290519081900360640190fd5b506003546001600160a01b031690565b600b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ad65780601f10610aab57610100808354040283529160200191610ad6565b820191906000526020600020905b815481529060010190602001808311610ab957829003601f168201915b5050505050905090565b6000610aed338484611a06565b50600192915050565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b610b4a8282306108e0565b5050565b60075490565b3360009081526002602052604081205460ff16610bb8576040805162461bcd60e51b815260206004820152601e60248201527f596f752063616e6e6f742063616c6c20746869732066756e6374696f6e210000604482015290519081900360640190fd5b5060045490565b806001600160a01b031663a9059cbb610bd6611854565b604080516370a0823160e01b815230600482015290516001600160a01b038616916370a082319160248083019260209291908290030181600087803b158015610c1e57600080fd5b505af1158015610c32573d6000803e3d6000fd5b505050506040513d6020811015610c4857600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610cfc5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b610d068282611af2565b60408051828152905130916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610d57848484611bad565b610daf8433610daa856040518060600160405280602881526020016124e9602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919063ffffffff611f6716565b611a06565b5060019392505050565b3360009081526002602052604090205460ff16610e1d576040805162461bcd60e51b815260206004820152601e60248201527f596f752063616e6e6f742063616c6c20746869732066756e6374696f6e210000604482015290519081900360640190fd5b6000610e2833611fc1565b90506040518060800160405280846001600160a01b03168152602001838152602001336001600160a01b03168152602001600180811115610e6557fe5b9052600082815260086020908152604091829020835181546001600160a01b03199081166001600160a01b0392831617835592850151600180840191909155938501516002830180549094169116178083556060850151919391929160ff60a01b1990911690600160a01b908490811115610edc57fe5b02179055505050505050565b6000546001600160a01b03163314610f315760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6001600160a01b038116301415610f4757600080fd5b6001600160a01b038116331415610f5d57600080fd5b6001600160a01b038116610f7057600080fd5b610f7981611634565b15610f8357600080fd5b6001600160a01b03166000908152600260205260409020805460ff19166001179055565b6000828152600860205260409020805460018201546002909201546001600160a01b039182169291811690600160a01b900460ff16610fe68233612103565b610fef57600080fd5b33610ff957600080fd5b600181600181111561100757fe5b14156113395784156111ce57600068056bc75e2d631000006111b36110b561102d612129565b6110a9600454606401336001600160a01b031663bef7a2f06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d602081101561109b57600080fd5b50519063ffffffff61083c16565b9063ffffffff61083c16565b6111a760646110a9336001600160a01b031663cf307c058a6001600160a01b031663ce83b6396040518163ffffffff1660e01b815260040160206040518083038186803b15801561110557600080fd5b505afa158015611119573d6000803e3d6000fd5b505050506040513d602081101561112f57600080fd5b5051604080516001600160e01b031960e085901b1681529115156004830152516024808301926020929190829003018186803b15801561116e57600080fd5b505afa158015611182573d6000803e3d6000fd5b505050506040513d602081101561119857600080fd5b50518a9063ffffffff61083c16565b9063ffffffff61216e16565b816111ba57fe5b0490506111c88582856108e0565b50611334565b60006112b86112ab6112a06064336001600160a01b031663cf307c05886001600160a01b031663ce83b6396040518163ffffffff1660e01b815260040160206040518083038186803b15801561122357600080fd5b505afa158015611237573d6000803e3d6000fd5b505050506040513d602081101561124d57600080fd5b5051604080516001600160e01b031960e085901b1681529115156004830152516024808301926020929190829003018186803b15801561128c57600080fd5b505afa158015611085573d6000803e3d6000fd5b6101f361102d612129565b859063ffffffff61216e16565b9050826001600160a01b031663c2c6ba0986836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561131a57600080fd5b505af115801561132e573d6000803e3d6000fd5b50505050505b611384565b600081600181111561134757fe5b14156113845784156113795760006112b8611361846121b0565b6101f386670de0b6b3a764000063ffffffff61083c16565b6113848484846108e0565b505050505050565b600d5460ff1690565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610aed918590610daa908663ffffffff6119ac16565b6000546001600160a01b0316331461141a5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6001600160a01b03811630141561143057600080fd5b61143981611634565b1561144357600080fd5b6001600160a01b03811633141561145957600080fd5b6001600160a01b03811661146c57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114d75760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6402540be39c8111156114e957600080fd5b600455565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b031633146115525760405162461bcd60e51b81526004018080602001828103825260368152602001806124286036913960400191505060405180910390fd5b3361155c57600080fd5b60018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146115cc5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b600a55565b565b600c8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ad65780601f10610aab57610100808354040283529160200191610ad6565b6001600160a01b031660009081526002602052604090205460ff1690565b6000610aed3384610daa856040518060600160405280602581526020016125a7602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919063ffffffff611f6716565b6000610aed338484611bad565b6000806116f06116d7670de0b6b3a7640000600a5461083c90919063ffffffff16565b6101f36116e2612129565b30319063ffffffff61083c16565b43600090815260096020526040902054909150811115611733574360009081526009602052604090205461172b90829063ffffffff61216e16565b915050610839565b6000915050610839565b6000546001600160a01b031633146117865760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6000546001600160a01b03828116911614156117a157600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461180c5760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6000611816611854565b6040519091506001600160a01b0382169083156108fc029084906000818181858888f1935050505015801561184f573d6000803e3d6000fd5b505050565b6000546001600160a01b031690565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633146118d75760405162461bcd60e51b815260040180806020018281038252602c815260200180612557602c913960400191505060405180910390fd5b6118e081611634565b6118e957600080fd5b6001600160a01b03166000908152600260205260409020805460ff19169055565b600081836119965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561195b578181015183820152602001611943565b50505050905090810190601f1680156119885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816119a257fe5b0495945050505050565b600082820183811015610895576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038316611a4b5760405162461bcd60e51b81526004018080602001828103825260248152602001806125836024913960400191505060405180910390fd5b6001600160a01b038216611a905760405162461bcd60e51b81526004018080602001828103825260228152602001806124806022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216611b375760405162461bcd60e51b81526004018080602001828103825260218152602001806125116021913960400191505060405180910390fd5b611b7a8160405180606001604052806022815260200161245e602291396001600160a01b038516600090815260056020526040902054919063ffffffff611f6716565b6001600160a01b038316600090815260056020526040902055600754611ba6908263ffffffff61216e16565b6007555050565b6001600160a01b038316611bf25760405162461bcd60e51b81526004018080602001828103825260258152602001806125326025913960400191505060405180910390fd5b6001600160a01b038216611c375760405162461bcd60e51b81526004018080602001828103825260238152602001806124056023913960400191505060405180910390fd5b6001600160a01b038216301415611d1f57611c506116b4565b811115611c9d576040805162461bcd60e51b8152602060048201526016602482015275416d6f756e742073656e7420697320746f6f2062696760501b604482015290519081900360640190fd5b43600090815260096020526040902054611cbd908263ffffffff6119ac16565b43600090815260096020526040902055611cd78382611af2565b826001600160a01b0381166108fc611cf0611361612129565b6040518115909202916000818181858888f19350505050158015611d18573d6000803e3d6000fd5b5050611f17565b611d2882611634565b15611e85576000611d4f670de0b6b3a76400006101f3611d46612129565b6110a987612294565b9050808211611da5576040805162461bcd60e51b815260206004820152601860248201527f416d6f756e742073656e7420697320746f6f20736d616c6c0000000000000000604482015290519081900360640190fd5b611daf8483611af2565b6000611dba84611fc1565b90506040518060800160405280866001600160a01b03168152602001611de9848661216e90919063ffffffff16565b81526001600160a01b038616602082015260400160009052600082815260086020908152604091829020835181546001600160a01b03199081166001600160a01b0392831617835592850151600180840191909155938501516002830180549094169116178083556060850151919391929160ff60a01b1990911690600160a01b908490811115611e7657fe5b02179055509050505050611f17565b611ec8816040518060600160405280602681526020016124a2602691396001600160a01b038616600090815260056020526040902054919063ffffffff611f6716565b6001600160a01b038085166000908152600560205260408082209390935590841681522054611efd908263ffffffff6119ac16565b6001600160a01b0383166000908152600560205260409020555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008184841115611fb95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561195b578181015183820152602001611943565b505050900390565b600080611fcd83612397565b9050806001600160a01b031663b68bd45e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561200a57600080fd5b505af115801561201e573d6000803e3d6000fd5b50505050806001600160a01b03166353bfe633826001600160a01b031663bef7a2f06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561206c57600080fd5b505af1158015612080573d6000803e3d6000fd5b505050506040513d602081101561209657600080fd5b5051604080516001600160e01b031960e085901b1681529051600480830192602092919082900301818588803b1580156120cf57600080fd5b505af11580156120e3573d6000803e3d6000fd5b50505050506040513d60208110156120fa57600080fd5b50519392505050565b6000816001600160a01b031661211884612397565b6001600160a01b0316149392505050565b60035460408051635b8e266360e11b815290516000926001600160a01b03169163b71c4cc6916004808301926020929190829003018186803b15801561080a57600080fd5b600061089583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f67565b600080826001600160a01b031663ce83b6396040518163ffffffff1660e01b815260040160206040518083038186803b1580156121ec57600080fd5b505afa158015612200573d6000803e3d6000fd5b505050506040513d602081101561221657600080fd5b5051905061222383612397565b6001600160a01b031663c7af3e84826040518263ffffffff1660e01b8152600401808215151515815260200191505060206040518083038186803b15801561226a57600080fd5b505afa15801561227e573d6000803e3d6000fd5b505050506040513d60208110156120fa57600080fd5b600061229f82612397565b6001600160a01b031663b68bd45e6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156122d957600080fd5b505af11580156122ed573d6000803e3d6000fd5b5050505060006122fc83612397565b6001600160a01b031663bef7a2f06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561233657600080fd5b505af115801561234a573d6000803e3d6000fd5b505050506040513d602081101561236057600080fd5b5051600454909150612390906064906101f390612383908363ffffffff6119ac16565b849063ffffffff61083c16565b9392505050565b6000816001600160a01b03166370df97f06040518163ffffffff1660e01b815260040160206040518083038186803b1580156123d257600080fd5b505afa1580156123e6573d6000803e3d6000fd5b505050506040513d60208110156123fc57600080fd5b50519291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735365636f6e646172793a2063616c6c6572206973206e6f7420746865207072696d6172792063616e646964617465206163636f756e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573735365636f6e646172793a2063616c6c6572206973206e6f7420746865207072696d617279206163636f756e7445524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158204aa60cf457e3809d25ed681d5c55b0c8d1158402839a26753da442bd629ad04b64736f6c634300050b0032

Deployed Bytecode Sourcemap

12371:2674:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12590:14;12607:40;6926:6;12608:25;12622:10;:8;:10::i;:::-;12608:9;;:25;:13;:25;:::i;:::-;12607:31;:40;:31;:40;:::i;:::-;12590:57;;12658:38;12664:10;12675:6;12690:4;12658:5;:38::i;:::-;12550:154;12371:2674;4321:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4321:120:0;;;:::i;:::-;;;;-1:-1:-1;;;;;4321:120:0;;;;;;;;;;;;;;11943:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11943:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11943:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8372:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8372:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8372:148:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;14405:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14405:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14405:119:0;;;;;;;;:::i;:::-;;7849:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7849:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;5152:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5152:108:0;;;:::i;14710:160::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14710:160:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14710:160:0;-1:-1:-1;;;;;14710:160:0;;:::i;14533:159::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14533:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14533:159:0;;;;;;;;:::i;8528:300::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8528:300:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8528:300:0;;;;;;;;;;;;;;;;;:::i;12768:237::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12768:237:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12768:237:0;;;;;;;;:::i;3068:285::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3068:285:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3068:285:0;-1:-1:-1;;;;;3068:285:0;;:::i;13017:1376::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13017:1376:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13017:1376:0;;;;;;;;;:::i;12129:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12129:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8836:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8836:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8836:206:0;;;;;;;;:::i;4034:275::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4034:275:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4034:275:0;-1:-1:-1;;;;;4034:275:0;;:::i;5272:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5272:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5272:134:0;;:::i;7948:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7948:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7948:110:0;-1:-1:-1;;;;;7948:110:0;;:::i;1561:288::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1561:288:0;;;:::i;7301:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7301:137:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7301:137:0;;:::i;12716:40::-;;;:::i;12034:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12034:87:0;;;:::i;2945:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2945:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2945:114:0;-1:-1:-1;;;;;2945:114:0;;:::i;9050:257::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9050:257:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9050:257:0;;;;;;;;:::i;8066:156::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8066:156:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8066:156:0;;;;;;;;:::i;7495:346::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7495:346:0;;;:::i;1857:156::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1857:156:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1857:156:0;-1:-1:-1;;;;;1857:156:0;;:::i;14881:160::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14881:160:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14881:160:0;;:::i;1466:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1466:83:0;;;:::i;8230:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8230:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8230:134:0;;;;;;;;;;:::i;3365:154::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3365:154:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3365:154:0;-1:-1:-1;;;;;3365:154:0;;:::i;3905:117::-;3985:17;;3975:39;;;-1:-1:-1;;;3975:39:0;;;;3948:7;;-1:-1:-1;;;;;3985:17:0;;3975:37;;:39;;;;;;;;;;;;;;3985:17;3975:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3975:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3975:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3975:39:0;;-1:-1:-1;3905:117:0;;:::o;565:216::-;623:7;647:6;643:23;;-1:-1:-1;663:1:0;656:8;;643:23;688:5;;;692:1;688;:5;:1;712:5;;;;;:10;704:56;;;;-1:-1:-1;;;704:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;778:1;-1:-1:-1;565:216:0;;;;;:::o;789:126::-;847:7;874:39;878:1;881;874:39;;;;;;;;;;;;;;;;;:3;:39::i;10661:320::-;-1:-1:-1;;;;;10753:21:0;;10745:65;;;;;-1:-1:-1;;;10745:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10838:12;;:24;;10855:6;10838:24;:16;:24;:::i;:::-;10823:12;:39;-1:-1:-1;;;;;10894:18:0;;;;;;:9;:18;;;;;;:30;;10917:6;10894:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;10873:18:0;;;;;;;:9;:18;;;;;;;;;:51;;;;10940:33;;;;;;;10873:18;;10940:33;;;;;;;;;;;;;10661:320;;;:::o;4321:120::-;2867:10;4389:7;2851:27;;;:15;:27;;;;;;;;2843:70;;;;;-1:-1:-1;;;2843:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4416:17:0;;-1:-1:-1;;;;;4416:17:0;4321:120;:::o;11943:83::-;12013:5;12006:12;;;;;;;;-1:-1:-1;;12006:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11980:13;;12006:12;;12013:5;;12006:12;;12013:5;12006:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11943:83;:::o;8372:148::-;8437:4;8454:36;8463:10;8475:7;8484:5;8454:8;:36::i;:::-;-1:-1:-1;8508:4:0;8372:148;;;;:::o;14405:119::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14482:34;14488:2;14491:9;14510:4;14482:5;:34::i;:::-;14405:119;;:::o;7849:91::-;7920:12;;7849:91;:::o;5152:108::-;2867:10;5214:7;2851:27;;;:15;:27;;;;;;;;2843:70;;;;;-1:-1:-1;;;2843:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5241:11:0;;5152:108;:::o;14710:160::-;14781:13;-1:-1:-1;;;;;14775:29:0;;14805:9;:7;:9::i;:::-;14816:45;;;-1:-1:-1;;;14816:45:0;;14855:4;14816:45;;;;;;-1:-1:-1;;;;;14816:30:0;;;;;:45;;;;;;;;;;;;;;-1:-1:-1;14816:30:0;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;14816:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14816:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14816:45:0;14775:87;;;-1:-1:-1;;;;;;14775:87:0;;;;;;;-1:-1:-1;;;;;14775:87:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14775:87:0;;;;;;;-1:-1:-1;14775:87:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;14775:87:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14775:87:0;;;;14710:160;:::o;14533:159::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14611:19;14617:2;14620:9;14611:5;:19::i;:::-;14646:38;;;;;;;;14667:4;;-1:-1:-1;;;;;14646:38:0;;;;;;;;;;;;14533:159;;:::o;8528:300::-;8617:4;8634:36;8644:6;8652:9;8663:6;8634:9;:36::i;:::-;8681:117;8690:6;8698:10;8710:87;8746:6;8710:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8710:19:0;;;;;;:11;:19;;;;;;;;8730:10;8710:31;;;;;;;;;:87;;:35;:87;:::i;:::-;8681:8;:117::i;:::-;-1:-1:-1;8816:4:0;8528:300;;;;;:::o;12768:237::-;2867:10;2851:27;;;;:15;:27;;;;;;;;2843:70;;;;;-1:-1:-1;;;2843:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12855:18;12876:28;12893:10;12876:16;:28::i;:::-;12855:49;;12938:59;;;;;;;;12947:6;-1:-1:-1;;;;;12938:59:0;;;;;12955:11;12938:59;;;;12968:10;-1:-1:-1;;;;;12938:59:0;;;;;12979:17;12938:59;;;;;;;;;;12914:21;;;;:9;:21;;;;;;;;;:83;;;;-1:-1:-1;;;;;;12914:83:0;;;-1:-1:-1;;;;;12914:83:0;;;;;;;;;;-1:-1:-1;12914:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:83;;;-1:-1:-1;;;;12914:83:0;;;;-1:-1:-1;;;12914:83:0;;;;;;;;;;;;;;-1:-1:-1;;;;;;12768:237:0:o;3068:285::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3148:22:0;;3165:4;3148:22;;3140:31;;;;;;-1:-1:-1;;;;;3191:19:0;;3200:10;3191:19;;3183:28;;;;;;-1:-1:-1;;;;;3231:19:0;;3223:28;;;;;;3272:21;3287:5;3272:14;:21::i;:::-;3271:22;3263:31;;;;;;-1:-1:-1;;;;;3316:22:0;;;;;:15;:22;;;;;:29;;-1:-1:-1;;3316:29:0;3341:4;3316:29;;;3068:285::o;13017:1376::-;13098:14;13118:21;;;:9;:21;;;;;:28;;;13176:31;;;13237:35;;;;;-1:-1:-1;;;;;13118:28:0;;;;13176:31;13237:35;;;-1:-1:-1;;;13302:28:0;;;;13357:36;13237:35;13382:10;13357:20;:36::i;:::-;13349:45;;;;;;13412:10;13404:33;;;;;;13469:17;13459:6;:27;;;;;;;;;13456:930;;;13507:10;13504:568;;;13536:11;13715:6;13551:161;13645:66;13700:10;:8;:10::i;:::-;13645:50;13679:11;;13691:3;13679:15;13657:10;-1:-1:-1;;;;;13645:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13645:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13645:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13645:29:0;;:50;:33;:50;:::i;:::-;:54;:66;:54;:66;:::i;:::-;13552:87;13635:3;13552:78;13578:10;-1:-1:-1;;;;;13566:34:0;;13615:2;-1:-1:-1;;;;;13601:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13601:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13601:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13601:27:0;13566:63;;;-1:-1:-1;;;;;;13566:63:0;;;;;;;;;;;;;;;;;;;;13601:27;;13566:63;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;13566:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13566:63:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13566:63:0;13552:9;;:78;:13;:78;:::i;:87::-;13551:93;:161;:93;:161;:::i;:::-;13550:172;;;;;;13536:186;;13740:25;13746:6;13754;13762:2;13740:5;:25::i;:::-;13504:568;;;;13820:11;13834:161;13848:146;13921:72;13989:3;13933:10;-1:-1:-1;;;;;13921:34:0;;13970:2;-1:-1:-1;;;;;13956:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13956:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13956:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13956:27:0;13921:63;;;-1:-1:-1;;;;;;13921:63:0;;;;;;;;;;;;;;;;;;;;13956:27;;13921:63;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;13921:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;13921:72:0;13849:66;13904:10;:8;:10::i;13848:146::-;13834:9;;:161;:13;:161;:::i;:::-;13820:175;;14027:2;-1:-1:-1;;;;;14013:27:0;;14041:6;14048;14013:42;;;;;;;;;;;;;-1:-1:-1;;;;;14013:42:0;-1:-1:-1;;;;;14013:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14013:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14013:42:0;;;;13504:568;;13456:930;;;14103:19;14093:6;:29;;;;;;;;;14090:296;;;14143:10;14140:235;;;14172:11;14186:44;14215:14;14226:2;14215:10;:14::i;:::-;14187:22;:9;6926:6;14187:22;:13;:22;:::i;14140:235::-;14331:28;14337:6;14345:9;14356:2;14331:5;:28::i;:::-;13017:1376;;;;;;:::o;12129:83::-;12195:9;;;;12129:83;:::o;8836:206::-;8942:10;8916:4;8963:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8963:32:0;;;;;;;;;;8916:4;;8933:79;;8954:7;;8963:48;;9000:10;8963:48;:36;:48;:::i;4034:275::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4116:22:0;;4133:4;4116:22;;4108:31;;;;;;4159:21;4174:5;4159:14;:21::i;:::-;4158:22;4150:31;;;;;;-1:-1:-1;;;;;4200:19:0;;4209:10;4200:19;;4192:28;;;;;;-1:-1:-1;;;;;4239:19:0;;4231:28;;;;;;4276:17;:25;;-1:-1:-1;;;;;;4276:25:0;-1:-1:-1;;;;;4276:25:0;;;;;;;;;;4034:275::o;5272:134::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:10;5348:5;:19;;5340:28;;;;;;5379:11;:19;5272:134::o;7948:110::-;-1:-1:-1;;;;;8032:18:0;8005:7;8032:18;;;:9;:18;;;;;;;7948:110::o;1561:288::-;1631:17;;-1:-1:-1;;;;;1631:17:0;1617:10;:31;1609:98;;;;-1:-1:-1;;;1609:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:10;1718:33;;;;;;1783:17;;;;1772:28;;-1:-1:-1;;;;;;1772:28:0;;;-1:-1:-1;;;;;1783:17:0;;1772:28;;;;1811:30;;;1561:288::o;7301:137::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7392:17;:38;7301:137::o;12716:40::-;:::o;12034:87::-;12106:7;12099:14;;;;;;;;-1:-1:-1;;12099:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12073:13;;12099:14;;12106:7;;12099:14;;12106:7;12099:14;;;;;;;;;;;;;;;;;;;;;;;;2945:114;-1:-1:-1;;;;;3029:22:0;3005:4;3029:22;;;:15;:22;;;;;;;;;2945:114::o;9050:257::-;9135:4;9152:125;9161:10;9173:7;9182:94;9219:15;9182:94;;;;;;;;;;;;;;;;;9194:10;9182:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9182:32:0;;;;;;;;;;;:94;;:36;:94;:::i;8066:156::-;8135:4;8152:40;8162:10;8174:9;8185:6;8152:9;:40::i;7495:346::-;7539:7;7568:11;7582:75;7626:30;6926:6;7626:17;;:21;;:30;;;;:::i;:::-;7583:37;7609:10;:8;:10::i;:::-;7591:4;7583:21;;:37;:25;:37;:::i;7582:75::-;7696:12;7679:30;;;;:16;:30;;;;;;7568:89;;-1:-1:-1;7679:39:0;-1:-1:-1;7676:158:0;;;7769:12;7752:30;;;;:16;:30;;;;;;7741:42;;:6;;:42;:10;:42;:::i;:::-;7734:49;;;;;7676:158;7821:1;7814:8;;;;;1857:156;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1956:8;;-1:-1:-1;;;;;1943:21:0;;;1956:8;;1943:21;;1935:30;;;;;;1976:17;:29;;-1:-1:-1;;;;;;1976:29:0;-1:-1:-1;;;;;1976:29:0;;;;;;;;;;1857:156::o;14881:160::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14947:22;14988:9;:7;:9::i;:::-;15010:23;;14947:52;;-1:-1:-1;;;;;;15010:15:0;;;:23;;;;;15026:6;;15010:23;;;;15026:6;15010:15;:23;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15010:23:0;1449:1;14881:160;:::o;1466:83::-;1506:7;1533:8;-1:-1:-1;;;;;1533:8:0;1466:83;:::o;8230:134::-;-1:-1:-1;;;;;8329:18:0;;;8302:7;8329:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8230:134::o;3365:154::-;1381:8;;-1:-1:-1;;;;;1381:8:0;1367:10;:22;1359:79;;;;-1:-1:-1;;;1359:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3448:21;3463:5;3448:14;:21::i;:::-;3440:30;;;;;;-1:-1:-1;;;;;3481:22:0;3506:5;3481:22;;;:15;:22;;;;;:30;;-1:-1:-1;;3481:30:0;;;3365:154::o;923:183::-;1009:7;1044:12;1037:5;1029:28;;;;-1:-1:-1;;;1029:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1029:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:9;1084:1;1080;:5;;;;;;;923:183;-1:-1:-1;;;;;923:183:0:o;54:173::-;112:7;144:5;;;168:6;;;;160:46;;;;;-1:-1:-1;;;160:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11293:335;-1:-1:-1;;;;;11386:19:0;;11378:68;;;;-1:-1:-1;;;11378:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11465:21:0;;11457:68;;;;-1:-1:-1;;;11457:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11538:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;11589:31;;;;;;;;;;;;;;;;;11293:335;;;:::o;10989:292::-;-1:-1:-1;;;;;11064:21:0;;11056:67;;;;-1:-1:-1;;;11056:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11157;11180:5;11157:67;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11157:18:0;;;;;;:9;:18;;;;;;;:67;;:22;:67;:::i;:::-;-1:-1:-1;;;;;11136:18:0;;;;;;:9;:18;;;;;:88;11250:12;;:23;;11267:5;11250:23;:16;:23;:::i;:::-;11235:12;:38;-1:-1:-1;;10989:292:0:o;9315:1338::-;-1:-1:-1;;;;;9413:20:0;;9405:70;;;;-1:-1:-1;;;9405:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9494:23:0;;9486:71;;;;-1:-1:-1;;;9486:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9581:26:0;;9602:4;9581:26;9578:1007;;;9641:13;:11;:13::i;:::-;9631:6;:23;;9623:58;;;;;-1:-1:-1;;;9623:58:0;;;;;;;;;;;;-1:-1:-1;;;9623:58:0;;;;;;;;;;;;;;;9746:12;9729:30;;;;:16;:30;;;;;;:42;;9764:6;9729:42;:34;:42;:::i;:::-;9713:12;9696:30;;;;:16;:30;;;;;:75;9800:20;9806:6;9813;9800:5;:20::i;:::-;9876:6;-1:-1:-1;;;;;9899:15:0;;:52;9915:35;9939:10;:8;:10::i;9915:35::-;9899:52;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9899:52:0;9578:1007;;;;9985:25;10000:9;9985:14;:25::i;:::-;9982:603;;;10027:11;10041:45;6926:6;10042:30;10061:10;:8;:10::i;:::-;10042:14;10046:9;10042:3;:14::i;10041:45::-;10027:59;;10117:6;10108;:15;10100:52;;;;;-1:-1:-1;;;10100:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10179:20;10185:6;10192;10179:5;:20::i;:::-;10213:18;10234:27;10251:9;10234:16;:27::i;:::-;10213:48;;10299:68;;;;;;;;10308:6;-1:-1:-1;;;;;10299:68:0;;;;;10316:18;10327:6;10316;:10;;:18;;;;:::i;:::-;10299:68;;-1:-1:-1;;;;;10299:68:0;;;;;;;;-1:-1:-1;10299:68:0;;10275:21;;;;:9;:21;;;;;;;;;:92;;;;-1:-1:-1;;;;;;10275:92:0;;;-1:-1:-1;;;;;10275:92:0;;;;;;;;;;-1:-1:-1;10275:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:92;;;-1:-1:-1;;;;10275:92:0;;;;-1:-1:-1;;;10275:92:0;;;;;;;;;;;;;;;;;;9982:603;;;;;10432:71;10454:6;10432:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10432:17:0;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;10412:17:0;;;;;;;:9;:17;;;;;;:91;;;;10541:20;;;;;;;:32;;10566:6;10541:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;10518:20:0;;;;;;:9;:20;;;;;:55;9982:603;10627:9;-1:-1:-1;;;;;10610:35:0;10619:6;-1:-1:-1;;;;;10610:35:0;;10638:6;10610:35;;;;;;;;;;;;;;;;;;9315:1338;;;:::o;373:184::-;459:7;495:12;487:6;;;;479:29;;;;-1:-1:-1;;;479:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;479:29:0;-1:-1:-1;;;531:5:0;;;373:184::o;6202:272::-;6259:7;6279:22;6320:8;6324:3;6320;:8::i;:::-;6279:51;;6353:6;-1:-1:-1;;;;;6341:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6341:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6341:36:0;;;;6407:6;-1:-1:-1;;;;;6395:36:0;;6450:6;-1:-1:-1;;;;;6438:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6438:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6438:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6438:25:0;6395:71;;;-1:-1:-1;;;;;;6395:71:0;;;;;;;;;;;;;;6438:25;;6395:71;;;;;;;6438:25;6395:71;;;;5:2:-1;;;;30:1;27;20:12;5:2;6395:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6395:71:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6395:71:0;;6202:272;-1:-1:-1;;;6202:272:0:o;6486:130::-;6567:4;6603:5;-1:-1:-1;;;;;6591:17:0;:8;6595:3;6591;:8::i;:::-;-1:-1:-1;;;;;6591:17:0;;;6486:130;-1:-1:-1;;;6486:130:0:o;3776:117::-;3856:17;;3846:39;;;-1:-1:-1;;;3846:39:0;;;;3819:7;;-1:-1:-1;;;;;3856:17:0;;3846:37;;:39;;;;;;;;;;;;;;3856:17;3846:39;;;5:2:-1;;;;30:1;27;20:12;235:130:0;293:7;320:43;324:1;327;320:43;;;;;;;;;;;;;;;;;:3;:43::i;5810:186::-;5866:7;5886:12;5915:3;-1:-1:-1;;;;;5901:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5901:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5901:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5901:28:0;;-1:-1:-1;5959:8:0;5963:3;5959;:8::i;:::-;-1:-1:-1;;;;;5947:32:0;;5980:7;5947:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5947:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5947:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;5581:217:0;5625:7;5657:8;5661:3;5657;:8::i;:::-;-1:-1:-1;;;;;5645:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5645:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5645:38:0;;;;5694:8;5717;5721:3;5717;:8::i;:::-;-1:-1:-1;;;;;5705:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5705:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5705:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5705:27:0;5759:11;;5705:27;;-1:-1:-1;5750:40:0;;5786:3;;5751:29;;5759:20;;5786:3;5759:20;:15;:20;:::i;:::-;5751:3;;:29;:7;:29;:::i;5750:40::-;5743:47;5581:217;-1:-1:-1;;;5581:217:0:o;5418:155::-;5483:7;5523:20;-1:-1:-1;;;;;5509:54:0;;:56;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5509:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5509:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5509:56:0;;5418:155;-1:-1:-1;;5418:155:0:o

Swarm Source

bzzr://4aa60cf457e3809d25ed681d5c55b0c8d1158402839a26753da442bd629ad04b

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

OVERVIEW

Onyx USD token contract has migrated to 0xd2d01dd6aa7a2f5228c7c17298905a7c7e1dfe81.

Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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