ERC-20
Overview
Max Total Supply
1,000,000,000 DiamondFi
Holders
27
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000000001 DiamondFiValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DiamondFi
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-23 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.19; interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address UNISWAP_V2_PAIR); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } contract DiamondFi is IERC20, Ownable { /* -------------------------------------------------------------------------- */ /* events */ /* -------------------------------------------------------------------------- */ event Reflect(uint256 amountReflected, uint256 newTotalProportion); /* -------------------------------------------------------------------------- */ /* constants */ /* -------------------------------------------------------------------------- */ address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; uint256 constant MAX_FEE = 10; /* -------------------------------------------------------------------------- */ /* states */ /* -------------------------------------------------------------------------- */ IUniswapV2Router02 public constant UNISWAP_V2_ROUTER = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public immutable UNISWAP_V2_PAIR; struct Fee { uint8 reflection; uint8 marketing; uint8 lp; uint8 buyback; uint8 burn; uint128 total; } string _name = "DiamondFi"; string _symbol = "DiamondFi"; uint256 _totalSupply = 1_000_000_000 ether; uint256 public _maxTxAmount = _totalSupply * 2 / 100; /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */ mapping(address => uint256) public _rOwned; uint256 public _totalProportion = _totalSupply; mapping(address => mapping(address => uint256)) _allowances; bool public limitsEnabled = true; mapping(address => bool) isFeeExempt; mapping(address => bool) isTxLimitExempt; Fee public buyFee = Fee({reflection: 1, marketing: 1, lp: 1, buyback: 1, burn: 1, total: 5}); Fee public sellFee = Fee({reflection: 1, marketing: 1, lp: 1, buyback: 1, burn: 1, total: 5}); address private marketingFeeReceiver; address private lpFeeReceiver; address private buybackFeeReceiver; bool public claimingFees = true; uint256 public swapThreshold = (_totalSupply * 2) / 1000; bool inSwap; mapping(address => bool) public blacklists; /* -------------------------------------------------------------------------- */ /* modifiers */ /* -------------------------------------------------------------------------- */ modifier swapping() { inSwap = true; _; inSwap = false; } /* -------------------------------------------------------------------------- */ /* constructor */ /* -------------------------------------------------------------------------- */ constructor() { // create uniswap pair address _uniswapPair = IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH()); UNISWAP_V2_PAIR = _uniswapPair; _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max; _allowances[address(this)][tx.origin] = type(uint256).max; isTxLimitExempt[address(this)] = true; isTxLimitExempt[address(UNISWAP_V2_ROUTER)] = true; isTxLimitExempt[_uniswapPair] = true; isTxLimitExempt[tx.origin] = true; isFeeExempt[tx.origin] = true; marketingFeeReceiver = 0x08f10D0f874dDAba2fDF7D1755e0652E073ce873; lpFeeReceiver = 0x08f10D0f874dDAba2fDF7D1755e0652E073ce873; buybackFeeReceiver = 0x08f10D0f874dDAba2fDF7D1755e0652E073ce873; _rOwned[tx.origin] = _totalSupply; emit Transfer(address(0), tx.origin, _totalSupply); } receive() external payable {} /* -------------------------------------------------------------------------- */ /* ERC20 */ /* -------------------------------------------------------------------------- */ function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance"); _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } /* -------------------------------------------------------------------------- */ /* views */ /* -------------------------------------------------------------------------- */ function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return 18; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory) { return _symbol; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function tokensToProportion(uint256 tokens) public view returns (uint256) { return tokens * _totalProportion / _totalSupply; } function tokenFromReflection(uint256 proportion) public view returns (uint256) { return proportion * _totalSupply / _totalProportion; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO); } /* -------------------------------------------------------------------------- */ /* owners */ /* -------------------------------------------------------------------------- */ function clearStuckBalance() external onlyOwner { (bool success,) = payable(msg.sender).call{value: address(this).balance}(""); require(success); } function clearStuckToken() external onlyOwner { _transferFrom(address(this), msg.sender, balanceOf(address(this))); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { claimingFees = _enabled; swapThreshold = _amount; } function changeFees( uint8 reflectionFeeBuy, uint8 marketingFeeBuy, uint8 lpFeeBuy, uint8 buybackFeeBuy, uint8 burnFeeBuy, uint8 reflectionFeeSell, uint8 marketingFeeSell, uint8 lpFeeSell, uint8 buybackFeeSell, uint8 burnFeeSell ) external onlyOwner { uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy; uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell; require(__totalBuyFee <= MAX_FEE, "Buy fees too high"); require(__totalSellFee <= MAX_FEE, "Sell fees too high"); buyFee = Fee({ reflection: reflectionFeeBuy, marketing: reflectionFeeBuy, lp: reflectionFeeBuy, buyback: reflectionFeeBuy, burn: burnFeeBuy, total: __totalBuyFee }); sellFee = Fee({ reflection: reflectionFeeSell, marketing: reflectionFeeSell, lp: reflectionFeeSell, buyback: reflectionFeeSell, burn: burnFeeSell, total: __totalSellFee }); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner { marketingFeeReceiver = m_; lpFeeReceiver = lp_; buybackFeeReceiver = b_; } function setMaxTxBasisPoint(uint256 p_) external onlyOwner { _maxTxAmount = _totalSupply * p_ / 10000; } function setLimitsEnabled(bool e_) external onlyOwner { limitsEnabled = e_; } function blacklist(address _address, bool _isBlacklisting) external onlyOwner { blacklists[_address] = _isBlacklisting; } /* -------------------------------------------------------------------------- */ /* private */ /* -------------------------------------------------------------------------- */ function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!blacklists[recipient] && !blacklists[sender], "Blacklisted"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (limitsEnabled && !isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } if (_shouldSwapBack()) { _swapBack(); } uint256 proportionAmount = tokensToProportion(amount); require(_rOwned[sender] >= proportionAmount, "Insufficient Balance"); _rOwned[sender] = _rOwned[sender] - proportionAmount; uint256 proportionReceived = _shouldTakeFee(sender, recipient) ? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount) : proportionAmount; _rOwned[recipient] = _rOwned[recipient] + proportionReceived; emit Transfer(sender, recipient, tokenFromReflection(proportionReceived)); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 proportionAmount = tokensToProportion(amount); require(_rOwned[sender] >= proportionAmount, "Insufficient Balance"); _rOwned[sender] = _rOwned[sender] - proportionAmount; _rOwned[recipient] = _rOwned[recipient] + proportionAmount; emit Transfer(sender, recipient, amount); return true; } function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) { Fee memory __buyFee = buyFee; Fee memory __sellFee = sellFee; uint256 proportionFeeAmount = buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100; // reflect uint256 proportionReflected = buying == true ? proportionFeeAmount * __buyFee.reflection / __buyFee.total : proportionFeeAmount * __sellFee.reflection / __sellFee.total; _totalProportion = _totalProportion - proportionReflected; // take fees uint256 _proportionToContract = proportionFeeAmount - proportionReflected; if (_proportionToContract > 0) { _rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract; emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract)); } emit Reflect(proportionReflected, _totalProportion); return proportionAmount - proportionFeeAmount; } function _shouldSwapBack() internal view returns (bool) { return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold; } function _swapBack() internal swapping { Fee memory __sellFee = sellFee; uint256 __swapThreshold = swapThreshold; uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total; uint256 amountToSwap = __swapThreshold - amountToBurn; approve(address(UNISWAP_V2_ROUTER), amountToSwap); // burn _transferFrom(address(this), DEAD, amountToBurn); // swap address[] memory path = new address[](2); path[0] = address(this); path[1] = UNISWAP_V2_ROUTER.WETH(); UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn; uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee; uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee; uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee; // send (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}(""); } function _shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"p_","type":"uint256"}],"name":"setMaxTxBasisPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600960a0908152684469616d6f6e64466960b81b60c05260019061002890826104f7565b506040805180820190915260098152684469616d6f6e64466960b81b602082015260029061005690826104f7565b506b033b2e3c9fd0803ce80000006003556064600354600261007891906105b1565b61008291906105da565b60045560035460068190556008805460ff191660019081179091556040805160c08082018352838252602080830185905282840185905260608084018690526080808501879052600560a0958601819052600b8054650501010101016001600160a81b0319918216811790925588519687018952898752948601899052968501889052918401879052830195909552910192909252600c8054909216179055600f805460ff60a01b1916600160a01b1790556103e8906101439060026105b1565b61014d91906105da565b60105534801561015b575f5ffd5b5061016533610410565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101da91906105f9565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610239573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025d91906105f9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156102a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102cb91906105f9565b6001600160a01b0381166080819052305f818152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845282528083205f19908190553280855282852091909155938352600a82528083208054600160ff1991821681179092557fc90215bb1b0ac6bfa50a3c02c4b559c695b6a8e828048a88e327592fc55c5d2c80548216831790559584528184208054871682179055848452818420805487168217905560098352818420805490961617909455600d80547308f10d0f874ddaba2fdf7d1755e0652e073ce8736001600160a01b03199182168117909255600e8054821683179055600f80549091169091179055600354600582528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350610626565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061048757607f821691505b6020821081036104a557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104f257805f5260205f20601f840160051c810160208510156104d05750805b601f840160051c820191505b818110156104ef575f81556001016104dc565b50505b505050565b81516001600160401b038111156105105761051061045f565b6105248161051e8454610473565b846104ab565b6020601f821160018114610556575f831561053f5750848201515b5f19600385901b1c1916600184901b1784556104ef565b5f84815260208120601f198516915b828110156105855787850151825560209485019460019092019101610565565b50848210156105a257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b80820281158282048414176105d457634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826105f457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610609575f5ffd5b81516001600160a01b038116811461061f575f5ffd5b9392505050565b608051611fac61064c5f395f818161072e015281816111c601526114700152611fac5ff3fe608060405260043610610215575f3560e01c8063571ac8b01161011e578063b0f7ec38116100a8578063df20fd491161006d578063df20fd49146106c0578063e186ec74146106df578063f2fde38b146106fe578063f40acc3d1461071d578063f84ba65d14610750575f5ffd5b8063b0f7ec381461060a578063c38a31de1461062a578063d7c0103214610649578063d85a282814610668578063dd62ed3e1461067c575f5ffd5b80637d1db4a5116100ee5780637d1db4a51461056b5780638da5cb5b1461058057806395d89b41146105b0578063a82ed9ec146105c4578063a9059cbb146105eb575f5ffd5b8063571ac8b0146104fa578063658d4b7f1461051957806370a0823114610538578063715018a614610557575f5ffd5b80632b14ca561161019f578063364333f41161016f578063364333f414610436578063404e51291461044c57806341aea9de1461046b57806345ce53651461048a57806347062402146104a9575f5ffd5b80632b14ca561461034d5780632d838119146103e3578063313ce567146104025780633582ad231461041d575f5ffd5b806316c02129116101e557806316c02129146102c357806317800287146102f157806318160ddd1461030657806323b872dd1461031a5780632b112e4914610339575f5ffd5b80630445b6671461022057806306fdde0314610248578063095ea7b3146102695780630cfc15f914610298575f5ffd5b3661021c57005b5f5ffd5b34801561022b575f5ffd5b5061023560105481565b6040519081526020015b60405180910390f35b348015610253575f5ffd5b5061025c61076f565b60405161023f9190611b57565b348015610274575f5ffd5b50610288610283366004611ba0565b6107ff565b604051901515815260200161023f565b3480156102a3575f5ffd5b506102356102b2366004611bca565b60056020525f908152604090205481565b3480156102ce575f5ffd5b506102886102dd366004611bca565b60126020525f908152604090205460ff1681565b3480156102fc575f5ffd5b5061023560065481565b348015610311575f5ffd5b50600354610235565b348015610325575f5ffd5b50610288610334366004611be5565b61086b565b348015610344575f5ffd5b50610235610973565b348015610358575f5ffd5b50600c5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c00161023f565b3480156103ee575f5ffd5b506102356103fd366004611c23565b6109a4565b34801561040d575f5ffd5b506040516012815260200161023f565b348015610428575f5ffd5b506008546102889060ff1681565b348015610441575f5ffd5b5061044a6109c0565b005b348015610457575f5ffd5b5061044a610466366004611c4e565b610a1c565b348015610476575f5ffd5b5061044a610485366004611c81565b610a4e565b348015610495575f5ffd5b506102356104a4366004611c23565b610a69565b3480156104b4575f5ffd5b50600b5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b348015610505575f5ffd5b50610288610514366004611bca565b610a7b565b348015610524575f5ffd5b5061044a610533366004611c4e565b610a87565b348015610543575f5ffd5b50610235610552366004611bca565b610ab9565b348015610562575f5ffd5b5061044a610ada565b348015610576575f5ffd5b5061023560045481565b34801561058b575f5ffd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156105bb575f5ffd5b5061025c610aed565b3480156105cf575f5ffd5b50610598737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156105f6575f5ffd5b50610288610605366004611ba0565b610afc565b348015610615575f5ffd5b50600f5461028890600160a01b900460ff1681565b348015610635575f5ffd5b5061044a610644366004611caa565b610b08565b348015610654575f5ffd5b5061044a610663366004611d5e565b610e45565b348015610673575f5ffd5b5061044a610e8c565b348015610687575f5ffd5b50610235610696366004611da6565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106cb575f5ffd5b5061044a6106da366004611ddd565b610ea7565b3480156106ea575f5ffd5b5061044a6106f9366004611c23565b610ed1565b348015610709575f5ffd5b5061044a610718366004611bca565b610efa565b348015610728575f5ffd5b506105987f000000000000000000000000000000000000000000000000000000000000000081565b34801561075b575f5ffd5b5061044a61076a366004611c4e565b610f70565b60606001805461077e90611df7565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa90611df7565b80156107f55780601f106107cc576101008083540402835291602001916107f5565b820191905f5260205f20905b8154815290600101906020018083116107d857829003601f168201915b5050505050905090565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108599086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461095e576001600160a01b0384165f90815260076020908152604080832033845290915290205482111561090c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6001600160a01b0384165f90815260076020908152604080832033845290915290205461093a908390611e43565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610969848484610fa2565b90505b9392505050565b5f61097d5f610ab9565b61098861dead610ab9565b6003546109959190611e43565b61099f9190611e43565b905090565b5f600654600354836109b69190611e56565b6108659190611e6d565b6109c8611298565b6040515f90339047908381818185875af1925050503d805f8114610a07576040519150601f19603f3d011682016040523d82523d5f602084013e610a0c565b606091505b5050905080610a19575f5ffd5b50565b610a24611298565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b610a56611298565b6008805460ff1916911515919091179055565b5f600354600654836109b69190611e56565b5f610865825f196107ff565b610a8f611298565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b6001600160a01b0381165f90815260056020526040812054610865906109a4565b610ae2611298565b610aeb5f6112f1565b565b60606002805461077e90611df7565b5f61096c338484610fa2565b610b10611298565b5f86888a610b1e8d8f611e8c565b610b289190611e8c565b610b329190611e8c565b610b3c9190611e8c565b60ff1690505f828486610b4f898b611e8c565b610b599190611e8c565b610b639190611e8c565b610b6d9190611e8c565b60ff169050600a826001600160801b03161115610bc05760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b6044820152606401610903565b600a816001600160801b03161115610c0f5760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b6044820152606401610903565b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836001600160801b0316815250600b5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826001600160801b0316815250600c5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b610e4d611298565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b610e94611298565b610a193033610ea230610ab9565b610fa2565b610eaf611298565b600f8054921515600160a01b0260ff60a01b1990931692909217909155601055565b610ed9611298565b61271081600354610eea9190611e56565b610ef49190611e6d565b60045550565b610f02611298565b6001600160a01b038116610f675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610903565b610a19816112f1565b610f78611298565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0382165f9081526012602052604081205460ff16158015610fe257506001600160a01b0384165f9081526012602052604090205460ff16155b61101c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610903565b60115460ff161561103957611032848484611340565b905061096c565b60085460ff16801561106357506001600160a01b0384165f908152600a602052604090205460ff16155b801561108757506001600160a01b0383165f908152600a602052604090205460ff16155b156110ef576004548211156110ef5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610903565b6110f7611464565b15611104576111046114d0565b5f61110e83610a69565b6001600160a01b0386165f9081526005602052604090205490915081111561116f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f90815260056020526040902054611192908290611e43565b6001600160a01b0386165f908152600560205260408120919091556111b786866118a7565b6111c1578161120d565b61120d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614611203575f611206565b60015b87846118eb565b6001600160a01b0386165f90815260056020526040902054909150611233908290611ea5565b6001600160a01b038087165f8181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61127b846109a4565b60405190815260200160405180910390a350600195945050505050565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610903565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f61134b83610a69565b6001600160a01b0386165f908152600560205260409020549091508111156113ac5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f908152600560205260409020546113cf908290611e43565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546113fe908290611ea5565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114519087815260200190565b60405180910390a3506001949350505050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906114a1575060115460ff16155b80156114b65750600f54600160a01b900460ff165b801561099f57506010546114c930610ab9565b1015905090565b60118054600160ff199091161790556040805160c081018252600c5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a0820181905260105491925f91906115589084611e56565b6115629190611e6d565b90505f61156f8284611e43565b905061158f737a250d5630b4cf539739df2c5dacb4c659f2488d826107ff565b5061159d3061dead84610fa2565b506040805160028082526060820183525f9260208301908036833701905050905030815f815181106115d1576115d1611eb8565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611641573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116659190611ecc565b8160018151811061167857611678611eb8565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116cf9085905f90869030904290600401611ee7565b5f604051808303815f87803b1580156116e6575f5ffd5b505af11580156116f8573d5f5f3e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a0015161171f9190611f57565b6117299190611f57565b6001600160801b031690505f81886020015160ff16846117499190611e56565b6117539190611e6d565b90505f82896040015160ff168561176a9190611e56565b6117749190611e6d565b90505f838a6060015160ff168661178b9190611e56565b6117959190611e6d565b600d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146117e4576040519150601f19603f3d011682016040523d82523d5f602084013e6117e9565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611836576040519150601f19603f3d011682016040523d82523d5f602084013e61183b565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611888576040519150601f19603f3d011682016040523d82523d5f602084013e61188d565b606091505b50506011805460ff19169055505050505050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff1615801561096c5750506001600160a01b03165f9081526009602052604090205460ff1615919050565b6040805160c08082018352600b5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600c54808b168d529889048a16978c019790975294870488169b8a019b909b529185048616908801528304909316968501969096529190910416928101929092525f91828615156001146119e05760648260a001516001600160801b0316866119d19190611e56565b6119db9190611e6d565b611a05565b60648360a001516001600160801b0316866119fb9190611e56565b611a059190611e6d565b90505f600188151514611a41578260a001516001600160801b0316835f015160ff1683611a329190611e56565b611a3c9190611e6d565b611a6b565b8360a001516001600160801b0316845f015160ff1683611a619190611e56565b611a6b9190611e6d565b905080600654611a7b9190611e43565b6006555f611a898284611e43565b90508015611b0357305f90815260056020526040902054611aab908290611ea5565b305f818152600560205260409020919091556001600160a01b0389167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611af1846109a4565b60405190815260200160405180910390a35b6006546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a1611b4a8388611e43565b9998505050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610a19575f5ffd5b5f5f60408385031215611bb1575f5ffd5b8235611bbc81611b8c565b946020939093013593505050565b5f60208284031215611bda575f5ffd5b813561096c81611b8c565b5f5f5f60608486031215611bf7575f5ffd5b8335611c0281611b8c565b92506020840135611c1281611b8c565b929592945050506040919091013590565b5f60208284031215611c33575f5ffd5b5035919050565b80358015158114611c49575f5ffd5b919050565b5f5f60408385031215611c5f575f5ffd5b8235611c6a81611b8c565b9150611c7860208401611c3a565b90509250929050565b5f60208284031215611c91575f5ffd5b61096c82611c3a565b803560ff81168114611c49575f5ffd5b5f5f5f5f5f5f5f5f5f5f6101408b8d031215611cc4575f5ffd5b611ccd8b611c9a565b9950611cdb60208c01611c9a565b9850611ce960408c01611c9a565b9750611cf760608c01611c9a565b9650611d0560808c01611c9a565b9550611d1360a08c01611c9a565b9450611d2160c08c01611c9a565b9350611d2f60e08c01611c9a565b9250611d3e6101008c01611c9a565b9150611d4d6101208c01611c9a565b90509295989b9194979a5092959850565b5f5f5f60608486031215611d70575f5ffd5b8335611d7b81611b8c565b92506020840135611d8b81611b8c565b91506040840135611d9b81611b8c565b809150509250925092565b5f5f60408385031215611db7575f5ffd5b8235611dc281611b8c565b91506020830135611dd281611b8c565b809150509250929050565b5f5f60408385031215611dee575f5ffd5b611bbc83611c3a565b600181811c90821680611e0b57607f821691505b602082108103611e2957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561086557610865611e2f565b808202811582820484141761086557610865611e2f565b5f82611e8757634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561086557610865611e2f565b8082018082111561086557610865611e2f565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611edc575f5ffd5b815161096c81611b8c565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611f375783516001600160a01b0316835260209384019390920191600101611f10565b50506001600160a01b039590951660608401525050608001529392505050565b6001600160801b03828116828216039081111561086557610865611e2f56fea26469706673582212202ff66045952d4d1261d3df1a81e58801370e9347b4a8f198b08f2bec4082390664736f6c634300081b0033
Deployed Bytecode
0x608060405260043610610215575f3560e01c8063571ac8b01161011e578063b0f7ec38116100a8578063df20fd491161006d578063df20fd49146106c0578063e186ec74146106df578063f2fde38b146106fe578063f40acc3d1461071d578063f84ba65d14610750575f5ffd5b8063b0f7ec381461060a578063c38a31de1461062a578063d7c0103214610649578063d85a282814610668578063dd62ed3e1461067c575f5ffd5b80637d1db4a5116100ee5780637d1db4a51461056b5780638da5cb5b1461058057806395d89b41146105b0578063a82ed9ec146105c4578063a9059cbb146105eb575f5ffd5b8063571ac8b0146104fa578063658d4b7f1461051957806370a0823114610538578063715018a614610557575f5ffd5b80632b14ca561161019f578063364333f41161016f578063364333f414610436578063404e51291461044c57806341aea9de1461046b57806345ce53651461048a57806347062402146104a9575f5ffd5b80632b14ca561461034d5780632d838119146103e3578063313ce567146104025780633582ad231461041d575f5ffd5b806316c02129116101e557806316c02129146102c357806317800287146102f157806318160ddd1461030657806323b872dd1461031a5780632b112e4914610339575f5ffd5b80630445b6671461022057806306fdde0314610248578063095ea7b3146102695780630cfc15f914610298575f5ffd5b3661021c57005b5f5ffd5b34801561022b575f5ffd5b5061023560105481565b6040519081526020015b60405180910390f35b348015610253575f5ffd5b5061025c61076f565b60405161023f9190611b57565b348015610274575f5ffd5b50610288610283366004611ba0565b6107ff565b604051901515815260200161023f565b3480156102a3575f5ffd5b506102356102b2366004611bca565b60056020525f908152604090205481565b3480156102ce575f5ffd5b506102886102dd366004611bca565b60126020525f908152604090205460ff1681565b3480156102fc575f5ffd5b5061023560065481565b348015610311575f5ffd5b50600354610235565b348015610325575f5ffd5b50610288610334366004611be5565b61086b565b348015610344575f5ffd5b50610235610973565b348015610358575f5ffd5b50600c5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c00161023f565b3480156103ee575f5ffd5b506102356103fd366004611c23565b6109a4565b34801561040d575f5ffd5b506040516012815260200161023f565b348015610428575f5ffd5b506008546102889060ff1681565b348015610441575f5ffd5b5061044a6109c0565b005b348015610457575f5ffd5b5061044a610466366004611c4e565b610a1c565b348015610476575f5ffd5b5061044a610485366004611c81565b610a4e565b348015610495575f5ffd5b506102356104a4366004611c23565b610a69565b3480156104b4575f5ffd5b50600b5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b348015610505575f5ffd5b50610288610514366004611bca565b610a7b565b348015610524575f5ffd5b5061044a610533366004611c4e565b610a87565b348015610543575f5ffd5b50610235610552366004611bca565b610ab9565b348015610562575f5ffd5b5061044a610ada565b348015610576575f5ffd5b5061023560045481565b34801561058b575f5ffd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156105bb575f5ffd5b5061025c610aed565b3480156105cf575f5ffd5b50610598737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156105f6575f5ffd5b50610288610605366004611ba0565b610afc565b348015610615575f5ffd5b50600f5461028890600160a01b900460ff1681565b348015610635575f5ffd5b5061044a610644366004611caa565b610b08565b348015610654575f5ffd5b5061044a610663366004611d5e565b610e45565b348015610673575f5ffd5b5061044a610e8c565b348015610687575f5ffd5b50610235610696366004611da6565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106cb575f5ffd5b5061044a6106da366004611ddd565b610ea7565b3480156106ea575f5ffd5b5061044a6106f9366004611c23565b610ed1565b348015610709575f5ffd5b5061044a610718366004611bca565b610efa565b348015610728575f5ffd5b506105987f000000000000000000000000df97b3734e3e8e15176a160f841c8768468c216281565b34801561075b575f5ffd5b5061044a61076a366004611c4e565b610f70565b60606001805461077e90611df7565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa90611df7565b80156107f55780601f106107cc576101008083540402835291602001916107f5565b820191905f5260205f20905b8154815290600101906020018083116107d857829003601f168201915b5050505050905090565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108599086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461095e576001600160a01b0384165f90815260076020908152604080832033845290915290205482111561090c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6001600160a01b0384165f90815260076020908152604080832033845290915290205461093a908390611e43565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610969848484610fa2565b90505b9392505050565b5f61097d5f610ab9565b61098861dead610ab9565b6003546109959190611e43565b61099f9190611e43565b905090565b5f600654600354836109b69190611e56565b6108659190611e6d565b6109c8611298565b6040515f90339047908381818185875af1925050503d805f8114610a07576040519150601f19603f3d011682016040523d82523d5f602084013e610a0c565b606091505b5050905080610a19575f5ffd5b50565b610a24611298565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b610a56611298565b6008805460ff1916911515919091179055565b5f600354600654836109b69190611e56565b5f610865825f196107ff565b610a8f611298565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b6001600160a01b0381165f90815260056020526040812054610865906109a4565b610ae2611298565b610aeb5f6112f1565b565b60606002805461077e90611df7565b5f61096c338484610fa2565b610b10611298565b5f86888a610b1e8d8f611e8c565b610b289190611e8c565b610b329190611e8c565b610b3c9190611e8c565b60ff1690505f828486610b4f898b611e8c565b610b599190611e8c565b610b639190611e8c565b610b6d9190611e8c565b60ff169050600a826001600160801b03161115610bc05760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b6044820152606401610903565b600a816001600160801b03161115610c0f5760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b6044820152606401610903565b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836001600160801b0316815250600b5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826001600160801b0316815250600c5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b610e4d611298565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b610e94611298565b610a193033610ea230610ab9565b610fa2565b610eaf611298565b600f8054921515600160a01b0260ff60a01b1990931692909217909155601055565b610ed9611298565b61271081600354610eea9190611e56565b610ef49190611e6d565b60045550565b610f02611298565b6001600160a01b038116610f675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610903565b610a19816112f1565b610f78611298565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0382165f9081526012602052604081205460ff16158015610fe257506001600160a01b0384165f9081526012602052604090205460ff16155b61101c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610903565b60115460ff161561103957611032848484611340565b905061096c565b60085460ff16801561106357506001600160a01b0384165f908152600a602052604090205460ff16155b801561108757506001600160a01b0383165f908152600a602052604090205460ff16155b156110ef576004548211156110ef5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610903565b6110f7611464565b15611104576111046114d0565b5f61110e83610a69565b6001600160a01b0386165f9081526005602052604090205490915081111561116f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f90815260056020526040902054611192908290611e43565b6001600160a01b0386165f908152600560205260408120919091556111b786866118a7565b6111c1578161120d565b61120d7f000000000000000000000000df97b3734e3e8e15176a160f841c8768468c21626001600160a01b0316876001600160a01b031614611203575f611206565b60015b87846118eb565b6001600160a01b0386165f90815260056020526040902054909150611233908290611ea5565b6001600160a01b038087165f8181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61127b846109a4565b60405190815260200160405180910390a350600195945050505050565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610903565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f61134b83610a69565b6001600160a01b0386165f908152600560205260409020549091508111156113ac5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f908152600560205260409020546113cf908290611e43565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546113fe908290611ea5565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114519087815260200190565b60405180910390a3506001949350505050565b5f336001600160a01b037f000000000000000000000000df97b3734e3e8e15176a160f841c8768468c216216148015906114a1575060115460ff16155b80156114b65750600f54600160a01b900460ff165b801561099f57506010546114c930610ab9565b1015905090565b60118054600160ff199091161790556040805160c081018252600c5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a0820181905260105491925f91906115589084611e56565b6115629190611e6d565b90505f61156f8284611e43565b905061158f737a250d5630b4cf539739df2c5dacb4c659f2488d826107ff565b5061159d3061dead84610fa2565b506040805160028082526060820183525f9260208301908036833701905050905030815f815181106115d1576115d1611eb8565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611641573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116659190611ecc565b8160018151811061167857611678611eb8565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116cf9085905f90869030904290600401611ee7565b5f604051808303815f87803b1580156116e6575f5ffd5b505af11580156116f8573d5f5f3e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a0015161171f9190611f57565b6117299190611f57565b6001600160801b031690505f81886020015160ff16846117499190611e56565b6117539190611e6d565b90505f82896040015160ff168561176a9190611e56565b6117749190611e6d565b90505f838a6060015160ff168661178b9190611e56565b6117959190611e6d565b600d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146117e4576040519150601f19603f3d011682016040523d82523d5f602084013e6117e9565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611836576040519150601f19603f3d011682016040523d82523d5f602084013e61183b565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611888576040519150601f19603f3d011682016040523d82523d5f602084013e61188d565b606091505b50506011805460ff19169055505050505050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff1615801561096c5750506001600160a01b03165f9081526009602052604090205460ff1615919050565b6040805160c08082018352600b5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600c54808b168d529889048a16978c019790975294870488169b8a019b909b529185048616908801528304909316968501969096529190910416928101929092525f91828615156001146119e05760648260a001516001600160801b0316866119d19190611e56565b6119db9190611e6d565b611a05565b60648360a001516001600160801b0316866119fb9190611e56565b611a059190611e6d565b90505f600188151514611a41578260a001516001600160801b0316835f015160ff1683611a329190611e56565b611a3c9190611e6d565b611a6b565b8360a001516001600160801b0316845f015160ff1683611a619190611e56565b611a6b9190611e6d565b905080600654611a7b9190611e43565b6006555f611a898284611e43565b90508015611b0357305f90815260056020526040902054611aab908290611ea5565b305f818152600560205260409020919091556001600160a01b0389167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611af1846109a4565b60405190815260200160405180910390a35b6006546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a1611b4a8388611e43565b9998505050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610a19575f5ffd5b5f5f60408385031215611bb1575f5ffd5b8235611bbc81611b8c565b946020939093013593505050565b5f60208284031215611bda575f5ffd5b813561096c81611b8c565b5f5f5f60608486031215611bf7575f5ffd5b8335611c0281611b8c565b92506020840135611c1281611b8c565b929592945050506040919091013590565b5f60208284031215611c33575f5ffd5b5035919050565b80358015158114611c49575f5ffd5b919050565b5f5f60408385031215611c5f575f5ffd5b8235611c6a81611b8c565b9150611c7860208401611c3a565b90509250929050565b5f60208284031215611c91575f5ffd5b61096c82611c3a565b803560ff81168114611c49575f5ffd5b5f5f5f5f5f5f5f5f5f5f6101408b8d031215611cc4575f5ffd5b611ccd8b611c9a565b9950611cdb60208c01611c9a565b9850611ce960408c01611c9a565b9750611cf760608c01611c9a565b9650611d0560808c01611c9a565b9550611d1360a08c01611c9a565b9450611d2160c08c01611c9a565b9350611d2f60e08c01611c9a565b9250611d3e6101008c01611c9a565b9150611d4d6101208c01611c9a565b90509295989b9194979a5092959850565b5f5f5f60608486031215611d70575f5ffd5b8335611d7b81611b8c565b92506020840135611d8b81611b8c565b91506040840135611d9b81611b8c565b809150509250925092565b5f5f60408385031215611db7575f5ffd5b8235611dc281611b8c565b91506020830135611dd281611b8c565b809150509250929050565b5f5f60408385031215611dee575f5ffd5b611bbc83611c3a565b600181811c90821680611e0b57607f821691505b602082108103611e2957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561086557610865611e2f565b808202811582820484141761086557610865611e2f565b5f82611e8757634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561086557610865611e2f565b8082018082111561086557610865611e2f565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611edc575f5ffd5b815161096c81611b8c565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611f375783516001600160a01b0316835260209384019390920191600101611f10565b50506001600160a01b039590951660608401525050608001529392505050565b6001600160801b03828116828216039081111561086557610865611e2f56fea26469706673582212202ff66045952d4d1261d3df1a81e58801370e9347b4a8f198b08f2bec4082390664736f6c634300081b0033
Deployed Bytecode Sourcemap
5502:14354:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7896:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7896:56:0;;;;;;;;11330:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9909:216::-;;;;;;;;;;-1:-1:-1;9909:216:0;;;;;:::i;:::-;;:::i;:::-;;;1292:14:1;;1285:22;1267:41;;1255:2;1240:18;9909:216:0;1127:187:1;7232:42:0;;;;;;;;;;-1:-1:-1;7232:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;7977;;;;;;;;;;-1:-1:-1;7977:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7281:46;;;;;;;;;;;;;;;;11134:102;;;;;;;;;;-1:-1:-1;11216:12:0;;11134:102;;10427:441;;;;;;;;;;-1:-1:-1;10427:441:0;;;;;:::i;:::-;;:::i;12126:136::-;;;;;;;;;;;;;:::i;7634:93::-;;;;;;;;;;-1:-1:-1;7634:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7634:93:0;;-1:-1:-1;;;;;7634:93:0;;;;;;;2381:4:1;2369:17;;;2351:36;;2423:17;;;2418:2;2403:18;;2396:45;2477:17;;;2457:18;;;2450:45;;;;2531:17;;;2526:2;2511:18;;2504:45;2586:17;;;2580:3;2565:19;;2558:46;-1:-1:-1;;;;;2641:47:1;;;2635:3;2620:19;;2613:76;2338:3;2323:19;7634:93:0;2084:611:1;11969:149:0;;;;;;;;;;-1:-1:-1;11969:149:0;;;;;:::i;:::-;;:::i;11244:78::-;;;;;;;;;;-1:-1:-1;11244:78:0;;11312:2;3073:36:1;;3061:2;3046:18;11244:78:0;2931:184:1;7404:32:0;;;;;;;;;;-1:-1:-1;7404:32:0;;;;;;;;12528:170;;;;;;;;;;;;;:::i;:::-;;14947:135;;;;;;;;;;-1:-1:-1;14947:135:0;;;;;:::i;:::-;;:::i;14848:91::-;;;;;;;;;;-1:-1:-1;14848:91:0;;;;;:::i;:::-;;:::i;11821:140::-;;;;;;;;;;-1:-1:-1;11821:140:0;;;;;:::i;:::-;;:::i;7535:92::-;;;;;;;;;;-1:-1:-1;7535:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7535:92:0;;-1:-1:-1;;;;;7535:92:0;;;10133:122;;;;;;;;;;-1:-1:-1;10133:122:0;;;;;:::i;:::-;;:::i;14263:119::-;;;;;;;;;;-1:-1:-1;14263:119:0;;;;;:::i;:::-;;:::i;11520:138::-;;;;;;;;;;-1:-1:-1;11520:138:0;;;;;:::i;:::-;;:::i;2044:103::-;;;;;;;;;;;;;:::i;7051:52::-;;;;;;;;;;;;;;;;1396:87;;;;;;;;;;-1:-1:-1;1442:7:0;1469:6;-1:-1:-1;;;;;1469:6:0;1396:87;;;-1:-1:-1;;;;;3954:32:1;;;3936:51;;3924:2;3909:18;1396:87:0;3790:203:1;11423:89:0;;;;;;;;;;;;;:::i;6582:126::-;;;;;;;;;;;;6665:42;6582:126;;10263:156;;;;;;;;;;-1:-1:-1;10263:156:0;;;;;:::i;:::-;;:::i;7858:31::-;;;;;;;;;;-1:-1:-1;7858:31:0;;;;-1:-1:-1;;;7858:31:0;;;;;;13009:1246;;;;;;;;;;-1:-1:-1;13009:1246:0;;;;;:::i;:::-;;:::i;14525:189::-;;;;;;;;;;-1:-1:-1;14525:189:0;;;;;:::i;:::-;;:::i;12706:131::-;;;;;;;;;;;;;:::i;11666:147::-;;;;;;;;;;-1:-1:-1;11666:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;11777:19:0;;;11750:7;11777:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11666:147;12845:156;;;;;;;;;;-1:-1:-1;12845:156:0;;;;;:::i;:::-;;:::i;14722:118::-;;;;;;;;;;-1:-1:-1;14722:118:0;;;;;:::i;:::-;;:::i;2302:201::-;;;;;;;;;;-1:-1:-1;2302:201:0;;;;;:::i;:::-;;:::i;6715:40::-;;;;;;;;;;;;;;;14390:127;;;;;;;;;;-1:-1:-1;14390:127:0;;;;;:::i;:::-;;:::i;11330:85::-;11369:13;11402:5;11395:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11330:85;:::o;9909:216::-;10013:10;9984:4;10001:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10001:32:0;;;;;;;;;;:41;;;10058:37;9984:4;;10001:32;;10058:37;;;;10036:6;160:25:1;;148:2;133:18;;14:177;10058:37:0;;;;;;;;-1:-1:-1;10113:4:0;9909:216;;;;;:::o;10427:441::-;-1:-1:-1;;;;;10548:19:0;;10527:4;10548:19;;;:11;:19;;;;;;;;10568:10;10548:31;;;;;;;;-1:-1:-1;;10548:52:0;10544:257;;-1:-1:-1;;;;;10625:19:0;;;;;;:11;:19;;;;;;;;10645:10;10625:31;;;;;;;;:41;-1:-1:-1;10625:41:0;10617:83;;;;-1:-1:-1;;;10617:83:0;;7029:2:1;10617:83:0;;;7011:21:1;7068:2;7048:18;;;7041:30;7107:31;7087:18;;;7080:59;7156:18;;10617:83:0;;;;;;;;;-1:-1:-1;;;;;10749:19:0;;;;;;:11;:19;;;;;;;;10769:10;10749:31;;;;;;;;:40;;10783:6;;10749:40;:::i;:::-;-1:-1:-1;;;;;10715:19:0;;;;;;:11;:19;;;;;;;;10735:10;10715:31;;;;;;;:74;10544:257;10820:40;10834:6;10842:9;10853:6;10820:13;:40::i;:::-;10813:47;;10427:441;;;;;;:::o;12126:136::-;12179:7;12239:15;6235:42;12239:9;:15::i;:::-;12221;6162:42;12221:9;:15::i;:::-;12206:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;12199:55;;12126:136;:::o;11969:149::-;12039:7;12094:16;;12079:12;;12066:10;:25;;;;:::i;:::-;:44;;;;:::i;12528:170::-;1282:13;:11;:13::i;:::-;12605:58:::1;::::0;12588:12:::1;::::0;12613:10:::1;::::0;12637:21:::1;::::0;12588:12;12605:58;12588:12;12605:58;12637:21;12613:10;12605:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12587:76;;;12682:7;12674:16;;;;;;12576:122;12528:170::o:0;14947:135::-;1282:13;:11;:13::i;:::-;-1:-1:-1;;;;;15036:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;15036:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14947:135::o;14848:91::-;1282:13;:11;:13::i;:::-;14913::::1;:18:::0;;-1:-1:-1;;14913:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14848:91::o;11821:140::-;11886:7;11941:12;;11922:16;;11913:6;:25;;;;:::i;10133:122::-;10188:4;10212:35;10220:7;-1:-1:-1;;10212:7:0;:35::i;14263:119::-;1282:13;:11;:13::i;:::-;-1:-1:-1;;;;;14346:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;14346:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14263:119::o;11520:138::-;-1:-1:-1;;;;;11633:16:0;;11586:7;11633:16;;;:7;:16;;;;;;11613:37;;:19;:37::i;2044:103::-;1282:13;:11;:13::i;:::-;2109:30:::1;2136:1;2109:18;:30::i;:::-;2044:103::o:0;11423:89::-;11464:13;11497:7;11490:14;;;;;:::i;10263:156::-;10343:4;10367:44;10381:10;10393:9;10404:6;10367:13;:44::i;13009:1246::-;1282:13;:11;:13::i;:::-;13365:21:::1;13453:10:::0;13437:13;13426:8;13389:34:::1;13408:15:::0;13389:16;:34:::1;:::i;:::-;:45;;;;:::i;:::-;:61;;;;:::i;:::-;:74;;;;:::i;:::-;13365:98;;::::0;-1:-1:-1;13474:22:0::1;13567:11:::0;13550:14;13538:9;13499:36:::1;13519:16:::0;13499:17;:36:::1;:::i;:::-;:48;;;;:::i;:::-;:65;;;;:::i;:::-;:79;;;;:::i;:::-;13474:104;;;;6313:2;13599:13;-1:-1:-1::0;;;;;13599:24:0::1;;;13591:54;;;::::0;-1:-1:-1;;;13591:54:0;;8410:2:1;13591:54:0::1;::::0;::::1;8392:21:1::0;8449:2;8429:18;;;8422:30;-1:-1:-1;;;8468:18:1;;;8461:47;8525:18;;13591:54:0::1;8208:341:1::0;13591:54:0::1;6313:2;13664:14;-1:-1:-1::0;;;;;13664:25:0::1;;;13656:56;;;::::0;-1:-1:-1;;;13656:56:0;;8756:2:1;13656:56:0::1;::::0;::::1;8738:21:1::0;8795:2;8775:18;;;8768:30;-1:-1:-1;;;8814:18:1;;;8807:48;8872:18;;13656:56:0::1;8554:342:1::0;13656:56:0::1;13734:242;;;;;;;;13765:16;13734:242;;;;;;13807:16;13734:242;;;;;;13842:16;13734:242;;;;;;13882:16;13734:242;;;;;;13919:10;13734:242;;;;;;13951:13;-1:-1:-1::0;;;;;13734:242:0::1;;;::::0;13725:6:::1;:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13725:251:0::1;;;;;-1:-1:-1::0;;;;;13725:251:0::1;;;;;;;;;13999:248;;;;;;;;14030:17;13999:248;;;;;;14073:17;13999:248;;;;;;14109:17;13999:248;;;;;;14150:17;13999:248;;;;;;14188:11;13999:248;;;;;;14221:14;-1:-1:-1::0;;;;;13999:248:0::1;;;::::0;13989:7:::1;:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13989:258:0::1;;;;;-1:-1:-1::0;;;;;13989:258:0::1;;;;;;;;;13354:901;;13009:1246:::0;;;;;;;;;;:::o;14525:189::-;1282:13;:11;:13::i;:::-;14617:20:::1;:25:::0;;-1:-1:-1;;;;;14617:25:0;;::::1;-1:-1:-1::0;;;;;;14617:25:0;;::::1;;::::0;;;14653:13:::1;:19:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;14683:18:::1;:23:::0;;;;;::::1;::::0;::::1;;::::0;;14525:189::o;12706:131::-;1282:13;:11;:13::i;:::-;12763:66:::1;12785:4;12792:10;12804:24;12822:4;12804:9;:24::i;:::-;12763:13;:66::i;12845:156::-:0;1282:13;:11;:13::i;:::-;12936:12:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;12936:23:0::1;-1:-1:-1::0;;;;12936:23:0;;::::1;::::0;;;::::1;::::0;;;12970:13:::1;:23:::0;12845:156::o;14722:118::-;1282:13;:11;:13::i;:::-;14827:5:::1;14822:2;14807:12;;:17;;;;:::i;:::-;:25;;;;:::i;:::-;14792:12;:40:::0;-1:-1:-1;14722:118:0:o;2302:201::-;1282:13;:11;:13::i;:::-;-1:-1:-1;;;;;2391:22:0;::::1;2383:73;;;::::0;-1:-1:-1;;;2383:73:0;;9103:2:1;2383:73:0::1;::::0;::::1;9085:21:1::0;9142:2;9122:18;;;9115:30;9181:34;9161:18;;;9154:62;-1:-1:-1;;;9232:18:1;;;9225:36;9278:19;;2383:73:0::1;8901:402:1::0;2383:73:0::1;2467:28;2486:8;2467:18;:28::i;14390:127::-:0;1282:13;:11;:13::i;:::-;-1:-1:-1;;;;;14477:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;14477:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14390:127::o;15348:1149::-;-1:-1:-1;;;;;15466:21:0;;15440:4;15466:21;;;:10;:21;;;;;;;;15465:22;:45;;;;-1:-1:-1;;;;;;15492:18:0;;;;;;:10;:18;;;;;;;;15491:19;15465:45;15457:69;;;;-1:-1:-1;;;15457:69:0;;9510:2:1;15457:69:0;;;9492:21:1;9549:2;9529:18;;;9522:30;-1:-1:-1;;;9568:18:1;;;9561:41;9619:18;;15457:69:0;9308:335:1;15457:69:0;15543:6;;;;15539:87;;;15573:41;15588:6;15596:9;15607:6;15573:14;:41::i;:::-;15566:48;;;;15539:87;15642:13;;;;:41;;;;-1:-1:-1;;;;;;15660:23:0;;;;;;:15;:23;;;;;;;;15659:24;15642:41;:72;;;;-1:-1:-1;;;;;;15688:26:0;;;;;;:15;:26;;;;;;;;15687:27;15642:72;15638:180;;;15749:12;;15739:6;:22;;15731:75;;;;-1:-1:-1;;;15731:75:0;;9850:2:1;15731:75:0;;;9832:21:1;9889:2;9869:18;;;9862:30;9928:34;9908:18;;;9901:62;-1:-1:-1;;;9979:18:1;;;9972:38;10027:19;;15731:75:0;9648:404:1;15731:75:0;15834:17;:15;:17::i;:::-;15830:61;;;15868:11;:9;:11::i;:::-;15903:24;15930:26;15949:6;15930:18;:26::i;:::-;-1:-1:-1;;;;;15975:15:0;;;;;;:7;:15;;;;;;15903:53;;-1:-1:-1;15975:35:0;-1:-1:-1;15975:35:0;15967:68;;;;-1:-1:-1;;;15967:68:0;;10259:2:1;15967:68:0;;;10241:21:1;10298:2;10278:18;;;10271:30;-1:-1:-1;;;10317:18:1;;;10310:50;10377:18;;15967:68:0;10057:344:1;15967:68:0;-1:-1:-1;;;;;16064:15:0;;;;;;:7;:15;;;;;;:34;;16082:16;;16064:34;:::i;:::-;-1:-1:-1;;;;;16046:15:0;;;;;;:7;:15;;;;;:52;;;;16140:33;16054:6;16163:9;16140:14;:33::i;:::-;:170;;16294:16;16140:170;;;16189:89;16221:15;-1:-1:-1;;;;;16211:25:0;:6;-1:-1:-1;;;;;16211:25:0;;:40;;16246:5;16211:40;;;16239:4;16211:40;16253:6;16261:16;16189:21;:89::i;:::-;-1:-1:-1;;;;;16342:18:0;;;;;;:7;:18;;;;;;16111:199;;-1:-1:-1;16342:39:0;;16111:199;;16342:39;:::i;:::-;-1:-1:-1;;;;;16321:18:0;;;;;;;:7;:18;;;;;:60;;;;16399:68;;;16427:39;16447:18;16427:19;:39::i;:::-;16399:68;;160:25:1;;;148:2;133:18;16399:68:0;;;;;;;-1:-1:-1;16485:4:0;;15348:1149;-1:-1:-1;;;;;15348:1149:0:o;1561:132::-;1442:7;1469:6;-1:-1:-1;;;;;1469:6:0;692:10;1625:23;1617:68;;;;-1:-1:-1;;;1617:68:0;;10738:2:1;1617:68:0;;;10720:21:1;;;10757:18;;;10750:30;10816:34;10796:18;;;10789:62;10868:18;;1617:68:0;10536:356:1;2663:191:0;2737:16;2756:6;;-1:-1:-1;;;;;2773:17:0;;;-1:-1:-1;;;;;;2773:17:0;;;;;;2806:40;;2756:6;;;;;;;2806:40;;2737:16;2806:40;2726:128;2663:191;:::o;16505:455::-;16598:4;16615:24;16642:26;16661:6;16642:18;:26::i;:::-;-1:-1:-1;;;;;16687:15:0;;;;;;:7;:15;;;;;;16615:53;;-1:-1:-1;16687:35:0;-1:-1:-1;16687:35:0;16679:68;;;;-1:-1:-1;;;16679:68:0;;10259:2:1;16679:68:0;;;10241:21:1;10298:2;10278:18;;;10271:30;-1:-1:-1;;;10317:18:1;;;10310:50;10377:18;;16679:68:0;10057:344:1;16679:68:0;-1:-1:-1;;;;;16776:15:0;;;;;;:7;:15;;;;;;:34;;16794:16;;16776:34;:::i;:::-;-1:-1:-1;;;;;16758:15:0;;;;;;;:7;:15;;;;;;:52;;;;16842:18;;;;;;;:37;;16863:16;;16842:37;:::i;:::-;-1:-1:-1;;;;;16821:18:0;;;;;;;:7;:18;;;;;;;:58;;;;16895:35;;;;;;;;;;16923:6;160:25:1;;148:2;133:18;;14:177;16895:35:0;;;;;;;;-1:-1:-1;16948:4:0;;16505:455;-1:-1:-1;;;;16505:455:0:o;18091:183::-;18141:4;18165:10;-1:-1:-1;;;;;18179:15:0;18165:29;;;;;:40;;-1:-1:-1;18199:6:0;;;;18198:7;18165:40;:56;;;;-1:-1:-1;18209:12:0;;-1:-1:-1;;;18209:12:0;;;;18165:56;:101;;;;;18253:13;;18225:24;18243:4;18225:9;:24::i;:::-;:41;;18158:108;;18091:183;:::o;18282:1402::-;8317:6;:13;;8326:4;-1:-1:-1;;8317:13:0;;;;;;18332:30:::1;::::0;;::::1;::::0;::::1;::::0;;18355:7:::1;18332:30:::0;8317:13;18332:30;;::::1;::::0;;8317:13;18332:30;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;18332:30:0;;::::1;-1:-1:-1::0;;;;;18332:30:0::1;::::0;;;;;;18401:13:::1;::::0;18332:30;;-1:-1:-1;;18332:30:0;18448:32:::1;::::0;18401:13;18448:32:::1;:::i;:::-;:50;;;;:::i;:::-;18425:73:::0;-1:-1:-1;18509:20:0::1;18532:30;18425:73:::0;18532:15;:30:::1;:::i;:::-;18509:53;;18573:49;6665:42;18609:12;18573:7;:49::i;:::-;;18652:48;18674:4;6162:42;18687:12;18652:13;:48::i;:::-;-1:-1:-1::0;18754:16:0::1;::::0;;18768:1:::1;18754:16:::0;;;;;::::1;::::0;;18730:21:::1;::::0;18754:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18754:16:0::1;18730:40;;18799:4;18781;18786:1;18781:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;18781:23:0::1;;;-1:-1:-1::0;;;;;18781:23:0::1;;;::::0;::::1;6665:42;-1:-1:-1::0;;;;;18825:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18815:4;18820:1;18815:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18815:34:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:34;18862:147:::1;::::0;-1:-1:-1;;;18862:147:0;;6665:42:::1;::::0;18862:68:::1;::::0;:147:::1;::::0;18945:12;;18959:1:::1;::::0;18962:4;;18976::::1;::::0;18983:15:::1;::::0;18862:147:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19022:17;19042:21;19022:41;;19076:20;19140:9;:14;;;19099:55;;19117:9;:20;;;19099:38;;:9;:15;;;:38;;;;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1::0;;;;;19076:78:0::1;;;19165:26;19228:12;19206:9;:19;;;19194:31;;:9;:31;;;;:::i;:::-;:46;;;;:::i;:::-;19165:75;;19251:19;19300:12;19285:9;:12;;;19273:24;;:9;:24;;;;:::i;:::-;:39;;;;:::i;:::-;19251:61;;19323:24;19382:12;19362:9;:17;;;19350:29;;:9;:29;;;;:::i;:::-;:44;;;;:::i;:::-;19453:20;::::0;19445:65:::1;::::0;19323:71;;-1:-1:-1;19425:15:0::1;::::0;-1:-1:-1;;;;;19453:20:0;;::::1;::::0;19487:18;;19425:15;19445:65;19425:15;19445:65;19487:18;19453:20;19445:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;19545:13:0::1;::::0;19537:51:::1;::::0;19424:86;;-1:-1:-1;;;;;;19545:13:0::1;::::0;19572:11;;19537:51:::1;::::0;;;19572:11;19545:13;19537:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;19623:18:0::1;::::0;19615:61:::1;::::0;19521:67;;-1:-1:-1;;;;;;19623:18:0::1;::::0;19655:16;;19615:61:::1;::::0;;;19655:16;19623:18;19615:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;8353:6:0;:14;;-1:-1:-1;;8353:14:0;;;-1:-1:-1;;;;;;;;;;;;18282:1402:0:o;19692:161::-;-1:-1:-1;;;;;19799:19:0;;19774:4;19799:19;;;:11;:19;;;;;;;;19798:20;:47;;;;-1:-1:-1;;;;;;;19823:22:0;;;;;:11;:22;;;;;;;;19822:23;;19692:161;-1:-1:-1;19692:161:0:o;16968:1115::-;17092:28;;;;;;;;;17114:6;17092:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;17092:28:0;;;;;;;;;;;;;;17131:30;;;;;;;17154:7;17131:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17072:7;;;17217:14;;;17092:28;17217:14;:99;;17313:3;17295:9;:15;;;-1:-1:-1;;;;;17276:34:0;:16;:34;;;;:::i;:::-;:40;;;;:::i;:::-;17217:99;;;17270:3;17253:8;:14;;;-1:-1:-1;;;;;17234:33:0;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;17174:142;-1:-1:-1;17349:27:0;17389:4;17379:14;;;;:164;;17528:9;:15;;;-1:-1:-1;;;;;17483:60:0;17505:9;:20;;;17483:42;;:19;:42;;;;:::i;:::-;:60;;;;:::i;:::-;17379:164;;;17453:8;:14;;;-1:-1:-1;;;;;17409:58:0;17431:8;:19;;;17409:41;;:19;:41;;;;:::i;:::-;:58;;;;:::i;:::-;17349:194;;17594:19;17575:16;;:38;;;;:::i;:::-;17556:16;:57;17648:29;17680:41;17702:19;17680;:41;:::i;:::-;17648:73;-1:-1:-1;17736:25:0;;17732:226;;17819:4;17803:22;;;;:7;:22;;;;;;:46;;17828:21;;17803:46;:::i;:::-;17794:4;17778:22;;;;:7;:22;;;;;:71;;;;-1:-1:-1;;;;;17871:75:0;;;17903:42;17923:21;17903:19;:42::i;:::-;17871:75;;160:25:1;;;148:2;133:18;17871:75:0;;;;;;;17732:226;18002:16;;17973:46;;;12803:25:1;;;12859:2;12844:18;;12837:34;;;;17973:46:0;;12776:18:1;17973:46:0;;;;;;;18037:38;18056:19;18037:16;:38;:::i;:::-;18030:45;16968:1115;-1:-1:-1;;;;;;;;;16968:1115:0:o;196:418:1:-;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;619:131::-;-1:-1:-1;;;;;694:31:1;;684:42;;674:70;;740:1;737;730:12;755:367;823:6;831;884:2;872:9;863:7;859:23;855:32;852:52;;;900:1;897;890:12;852:52;939:9;926:23;958:31;983:5;958:31;:::i;:::-;1008:5;1086:2;1071:18;;;;1058:32;;-1:-1:-1;;;755:367:1:o;1319:247::-;1378:6;1431:2;1419:9;1410:7;1406:23;1402:32;1399:52;;;1447:1;1444;1437:12;1399:52;1486:9;1473:23;1505:31;1530:5;1505:31;:::i;1571:508::-;1648:6;1656;1664;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1898:2:1;1883:18;;1870:32;1911:33;1870:32;1911:33;:::i;:::-;1571:508;;1963:7;;-1:-1:-1;;;2043:2:1;2028:18;;;;2015:32;;1571:508::o;2700:226::-;2759:6;2812:2;2800:9;2791:7;2787:23;2783:32;2780:52;;;2828:1;2825;2818:12;2780:52;-1:-1:-1;2873:23:1;;2700:226;-1:-1:-1;2700:226:1:o;3120:160::-;3185:20;;3241:13;;3234:21;3224:32;;3214:60;;3270:1;3267;3260:12;3214:60;3120:160;;;:::o;3285:315::-;3350:6;3358;3411:2;3399:9;3390:7;3386:23;3382:32;3379:52;;;3427:1;3424;3417:12;3379:52;3466:9;3453:23;3485:31;3510:5;3485:31;:::i;:::-;3535:5;-1:-1:-1;3559:35:1;3590:2;3575:18;;3559:35;:::i;:::-;3549:45;;3285:315;;;;;:::o;3605:180::-;3661:6;3714:2;3702:9;3693:7;3689:23;3685:32;3682:52;;;3730:1;3727;3720:12;3682:52;3753:26;3769:9;3753:26;:::i;4231:156::-;4297:20;;4357:4;4346:16;;4336:27;;4326:55;;4377:1;4374;4367:12;4392:819;4512:6;4520;4528;4536;4544;4552;4560;4568;4576;4584;4637:3;4625:9;4616:7;4612:23;4608:33;4605:53;;;4654:1;4651;4644:12;4605:53;4677:27;4694:9;4677:27;:::i;:::-;4667:37;;4723:36;4755:2;4744:9;4740:18;4723:36;:::i;:::-;4713:46;;4778:36;4810:2;4799:9;4795:18;4778:36;:::i;:::-;4768:46;;4833:36;4865:2;4854:9;4850:18;4833:36;:::i;:::-;4823:46;;4888:37;4920:3;4909:9;4905:19;4888:37;:::i;:::-;4878:47;;4944:37;4976:3;4965:9;4961:19;4944:37;:::i;:::-;4934:47;;5000:37;5032:3;5021:9;5017:19;5000:37;:::i;:::-;4990:47;;5056:37;5088:3;5077:9;5073:19;5056:37;:::i;:::-;5046:47;;5112:37;5144:3;5133:9;5129:19;5112:37;:::i;:::-;5102:47;;5168:37;5200:3;5189:9;5185:19;5168:37;:::i;:::-;5158:47;;4392:819;;;;;;;;;;;;;:::o;5216:529::-;5293:6;5301;5309;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5417:9;5404:23;5436:31;5461:5;5436:31;:::i;:::-;5486:5;-1:-1:-1;5543:2:1;5528:18;;5515:32;5556:33;5515:32;5556:33;:::i;:::-;5608:7;-1:-1:-1;5667:2:1;5652:18;;5639:32;5680:33;5639:32;5680:33;:::i;:::-;5732:7;5722:17;;;5216:529;;;;;:::o;5750:388::-;5818:6;5826;5879:2;5867:9;5858:7;5854:23;5850:32;5847:52;;;5895:1;5892;5885:12;5847:52;5934:9;5921:23;5953:31;5978:5;5953:31;:::i;:::-;6003:5;-1:-1:-1;6060:2:1;6045:18;;6032:32;6073:33;6032:32;6073:33;:::i;:::-;6125:7;6115:17;;;5750:388;;;;;:::o;6143:294::-;6208:6;6216;6269:2;6257:9;6248:7;6244:23;6240:32;6237:52;;;6285:1;6282;6275:12;6237:52;6308:26;6324:9;6308:26;:::i;6442:380::-;6521:1;6517:12;;;;6564;;;6585:61;;6639:4;6631:6;6627:17;6617:27;;6585:61;6692:2;6684:6;6681:14;6661:18;6658:38;6655:161;;6738:10;6733:3;6729:20;6726:1;6719:31;6773:4;6770:1;6763:15;6801:4;6798:1;6791:15;6655:161;;6442:380;;;:::o;7185:127::-;7246:10;7241:3;7237:20;7234:1;7227:31;7277:4;7274:1;7267:15;7301:4;7298:1;7291:15;7317:128;7384:9;;;7405:11;;;7402:37;;;7419:18;;:::i;7450:168::-;7523:9;;;7554;;7571:15;;;7565:22;;7551:37;7541:71;;7592:18;;:::i;7623:217::-;7663:1;7689;7679:132;;7733:10;7728:3;7724:20;7721:1;7714:31;7768:4;7765:1;7758:15;7796:4;7793:1;7786:15;7679:132;-1:-1:-1;7825:9:1;;7623:217::o;8055:148::-;8143:4;8122:12;;;8136;;;8118:31;;8161:13;;8158:39;;;8177:18;;:::i;10406:125::-;10471:9;;;10492:10;;;10489:36;;;10505:18;;:::i;11029:127::-;11090:10;11085:3;11081:20;11078:1;11071:31;11121:4;11118:1;11111:15;11145:4;11142:1;11135:15;11161:251;11231:6;11284:2;11272:9;11263:7;11259:23;11255:32;11252:52;;;11300:1;11297;11290:12;11252:52;11332:9;11326:16;11351:31;11376:5;11351:31;:::i;11417:959::-;11679:4;11727:3;11716:9;11712:19;11758:6;11747:9;11740:25;11801:6;11796:2;11785:9;11781:18;11774:34;11844:3;11839:2;11828:9;11824:18;11817:31;11868:6;11903;11897:13;11934:6;11926;11919:22;11972:3;11961:9;11957:19;11950:26;;12011:2;12003:6;11999:15;11985:29;;12032:1;12042:195;12056:6;12053:1;12050:13;12042:195;;;12121:13;;-1:-1:-1;;;;;12117:39:1;12105:52;;12186:2;12212:15;;;;12177:12;;;;12153:1;12071:9;12042:195;;;-1:-1:-1;;;;;;;12293:32:1;;;;12288:2;12273:18;;12266:60;-1:-1:-1;;12357:3:1;12342:19;12335:35;12254:3;11417:959;-1:-1:-1;;;11417:959:1:o;12381:243::-;-1:-1:-1;;;;;12496:42:1;;;12452;;;12448:91;;12551:44;;12548:70;;;12598:18;;:::i
Swarm Source
ipfs://2ff66045952d4d1261d3df1a81e58801370e9347b4a8f198b08f2bec40823906
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.