ETH Price: $3,181.39 (-4.70%)
 

Overview

ETH Balance

2.02864996021112996 ETH

Eth Value

$6,453.92 (@ $3,181.39/ETH)

More Info

Private Name Tags

TokenTracker

TRYfinance (TRY) (@$0.7426)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve217121222025-01-26 23:58:353 hrs ago1737935915IN
TRYfinance: TRY Token
0 ETH0.000439639.45598794
Approve215503952025-01-04 10:03:5922 days ago1735985039IN
TRYfinance: TRY Token
0 ETH0.000334237.18896806
Approve214633972024-12-23 6:27:5934 days ago1734935279IN
TRYfinance: TRY Token
0 ETH0.000281836.06182421
Approve214125712024-12-16 4:04:1141 days ago1734321851IN
TRYfinance: TRY Token
0 ETH0.000425529.20940359
Approve214123782024-12-16 3:25:2342 days ago1734319523IN
TRYfinance: TRY Token
0 ETH0.0005905512.7021076
Transfer213998242024-12-14 9:21:3543 days ago1734168095IN
TRYfinance: TRY Token
0 ETH0.000698619
Approve213994232024-12-14 8:00:5943 days ago1734163259IN
TRYfinance: TRY Token
0 ETH0.000383648.25169998
Transfer213929552024-12-13 10:20:3544 days ago1734085235IN
TRYfinance: TRY Token
0 ETH0.0010419611
Approve212849662024-11-28 8:20:3559 days ago1732782035IN
TRYfinance: TRY Token
0 ETH0.000195538.05707644
Approve212569082024-11-24 10:07:5963 days ago1732442879IN
TRYfinance: TRY Token
0 ETH0.000397778.6
Approve208517992024-09-28 21:24:11120 days ago1727558651IN
TRYfinance: TRY Token
0 ETH0.000132565.46219496
Approve208517992024-09-28 21:24:11120 days ago1727558651IN
TRYfinance: TRY Token
0 ETH0.000132565.46219496
Approve206694802024-09-03 10:33:47145 days ago1725359627IN
TRYfinance: TRY Token
0 ETH0.000070771.52029295
Approve204313442024-08-01 4:35:23178 days ago1722486923IN
TRYfinance: TRY Token
0 ETH0.000200914.32149531
Approve204027202024-07-28 4:41:23182 days ago1722141683IN
TRYfinance: TRY Token
0 ETH0.000062092.13086276
Increase Allowan...203145952024-07-15 21:29:11195 days ago1721078951IN
TRYfinance: TRY Token
0 ETH0.0003348811.35371477
Transfer200240382024-06-05 7:08:47235 days ago1717571327IN
TRYfinance: TRY Token
0 ETH0.001381829.62997884
Approve199444082024-05-25 4:09:11246 days ago1716610151IN
TRYfinance: TRY Token
0 ETH0.000259215.6
Approve199256102024-05-22 13:06:47249 days ago1716383207IN
TRYfinance: TRY Token
0 ETH0.0011472724.79137948
Approve198717482024-05-15 0:19:11257 days ago1715732351IN
TRYfinance: TRY Token
0 ETH0.000179183.87813627
Approve198557722024-05-12 18:37:23259 days ago1715539043IN
TRYfinance: TRY Token
0 ETH0.000087813.6184032
Increase Allowan...198336042024-05-09 16:12:47262 days ago1715271167IN
TRYfinance: TRY Token
0 ETH0.000415958.92690112
Approve195553802024-03-31 17:34:23301 days ago1711906463IN
TRYfinance: TRY Token
0 ETH0.0005924824.41332379
Approve193625682024-03-04 15:03:35328 days ago1709564615IN
TRYfinance: TRY Token
0 ETH0.00544293117.76911237
Approve191634552024-02-05 17:09:23356 days ago1707152963IN
TRYfinance: TRY Token
0 ETH0.0006110125.17661941
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
115831012021-01-03 18:19:441484 days ago1609697984
TRYfinance: TRY Token
180 ETH
115830362021-01-03 18:05:461484 days ago1609697146
TRYfinance: TRY Token
0.01425 ETH
115829522021-01-03 17:46:101484 days ago1609695970
TRYfinance: TRY Token
0.285 ETH
115829492021-01-03 17:45:401484 days ago1609695940
TRYfinance: TRY Token
0.57 ETH
115829482021-01-03 17:45:381484 days ago1609695938
TRYfinance: TRY Token
1.14 ETH
115829472021-01-03 17:45:121484 days ago1609695912
TRYfinance: TRY Token
0.171 ETH
115829412021-01-03 17:44:241484 days ago1609695864
TRYfinance: TRY Token
0.0285 ETH
115829372021-01-03 17:43:491484 days ago1609695829
TRYfinance: TRY Token
0.57 ETH
115829332021-01-03 17:43:051484 days ago1609695785
TRYfinance: TRY Token
0.285 ETH
115829302021-01-03 17:42:371484 days ago1609695757
TRYfinance: TRY Token
0.57 ETH
115829302021-01-03 17:42:371484 days ago1609695757
TRYfinance: TRY Token
1.71 ETH
115829222021-01-03 17:41:401484 days ago1609695700
TRYfinance: TRY Token
0.2451 ETH
115829172021-01-03 17:39:581484 days ago1609695598
TRYfinance: TRY Token
0.228 ETH
115829092021-01-03 17:36:591484 days ago1609695419
TRYfinance: TRY Token
0.285 ETH
115828982021-01-03 17:36:121484 days ago1609695372
TRYfinance: TRY Token
0.057 ETH
115828962021-01-03 17:35:301484 days ago1609695330
TRYfinance: TRY Token
1.14 ETH
115828872021-01-03 17:33:501484 days ago1609695230
TRYfinance: TRY Token
0.4845 ETH
115828832021-01-03 17:33:171484 days ago1609695197
TRYfinance: TRY Token
0.684 ETH
115828832021-01-03 17:33:171484 days ago1609695197
TRYfinance: TRY Token
0.285 ETH
115828792021-01-03 17:32:501484 days ago1609695170
TRYfinance: TRY Token
0.285 ETH
115828782021-01-03 17:32:391484 days ago1609695159
TRYfinance: TRY Token
0.4275 ETH
115828722021-01-03 17:30:541484 days ago1609695054
TRYfinance: TRY Token
1.425 ETH
115828582021-01-03 17:28:031484 days ago1609694883
TRYfinance: TRY Token
0.0285 ETH
115828572021-01-03 17:27:391484 days ago1609694859
TRYfinance: TRY Token
1.71 ETH
115828562021-01-03 17:27:271484 days ago1609694847
TRYfinance: TRY Token
0.57 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TRYfinance

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license, Audited

Contract Source Code (Solidity)Audit Report

/**
 *Submitted for verification at Etherscan.io on 2020-12-31
*/

/* TRY token has been being developed since 10/2020 and has more features than most other DEFI token's on the market, here is a summary of built in features that TRY token offers:
 
 * We added a brand new feature never seen before in any DEFI token, a tx reward pool, 1% of all transactions are given to the reward pool and are awarded to the sender of every 25th transaction.
 * We added a deflationary burn fee of 1% on every tx which is automatically sent directly to the burn address upon every transfer, this feature will ensure a truly deflationary model.
 * We wanted to discourage token dumping so we added a 5% antiDumpFee to all TRY sold on UNIswap. This fee is distributed to all TRYstake users when buyback feature is performed.
 * Previous rebalance liquidity models used a liquidity divisor as a liquidity reward, however that process made the rebalance feature not as effective since it had to rebalance its own rewards.
 * To help replace the removal of awarding liquidity providers via the Buyback function we will allow LP tokens to farm TRY tokens directly on TRYfarm.
 * We coded this contract to have the ability to ADDfunds into TRYstake so it can directly be its own UNIswap sell fee rewards distributor. The staking rewards distribution is called every time 
   a user performs the rebalance liquidity function. The rebalance function still burns TRY that it purchases with the rebalance increasing the effectiveness of the deflationary model.
 * When Buyback function is called the caller gets a 4% reward of the buyback TRY amount and 96% of the buyback TRY amount gets sent directly to the burn address.
 * We coded the buyback function to work on 2 hour intervals and set the rate to 1%, we also added the ability for this contract to add 20 seconds to the buyback interval on each use of the 
   buyback function. This will help ensure that the buyback feature cannot be manipulated and insure maximum life expectancy of the feature.
 * We ensured that all of TRY protocols are whitelist able so when you use them you will not incur any transactional fee's when sending TRY to those protocols.
 * Once this contract creates the UNIswap pair the LP tokens that are sent back are unable to be removed, there is no withdrawal code for these LP tokens this locked them for their intended purpose forever.
 * We added the ability to add and remove blacklist addresses, this will help insure that we can properly fight hackers and malicious intents on TRY token's economy.
 * We added createUNISwapPair function that will ensure ETH collected for liquidity can only be used for that one specific purpose, TRY presale contract automatically sends ETH liquidity to this contract.
 * We are sure that TRY will be the most successful project to ever use a rebalancer style feature, TRYstake will ensure TRY tokens are happy earning in the staking contracts and not on the market to lower 
   the price. UNIswap sell fees will discourage selling, while offering incentivized rewards for staking. TRYfarm will directly reward liquidity providers in replacement of the liquidity reward distribution 
   on the previous model. The Tx Reward pool feature helps complete the package, TRY token has the most rewarding features of any DEFI token!
 
 For more information please visit try.finance/whitepaper.html 
*/

pragma solidity ^0.5.17;


contract Context {

    constructor () internal { }


    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data;
    }
}

contract WhitelistAdminRole is Context {
    using Roles for Roles.Role;

    event WhitelistAdminAdded(address indexed account);
    event WhitelistAdminRemoved(address indexed account);

    Roles.Role private _whitelistAdmins;

    constructor () internal {
        _addWhitelistAdmin(_msgSender());
    }

    modifier onlyWhitelistAdmin() {
        require(isWhitelistAdmin(_msgSender()), "WhitelistAdminRole: caller does not have the WhitelistAdmin role");
        _;
    }

    function isWhitelistAdmin(address account) public view returns (bool) {
        return _whitelistAdmins.has(account);
    }
    function addWhitelistAdmin(address account) public onlyWhitelistAdmin {
        _addWhitelistAdmin(account);
    }

    function renounceWhitelistAdmin() public {
        _removeWhitelistAdmin(_msgSender());
    }

    function _addWhitelistAdmin(address account) internal {
        _whitelistAdmins.add(account);
        emit WhitelistAdminAdded(account);
    } 

    function _removeWhitelistAdmin(address account) internal {
        _whitelistAdmins.remove(account);
        emit WhitelistAdminRemoved(account);
    }
}


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

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
    function ceil(uint a, uint m) internal pure returns (uint r) {
        return (a + m - 1) / m * m;
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;
    constructor (uint256 totalSupply) public {
        _mint(_msgSender(),totalSupply);
    }
    
    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(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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");

        _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) internal {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance"));
    }
}

contract ERC20Burnable is Context, ERC20 {

    function burn(uint256 amount) public {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public {
        _burnFrom(account, amount);
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

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

contract ERC20TransferLiquidityLock is ERC20 {
    using SafeMath for uint256;


    event Rebalance(uint256 tokenBurnt);
    event SupplyTRYStake(uint256 tokenAmount);
    event RewardStakers(uint256 stakingRewards);
    
    address public uniswapV2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public uniswapV2Factory = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
    address public uniswapV2Pair; 
    address public TRYStake;
    address public presaleAddress;
    address public LPFarm; 
    address public Master = address (uniswapV2Router);     
    address public Trident = address (this);
    address payable public treasury;
    mapping(address => bool) public feelessAddr;
    mapping(address => bool) public unlocked;
    mapping(address => bool) public oracle; 
    mapping(address => bool) public blacklist; 
    
    uint256 public rewardPoolDivisor;
    uint256 public rebalanceRewardDivisor;
    uint256 public rebalanceDivisor; 
    uint256 public burnTxFee;    
    uint256 public antiDumpFee;       
    uint256 public minRebalanceAmount;
    uint256 public lastRebalance;
    uint256 public rebalanceInterval;
    address public burnAddr = 0x000000000000000000000000000000000000dEaD;
    bool public LPLocked; 
    
    uint256 public txNumber;
    uint256 one = 1000000000000000000;
    uint256 public trans100 = 25000000000000000000; 
    
    uint256 public stakePool = 0;
    uint256 public rewardPool = 0;    

    bool public locked;
    Balancer balancer;
    
    constructor() public {
        lastRebalance = block.timestamp;
        burnTxFee = 100;
        rewardPoolDivisor = 100;
        antiDumpFee = 20;
        rebalanceRewardDivisor = 25;
        rebalanceDivisor = 100;
        rebalanceInterval = 2 hours;
        minRebalanceAmount = 100e18; 
        treasury = msg.sender;
        balancer = new Balancer(treasury);
        feelessAddr[address(this)] = true;
        feelessAddr[address(balancer)] = true;
        feelessAddr[address(uniswapV2Router)] = true; 
        feelessAddr[address(uniswapV2Factory)] = true;        
        feelessAddr[address(TRYStake)] = true; 
        feelessAddr[address(presaleAddress)] = true;
        locked = true;
        LPLocked = true;
        unlocked[msg.sender] = false;
        unlocked[address(this)] = true;
        unlocked[address(balancer)] = true; 
        unlocked[address(balancer)] = true; 
        unlocked[address(uniswapV2Router)] = true;
        unlocked[address(presaleAddress)] = true;
        txNumber = 0;
    } 
    
    function calculateFees(address from, address to, uint256 amount) public view returns( uint256 rewardtx, uint256  Burntx, uint256  selltx){
    }
    
    function isContract(address _addr) public view returns (bool _isContract){
        uint32 size;
        assembly {
        size := extcodesize(_addr)}
        
        return (size > 0);
    }

    function _transfer(address from, address to, uint256 amount) internal {
        
        if(locked && unlocked[from] != true && unlocked[to] != true)
            revert("Transfers are locked until after presale.");

        if(blacklist [from] == true || blacklist [to] == true) 
            revert("Address is blacklisted");
          
       uint256  Burntx = 0;
        uint256  rewardtx = 0;
        
    if(feelessAddr[from] == false && feelessAddr[to] == false){    
        
       if (burnTxFee != 0) { 
        Burntx = amount.div(burnTxFee); 
        amount = amount.sub(Burntx);
           super._transfer(from, address(burnAddr), Burntx); 
        } 
        
        if (rewardPoolDivisor != 0) { 
            txNumber = txNumber.add(one);
            rewardtx = amount.div(rewardPoolDivisor); 
            amount = amount.sub(rewardtx);
            super._transfer(from, address(this), rewardtx); 
          
            rewardPool += rewardtx;
            if(txNumber == trans100){
                require( !(isContract(from)), 'inValid caller');
                super._transfer(address(this), from, rewardPool);
                rewardPool = 0;
                txNumber = 0;  
            }
        }
        
        if (antiDumpFee != 0 && oracle[to]) {
           uint256 selltx = amount.div(antiDumpFee); 
           stakePool += selltx;
           amount = amount.sub(selltx);
                super._transfer(from, address(this), selltx);
            }
            
         super._transfer(from, to, amount);
        }
    
        else {
         super._transfer(from, to, amount);   
        }
    }


    function () external payable {}

    function RebalanceLiquidity() public {
        require(balanceOf(msg.sender) >= minRebalanceAmount, "You do not have the required amount of TRY.");
        require(block.timestamp > lastRebalance + rebalanceInterval, "It is too early to use this function."); 
        lastRebalance = block.timestamp;
        uint256 _lockableSupply = stakePool;  
        _addRebalanceInterval();        
        _rewardStakers(_lockableSupply);
        
        uint256 amountToRemove = ERC20(uniswapV2Pair).balanceOf(address(this)).div(rebalanceDivisor);
        
        remLiquidity(amountToRemove);
        uint _locked = balancer.rebalance(rebalanceRewardDivisor);

        emit Rebalance(_locked);
    }
    
    function _addRebalanceInterval() private {
        rebalanceInterval = rebalanceInterval.add(20 seconds);
    }
    
    function _rewardStakers(uint256 stakingRewards) private {
        if(TRYStake != address(0)) {
           TRYstakingContract(TRYStake).ADDFUNDS(stakingRewards);
           stakePool= 0;
            emit RewardStakers(stakingRewards); 
        }
    }

    function remLiquidity(uint256 lpAmount) private returns(uint ETHAmount) {
        ERC20(uniswapV2Pair).approve(uniswapV2Router, lpAmount);
        (ETHAmount) = IUniswapV2Router02(uniswapV2Router)
            .removeLiquidityETHSupportingFeeOnTransferTokens(
                address(this),
                lpAmount,
                0,
                0,
                address(balancer),
                block.timestamp);
    }
    

    function lockableSupply() external view returns (uint256) {
        return balanceOf(address(this));
    }

    function lockedSupply() external view returns (uint256) {
        uint256 lpTotalSupply = ERC20(uniswapV2Pair).totalSupply();
        uint256 lpBalance = lockedLiquidity();
        uint256 percentOfLpTotalSupply = lpBalance.mul(1e12).div(lpTotalSupply);

        uint256 uniswapBalance = balanceOf(uniswapV2Pair);
        uint256 _lockedSupply = uniswapBalance.mul(percentOfLpTotalSupply).div(1e12);
        return _lockedSupply;
    }

    function burnedSupply() external view returns (uint256) {
        uint256 lpTotalSupply = ERC20(uniswapV2Pair).totalSupply();
        uint256 lpBalance = burnedLiquidity();
        uint256 percentOfLpTotalSupply = lpBalance.mul(1e12).div(lpTotalSupply);

        uint256 uniswapBalance = balanceOf(uniswapV2Pair);
        uint256 _burnedSupply = uniswapBalance.mul(percentOfLpTotalSupply).div(1e12);
        return _burnedSupply;
    }

    function burnableLiquidity() public view returns (uint256) {
        return ERC20(uniswapV2Pair).balanceOf(address(this));
    }

    function burnedLiquidity() public view returns (uint256) {
        return ERC20(uniswapV2Pair).balanceOf(address(0));
    }

    function lockedLiquidity() public view returns (uint256) {
        return burnableLiquidity().add(burnedLiquidity());
    }
}

interface TRYstakingContract {
    function ADDFUNDS(uint256 stakingRewards) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 {
    function WETH() external pure returns (address);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
      uint amountOutMin,
      address[] calldata path,
      address to,
      uint deadline
    ) external payable;
    function removeLiquidityETH(
      address token,
      uint liquidity,
      uint amountTokenMin,
      uint amountETHMin,
      address to,
      uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityETHSupportingFeeOnTransferTokens(
      address token,
      uint liquidity,
      uint amountTokenMin,
      uint amountETHMin,
      address to,
      uint deadline
    ) external returns (uint amountETH);    
}

interface IUniswapV2Pair {
    function sync() external;
}

contract ERC20Governance is ERC20, ERC20Detailed {
    using SafeMath for uint256;

    function _transfer(address from, address to, uint256 amount) internal {
        _moveDelegates(_delegates[from], _delegates[to], amount);
        super._transfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal {
        _moveDelegates(address(0), _delegates[account], amount);
        super._mint(account, amount);
    }

    function _burn(address account, uint256 amount) internal {
        _moveDelegates(_delegates[account], address(0), amount);
        super._burn(account, amount);
    }

    mapping (address => address) internal _delegates;

    struct Checkpoint {
        uint32 fromBlock;
        uint256 votes;
    }
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    mapping (address => uint32) public numCheckpoints;

    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    mapping (address => uint) public nonces;

    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    function delegates(address delegator)
        external
        view
        returns (address)
    {
        return _delegates[delegator];
    }

    function delegate(address delegatee) external {
        return _delegate(msg.sender, delegatee);
    }

    function delegateBySig(
        address delegatee,
        uint nonce,
        uint expiry,
        uint8 v,
        bytes32 r,
        bytes32 s
    )
        external
    {
        bytes32 domainSeparator = keccak256(
            abi.encode(
                DOMAIN_TYPEHASH,
                keccak256(bytes(name())),
                getChainId(),
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                DELEGATION_TYPEHASH,
                delegatee,
                nonce,
                expiry
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                "\x19\x01",
                domainSeparator,
                structHash
            )
        );

        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "ERC20Governance::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "ERC20Governance::delegateBySig: invalid nonce");
        require(now <= expiry, "ERC20Governance::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    function getCurrentVotes(address account)
        external
        view
        returns (uint256)
    {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    function getPriorVotes(address account, uint blockNumber)
        external
        view
        returns (uint256)
    {
        require(blockNumber < block.number, "ERC20Governance::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; 
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee)
        internal
    {
        address currentDelegate = _delegates[delegator];
        uint256 delegatorBalance = balanceOf(delegator); 
        _delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint256 srcRepNew = srcRepOld.sub(amount);
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint256 dstRepNew = dstRepOld.add(amount);
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(
        address delegatee,
        uint32 nCheckpoints,
        uint256 oldVotes,
        uint256 newVotes
    )
        internal
    {
        uint32 blockNumber = safe32(block.number, "ERC20Governance::_writeCheckpoint: block number exceeds 32 bits");

        if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
            checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
        } else {
            checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
            numCheckpoints[delegatee] = nCheckpoints + 1;
        }

        emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

contract Balancer {
    using SafeMath for uint256;    
    TRYfinance token;
    address public burnAddr = 0x000000000000000000000000000000000000dEaD;
    address payable public treasury;
  
    constructor(address payable treasury_) public {
        token = TRYfinance(msg.sender);
        treasury = treasury_;
    }
    
    function () external payable {}
    
    function rebalance(uint rebalanceRewardDivisor) external returns (uint256) { 
        require(msg.sender == address(token), "only token contract can perform this function");
        swapEthForTokens(address(this).balance, rebalanceRewardDivisor);
        uint256 lockableBalance = token.balanceOf(address(this));
        uint256 callerReward = lockableBalance.div(rebalanceRewardDivisor);
        token.transfer(tx.origin, callerReward);
        token.transfer(burnAddr, lockableBalance.sub(callerReward));  
        return lockableBalance.sub(callerReward);
    }
    function swapEthForTokens(uint256 EthAmount, uint rebalanceRewardDivisor) private {
        address[] memory uniswapPairPath = new address[](2);
        uniswapPairPath[0] = IUniswapV2Router02(token.uniswapV2Router()).WETH();
        uniswapPairPath[1] = address(token);
        uint256 treasuryAmount = EthAmount.div(rebalanceRewardDivisor);
        treasury.transfer(treasuryAmount);
        
        token.approve(token.uniswapV2Router(), EthAmount);
        
        IUniswapV2Router02(token.uniswapV2Router())
            .swapExactETHForTokensSupportingFeeOnTransferTokens.value(EthAmount.sub(treasuryAmount))(
                0,
                uniswapPairPath,
                address(this),
                block.timestamp);
    }        
}


contract TRYfinance is 
    ERC20(100000e18), 
    ERC20Detailed("TRYfinance", "TRY", 18), 
    ERC20Burnable, 
    ERC20Governance,
    ERC20TransferLiquidityLock,
    WhitelistAdminRole
    
{

    function createUNISwapPair(uint amountTokenDesired) public onlyWhitelistAdmin {
        uint amountETH = address(this).balance;
        approve(address(uniswapV2Router), amountTokenDesired);
        IUniswapV2Router01(uniswapV2Router).addLiquidityETH.value(amountETH)(
            address(this),
            amountTokenDesired,
            0,
            0,
            address(this),
            now); 
    }
    
    function quickApproveTRYStake() public {
        _approve(_msgSender(), TRYStake, 10000e18);
    } 
    
    function quickApproveMaster() public {
        _approve(_msgSender(), Master, 10000e18);
    } 
 
    function quickApproveFarm() public {
        _approve(_msgSender(), LPFarm, 10000e18);
    } 
    
    function setUniswapV2Router(address _uniswapV2Router) public onlyWhitelistAdmin {
        uniswapV2Router = _uniswapV2Router;
    }

    function setUniswapV2Pair(address _uniswapV2Pair) public onlyWhitelistAdmin {
        uniswapV2Pair = _uniswapV2Pair;  
    }
    
    function setUniswapV2Factory(address _uniswapV2Factory) public onlyWhitelistAdmin {
        uniswapV2Factory = _uniswapV2Factory; 
    }

    function setTrans100(uint256 _trans100) public onlyWhitelistAdmin {
        require(_trans100 <= 100e18, "Cannot set over 100 transactions");        
        trans100 = _trans100; 
    }

    function setRewardPoolDivisor(uint256 _rdiv) public onlyWhitelistAdmin {
        require(_rdiv >= 100, "Cannot set over 1% RewardPoolDivisor");        
        rewardPoolDivisor = _rdiv;
    } 
    
    function setRebalanceDivisor(uint256 _rebalanceDivisor) public onlyWhitelistAdmin {
        if (_rebalanceDivisor != 0) {
            require(_rebalanceDivisor >= 10, "Cannot set rebalanceDivisor over 10%");
            require(_rebalanceDivisor <= 100, "Cannot set rebalanceDivisor under 1%");
        }        
        rebalanceDivisor = _rebalanceDivisor;
    }
    
    function addTRYStake(address _stake) public onlyWhitelistAdmin {
        TRYStake = _stake;
    }

    function addPresaleAddress(address _presaleaddress) public onlyWhitelistAdmin {
        presaleAddress = _presaleaddress;  
    }
    
    function addLPFarm(address _farm) public onlyWhitelistAdmin {
        LPFarm = _farm;  
    }

    function addMaster(address _master) public onlyWhitelistAdmin {
        Master = _master;  
    }
     
    function addTrident(address _Trident) public onlyWhitelistAdmin {
        Trident = _Trident;
    } 
    
    function setMaster () public onlyWhitelistAdmin { 
        ERC20(Trident).approve(Master, 100000e18);       
    }  
    
    function setTrident () public onlyWhitelistAdmin {
        ERC20(Trident).approve(TRYStake, 100000e18);        
    }  
    
    function rewardStaking(uint256 stakingRewards) internal {
            TRYstakingContract(TRYStake).ADDFUNDS(stakingRewards);
            emit SupplyTRYStake(stakingRewards); 
    }
 
    function setRebalanceInterval(uint256 _interval) public onlyWhitelistAdmin {
        require(_interval<= 7200, "Cannot set over 2 hour interval");  
        require(_interval>= 3600, "Cannot set under 1 hour interval");
        rebalanceInterval = _interval;
    }
     
    function setRebalanceRewardDivisior(uint256 _rDivisor) public onlyWhitelistAdmin {
        if (_rDivisor != 0) {
            require(_rDivisor <= 25, "Cannot set rebalanceRewardDivisor under 4%");
            require(_rDivisor >= 10, "Cannot set rebalanceRewardDivisor over 10%");
        }        
        rebalanceRewardDivisor = _rDivisor;
    }
    
    function toggleFeeless(address _addr) public onlyWhitelistAdmin {
        feelessAddr[_addr] = true;
    }
    
    function toggleFees(address _addr) public onlyWhitelistAdmin {
        feelessAddr[_addr] = false;
    }
    
    function toggleUnlocked(address _addr) public onlyWhitelistAdmin {
        unlocked[_addr] = !unlocked[_addr];
    } 
    
    function setOracle(address _addr, bool _bool) public onlyWhitelistAdmin {  
        oracle[_addr] = _bool; 
    }  
 
    function setBlackListAddress(address _addr, bool _bool) public onlyWhitelistAdmin { 
        blacklist[_addr] = _bool; 
    } 
    
    function activateTrading() public onlyWhitelistAdmin {
        locked = false;
    }   
 
    function setMinRebalanceAmount(uint256 amount_) public onlyWhitelistAdmin {
        require(amount_ <= 1000e18, "Cannot set over 1000 TRY tokens");
        require(amount_ >= 20e18, "Cannot set under 20 TRY tokens");
        minRebalanceAmount = amount_;
    }
    
    function setBurnTxFee(uint256 amount_) public onlyWhitelistAdmin {
        require(amount_ >= 100, "Cannot set over 1% burnTxFee"); 
        burnTxFee = amount_;
    }
    
    function setAntiDumpFee(uint256 amount_) public onlyWhitelistAdmin {
        require(amount_ >= 10, "Cannot set over 10% antiDumpFee"); 
        require(amount_ <= 100, "Cannot set under 1% antiDumpFee");
        antiDumpFee = amount_;
    }
}

Contract Security Audit

Contract ABI

[{"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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenBurnt","type":"uint256"}],"name":"Rebalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"stakingRewards","type":"uint256"}],"name":"RewardStakers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"SupplyTRYStake","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminRemoved","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LPFarm","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LPLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Master","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"RebalanceLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TRYStake","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Trident","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"activateTrading","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_farm","type":"address"}],"name":"addLPFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_master","type":"address"}],"name":"addMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_presaleaddress","type":"address"}],"name":"addPresaleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_stake","type":"address"}],"name":"addTRYStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_Trident","type":"address"}],"name":"addTrident","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"antiDumpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnableLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateFees","outputs":[{"internalType":"uint256","name":"rewardtx","type":"uint256"},{"internalType":"uint256","name":"Burntx","type":"uint256"},{"internalType":"uint256","name":"selltx","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"}],"name":"createUNISwapPair","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":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feelessAddr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":true,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isContract","outputs":[{"internalType":"bool","name":"_isContract","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRebalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minRebalanceAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveTRYStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceRewardDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPoolDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setAntiDumpFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setBlackListAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setBurnTxFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setMinRebalanceAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rebalanceDivisor","type":"uint256"}],"name":"setRebalanceDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setRebalanceInterval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rDivisor","type":"uint256"}],"name":"setRebalanceRewardDivisior","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rdiv","type":"uint256"}],"name":"setRewardPoolDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_trans100","type":"uint256"}],"name":"setTrans100","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setTrident","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Factory","type":"address"}],"name":"setUniswapV2Factory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapV2Pair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Router","type":"address"}],"name":"setUniswapV2Router","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleFeeless","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleUnlocked","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":"trans100","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":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":true,"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"txNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]

600a80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17808355600b80548316735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f1790556010805483166001600160a01b039290921691909117905560118054821630179055601f805490911661dead179055670de0b6b3a764000060215568015af1d78b58c400006022556000602381905560245560809081526954525966696e616e636560b01b60a052610100604052600360c09081526254525960e81b60e052601269152d02c7e14af6800000620000f9620000e96001600160e01b036200031e16565b826001600160e01b036200032316565b5082516200010f90600390602086019062000a57565b5081516200012590600490602085019062000a57565b506005805460ff90921660ff19909216919091179055505042601d556064601a81905560178190556014601b556019601881905555611c20601e5568056bc75e2d63100000601c55601280546001600160a01b0319163317908190556040516001600160a01b0391909116906200019c9062000adc565b6001600160a01b03909116815260405190819003602001906000f080158015620001ca573d6000803e3d6000fd5b5060258054610100600160a81b0319166101006001600160a01b039384168102919091178255306000818152601360209081526040808320805460ff1990811660019081179092558754879004891685528285208054821683179055600a80548a1686528386208054831684179055600b548a1686528386208054831684179055600d548a1686528386208054831684179055600e80548b16875284872080548416851790558954831684178a55601f8054600160a01b60ff60a01b1990911617905533875260148652848720805484169055968652838620805483168417905588548890048a168652838620805483168417905597549690960488168452818420805487168217905595548716835280832080548616871790559254909516815290812080549092169092179055905562000318620003096200031e565b6001600160e01b036200036e16565b62000b07565b335b90565b6001600160a01b03808316600090815260066020526040812054620003539216836001600160e01b03620003c016565b6200036a82826200054460201b620042071760201c565b5050565b620003898160266200064560201b62003e501790919060201c565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b816001600160a01b0316836001600160a01b031614158015620003e35750600081115b156200053f576001600160a01b0383161562000494576001600160a01b03831660009081526008602052604081205463ffffffff1690816200042757600062000459565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000620004778483620006d260201b62003abb1790919060201c565b905062000490868484846001600160e01b036200072316565b5050505b6001600160a01b038216156200053f576001600160a01b03821660009081526008602052604081205463ffffffff169081620004d257600062000504565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b905060006200052284836200089760201b620035bf1790919060201c565b90506200053b858484846001600160e01b036200072316565b5050505b505050565b6001600160a01b038216620005a0576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620005bc816002546200089760201b620035bf1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005ef918390620035bf62000897821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6200065a82826001600160e01b03620008f216565b15620006ad576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006200071c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200095b60201b60201c565b9392505050565b600062000753436040518060600160405280603f815260200162005c48603f91396001600160e01b03620009f616565b905060008463ffffffff161180156200079d57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b15620007dc576001600160a01b038516600090815260076020908152604080832063ffffffff600019890116845290915290206001018290556200084d565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b6000828201838110156200071c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b0382166200093b5760405162461bcd60e51b815260040180806020018281038252602281526020018062005c876022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008184841115620009ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620009b257818101518382015260200162000998565b50505050905090810190601f168015620009e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081640100000000841062000a4f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620009b257818101518382015260200162000998565b509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000a9a57805160ff191683800117855562000aca565b8280016001018555821562000aca579182015b8281111562000aca57825182559160200191906001019062000aad565b5062000ad892915062000aea565b5090565b610943806200530583390190565b6200032091905b8082111562000ad8576000815560010162000af1565b6147ee8062000b176000396000f3fe6080604052600436106104ec5760003560e01c80637e0d943e1161028c578063c3cda5201161015a578063e7a324dc116100cc578063f3db188c11610085578063f3db188c1461126b578063f8ea475614611295578063f9c778e1146112aa578063f9f92be4146112dd578063fd7310c414611310578063fd77f8a114611325576104ec565b8063e7a324dc14611185578063e84354c51461119a578063eb37d349146111af578063ef0658f2146111e2578063f1127ed8146111f7578063f1e6e46814611256576104ec565b8063d246d4111161011e578063d246d411146110cc578063db14c5d5146110e1578063dd62ed3e1461110b578063e0a9e6b614611146578063e161eb561461115b578063e6a2538514611170576104ec565b8063c3cda52014611006578063ca5c7b911461105a578063ceea57e51461106f578063cf30901214611084578063d1846d0c14611099576104ec565b8063a457c2d7116101fe578063b4b5ea57116101b7578063b4b5ea5714610f11578063b67f8b6d14610f44578063b6833c5914610f59578063bb5f747b14610f83578063bc91720214610fb6578063bedd0d3314610fcb576104ec565b8063a457c2d714610e4b578063a889c82c14610e84578063a8a5550e14610e99578063a9059cbb14610eae578063acd7cff414610ee7578063b439824414610efc576104ec565b80638ba51d61116102505780638ba51d6114610d5e57806395d89b4114610d915780639a8fec8714610da65780639e14b8e014610dbb578063a0f364e414610de5578063a29a608914610e18576104ec565b80637e0d943e14610ca45780637ecebe0014610cce5780637ef7686e14610d0157806382bc6ced14610d16578063858750ab14610d49576104ec565b80633e0d04a4116103c957806366666aa91161033b5780637362d9c8116102f45780637362d9c814610b84578063782d6fe114610bb757806379cc679014610bf05780637b9003e314610c295780637c411c1a14610c5c5780637d57ab9614610c71576104ec565b806366666aa914610a475780636da1c23f14610a5c5780636fcfff4514610a7157806370709a7c14610abd57806370a0823114610af057806373352ad314610b23576104ec565b8063587cde1e1161038d578063587cde1e1461095257806359d0f713146109855780635b7dcaed1461099a5780635c19a95c146109c457806361d027b3146109f75780636536084314610a0c576104ec565b80633e0d04a4146108bf57806342966c68146108e957806349bd5a5e146109135780634c5a628c1461092857806355d0a1d01461093d576104ec565b806318160ddd116104625780632feec9d6116104265780632feec9d6146107bf578063313ce567146107e9578063352ffb9a1461081457806339509351146108295780633bd5b4ea146108625780633cd221a21461088c576104ec565b806318160ddd1461072857806318c51c351461073d57806320606b701461075257806323b872dd146107675780632898cafa146107aa576104ec565b806312283a39116104b457806312283a3914610634578063122fe685146106675780631419841d1461069857806316279055146106cb5780631694505e146106fe57806316d1d91614610713576104ec565b806306fdde03146104ee578063095ea7b3146105785780630bd05b69146105c5578063106b9ca1146105da5780631097d54a14610601575b005b3480156104fa57600080fd5b5061050361133a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053d578181015183820152602001610525565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058457600080fd5b506105b16004803603604081101561059b57600080fd5b506001600160a01b0381351690602001356113d0565b604080519115158252519081900360200190f35b3480156105d157600080fd5b506104ec6113ee565b3480156105e657600080fd5b506105ef611445565b60408051918252519081900360200190f35b34801561060d57600080fd5b506104ec6004803603602081101561062457600080fd5b50356001600160a01b031661144b565b34801561064057600080fd5b506104ec6004803603602081101561065757600080fd5b50356001600160a01b03166114b3565b34801561067357600080fd5b5061067c61151a565b604080516001600160a01b039092168252519081900360200190f35b3480156106a457600080fd5b506104ec600480360360208110156106bb57600080fd5b50356001600160a01b0316611529565b3480156106d757600080fd5b506105b1600480360360208110156106ee57600080fd5b50356001600160a01b0316611591565b34801561070a57600080fd5b5061067c61159d565b34801561071f57600080fd5b506105ef6115ac565b34801561073457600080fd5b506105ef6115b2565b34801561074957600080fd5b5061067c6115b8565b34801561075e57600080fd5b506105ef6115c7565b34801561077357600080fd5b506105b16004803603606081101561078a57600080fd5b506001600160a01b038135811691602081013590911690604001356115e2565b3480156107b657600080fd5b506105ef61166f565b3480156107cb57600080fd5b506104ec600480360360208110156107e257600080fd5b50356116ee565b3480156107f557600080fd5b506107fe611779565b6040805160ff9092168252519081900360200190f35b34801561082057600080fd5b5061067c611782565b34801561083557600080fd5b506105b16004803603604081101561084c57600080fd5b506001600160a01b038135169060200135611791565b34801561086e57600080fd5b506104ec6004803603602081101561088557600080fd5b50356117e5565b34801561089857600080fd5b506104ec600480360360208110156108af57600080fd5b50356001600160a01b031661188e565b3480156108cb57600080fd5b506104ec600480360360208110156108e257600080fd5b50356118f6565b3480156108f557600080fd5b506104ec6004803603602081101561090c57600080fd5b50356119f5565b34801561091f57600080fd5b5061067c611a09565b34801561093457600080fd5b506104ec611a18565b34801561094957600080fd5b506105ef611a2a565b34801561095e57600080fd5b5061067c6004803603602081101561097557600080fd5b50356001600160a01b0316611b1e565b34801561099157600080fd5b5061067c611b3c565b3480156109a657600080fd5b506104ec600480360360208110156109bd57600080fd5b5035611b4b565b3480156109d057600080fd5b506104ec600480360360208110156109e757600080fd5b50356001600160a01b0316611c44565b348015610a0357600080fd5b5061067c611c4e565b348015610a1857600080fd5b506104ec60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001351515611c5d565b348015610a5357600080fd5b506105ef611cce565b348015610a6857600080fd5b506104ec611cd4565b348015610a7d57600080fd5b50610aa460048036036020811015610a9457600080fd5b50356001600160a01b0316611cfb565b6040805163ffffffff9092168252519081900360200190f35b348015610ac957600080fd5b506104ec60048036036020811015610ae057600080fd5b50356001600160a01b0316611d13565b348015610afc57600080fd5b506105ef60048036036020811015610b1357600080fd5b50356001600160a01b0316611d7d565b348015610b2f57600080fd5b50610b6660048036036060811015610b4657600080fd5b506001600160a01b03813581169160208101359091169060400135611d98565b60408051938452602084019290925282820152519081900360600190f35b348015610b9057600080fd5b506104ec60048036036020811015610ba757600080fd5b50356001600160a01b0316611da4565b348015610bc357600080fd5b506105ef60048036036040811015610bda57600080fd5b506001600160a01b038135169060200135611df3565b348015610bfc57600080fd5b506104ec60048036036040811015610c1357600080fd5b506001600160a01b038135169060200135611ffb565b348015610c3557600080fd5b506104ec60048036036020811015610c4c57600080fd5b50356001600160a01b0316612009565b348015610c6857600080fd5b506104ec612071565b348015610c7d57600080fd5b506104ec60048036036020811015610c9457600080fd5b50356001600160a01b031661226e565b348015610cb057600080fd5b506104ec60048036036020811015610cc757600080fd5b50356122dd565b348015610cda57600080fd5b506105ef60048036036020811015610cf157600080fd5b50356001600160a01b03166123ae565b348015610d0d57600080fd5b5061067c6123c0565b348015610d2257600080fd5b506104ec60048036036020811015610d3957600080fd5b50356001600160a01b03166123cf565b348015610d5557600080fd5b506105ef612437565b348015610d6a57600080fd5b506104ec60048036036020811015610d8157600080fd5b50356001600160a01b0316612482565b348015610d9d57600080fd5b506105036124ea565b348015610db257600080fd5b506105ef61254b565b348015610dc757600080fd5b506104ec60048036036020811015610dde57600080fd5b5035612551565b348015610df157600080fd5b506105b160048036036020811015610e0857600080fd5b50356001600160a01b0316612648565b348015610e2457600080fd5b506104ec60048036036020811015610e3b57600080fd5b50356001600160a01b031661265d565b348015610e5757600080fd5b506105b160048036036040811015610e6e57600080fd5b506001600160a01b0381351690602001356126c5565b348015610e9057600080fd5b506104ec612733565b348015610ea557600080fd5b506105ef612805565b348015610eba57600080fd5b506105b160048036036040811015610ed157600080fd5b506001600160a01b038135169060200135612815565b348015610ef357600080fd5b506105ef612829565b348015610f0857600080fd5b506105ef61282f565b348015610f1d57600080fd5b506105ef60048036036020811015610f3457600080fd5b50356001600160a01b0316612850565b348015610f5057600080fd5b5061067c6128b4565b348015610f6557600080fd5b506104ec60048036036020811015610f7c57600080fd5b50356128c3565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b50356001600160a01b03166129ca565b348015610fc257600080fd5b506104ec6129dd565b348015610fd757600080fd5b506104ec60048036036040811015610fee57600080fd5b506001600160a01b0381351690602001351515612a04565b34801561101257600080fd5b506104ec600480360360c081101561102957600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135612a75565b34801561106657600080fd5b506105ef612ceb565b34801561107b57600080fd5b506104ec612d74565b34801561109057600080fd5b506105b1612e1c565b3480156110a557600080fd5b506105b1600480360360208110156110bc57600080fd5b50356001600160a01b0316612e25565b3480156110d857600080fd5b5061067c612e3a565b3480156110ed57600080fd5b506104ec6004803603602081101561110457600080fd5b5035612e49565b34801561111757600080fd5b506105ef6004803603604081101561112e57600080fd5b506001600160a01b0381358116916020013516612eea565b34801561115257600080fd5b506105ef612f15565b34801561116757600080fd5b506105ef612f1b565b34801561117c57600080fd5b506105b1612f21565b34801561119157600080fd5b506105ef612f31565b3480156111a657600080fd5b506105ef612f4c565b3480156111bb57600080fd5b506105b1600480360360208110156111d257600080fd5b50356001600160a01b0316612f52565b3480156111ee57600080fd5b506105ef612f67565b34801561120357600080fd5b506112366004803603604081101561121a57600080fd5b5080356001600160a01b0316906020013563ffffffff16612f6d565b6040805163ffffffff909316835260208301919091528051918290030190f35b34801561126257600080fd5b506104ec612f9a565b34801561127757600080fd5b506104ec6004803603602081101561128e57600080fd5b5035612fc1565b3480156112a157600080fd5b506105ef613092565b3480156112b657600080fd5b506104ec600480360360208110156112cd57600080fd5b50356001600160a01b0316613098565b3480156112e957600080fd5b506105b16004803603602081101561130057600080fd5b50356001600160a01b0316613100565b34801561131c57600080fd5b506105ef613115565b34801561133157600080fd5b506105ef61311b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050905090565b60006113e46113dd613121565b8484613125565b5060015b92915050565b6113fe6113f9613121565b6129ca565b6114395760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6025805460ff19169055565b601d5481565b6114566113f9613121565b6114915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6114be6113f9613121565b6114f95760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b600e546001600160a01b031681565b6115346113f9613121565b61156f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3b63ffffffff16151590565b600a546001600160a01b031681565b601e5481565b60025490565b600d546001600160a01b031681565b60405180604361450782396043019050604051809103902081565b60006115ef848484613211565b611665846115fb613121565b6116608560405180606001604052806028815260200161456b602891396001600160a01b038a16600090815260016020526040812090611639613121565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61352816565b613125565b5060019392505050565b600c54604080516370a0823160e01b8152600060048201819052915191926001600160a01b0316916370a0823191602480820192602092909190829003018186803b1580156116bd57600080fd5b505afa1580156116d1573d6000803e3d6000fd5b505050506040513d60208110156116e757600080fd5b5051905090565b6116f96113f9613121565b6117345760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b60648110156117745760405162461bcd60e51b81526004018080602001828103825260248152602001806147376024913960400191505060405180910390fd5b601755565b60055460ff1690565b6011546001600160a01b031681565b60006113e461179e613121565b8461166085600160006117af613121565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135bf16565b6117f06113f9613121565b61182b5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b68056bc75e2d63100000811115611889576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206f76657220313030207472616e73616374696f6e73604482015290519081900360640190fd5b602255565b6118996113f9613121565b6118d45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6119016113f9613121565b61193c5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a544790611954906001600160a01b0316836113d0565b50600a546040805163f305d71960e01b8152306004820181905260248201869052600060448301819052606483015260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b50505050506040513d60608110156119ef57600080fd5b50505050565b611a06611a00613121565b82613619565b50565b600c546001600160a01b031681565b611a28611a23613121565b613649565b565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7b57600080fd5b505afa158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b505190506000611ab361166f565b90506000611adc83611ad08464e8d4a5100063ffffffff61369116565b9063ffffffff6136ea16565b600c54909150600090611af7906001600160a01b0316611d7d565b90506000611b1464e8d4a51000611ad0848663ffffffff61369116565b9550505050505090565b6001600160a01b039081166000908152600660205260409020541690565b600b546001600160a01b031681565b611b566113f9613121565b611b915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611c20811115611be8576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f766572203220686f757220696e74657276616c00604482015290519081900360640190fd5b610e10811015611c3f576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420756e646572203120686f757220696e74657276616c604482015290519081900360640190fd5b601e55565b611a06338261372c565b6012546001600160a01b031681565b611c686113f9613121565b611ca35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b60245481565b611a28611cdf613121565b600f546001600160a01b031669021e19e0c9bab2400000613125565b60086020526000908152604090205463ffffffff1681565b611d1e6113f9613121565b611d595760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b50600092839250829150565b611daf6113f9613121565b611dea5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611a06816137bb565b6000438210611e335760405162461bcd60e51b81526004018080602001828103825260328152602001806146b46032913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680611e615760009150506113e8565b6001600160a01b038416600090815260076020908152604080832063ffffffff600019860181168552925290912054168310611ed0576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff168352929052206001015490506113e8565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015611f0b5760009150506113e8565b600060001982015b8163ffffffff168163ffffffff161115611fc457600282820363ffffffff16048103611f3d6141f0565b506001600160a01b038716600090815260076020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415611f9f576020015194506113e89350505050565b805163ffffffff16871115611fb657819350611fbd565b6001820392505b5050611f13565b506001600160a01b038516600090815260076020908152604080832063ffffffff9094168352929052206001015491505092915050565b6120058282613803565b5050565b6120146113f9613121565b61204f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b601c5461207d33611d7d565b10156120ba5760405162461bcd60e51b815260040180806020018281038252602b8152602001806143ba602b913960400191505060405180910390fd5b601e54601d540142116120fe5760405162461bcd60e51b81526004018080602001828103825260258152602001806143e56025913960400191505060405180910390fd5b42601d5560235461210d613857565b6121168161386b565b601954600c54604080516370a0823160e01b815230600482015290516000936121a59390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561216d57600080fd5b505afa158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b50519063ffffffff6136ea16565b90506121b08161391c565b5060255460185460408051631e93260360e31b815260048101929092525160009261010090046001600160a01b03169163f499301891602480830192602092919082900301818787803b15801561220657600080fd5b505af115801561221a573d6000803e3d6000fd5b505050506040513d602081101561223057600080fd5b50516040805182815290519192507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0919081900360200190a1505050565b6122796113f9613121565b6122b45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601460205260409020805460ff19811660ff90911615179055565b6122e86113f9613121565b6123235760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b80156123a957600a8110156123695760405162461bcd60e51b81526004018080602001828103825260248152602001806144306024913960400191505060405180910390fd5b60648111156123a95760405162461bcd60e51b815260040180806020018281038252602481526020018061466b6024913960400191505060405180910390fd5b601955565b60096020526000908152604090205481565b600f546001600160a01b031681565b6123da6113f9613121565b6124155760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116bd57600080fd5b61248d6113f9613121565b6124c85760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b60185481565b61255c6113f9613121565b6125975760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a8110156125ed576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f7665722031302520616e746944756d7046656500604482015290519081900360640190fd5b6064811115612643576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742073657420756e64657220312520616e746944756d7046656500604482015290519081900360640190fd5b601b55565b60136020526000908152604090205460ff1681565b6126686113f9613121565b6126a35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60006113e46126d2613121565b846116608560405180606001604052806025815260200161479560259139600160006126fc613121565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61352816565b61273e6113f9613121565b6127795760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601154600d546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b505af11580156127ef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b600061281030611d7d565b905090565b60006113e4612822613121565b8484613211565b601b5481565b600061281061283c61166f565b612844612437565b9063ffffffff6135bf16565b6001600160a01b03811660009081526008602052604081205463ffffffff168061287b5760006128ad565b6001600160a01b038316600090815260076020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6010546001600160a01b031681565b6128ce6113f9613121565b6129095760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b683635c9adc5dea00000811115612967576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f76657220313030302054525920746f6b656e7300604482015290519081900360640190fd5b6801158e460913d000008110156129c5576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073657420756e6465722032302054525920746f6b656e730000604482015290519081900360640190fd5b601c55565b60006113e860268363ffffffff613a5016565b611a286129e8613121565b6010546001600160a01b031669021e19e0c9bab2400000613125565b612a0f6113f9613121565b612a4a5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b600060405180806145076043913960430190506040518091039020612a9861133a565b80519060200120612aa7613ab7565b3060405160200180858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012090506000604051808061475b603a91396040805191829003603a0182206020808401919091526001600160a01b038c1683830152606083018b905260808084018b90528251808503909101815260a08401835280519082012061190160f01b60c085015260c2840187905260e2808501829052835180860390910181526101028501808552815191840191909120600091829052610122860180865281905260ff8c1661014287015261016286018b905261018286018a9052935191965092945091926001926101a28083019392601f198301929081900390910190855afa158015612be5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c375760405162461bcd60e51b81526004018080602001828103825260318152602001806143676031913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090208054600181019091558914612c955760405162461bcd60e51b815260040180806020018281038252602d81526020018061470a602d913960400191505060405180910390fd5b87421115612cd45760405162461bcd60e51b81526004018080602001828103825260318152602001806146196031913960400191505060405180910390fd5b612cde818b61372c565b505050505b505050505050565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3c57600080fd5b505afa158015612d50573d6000803e3d6000fd5b505050506040513d6020811015612d6657600080fd5b505190506000611ab361282f565b612d7f6113f9613121565b612dba5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6011546010546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b60255460ff1681565b60146020526000908152604090205460ff1681565b601f546001600160a01b031681565b612e546113f9613121565b612e8f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6064811015612ee5576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420736574206f766572203125206275726e547846656500000000604482015290519081900360640190fd5b601a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60205481565b60195481565b601f54600160a01b900460ff1681565b60405180603a61475b8239603a019050604051809103902081565b601c5481565b60156020526000908152604090205460ff1681565b60175481565b60076020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b611a28612fa5613121565b600d546001600160a01b031669021e19e0c9bab2400000613125565b612fcc6113f9613121565b6130075760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b801561308d57601981111561304d5760405162461bcd60e51b815260040180806020018281038252602a815260200180614454602a913960400191505060405180910390fd5b600a81101561308d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061433d602a913960400191505060405180910390fd5b601855565b60235481565b6130a36113f9613121565b6130de5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60166020526000908152604090205460ff1681565b601a5481565b60225481565b3390565b6001600160a01b03831661316a5760405162461bcd60e51b81526004018080602001828103825260248152602001806146e66024913960400191505060405180910390fd5b6001600160a01b0382166131af5760405162461bcd60e51b81526004018080602001828103825260228152602001806143986022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60255460ff16801561324157506001600160a01b03831660009081526014602052604090205460ff161515600114155b801561326b57506001600160a01b03821660009081526014602052604090205460ff161515600114155b156132a75760405162461bcd60e51b815260040180806020018281038252602981526020018061447e6029913960400191505060405180910390fd5b6001600160a01b03831660009081526016602052604090205460ff161515600114806132f057506001600160a01b03821660009081526016602052604090205460ff1615156001145b1561333b576040805162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260136020526040812054819060ff1615801561337f57506001600160a01b03841660009081526013602052604090205460ff16155b1561351657601a54156133cd57601a546133a090849063ffffffff6136ea16565b91506133b2838363ffffffff613abb16565b601f549093506133cd9086906001600160a01b031684613afd565b60175415613498576021546020546133ea9163ffffffff6135bf16565b60205560175461340190849063ffffffff6136ea16565b9050613413838263ffffffff613abb16565b9250613420853083613afd565b602480548201905560225460205414156134985761343d85611591565b15613480576040805162461bcd60e51b815260206004820152600e60248201526d34b72b30b634b21031b0b63632b960911b604482015290519081900360640190fd5b61348d3086602454613afd565b600060248190556020555b601b54158015906134c157506001600160a01b03841660009081526015602052604090205460ff165b156135065760006134dd601b54856136ea90919063ffffffff16565b602380548201905590506134f7848263ffffffff613abb16565b9350613504863083613afd565b505b613511858585613afd565b613521565b613521858585613afd565b5050505050565b600081848411156135b75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561357c578181015183820152602001613564565b50505050905090810190601f1680156135a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156128ad576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604081205461363f92169083613b3f565b6120058282613c88565b61365a60268263ffffffff613d8416565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826136a0575060006113e8565b828202828482816136ad57fe5b04146128ad5760405162461bcd60e51b815260040180806020018281038252602181526020018061454a6021913960400191505060405180910390fd5b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613deb565b6001600160a01b038083166000908152600660205260408120549091169061375384611d7d565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46119ef828483613b3f565b6137cc60268263ffffffff613e5016565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b61380d8282613619565b61200582613819613121565b611660846040518060600160405280602481526020016145f5602491396001600160a01b038816600090815260016020526040812090611639613121565b601e54611c3f90601463ffffffff6135bf16565b600d546001600160a01b031615611a0657600d5460408051632d4f5b0960e21b81526004810184905290516001600160a01b039092169163b53d6c249160248082019260009290919082900301818387803b1580156138c957600080fd5b505af11580156138dd573d6000803e3d6000fd5b5050600060235550506040805182815290517fd3be3dbc076afa976ee7dfe1f596f6d7905e9441a1a426a244a12ef071272dd49181900360200190a150565b600c54600a546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051600093929092169163095ea7b39160448082019260209290919082900301818787803b15801561397857600080fd5b505af115801561398c573d6000803e3d6000fd5b505050506040513d60208110156139a257600080fd5b5050600a546025546040805163af2979eb60e01b815230600482015260248101869052600060448201819052606482018190526001600160a01b03610100909404841660848301524260a48301529151929093169263af2979eb9260c48083019360209383900390910190829087803b158015613a1e57600080fd5b505af1158015613a32573d6000803e3d6000fd5b505050506040513d6020811015613a4857600080fd5b505192915050565b60006001600160a01b038216613a975760405162461bcd60e51b81526004018080602001828103825260228152602001806145936022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b4690565b60006128ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613528565b6001600160a01b03808416600090815260066020526040808220548584168352912054613b2f92918216911683613b3f565b613b3a838383613ed1565b505050565b816001600160a01b0316836001600160a01b031614158015613b615750600081115b15613b3a576001600160a01b03831615613bf9576001600160a01b03831660009081526008602052604081205463ffffffff169081613ba1576000613bd3565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613be7828563ffffffff613abb16565b9050613bf58684848461402d565b5050505b6001600160a01b03821615613b3a576001600160a01b03821660009081526008602052604081205463ffffffff169081613c34576000613c66565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613c7a828563ffffffff6135bf16565b9050612ce38584848461402d565b6001600160a01b038216613ccd5760405162461bcd60e51b815260040180806020018281038252602181526020018061464a6021913960400191505060405180910390fd5b613d108160405180606001604052806022815260200161431b602291396001600160a01b038516600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038316600090815260208190526040902055600254613d3c908263ffffffff613abb16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b613d8e8282613a50565b613dc95760405162461bcd60e51b81526004018080602001828103825260218152602001806144a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183613e3a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b506000838581613e4657fe5b0495945050505050565b613e5a8282613a50565b15613eac576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038316613f165760405162461bcd60e51b815260040180806020018281038252602581526020018061468f6025913960400191505060405180910390fd5b6001600160a01b038216613f5b5760405162461bcd60e51b81526004018080602001828103825260238152602001806142f86023913960400191505060405180910390fd5b613f9e8160405180606001604052806026815260200161440a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613fd3908263ffffffff6135bf16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000614051436040518060600160405280603f81526020016144c8603f9139614192565b905060008463ffffffff1611801561409a57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b156140d7576001600160a01b038516600090815260076020908152604080832063ffffffff60001989011684529091529020600101829055614148565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008164010000000084106141e85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b509192915050565b604080518082019091526000808252602082015290565b6001600160a01b038216614262576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254614275908263ffffffff6135bf16565b6002556001600160a01b0382166000908152602081905260409020546142a1908263ffffffff6135bf16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636552657761726444697669736f72206f766572203130254552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f2061646472657373596f7520646f206e6f7420686176652074686520726571756972656420616d6f756e74206f66205452592e497420697320746f6f206561726c7920746f2075736520746869732066756e6374696f6e2e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636544697669736f72206f7665722031302543616e6e6f742073657420726562616c616e636552657761726444697669736f7220756e6465722034255472616e736665727320617265206c6f636b656420756e74696c2061667465722070726573616c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f742073657420726562616c616e636544697669736f7220756e64657220312545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636543616e6e6f7420736574206f76657220312520526577617264506f6f6c44697669736f7244656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582060c8a5ac2984fb841a2e73eeac1a1330d67d5f7302870f6d658d4caef7ccadcf64736f6c634300051100326080604052600180546001600160a01b03191661dead17905534801561002457600080fd5b506040516109433803806109438339818101604052602081101561004757600080fd5b5051600080546001600160a01b03199081163317909155600280546001600160a01b03909316929091169190911790556108bd806100866000396000f3fe6080604052600436106100345760003560e01c806361d027b314610036578063d246d41114610067578063f49930181461007c575b005b34801561004257600080fd5b5061004b6100b8565b604080516001600160a01b039092168252519081900360200190f35b34801561007357600080fd5b5061004b6100c7565b34801561008857600080fd5b506100a66004803603602081101561009f57600080fd5b50356100d6565b60408051918252519081900360200190f35b6002546001600160a01b031681565b6001546001600160a01b031681565b600080546001600160a01b031633146101205760405162461bcd60e51b815260040180806020018281038252602d81526020018061085c602d913960400191505060405180910390fd5b61012a47836102f8565b60008054604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561017657600080fd5b505afa15801561018a573d6000803e3d6000fd5b505050506040513d60208110156101a057600080fd5b5051905060006101b6828563ffffffff6106d416565b600080546040805163a9059cbb60e01b81523260048201526024810185905290519394506001600160a01b039091169263a9059cbb92604480840193602093929083900390910190829087803b15801561020f57600080fd5b505af1158015610223573d6000803e3d6000fd5b505050506040513d602081101561023957600080fd5b50506000546001546001600160a01b039182169163a9059cbb9116610264858563ffffffff61071d16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050506040513d60208110156102dd57600080fd5b506102f09050828263ffffffff61071d16565b949350505050565b6040805160028082526060808301845292602083019080388339505060005460408051630b4a282f60e11b815290519394506001600160a01b0390911692631694505e92506004808301926020929190829003018186803b15801561035c57600080fd5b505afa158015610370573d6000803e3d6000fd5b505050506040513d602081101561038657600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039092169163ad5c464891600480820192602092909190829003018186803b1580156103ca57600080fd5b505afa1580156103de573d6000803e3d6000fd5b505050506040513d60208110156103f457600080fd5b50518151829060009061040357fe5b6001600160a01b03928316602091820292909201015260005482519116908290600190811061042e57fe5b6001600160a01b03909216602092830291909101909101526000610458848463ffffffff6106d416565b6002546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610493573d6000803e3d6000fd5b5060005460408051630b4a282f60e11b815290516001600160a01b039092169163095ea7b3918391631694505e91600480820192602092909190829003018186803b1580156104e157600080fd5b505afa1580156104f5573d6000803e3d6000fd5b505050506040513d602081101561050b57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018890525160448083019260209291908290030181600087803b15801561055b57600080fd5b505af115801561056f573d6000803e3d6000fd5b505050506040513d602081101561058557600080fd5b505060005460408051630b4a282f60e11b815290516001600160a01b0390921691631694505e91600480820192602092909190829003018186803b1580156105cc57600080fd5b505afa1580156105e0573d6000803e3d6000fd5b505050506040513d60208110156105f657600080fd5b50516001600160a01b031663b6f9de95610616868463ffffffff61071d16565b60008530426040518663ffffffff1660e01b81526004018085815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561068e578181015183820152602001610676565b50505050905001955050505050506000604051808303818588803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050505050505050565b600061071683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061075f565b9392505050565b600061071683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610801565b600081836107eb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107b0578181015183820152602001610798565b50505050905090810190601f1680156107dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816107f757fe5b0495945050505050565b600081848411156108535760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156107b0578181015183820152602001610798565b50505090039056fe6f6e6c7920746f6b656e20636f6e74726163742063616e20706572666f726d20746869732066756e6374696f6ea265627a7a7231582054d725ed1626a8974fb9f11aad7cd6f4fced9bd65236e47193bd4a4ab7db8bf564736f6c634300051100324552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373

Deployed Bytecode

0x6080604052600436106104ec5760003560e01c80637e0d943e1161028c578063c3cda5201161015a578063e7a324dc116100cc578063f3db188c11610085578063f3db188c1461126b578063f8ea475614611295578063f9c778e1146112aa578063f9f92be4146112dd578063fd7310c414611310578063fd77f8a114611325576104ec565b8063e7a324dc14611185578063e84354c51461119a578063eb37d349146111af578063ef0658f2146111e2578063f1127ed8146111f7578063f1e6e46814611256576104ec565b8063d246d4111161011e578063d246d411146110cc578063db14c5d5146110e1578063dd62ed3e1461110b578063e0a9e6b614611146578063e161eb561461115b578063e6a2538514611170576104ec565b8063c3cda52014611006578063ca5c7b911461105a578063ceea57e51461106f578063cf30901214611084578063d1846d0c14611099576104ec565b8063a457c2d7116101fe578063b4b5ea57116101b7578063b4b5ea5714610f11578063b67f8b6d14610f44578063b6833c5914610f59578063bb5f747b14610f83578063bc91720214610fb6578063bedd0d3314610fcb576104ec565b8063a457c2d714610e4b578063a889c82c14610e84578063a8a5550e14610e99578063a9059cbb14610eae578063acd7cff414610ee7578063b439824414610efc576104ec565b80638ba51d61116102505780638ba51d6114610d5e57806395d89b4114610d915780639a8fec8714610da65780639e14b8e014610dbb578063a0f364e414610de5578063a29a608914610e18576104ec565b80637e0d943e14610ca45780637ecebe0014610cce5780637ef7686e14610d0157806382bc6ced14610d16578063858750ab14610d49576104ec565b80633e0d04a4116103c957806366666aa91161033b5780637362d9c8116102f45780637362d9c814610b84578063782d6fe114610bb757806379cc679014610bf05780637b9003e314610c295780637c411c1a14610c5c5780637d57ab9614610c71576104ec565b806366666aa914610a475780636da1c23f14610a5c5780636fcfff4514610a7157806370709a7c14610abd57806370a0823114610af057806373352ad314610b23576104ec565b8063587cde1e1161038d578063587cde1e1461095257806359d0f713146109855780635b7dcaed1461099a5780635c19a95c146109c457806361d027b3146109f75780636536084314610a0c576104ec565b80633e0d04a4146108bf57806342966c68146108e957806349bd5a5e146109135780634c5a628c1461092857806355d0a1d01461093d576104ec565b806318160ddd116104625780632feec9d6116104265780632feec9d6146107bf578063313ce567146107e9578063352ffb9a1461081457806339509351146108295780633bd5b4ea146108625780633cd221a21461088c576104ec565b806318160ddd1461072857806318c51c351461073d57806320606b701461075257806323b872dd146107675780632898cafa146107aa576104ec565b806312283a39116104b457806312283a3914610634578063122fe685146106675780631419841d1461069857806316279055146106cb5780631694505e146106fe57806316d1d91614610713576104ec565b806306fdde03146104ee578063095ea7b3146105785780630bd05b69146105c5578063106b9ca1146105da5780631097d54a14610601575b005b3480156104fa57600080fd5b5061050361133a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053d578181015183820152602001610525565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058457600080fd5b506105b16004803603604081101561059b57600080fd5b506001600160a01b0381351690602001356113d0565b604080519115158252519081900360200190f35b3480156105d157600080fd5b506104ec6113ee565b3480156105e657600080fd5b506105ef611445565b60408051918252519081900360200190f35b34801561060d57600080fd5b506104ec6004803603602081101561062457600080fd5b50356001600160a01b031661144b565b34801561064057600080fd5b506104ec6004803603602081101561065757600080fd5b50356001600160a01b03166114b3565b34801561067357600080fd5b5061067c61151a565b604080516001600160a01b039092168252519081900360200190f35b3480156106a457600080fd5b506104ec600480360360208110156106bb57600080fd5b50356001600160a01b0316611529565b3480156106d757600080fd5b506105b1600480360360208110156106ee57600080fd5b50356001600160a01b0316611591565b34801561070a57600080fd5b5061067c61159d565b34801561071f57600080fd5b506105ef6115ac565b34801561073457600080fd5b506105ef6115b2565b34801561074957600080fd5b5061067c6115b8565b34801561075e57600080fd5b506105ef6115c7565b34801561077357600080fd5b506105b16004803603606081101561078a57600080fd5b506001600160a01b038135811691602081013590911690604001356115e2565b3480156107b657600080fd5b506105ef61166f565b3480156107cb57600080fd5b506104ec600480360360208110156107e257600080fd5b50356116ee565b3480156107f557600080fd5b506107fe611779565b6040805160ff9092168252519081900360200190f35b34801561082057600080fd5b5061067c611782565b34801561083557600080fd5b506105b16004803603604081101561084c57600080fd5b506001600160a01b038135169060200135611791565b34801561086e57600080fd5b506104ec6004803603602081101561088557600080fd5b50356117e5565b34801561089857600080fd5b506104ec600480360360208110156108af57600080fd5b50356001600160a01b031661188e565b3480156108cb57600080fd5b506104ec600480360360208110156108e257600080fd5b50356118f6565b3480156108f557600080fd5b506104ec6004803603602081101561090c57600080fd5b50356119f5565b34801561091f57600080fd5b5061067c611a09565b34801561093457600080fd5b506104ec611a18565b34801561094957600080fd5b506105ef611a2a565b34801561095e57600080fd5b5061067c6004803603602081101561097557600080fd5b50356001600160a01b0316611b1e565b34801561099157600080fd5b5061067c611b3c565b3480156109a657600080fd5b506104ec600480360360208110156109bd57600080fd5b5035611b4b565b3480156109d057600080fd5b506104ec600480360360208110156109e757600080fd5b50356001600160a01b0316611c44565b348015610a0357600080fd5b5061067c611c4e565b348015610a1857600080fd5b506104ec60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001351515611c5d565b348015610a5357600080fd5b506105ef611cce565b348015610a6857600080fd5b506104ec611cd4565b348015610a7d57600080fd5b50610aa460048036036020811015610a9457600080fd5b50356001600160a01b0316611cfb565b6040805163ffffffff9092168252519081900360200190f35b348015610ac957600080fd5b506104ec60048036036020811015610ae057600080fd5b50356001600160a01b0316611d13565b348015610afc57600080fd5b506105ef60048036036020811015610b1357600080fd5b50356001600160a01b0316611d7d565b348015610b2f57600080fd5b50610b6660048036036060811015610b4657600080fd5b506001600160a01b03813581169160208101359091169060400135611d98565b60408051938452602084019290925282820152519081900360600190f35b348015610b9057600080fd5b506104ec60048036036020811015610ba757600080fd5b50356001600160a01b0316611da4565b348015610bc357600080fd5b506105ef60048036036040811015610bda57600080fd5b506001600160a01b038135169060200135611df3565b348015610bfc57600080fd5b506104ec60048036036040811015610c1357600080fd5b506001600160a01b038135169060200135611ffb565b348015610c3557600080fd5b506104ec60048036036020811015610c4c57600080fd5b50356001600160a01b0316612009565b348015610c6857600080fd5b506104ec612071565b348015610c7d57600080fd5b506104ec60048036036020811015610c9457600080fd5b50356001600160a01b031661226e565b348015610cb057600080fd5b506104ec60048036036020811015610cc757600080fd5b50356122dd565b348015610cda57600080fd5b506105ef60048036036020811015610cf157600080fd5b50356001600160a01b03166123ae565b348015610d0d57600080fd5b5061067c6123c0565b348015610d2257600080fd5b506104ec60048036036020811015610d3957600080fd5b50356001600160a01b03166123cf565b348015610d5557600080fd5b506105ef612437565b348015610d6a57600080fd5b506104ec60048036036020811015610d8157600080fd5b50356001600160a01b0316612482565b348015610d9d57600080fd5b506105036124ea565b348015610db257600080fd5b506105ef61254b565b348015610dc757600080fd5b506104ec60048036036020811015610dde57600080fd5b5035612551565b348015610df157600080fd5b506105b160048036036020811015610e0857600080fd5b50356001600160a01b0316612648565b348015610e2457600080fd5b506104ec60048036036020811015610e3b57600080fd5b50356001600160a01b031661265d565b348015610e5757600080fd5b506105b160048036036040811015610e6e57600080fd5b506001600160a01b0381351690602001356126c5565b348015610e9057600080fd5b506104ec612733565b348015610ea557600080fd5b506105ef612805565b348015610eba57600080fd5b506105b160048036036040811015610ed157600080fd5b506001600160a01b038135169060200135612815565b348015610ef357600080fd5b506105ef612829565b348015610f0857600080fd5b506105ef61282f565b348015610f1d57600080fd5b506105ef60048036036020811015610f3457600080fd5b50356001600160a01b0316612850565b348015610f5057600080fd5b5061067c6128b4565b348015610f6557600080fd5b506104ec60048036036020811015610f7c57600080fd5b50356128c3565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b50356001600160a01b03166129ca565b348015610fc257600080fd5b506104ec6129dd565b348015610fd757600080fd5b506104ec60048036036040811015610fee57600080fd5b506001600160a01b0381351690602001351515612a04565b34801561101257600080fd5b506104ec600480360360c081101561102957600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135612a75565b34801561106657600080fd5b506105ef612ceb565b34801561107b57600080fd5b506104ec612d74565b34801561109057600080fd5b506105b1612e1c565b3480156110a557600080fd5b506105b1600480360360208110156110bc57600080fd5b50356001600160a01b0316612e25565b3480156110d857600080fd5b5061067c612e3a565b3480156110ed57600080fd5b506104ec6004803603602081101561110457600080fd5b5035612e49565b34801561111757600080fd5b506105ef6004803603604081101561112e57600080fd5b506001600160a01b0381358116916020013516612eea565b34801561115257600080fd5b506105ef612f15565b34801561116757600080fd5b506105ef612f1b565b34801561117c57600080fd5b506105b1612f21565b34801561119157600080fd5b506105ef612f31565b3480156111a657600080fd5b506105ef612f4c565b3480156111bb57600080fd5b506105b1600480360360208110156111d257600080fd5b50356001600160a01b0316612f52565b3480156111ee57600080fd5b506105ef612f67565b34801561120357600080fd5b506112366004803603604081101561121a57600080fd5b5080356001600160a01b0316906020013563ffffffff16612f6d565b6040805163ffffffff909316835260208301919091528051918290030190f35b34801561126257600080fd5b506104ec612f9a565b34801561127757600080fd5b506104ec6004803603602081101561128e57600080fd5b5035612fc1565b3480156112a157600080fd5b506105ef613092565b3480156112b657600080fd5b506104ec600480360360208110156112cd57600080fd5b50356001600160a01b0316613098565b3480156112e957600080fd5b506105b16004803603602081101561130057600080fd5b50356001600160a01b0316613100565b34801561131c57600080fd5b506105ef613115565b34801561133157600080fd5b506105ef61311b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050905090565b60006113e46113dd613121565b8484613125565b5060015b92915050565b6113fe6113f9613121565b6129ca565b6114395760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6025805460ff19169055565b601d5481565b6114566113f9613121565b6114915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6114be6113f9613121565b6114f95760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b600e546001600160a01b031681565b6115346113f9613121565b61156f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3b63ffffffff16151590565b600a546001600160a01b031681565b601e5481565b60025490565b600d546001600160a01b031681565b60405180604361450782396043019050604051809103902081565b60006115ef848484613211565b611665846115fb613121565b6116608560405180606001604052806028815260200161456b602891396001600160a01b038a16600090815260016020526040812090611639613121565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61352816565b613125565b5060019392505050565b600c54604080516370a0823160e01b8152600060048201819052915191926001600160a01b0316916370a0823191602480820192602092909190829003018186803b1580156116bd57600080fd5b505afa1580156116d1573d6000803e3d6000fd5b505050506040513d60208110156116e757600080fd5b5051905090565b6116f96113f9613121565b6117345760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b60648110156117745760405162461bcd60e51b81526004018080602001828103825260248152602001806147376024913960400191505060405180910390fd5b601755565b60055460ff1690565b6011546001600160a01b031681565b60006113e461179e613121565b8461166085600160006117af613121565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135bf16565b6117f06113f9613121565b61182b5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b68056bc75e2d63100000811115611889576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206f76657220313030207472616e73616374696f6e73604482015290519081900360640190fd5b602255565b6118996113f9613121565b6118d45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6119016113f9613121565b61193c5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a544790611954906001600160a01b0316836113d0565b50600a546040805163f305d71960e01b8152306004820181905260248201869052600060448301819052606483015260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b50505050506040513d60608110156119ef57600080fd5b50505050565b611a06611a00613121565b82613619565b50565b600c546001600160a01b031681565b611a28611a23613121565b613649565b565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7b57600080fd5b505afa158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b505190506000611ab361166f565b90506000611adc83611ad08464e8d4a5100063ffffffff61369116565b9063ffffffff6136ea16565b600c54909150600090611af7906001600160a01b0316611d7d565b90506000611b1464e8d4a51000611ad0848663ffffffff61369116565b9550505050505090565b6001600160a01b039081166000908152600660205260409020541690565b600b546001600160a01b031681565b611b566113f9613121565b611b915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611c20811115611be8576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f766572203220686f757220696e74657276616c00604482015290519081900360640190fd5b610e10811015611c3f576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420756e646572203120686f757220696e74657276616c604482015290519081900360640190fd5b601e55565b611a06338261372c565b6012546001600160a01b031681565b611c686113f9613121565b611ca35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b60245481565b611a28611cdf613121565b600f546001600160a01b031669021e19e0c9bab2400000613125565b60086020526000908152604090205463ffffffff1681565b611d1e6113f9613121565b611d595760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b50600092839250829150565b611daf6113f9613121565b611dea5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611a06816137bb565b6000438210611e335760405162461bcd60e51b81526004018080602001828103825260328152602001806146b46032913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680611e615760009150506113e8565b6001600160a01b038416600090815260076020908152604080832063ffffffff600019860181168552925290912054168310611ed0576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff168352929052206001015490506113e8565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015611f0b5760009150506113e8565b600060001982015b8163ffffffff168163ffffffff161115611fc457600282820363ffffffff16048103611f3d6141f0565b506001600160a01b038716600090815260076020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415611f9f576020015194506113e89350505050565b805163ffffffff16871115611fb657819350611fbd565b6001820392505b5050611f13565b506001600160a01b038516600090815260076020908152604080832063ffffffff9094168352929052206001015491505092915050565b6120058282613803565b5050565b6120146113f9613121565b61204f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b601c5461207d33611d7d565b10156120ba5760405162461bcd60e51b815260040180806020018281038252602b8152602001806143ba602b913960400191505060405180910390fd5b601e54601d540142116120fe5760405162461bcd60e51b81526004018080602001828103825260258152602001806143e56025913960400191505060405180910390fd5b42601d5560235461210d613857565b6121168161386b565b601954600c54604080516370a0823160e01b815230600482015290516000936121a59390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561216d57600080fd5b505afa158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b50519063ffffffff6136ea16565b90506121b08161391c565b5060255460185460408051631e93260360e31b815260048101929092525160009261010090046001600160a01b03169163f499301891602480830192602092919082900301818787803b15801561220657600080fd5b505af115801561221a573d6000803e3d6000fd5b505050506040513d602081101561223057600080fd5b50516040805182815290519192507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0919081900360200190a1505050565b6122796113f9613121565b6122b45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601460205260409020805460ff19811660ff90911615179055565b6122e86113f9613121565b6123235760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b80156123a957600a8110156123695760405162461bcd60e51b81526004018080602001828103825260248152602001806144306024913960400191505060405180910390fd5b60648111156123a95760405162461bcd60e51b815260040180806020018281038252602481526020018061466b6024913960400191505060405180910390fd5b601955565b60096020526000908152604090205481565b600f546001600160a01b031681565b6123da6113f9613121565b6124155760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116bd57600080fd5b61248d6113f9613121565b6124c85760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b60185481565b61255c6113f9613121565b6125975760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a8110156125ed576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f7665722031302520616e746944756d7046656500604482015290519081900360640190fd5b6064811115612643576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742073657420756e64657220312520616e746944756d7046656500604482015290519081900360640190fd5b601b55565b60136020526000908152604090205460ff1681565b6126686113f9613121565b6126a35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60006113e46126d2613121565b846116608560405180606001604052806025815260200161479560259139600160006126fc613121565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61352816565b61273e6113f9613121565b6127795760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601154600d546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b505af11580156127ef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b600061281030611d7d565b905090565b60006113e4612822613121565b8484613211565b601b5481565b600061281061283c61166f565b612844612437565b9063ffffffff6135bf16565b6001600160a01b03811660009081526008602052604081205463ffffffff168061287b5760006128ad565b6001600160a01b038316600090815260076020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6010546001600160a01b031681565b6128ce6113f9613121565b6129095760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b683635c9adc5dea00000811115612967576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f76657220313030302054525920746f6b656e7300604482015290519081900360640190fd5b6801158e460913d000008110156129c5576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073657420756e6465722032302054525920746f6b656e730000604482015290519081900360640190fd5b601c55565b60006113e860268363ffffffff613a5016565b611a286129e8613121565b6010546001600160a01b031669021e19e0c9bab2400000613125565b612a0f6113f9613121565b612a4a5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b600060405180806145076043913960430190506040518091039020612a9861133a565b80519060200120612aa7613ab7565b3060405160200180858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012090506000604051808061475b603a91396040805191829003603a0182206020808401919091526001600160a01b038c1683830152606083018b905260808084018b90528251808503909101815260a08401835280519082012061190160f01b60c085015260c2840187905260e2808501829052835180860390910181526101028501808552815191840191909120600091829052610122860180865281905260ff8c1661014287015261016286018b905261018286018a9052935191965092945091926001926101a28083019392601f198301929081900390910190855afa158015612be5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c375760405162461bcd60e51b81526004018080602001828103825260318152602001806143676031913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090208054600181019091558914612c955760405162461bcd60e51b815260040180806020018281038252602d81526020018061470a602d913960400191505060405180910390fd5b87421115612cd45760405162461bcd60e51b81526004018080602001828103825260318152602001806146196031913960400191505060405180910390fd5b612cde818b61372c565b505050505b505050505050565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3c57600080fd5b505afa158015612d50573d6000803e3d6000fd5b505050506040513d6020811015612d6657600080fd5b505190506000611ab361282f565b612d7f6113f9613121565b612dba5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6011546010546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b60255460ff1681565b60146020526000908152604090205460ff1681565b601f546001600160a01b031681565b612e546113f9613121565b612e8f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6064811015612ee5576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420736574206f766572203125206275726e547846656500000000604482015290519081900360640190fd5b601a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60205481565b60195481565b601f54600160a01b900460ff1681565b60405180603a61475b8239603a019050604051809103902081565b601c5481565b60156020526000908152604090205460ff1681565b60175481565b60076020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b611a28612fa5613121565b600d546001600160a01b031669021e19e0c9bab2400000613125565b612fcc6113f9613121565b6130075760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b801561308d57601981111561304d5760405162461bcd60e51b815260040180806020018281038252602a815260200180614454602a913960400191505060405180910390fd5b600a81101561308d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061433d602a913960400191505060405180910390fd5b601855565b60235481565b6130a36113f9613121565b6130de5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60166020526000908152604090205460ff1681565b601a5481565b60225481565b3390565b6001600160a01b03831661316a5760405162461bcd60e51b81526004018080602001828103825260248152602001806146e66024913960400191505060405180910390fd5b6001600160a01b0382166131af5760405162461bcd60e51b81526004018080602001828103825260228152602001806143986022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60255460ff16801561324157506001600160a01b03831660009081526014602052604090205460ff161515600114155b801561326b57506001600160a01b03821660009081526014602052604090205460ff161515600114155b156132a75760405162461bcd60e51b815260040180806020018281038252602981526020018061447e6029913960400191505060405180910390fd5b6001600160a01b03831660009081526016602052604090205460ff161515600114806132f057506001600160a01b03821660009081526016602052604090205460ff1615156001145b1561333b576040805162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260136020526040812054819060ff1615801561337f57506001600160a01b03841660009081526013602052604090205460ff16155b1561351657601a54156133cd57601a546133a090849063ffffffff6136ea16565b91506133b2838363ffffffff613abb16565b601f549093506133cd9086906001600160a01b031684613afd565b60175415613498576021546020546133ea9163ffffffff6135bf16565b60205560175461340190849063ffffffff6136ea16565b9050613413838263ffffffff613abb16565b9250613420853083613afd565b602480548201905560225460205414156134985761343d85611591565b15613480576040805162461bcd60e51b815260206004820152600e60248201526d34b72b30b634b21031b0b63632b960911b604482015290519081900360640190fd5b61348d3086602454613afd565b600060248190556020555b601b54158015906134c157506001600160a01b03841660009081526015602052604090205460ff165b156135065760006134dd601b54856136ea90919063ffffffff16565b602380548201905590506134f7848263ffffffff613abb16565b9350613504863083613afd565b505b613511858585613afd565b613521565b613521858585613afd565b5050505050565b600081848411156135b75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561357c578181015183820152602001613564565b50505050905090810190601f1680156135a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156128ad576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604081205461363f92169083613b3f565b6120058282613c88565b61365a60268263ffffffff613d8416565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826136a0575060006113e8565b828202828482816136ad57fe5b04146128ad5760405162461bcd60e51b815260040180806020018281038252602181526020018061454a6021913960400191505060405180910390fd5b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613deb565b6001600160a01b038083166000908152600660205260408120549091169061375384611d7d565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46119ef828483613b3f565b6137cc60268263ffffffff613e5016565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b61380d8282613619565b61200582613819613121565b611660846040518060600160405280602481526020016145f5602491396001600160a01b038816600090815260016020526040812090611639613121565b601e54611c3f90601463ffffffff6135bf16565b600d546001600160a01b031615611a0657600d5460408051632d4f5b0960e21b81526004810184905290516001600160a01b039092169163b53d6c249160248082019260009290919082900301818387803b1580156138c957600080fd5b505af11580156138dd573d6000803e3d6000fd5b5050600060235550506040805182815290517fd3be3dbc076afa976ee7dfe1f596f6d7905e9441a1a426a244a12ef071272dd49181900360200190a150565b600c54600a546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051600093929092169163095ea7b39160448082019260209290919082900301818787803b15801561397857600080fd5b505af115801561398c573d6000803e3d6000fd5b505050506040513d60208110156139a257600080fd5b5050600a546025546040805163af2979eb60e01b815230600482015260248101869052600060448201819052606482018190526001600160a01b03610100909404841660848301524260a48301529151929093169263af2979eb9260c48083019360209383900390910190829087803b158015613a1e57600080fd5b505af1158015613a32573d6000803e3d6000fd5b505050506040513d6020811015613a4857600080fd5b505192915050565b60006001600160a01b038216613a975760405162461bcd60e51b81526004018080602001828103825260228152602001806145936022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b4690565b60006128ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613528565b6001600160a01b03808416600090815260066020526040808220548584168352912054613b2f92918216911683613b3f565b613b3a838383613ed1565b505050565b816001600160a01b0316836001600160a01b031614158015613b615750600081115b15613b3a576001600160a01b03831615613bf9576001600160a01b03831660009081526008602052604081205463ffffffff169081613ba1576000613bd3565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613be7828563ffffffff613abb16565b9050613bf58684848461402d565b5050505b6001600160a01b03821615613b3a576001600160a01b03821660009081526008602052604081205463ffffffff169081613c34576000613c66565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613c7a828563ffffffff6135bf16565b9050612ce38584848461402d565b6001600160a01b038216613ccd5760405162461bcd60e51b815260040180806020018281038252602181526020018061464a6021913960400191505060405180910390fd5b613d108160405180606001604052806022815260200161431b602291396001600160a01b038516600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038316600090815260208190526040902055600254613d3c908263ffffffff613abb16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b613d8e8282613a50565b613dc95760405162461bcd60e51b81526004018080602001828103825260218152602001806144a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183613e3a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b506000838581613e4657fe5b0495945050505050565b613e5a8282613a50565b15613eac576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038316613f165760405162461bcd60e51b815260040180806020018281038252602581526020018061468f6025913960400191505060405180910390fd5b6001600160a01b038216613f5b5760405162461bcd60e51b81526004018080602001828103825260238152602001806142f86023913960400191505060405180910390fd5b613f9e8160405180606001604052806026815260200161440a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613fd3908263ffffffff6135bf16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000614051436040518060600160405280603f81526020016144c8603f9139614192565b905060008463ffffffff1611801561409a57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b156140d7576001600160a01b038516600090815260076020908152604080832063ffffffff60001989011684529091529020600101829055614148565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008164010000000084106141e85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b509192915050565b604080518082019091526000808252602082015290565b6001600160a01b038216614262576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254614275908263ffffffff6135bf16565b6002556001600160a01b0382166000908152602081905260409020546142a1908263ffffffff6135bf16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636552657761726444697669736f72206f766572203130254552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f2061646472657373596f7520646f206e6f7420686176652074686520726571756972656420616d6f756e74206f66205452592e497420697320746f6f206561726c7920746f2075736520746869732066756e6374696f6e2e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636544697669736f72206f7665722031302543616e6e6f742073657420726562616c616e636552657761726444697669736f7220756e6465722034255472616e736665727320617265206c6f636b656420756e74696c2061667465722070726573616c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f742073657420726562616c616e636544697669736f7220756e64657220312545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636543616e6e6f7420736574206f76657220312520526577617264506f6f6c44697669736f7244656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582060c8a5ac2984fb841a2e73eeac1a1330d67d5f7302870f6d658d4caef7ccadcf64736f6c63430005110032

Deployed Bytecode Sourcemap

30178:5300:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11926:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11926: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;11926:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7994:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7994:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7994:152:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;34674:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34674:86:0;;;:::i;13313:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13313:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;32711:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32711:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32711:99:0;-1:-1:-1;;;;;32711:99:0;;:::i;34159:106::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34159:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34159:106:0;-1:-1:-1;;;;;34159:106:0;;:::i;12668:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12668:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;12668:29:0;;;;;;;;;;;;;;31145:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31145:133:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31145:133:0;-1:-1:-1;;;;;31145:133:0;;:::i;14973:198::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14973:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14973:198:0;-1:-1:-1;;;;;14973:198:0;;:::i;12437:75::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12437:75:0;;;:::i;13348:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13348:32:0;;;:::i;7469:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7469:91:0;;;:::i;12638:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12638:23:0;;;:::i;22705:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22705:122:0;;;:::i;8158:304::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8158:304:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8158:304:0;;;;;;;;;;;;;;;;;:::i;19614:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19614:125:0;;;:::i;31768:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31768:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31768:195:0;;:::i;12112:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12112:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12794:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12794:39:0;;;:::i;8470:210::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8470:210:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8470:210:0;;;;;;;;:::i;31571:189::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31571:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31571:189:0;;:::i;32465:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32465:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32465:131:0;-1:-1:-1;;;;;32465:131:0;;:::i;30388:419::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30388:419:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30388:419:0;;:::i;10743:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10743:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10743:83:0;;:::i;12602:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12602:28:0;;;:::i;4422:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4422:95:0;;;:::i;19025:443::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19025:443:0;;;:::i;23225:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23225:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23225:149:0;-1:-1:-1;;;;;23225:149:0;;:::i;12519:76::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12519:76:0;;;:::i;33392:268::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33392:268:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33392:268:0;;:::i;23382:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23382:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23382:104:0;-1:-1:-1;;;;;23382:104:0;;:::i;12840:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12840:31:0;;;:::i;34408:115::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34408:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34408:115:0;;;;;;;;;;:::i;13661:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13661:29:0;;;:::i;31038:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31038:94:0;;;:::i;22647:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22647:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22647:49:0;-1:-1:-1;;;;;22647:49:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;34039:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34039:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34039:108:0;-1:-1:-1;;;;;34039:108:0;;:::i;7568:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7568:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7568:110:0;-1:-1:-1;;;;;7568:110:0;;:::i;14816:145::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14816:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14816:145:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4298:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4298:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4298:116:0;-1:-1:-1;;;;;4298:116:0;;:::i;24976:1149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24976:1149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24976:1149:0;;;;;;;;:::i;10834:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10834:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10834:103:0;;;;;;;;:::i;32358:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32358:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32358:99:0;-1:-1:-1;;;;;32358:99:0;;:::i;16897:708::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16897:708:0;;;:::i;34277:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34277:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34277:118:0;-1:-1:-1;;;;;34277:118:0;;:::i;31976:370::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31976:370:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31976:370:0;;:::i;22962:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22962:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22962:39:0;-1:-1:-1;;;;;22962:39:0;;:::i;12704:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12704:21:0;;;:::i;32823:101::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32823:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32823:101:0;-1:-1:-1;;;;;32823:101:0;;:::i;19476:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19476:130:0;;;:::i;31425:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31425:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31425:138:0;-1:-1:-1;;;;;31425:138:0;;:::i;12017:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12017:87:0;;;:::i;13115:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13115:37:0;;;:::i;35230:245::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35230:245:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35230:245:0;;:::i;12878:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12878:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12878:43:0;-1:-1:-1;;;;;12878:43:0;;:::i;31286:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31286:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31286:127:0;-1:-1:-1;;;;;31286:127:0;;:::i;8688:261::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8688:261:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8688:261:0;;;;;;;;:::i;33067:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33067:119:0;;;:::i;18458:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18458:108:0;;;:::i;7686:158::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7686:158:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7686:158:0;;;;;;;;:::i;13233:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13233:26:0;;;:::i;19747:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19747:125:0;;;:::i;24713:255::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24713:255:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24713:255:0;-1:-1:-1;;;;;24713:255:0;;:::i;12733:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12733:49:0;;;:::i;34772:264::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34772:264:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34772:264:0;;:::i;4167:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4167:125:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4167:125:0;-1:-1:-1;;;;;4167:125:0;;:::i;30932:96::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30932:96:0;;;:::i;34534:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34534:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34534:127:0;;;;;;;;;;:::i;23494:1211::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23494:1211:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;23494:1211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18574:443::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18574:443:0;;;:::i;32937:116::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32937:116:0;;;:::i;13703:18::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13703:18:0;;;:::i;12928:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12928:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12928:40:0;-1:-1:-1;;;;;12928:40:0;;:::i;13387:68::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13387:68:0;;;:::i;35048:170::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35048:170:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35048:170:0;;:::i;7852:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7852:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7852:134:0;;;;;;;;;;:::i;13496:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13496:23:0;;;:::i;13159:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13159:31:0;;;:::i;13462:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13462:20:0;;;:::i;22836:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22836:117:0;;;:::i;13273:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13273:33:0;;;:::i;12975:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12975:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12975:38:0;-1:-1:-1;;;;;12975:38:0;;:::i;13076:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13076:32:0;;;:::i;22568:70::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22568:70:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22568:70:0;;-1:-1:-1;;;;;22568:70:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;30819:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30819:100:0;;;:::i;33673:354::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33673:354:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33673:354:0;;:::i;13626:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13626:28:0;;;:::i;32608:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32608:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32608:95:0;-1:-1:-1;;;;;32608:95:0;;:::i;13021:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13021:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13021:41:0;-1:-1:-1;;;;;13021:41:0;;:::i;13198:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13198:24:0;;;:::i;13566:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13566:46:0;;;:::i;11926:83::-;11996:5;11989:12;;;;;;;;-1:-1:-1;;11989:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11963:13;;11989:12;;11996:5;;11989:12;;11996:5;11989:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11926:83;:::o;7994:152::-;8060:4;8077:39;8086:12;:10;:12::i;:::-;8100:7;8109:6;8077:8;:39::i;:::-;-1:-1:-1;8134:4:0;7994:152;;;;;:::o;34674:86::-;4040:30;4057:12;:10;:12::i;:::-;4040:16;:30::i;:::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34738:6;:14;;-1:-1:-1;;34738:14:0;;;34674:86::o;13313:28::-;;;;:::o;32711:99::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32784:6;:16;;-1:-1:-1;;;;;;32784:16:0;-1:-1:-1;;;;;32784:16:0;;;;;;;;;;32711:99::o;34159:106::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34231:18:0;34252:5;34231:18;;;:11;:18;;;;;:26;;-1:-1:-1;;34231:26:0;;;34159:106::o;12668:29::-;;;-1:-1:-1;;;;;12668:29:0;;:::o;31145:133::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31236:15;:34;;-1:-1:-1;;;;;;31236:34:0;-1:-1:-1;;;;;31236:34:0;;;;;;;;;;31145:133::o;14973:198::-;15107:18;15154:8;;;;;14973:198::o;12437:75::-;;;-1:-1:-1;;;;;12437:75:0;;:::o;13348:32::-;;;;:::o;7469:91::-;7540:12;;7469:91;:::o;12638:23::-;;;-1:-1:-1;;;;;12638:23:0;;:::o;22705:122::-;22747:80;;;;;;;;;;;;;;;;;;22705:122;:::o;8158:304::-;8247:4;8264:36;8274:6;8282:9;8293:6;8264:9;:36::i;:::-;8311:121;8320:6;8328:12;:10;:12::i;:::-;8342:89;8380:6;8342:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8342:19:0;;;;;;:11;:19;;;;;;8362:12;:10;:12::i;:::-;-1:-1:-1;;;;;8342:33:0;;;;;;;;;;;;-1:-1:-1;8342:33:0;;;:89;;:37;:89;:::i;:::-;8311:8;:121::i;:::-;-1:-1:-1;8450:4:0;8158:304;;;;;:::o;19614:125::-;19695:13;;19689:42;;;-1:-1:-1;;;19689:42:0;;19662:7;19689:42;;;;;;;;19662:7;;-1:-1:-1;;;;;19695:13:0;;19689:30;;:42;;;;;;;;;;;;;;;19695:13;19689:42;;;5:2:-1;;;;30:1;27;20:12;5:2;19689:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19689:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19689:42:0;;-1:-1:-1;19614:125:0;:::o;31768:195::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31867:3;31858:5;:12;;31850:61;;;;-1:-1:-1;;;31850:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31930:17;:25;31768:195::o;12112:83::-;12178:9;;;;12112:83;:::o;12794:39::-;;;-1:-1:-1;;;;;12794:39:0;;:::o;8470:210::-;8550:4;8567:83;8576:12;:10;:12::i;:::-;8590:7;8599:50;8638:10;8599:11;:25;8611:12;:10;:12::i;:::-;-1:-1:-1;;;;;8599:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8599:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;31571:189::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31669:6;31656:9;:19;;31648:64;;;;;-1:-1:-1;;;31648:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31731:8;:20;31571:189::o;32465:131::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32554:14;:32;;-1:-1:-1;;;;;;32554:32:0;-1:-1:-1;;;;;32554:32:0;;;;;;;;;;32465:131::o;30388:419::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30542:15;;30494:21;;30526:53;;-1:-1:-1;;;;;30542:15:0;30560:18;30526:7;:53::i;:::-;-1:-1:-1;30609:15:0;;30590:208;;;-1:-1:-1;;;30590:208:0;;30681:4;30590:208;;;;;;;;;;;;30609:15;30590:208;;;;;;;;;;;;;;30794:3;30590:208;;;;;;-1:-1:-1;;;;;30609:15:0;;;;30590:51;;30648:9;;30590:208;;;;;;;;;;;;;;30648:9;30609:15;30590:208;;;5:2:-1;;;;30:1;27;20:12;5:2;30590:208:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30590:208:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;30388:419:0:o;10743:83::-;10791:27;10797:12;:10;:12::i;:::-;10811:6;10791:5;:27::i;:::-;10743:83;:::o;12602:28::-;;;-1:-1:-1;;;;;12602:28:0;;:::o;4422:95::-;4474:35;4496:12;:10;:12::i;:::-;4474:21;:35::i;:::-;4422:95::o;19025:443::-;19072:7;19092:21;19122:13;;;;;;;;;-1:-1:-1;;;;;19122:13:0;-1:-1:-1;;;;;19116:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19116:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19116:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19116:34:0;;-1:-1:-1;19161:17:0;19181;:15;:17::i;:::-;19161:37;-1:-1:-1;19209:30:0;19242:38;19266:13;19242:19;19161:37;19256:4;19242:19;:13;:19;:::i;:::-;:23;:38;:23;:38;:::i;:::-;19328:13;;19209:71;;-1:-1:-1;19293:22:0;;19318:24;;-1:-1:-1;;;;;19328:13:0;19318:9;:24::i;:::-;19293:49;-1:-1:-1;19353:21:0;19377:52;19424:4;19377:42;19293:49;19396:22;19377:42;:18;:42;:::i;:52::-;19353:76;-1:-1:-1;;;;;;19025:443:0;:::o;23225:149::-;-1:-1:-1;;;;;23345:21:0;;;23313:7;23345:21;;;:10;:21;;;;;;;;23225:149::o;12519:76::-;;;-1:-1:-1;;;;;12519:76:0;;:::o;33392:268::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33498:4;33486:9;:16;;33478:60;;;;;-1:-1:-1;;;33478:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;33571:4;33559:9;:16;;33551:61;;;;;-1:-1:-1;;;33551:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33623:17;:29;33392:268::o;23382:104::-;23446:32;23456:10;23468:9;23446;:32::i;12840:31::-;;;-1:-1:-1;;;;;12840:31:0;;:::o;34408:115::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34493:13:0;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;34493:21:0;;;;;;;;;;34408:115::o;13661:29::-;;;;:::o;31038:94::-;31084:40;31093:12;:10;:12::i;:::-;31107:6;;-1:-1:-1;;;;;31107:6:0;31115:8;31084;:40::i;22647:49::-;;;;;;;;;;;;;;;:::o;34039:108::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34114:18:0;;;;;:11;:18;;;;;:25;;-1:-1:-1;;34114:25:0;34135:4;34114:25;;;34039:108::o;7568:110::-;-1:-1:-1;;;;;7652:18:0;7625:7;7652:18;;;;;;;;;;;;7568:110::o;14816:145::-;-1:-1:-1;14902:16:0;;;;-1:-1:-1;14902:16:0;;-1:-1:-1;14816:145:0:o;4298:116::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4379:27;4398:7;4379:18;:27::i;24976:1149::-;25084:7;25131:12;25117:11;:26;25109:89;;;;-1:-1:-1;;;25109:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25233:23:0;;25211:19;25233:23;;;:14;:23;;;;;;;;25271:17;25267:58;;25312:1;25305:8;;;;;25267:58;-1:-1:-1;;;;;25341:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;25362:16:0;;25341:38;;;;;;;;;:48;;:63;-1:-1:-1;25337:147:0;;-1:-1:-1;;;;;25428:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;25449:16:0;;;;25428:38;;;;;;;;25464:1;25428:44;;;-1:-1:-1;25421:51:0;;25337:147;-1:-1:-1;;;;;25500:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;25496:88:0;;;25571:1;25564:8;;;;;25496:88;25596:12;-1:-1:-1;;25638:16:0;;25665:402;25680:5;25672:13;;:5;:13;;;25665:402;;;25744:1;25727:13;;;25726:19;;;25718:27;;25761:20;;:::i;:::-;-1:-1:-1;;;;;;25784:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;25761:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25831:27;;25827:229;;;25886:8;;;;-1:-1:-1;25879:15:0;;-1:-1:-1;;;;25879:15:0;25827:229;25920:12;;:26;;;-1:-1:-1;25916:140:0;;;25975:6;25967:14;;25916:140;;;26039:1;26030:6;:10;26022:18;;25916:140;25665:402;;;;;-1:-1:-1;;;;;;26084:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;-1:-1:-1;;24976:1149:0;;;;:::o;10834:103::-;10903:26;10913:7;10922:6;10903:9;:26::i;:::-;10834:103;;:::o;32358:99::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32432:8;:17;;-1:-1:-1;;;;;;32432:17:0;-1:-1:-1;;;;;32432:17:0;;;;;;;;;;32358:99::o;16897:708::-;16978:18;;16953:21;16963:10;16953:9;:21::i;:::-;:43;;16945:99;;;;-1:-1:-1;;;16945:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17097:17;;17081:13;;:33;17063:15;:51;17055:101;;;;-1:-1:-1;;;17055:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17184:15;17168:13;:31;17236:9;;17258:23;:21;:23::i;:::-;17300:31;17315:15;17300:14;:31::i;:::-;17427:16;;17383:13;;17377:45;;;-1:-1:-1;;;17377:45:0;;17416:4;17377:45;;;;;;17352:22;;17377:67;;17427:16;;-1:-1:-1;;;;;17383:13:0;;;;17377:30;;:45;;;;;;;;;;;;;;;17383:13;17377:45;;;5:2:-1;;;;30:1;27;20:12;5:2;17377:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17377:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17377:45:0;;:67;:49;:67;:::i;:::-;17352:92;;17465:28;17478:14;17465:12;:28::i;:::-;-1:-1:-1;17519:8:0;;17538:22;;17519:42;;;-1:-1:-1;;;17519:42:0;;;;;;;;;;-1:-1:-1;;17519:8:0;;;-1:-1:-1;;;;;17519:8:0;;:18;;:42;;;;;;;;;;;;;;-1:-1:-1;17519:8:0;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;17519:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17519:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17519:42:0;17579:18;;;;;;;;17519:42;;-1:-1:-1;17579:18:0;;;;;;17519:42;17579:18;;;16897:708;;;:::o;34277:118::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34372:15:0;;;;;:8;:15;;;;;;;-1:-1:-1;;34353:34:0;;34372:15;;;;34371:16;34353:34;;;34277:118::o;31976:370::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32073:22;;32069:215;;32141:2;32120:17;:23;;32112:72;;;;-1:-1:-1;;;32112:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32228:3;32207:17;:24;;32199:73;;;;-1:-1:-1;;;32199:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32302:16;:36;31976:370::o;22962:39::-;;;;;;;;;;;;;:::o;12704:21::-;;;-1:-1:-1;;;;;12704:21:0;;:::o;32823:101::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32898:7;:18;;-1:-1:-1;;;;;;32898:18:0;-1:-1:-1;;;;;32898:18:0;;;;;;;;;;32823:101::o;19476:130::-;19559:13;;19553:45;;;-1:-1:-1;;;19553:45:0;;19592:4;19553:45;;;;;;19526:7;;-1:-1:-1;;;;;19559:13:0;;19553:30;;:45;;;;;;;;;;;;;;19559:13;19553:45;;;5:2:-1;;;;30:1;27;20:12;31425:138:0;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31518:16;:36;;-1:-1:-1;;;;;;31518:36:0;-1:-1:-1;;;;;31518:36:0;;;;;;;;;;31425:138::o;12017:87::-;12089:7;12082:14;;;;;;;;-1:-1:-1;;12082:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12056:13;;12082:14;;12089:7;;12082:14;;12089:7;12082:14;;;;;;;;;;;;;;;;;;;;;;;;13115:37;;;;:::o;35230:245::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35327:2;35316:7;:13;;35308:57;;;;;-1:-1:-1;;;35308:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35396:3;35385:7;:14;;35377:58;;;;;-1:-1:-1;;;35377:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35446:11;:21;35230:245::o;12878:43::-;;;;;;;;;;;;;;;:::o;31286:127::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31373:13;:30;;-1:-1:-1;;;;;;31373:30:0;-1:-1:-1;;;;;31373:30:0;;;;;;;;;;31286:127::o;8688:261::-;8773:4;8790:129;8799:12;:10;:12::i;:::-;8813:7;8822:96;8861:15;8822:96;;;;;;;;;;;;;;;;;:11;:25;8834:12;:10;:12::i;:::-;-1:-1:-1;;;;;8822:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8822:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;33067:119::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33133:7;;33150:8;;33127:43;;;-1:-1:-1;;;33127:43:0;;-1:-1:-1;;;;;33150:8:0;;;33127:43;;;;33160:9;33127:43;;;;;;33133:7;;;;;33127:22;;:43;;;;;;;;;;;;;;33133:7;;33127:43;;;5:2:-1;;;;30:1;27;20:12;5:2;33127:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33127:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;18458:108:0;18507:7;18534:24;18552:4;18534:9;:24::i;:::-;18527:31;;18458:108;:::o;7686:158::-;7755:4;7772:42;7782:12;:10;:12::i;:::-;7796:9;7807:6;7772:9;:42::i;13233:26::-;;;;:::o;19747:125::-;19795:7;19822:42;19846:17;:15;:17::i;:::-;19822:19;:17;:19::i;:::-;:23;:42;:23;:42;:::i;24713:255::-;-1:-1:-1;;;;;24852:23:0;;24805:7;24852:23;;;:14;:23;;;;;;;;24893:16;:67;;24959:1;24893:67;;;-1:-1:-1;;;;;24912:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;24933:16:0;;24912:38;;;;;;;;24948:1;24912:44;;24893:67;24886:74;24713:255;-1:-1:-1;;;24713:255:0:o;12733:49::-;;;-1:-1:-1;;;;;12733:49:0;;:::o;34772:264::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34876:7;34865;:18;;34857:62;;;;;-1:-1:-1;;;34857:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;34949:5;34938:7;:16;;34930:59;;;;;-1:-1:-1;;;34930:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35000:18;:28;34772:264::o;4167:125::-;4231:4;4255:29;:16;4276:7;4255:29;:20;:29;:::i;30932:96::-;30980:40;30989:12;:10;:12::i;:::-;31003:6;;-1:-1:-1;;;;;31003:6:0;31011:8;30980;:40::i;34534:127::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34628:16:0;;;;;;;;:9;:16;;;;;:24;;-1:-1:-1;;34628:24:0;;;;;;;;;;34534:127::o;23494:1211::-;23687:23;22747:80;;;;;;;;;;;;;;;;;;;23816:6;:4;:6::i;:::-;23800:24;;;;;;23843:12;:10;:12::i;:::-;23882:4;23737:165;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23737:165:0;-1:-1:-1;;;;;23737:165:0;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;23737:165:0;;;23713:200;;;;;;23687:226;;23926:18;22882:71;;;;;;;;;;;;;;;;;;;23971:140;;;;;;;;-1:-1:-1;;;;;23971:140:0;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;23971:140:0;;;;;23947:175;;;;;;-1:-1:-1;;;24176:123:0;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;24176:123:0;;;;;;24152:158;;;;;;;;;-1:-1:-1;24343:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23947:175;;-1:-1:-1;24152:158:0;;-1:-1:-1;;;24343:26:0;;;;;;;23971:140;-1:-1:-1;;24343:26:0;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;24343:26:0;;-1:-1:-1;;24343:26:0;;;-1:-1:-1;;;;;;;24388:23:0;;24380:85;;;;-1:-1:-1;;;24380:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24493:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;24484:28;;24476:86;;;;-1:-1:-1;;;24476:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24588:6;24581:3;:13;;24573:75;;;;-1:-1:-1;;;24573:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24666:31;24676:9;24687;24666;:31::i;:::-;24659:38;;;;23494:1211;;;;;;;:::o;18574:443::-;18621:7;18641:21;18671:13;;;;;;;;;-1:-1:-1;;;;;18671:13:0;-1:-1:-1;;;;;18665:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18665:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18665:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18665:34:0;;-1:-1:-1;18710:17:0;18730;:15;:17::i;32937:116::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33003:7;;33020:6;;32997:41;;;-1:-1:-1;;;32997:41:0;;-1:-1:-1;;;;;33020:6:0;;;32997:41;;;;33028:9;32997:41;;;;;;33003:7;;;;;32997:22;;:41;;;;;;;;;;;;;;33003:7;;32997:41;;;5:2:-1;;;;30:1;27;20:12;13703:18:0;;;;;;:::o;12928:40::-;;;;;;;;;;;;;;;:::o;13387:68::-;;;-1:-1:-1;;;;;13387:68:0;;:::o;35048:170::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35143:3;35132:7;:14;;35124:55;;;;;-1:-1:-1;;;35124:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35191:9;:19;35048:170::o;7852:134::-;-1:-1:-1;;;;;7951:18:0;;;7924:7;7951:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7852:134::o;13496:23::-;;;;:::o;13159:31::-;;;;:::o;13462:20::-;;;-1:-1:-1;;;13462:20:0;;;;;:::o;22836:117::-;22882:71;;;;;;;;;;;;;;;;;;22836:117;:::o;13273:33::-;;;;:::o;12975:38::-;;;;;;;;;;;;;;;:::o;13076:32::-;;;;:::o;22568:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;30819:100::-;30869:42;30878:12;:10;:12::i;:::-;30892:8;;-1:-1:-1;;;;;30892:8:0;30902;30869;:42::i;33673:354::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33769:14;;33765:202;;33821:2;33808:9;:15;;33800:70;;;;-1:-1:-1;;;33800:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33906:2;33893:9;:15;;33885:70;;;;-1:-1:-1;;;33885:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33985:22;:34;33673:354::o;13626:28::-;;;;:::o;32608:95::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32679:6;:14;;-1:-1:-1;;;;;;32679:14:0;-1:-1:-1;;;;;32679:14:0;;;;;;;;;;32608:95::o;13021:41::-;;;;;;;;;;;;;;;:::o;13198:24::-;;;;:::o;13566:46::-;;;;:::o;3445:98::-;3525:10;3445:98;:::o;10108:338::-;-1:-1:-1;;;;;10202:19:0;;10194:68;;;;-1:-1:-1;;;10194:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10281:21:0;;10273:68;;;;-1:-1:-1;;;10273:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10354:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10406:32;;;;;;;;;;;;;;;;;10108:338;;;:::o;15179:1669::-;15273:6;;;;:32;;;;-1:-1:-1;;;;;;15283:14:0;;;;;;:8;:14;;;;;;;;:22;;:14;:22;;15273:32;:56;;;;-1:-1:-1;;;;;;15309:12:0;;;;;;:8;:12;;;;;;;;:20;;:12;:20;;15273:56;15270:125;;;15344:51;;-1:-1:-1;;;15344:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15270:125;-1:-1:-1;;;;;15411:16:0;;;;;;:9;:16;;;;;;;;:24;;:16;:24;;:50;;-1:-1:-1;;;;;;15439:14:0;;;;;;:9;:14;;;;;;;;:22;;:14;:22;15411:50;15408:101;;;15477:32;;;-1:-1:-1;;;15477:32:0;;;;;;;;;;;;-1:-1:-1;;;15477:32:0;;;;;;;;;;;;;;15408:101;-1:-1:-1;;;;;15602:17:0;;15531:15;15602:17;;;:11;:17;;;;;;15531:15;;15602:17;;:26;;;:54;;-1:-1:-1;;;;;;15632:15:0;;;;;;:11;:15;;;;;;;;:24;15602:54;15599:1242;;;15685:9;;:14;15681:176;;15733:9;;15722:21;;:6;;:21;:10;:21;:::i;:::-;15713:30;-1:-1:-1;15764:18:0;:6;15713:30;15764:18;:10;:18;:::i;:::-;15826:8;;15755:27;;-1:-1:-1;15796:48:0;;15812:4;;-1:-1:-1;;;;;15826:8:0;15837:6;15796:15;:48::i;:::-;15882:17;;:22;15878:548;;15946:3;;15933:8;;:17;;;:12;:17;:::i;:::-;15922:8;:28;15987:17;;15976:29;;:6;;:29;:10;:29;:::i;:::-;15965:40;-1:-1:-1;16030:20:0;:6;15965:40;16030:20;:10;:20;:::i;:::-;16021:29;;16065:46;16081:4;16095;16102:8;16065:15;:46::i;:::-;16139:10;:22;;;;;;16191:8;;16179;;:20;16176:239;;;16230:16;16241:4;16230:10;:16::i;:::-;16228:19;16219:47;;;;;-1:-1:-1;;;16219:47:0;;;;;;;;;;;;-1:-1:-1;;;16219:47:0;;;;;;;;;;;;;;;16285:48;16309:4;16316;16322:10;;16285:15;:48::i;:::-;16365:1;16352:10;:14;;;16385:8;:12;16176:239;16450:11;;:16;;;;:30;;-1:-1:-1;;;;;;16470:10:0;;;;;;:6;:10;;;;;;;;16450:30;16446:244;;;16496:14;16513:23;16524:11;;16513:6;:10;;:23;;;;:::i;:::-;16551:9;:19;;;;;;16496:40;-1:-1:-1;16593:18:0;:6;16496:40;16593:18;:10;:18;:::i;:::-;16584:27;;16630:44;16646:4;16660;16667:6;16630:15;:44::i;:::-;16446:244;;16715:33;16731:4;16737:2;16741:6;16715:15;:33::i;:::-;15599:1242;;;16793:33;16809:4;16815:2;16819:6;16793:15;:33::i;:::-;15179:1669;;;;;:::o;5900:192::-;5986:7;6022:12;6014:6;;;;6006:29;;;;-1:-1:-1;;;6006:29: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;6006:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6058:5:0;;;5900:192::o;5567:181::-;5625:7;5657:5;;;5681:6;;;;5673:46;;;;;-1:-1:-1;;;5673:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;22250:170;-1:-1:-1;;;;;22333:19:0;;;;;;;:10;:19;;;;;;22318:55;;22333:19;;22366:6;22318:14;:55::i;:::-;22384:28;22396:7;22405:6;22384:11;:28::i;4680:154::-;4748:32;:16;4772:7;4748:32;:23;:32;:::i;:::-;4796:30;;-1:-1:-1;;;;;4796:30:0;;;;;;;;4680:154;:::o;6100:252::-;6158:7;6184:6;6180:47;;-1:-1:-1;6214:1:0;6207:8;;6180:47;6251:5;;;6255:1;6251;:5;:1;6275:5;;;;;:10;6267:56;;;;-1:-1:-1;;;6267:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:132;6418:7;6445:39;6449:1;6452;6445:39;;;;;;;;;;;;;;;;;:3;:39::i;26133:394::-;-1:-1:-1;;;;;26250:21:0;;;26224:23;26250:21;;;:10;:21;;;;;;;;;;26309:20;26261:9;26309;:20::i;:::-;-1:-1:-1;;;;;26341:21:0;;;;;;;:10;:21;;;;;;:33;;-1:-1:-1;;;;;;26341:33:0;;;;;;;;;;26392:54;;26282:47;;-1:-1:-1;26341:33:0;26392:54;;;;;;26341:21;26392:54;26459:60;26474:15;26491:9;26502:16;26459:14;:60::i;4525:146::-;4590:29;:16;4611:7;4590:29;:20;:29;:::i;:::-;4635:28;;-1:-1:-1;;;;;4635:28:0;;;;;;;;4525:146;:::o;10454:232::-;10526:22;10532:7;10541:6;10526:5;:22::i;:::-;10559:119;10568:7;10577:12;:10;:12::i;:::-;10591:86;10630:6;10591:86;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10591:20:0;;;;;;:11;:20;;;;;;10612:12;:10;:12::i;17617:113::-;17689:17;;:33;;17711:10;17689:33;:21;:33;:::i;17742:256::-;17812:8;;-1:-1:-1;;;;;17812:8:0;:22;17809:182;;17869:8;;17850:53;;;-1:-1:-1;;;17850:53:0;;;;;;;;;;-1:-1:-1;;;;;17869:8:0;;;;17850:37;;:53;;;;;17869:8;;17850:53;;;;;;;;17869:8;;17850:53;;;5:2:-1;;;;30:1;27;20:12;5:2;17850:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17928:1:0;17917:9;:12;-1:-1:-1;;17949:29:0;;;;;;;;;;;;;;;;;17742:256;:::o;18006:438::-;18095:13;;18118:15;;18089:55;;;-1:-1:-1;;;18089:55:0;;-1:-1:-1;;;;;18118:15:0;;;18089:55;;;;;;;;;;;;18062:14;;18095:13;;;;;18089:28;;:55;;;;;;;;;;;;;;;18062:14;18095:13;18089:55;;;5:2:-1;;;;30:1;27;20:12;5:2;18089:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18089:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;18188:15:0;;18392:8;;18169:267;;;-1:-1:-1;;;18169:267:0;;18293:4;18169:267;;;;;;;;;;-1:-1:-1;18169:267:0;;;;;;;;;;;;-1:-1:-1;;;;;18188:15:0;18392:8;;;;;18169:267;;;;18420:15;18169:267;;;;;;18188:15;;;;;18169:97;;:267;;;;;18089:55;;18169:267;;;;;;;;;18188:15;18169:267;;;5:2:-1;;;;30:1;27;20:12;5:2;18169:267:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18169:267:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18169:267:0;;18006:438;-1:-1:-1;;18006:438:0:o;11413:203::-;11485:4;-1:-1:-1;;;;;11510:21:0;;11502:68;;;;-1:-1:-1;;;11502:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11588:20:0;:11;:20;;;;;;;;;;;;;;;11413:203::o;28286:153::-;28396:9;28286:153;:::o;5756:136::-;5814:7;5841:43;5845:1;5848;5841:43;;;;;;;;;;;;;;;;;:3;:43::i;21875:189::-;-1:-1:-1;;;;;21971:16:0;;;;;;;:10;:16;;;;;;;21989:14;;;;;;;;21956:56;;21971:16;;;;21989:14;22005:6;21956:14;:56::i;:::-;22023:33;22039:4;22045:2;22049:6;22023:15;:33::i;:::-;21875:189;;;:::o;26535:851::-;26641:6;-1:-1:-1;;;;;26631:16:0;:6;-1:-1:-1;;;;;26631:16:0;;;:30;;;;;26660:1;26651:6;:10;26631:30;26627:752;;;-1:-1:-1;;;;;26682:20:0;;;26678:337;;-1:-1:-1;;;;;26742:22:0;;26723:16;26742:22;;;:14;:22;;;;;;;;;26803:13;:60;;26862:1;26803:60;;;-1:-1:-1;;;;;26819:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;26839:13:0;;26819:34;;;;;;;;26851:1;26819:40;;26803:60;26783:80;-1:-1:-1;26882:17:0;26902:21;26783:80;26916:6;26902:21;:13;:21;:::i;:::-;26882:41;;26942:57;26959:6;26967:9;26978;26989;26942:16;:57::i;:::-;26678:337;;;;-1:-1:-1;;;;;27035:20:0;;;27031:337;;-1:-1:-1;;;;;27095:22:0;;27076:16;27095:22;;;:14;:22;;;;;;;;;27156:13;:60;;27215:1;27156:60;;;-1:-1:-1;;;;;27172:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;27192:13:0;;27172:34;;;;;;;;27204:1;27172:40;;27156:60;27136:80;-1:-1:-1;27235:17:0;27255:21;27136:80;27269:6;27255:21;:13;:21;:::i;:::-;27235:41;;27295:57;27312:6;27320:9;27331;27342;27295:16;:57::i;9752:348::-;-1:-1:-1;;;;;9828:21:0;;9820:67;;;;-1:-1:-1;;;9820:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9921:68;9944:6;9921:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9921:18:0;;:9;:18;;;;;;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;9900:18:0;;:9;:18;;;;;;;;;;:89;10015:12;;:24;;10032:6;10015:24;:16;:24;:::i;:::-;10000:12;:39;10055:37;;;;;;;;10081:1;;-1:-1:-1;;;;;10055:37:0;;;;;;;;;;;;9752:348;;:::o;11222:183::-;11302:18;11306:4;11312:7;11302:3;:18::i;:::-;11294:64;;;;-1:-1:-1;;;11294:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11369:20:0;11392:5;11369:20;;;;;;;;;;;:28;;-1:-1:-1;;11369:28:0;;;11222:183::o;6500:193::-;6586:7;6623:12;6616:5;6608:28;;;;-1:-1:-1;;;6608:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6608:28:0;;6647:9;6663:1;6659;:5;;;;;;;6500:193;-1:-1:-1;;;;;6500:193:0:o;11036:178::-;11114:18;11118:4;11124:7;11114:3;:18::i;:::-;11113:19;11105:63;;;;;-1:-1:-1;;;11105:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11179:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;11179:27:0;11202:4;11179:27;;;11036:178::o;8957:471::-;-1:-1:-1;;;;;9055:20:0;;9047:70;;;;-1:-1:-1;;;9047:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9136:23:0;;9128:71;;;;-1:-1:-1;;;9128:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9232;9254:6;9232:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9232:17:0;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;9212:17:0;;;:9;:17;;;;;;;;;;;:91;;;;9337:20;;;;;;;:32;;9362:6;9337:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;9314:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;9385:35;;;;;;;9314:20;;9385:35;;;;;;;;;;;;;8957:471;;;:::o;27394:715::-;27573:18;27594:87;27601:12;27594:87;;;;;;;;;;;;;;;;;:6;:87::i;:::-;27573:108;;27713:1;27698:12;:16;;;:85;;;;-1:-1:-1;;;;;;27718:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;27741:16:0;;27718:40;;;;;;;;;:50;:65;;;:50;;:65;27698:85;27694:339;;;-1:-1:-1;;;;;27800:22:0;;;;;;:11;:22;;;;;;;;:40;-1:-1:-1;;27823:16:0;;27800:40;;;;;;;;27838:1;27800:46;:57;;;27694:339;;;27929:33;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27890:22:0;;-1:-1:-1;27890:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;-1:-1:-1;;27890:72:0;;;;;;;;;;;;;27977:25;;;:14;:25;;;;;;:44;;28005:16;;;27977:44;;;;;;;;;;27694:339;28050:51;;;;;;;;;;;;;;-1:-1:-1;;;;;28050:51:0;;;;;;;;;;;27394:715;;;;;:::o;28117:161::-;28192:6;28230:12;28223:5;28219:9;;28211:32;;;;-1:-1:-1;;;28211:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;28211:32:0;-1:-1:-1;28268:1:0;;28117:161;-1:-1:-1;;28117:161:0:o;30178:5300::-;;;;;;;;;;-1:-1:-1;30178:5300:0;;;;;;;;:::o;9436:308::-;-1:-1:-1;;;;;9512:21:0;;9504:65;;;;;-1:-1:-1;;;9504:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9597:12;;:24;;9614:6;9597:24;:16;:24;:::i;:::-;9582:12;:39;-1:-1:-1;;;;;9653:18:0;;:9;:18;;;;;;;;;;;:30;;9676:6;9653:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;9632:18:0;;:9;:18;;;;;;;;;;;:51;;;;9699:37;;;;;;;9632:18;;:9;;9699:37;;;;;;;;;;9436:308;;:::o

Swarm Source

bzzr://54d725ed1626a8974fb9f11aad7cd6f4fced9bd65236e47193bd4a4ab7db8bf5

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

A deflationary DEFI token that incorporates transactional lotto pool rewards with buyback features and anti-dump mechanics.

Validator Index Block Amount
View All Withdrawals

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

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