ERC-20
Overview
Max Total Supply
420,000,000,000 QUBY
Holders
14
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
8,232,000,000 QUBYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
QUBY
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-25 */ /* Telegram :: https://t.me/Qubyerc X :: https://x.com/Quby_erc Website :: https://Qubyerc.com */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.20; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract QUBY is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "QUBY"; string constant _symbol = "QUBY"; uint8 constant _decimals = 9; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event user_exemptfromfees(address Wallet, bool Exempt); event user_TxExempt(address Wallet, bool Exempt); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); event set_Receivers(address marketingFeeReceiver, address teamFeeReceiver,address burnFeeReceiver,address devFeeReceiver); event set_MaxWallet(uint256 maxWallet); event set_SwapBack(uint256 Amount, bool Enabled); uint256 _totalSupply = 420000000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(100).div(100); uint256 public _maxWalletToken = _totalSupply.mul(2).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private liquidityFee = 0; uint256 private marketingFee = 2; uint256 private devFee = 0; uint256 private teamFee = 0; uint256 private burnFee = 0; uint256 public totalFee = teamFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellpercent = 100; uint256 buypercent = 100; uint256 transferpercent = 0; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private teamFeeReceiver; address private burnFeeReceiver; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = true; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 50 / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isexemptfromfees[msg.sender] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pair] = true; isexemptfrommaxTX[marketingFeeReceiver] = true; isexemptfrommaxTX[address(this)] = true; authorizations[marketingFeeReceiver] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x1a584880128b12872Db33c8D10deFd095196F0AE; devFeeReceiver = 0xeb5e20098DA6712bC01C9aD457aE6910B864E565; teamFeeReceiver = 0x54ab3B5f71aFe1dAC214732ce6E10245Eeffe206; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } 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){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWallet(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; emit set_MaxWallet(_maxWalletToken); } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function setWhitelistAddresss(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient] && recipient !=marketingFeeReceiver && sender !=marketingFeeReceiver) { require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transferpercent; if(recipient == pair) { percent = sellpercent; } else if(sender == pair) { percent = buypercent; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckETH() external { payable(marketingFeeReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) { require(tokenAddress != address(this), "Owner cannot claim native tokens"); if(tokens == 0){ tokens = ERC20 (tokenAddress).balanceOf(address(this)); } return ERC20 (tokenAddress).transfer(msg.sender, tokens); } function setFeeMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) public onlyOwner { sellpercent = _sell; buypercent = _buy; transferpercent = _trans; require(totalFee.mul(buypercent).div(100) < 10, "Buy Tax cannot be more than 10%"); require(totalFee.mul(sellpercent).div(100) < 10, "Sell Tax cannot be more than 10%"); require(totalFee.mul(transferpercent).div(100) < 10, "Transfer Tax cannot be more than 10%"); } function swapBack() internal swapping { uint256 totalETHFee = totalFee; uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2); uint256 amountToSwap = swapThreshold - amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; totalETHFee = totalETHFee - (liquidityFee / 2); uint256 amountETHLiquidity = (amountETH * liquidityFee) / (totalETHFee * 2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function set_fees() internal { emit EditTax( uint8(totalFee.mul(buypercent).div(100)), uint8(totalFee.mul(sellpercent).div(100)), uint8(totalFee.mul(transferpercent).div(100)) ); } function setTax(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; teamFee = _teamFee; marketingFee = _marketingFee; devFee = _devFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 1, "Fees can not be more than 20%"); set_fees(); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; teamFeeReceiver = _teamFeeReceiver; emit set_Receivers(marketingFeeReceiver, teamFeeReceiver, burnFeeReceiver, devFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; emit set_SwapBack(swapThreshold, swapEnabled); } function circulatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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":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":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"teamFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFeeMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","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":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setWhitelistAddresss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"pure","type":"function"},{"inputs":[],"name":"totalFee","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
6080604052620000126009600a6200068f565b62000023906461c9f368006200069f565b600381905562000043906064906200003c90826200046c565b90620004ff565b6004556003546200005e906064906200003c9060026200046c565b6005555f600a556002600b555f600c555f600d555f600e55600e54600c54600a54600b54600d54620000919190620006b9565b6200009d9190620006b9565b620000a99190620006b9565b620000b59190620006b9565b600f556064601081905560118190556012555f601355601d805461ffff60a01b191661010160a01b17905560035461271090620000f49060326200069f565b620001009190620006cf565b601e553480156200010f575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001cc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f29190620006ef565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200024f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002759190620006ef565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002c4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ea9190620006ef565b601d80546001600160a01b039283166001600160a01b031991821681178355601c805483169091179055305f818152600760209081526040808320601b548816845282528083205f1990553380845260088352818420805460ff1990811660019081179092556009855283862080548216831790559754891685528285208054891682179055601580548a16865283862080548a168317905595855282852080548916821790558554909816845287835281842080549097169097179095556014805485168717905582548416731a584880128b12872db33c8d10defd095196f0ae1790925560168054841673eb5e20098da6712bc01c9ad457ae6910b864e5651790556017805484167354ab3b5f71afe1dac214732ce6e10245eeffe2061790556018805490931661dead179092556003548483526006909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200045e91815260200190565b60405180910390a362000764565b5f825f036200047d57505f620004f9565b5f6200048a83856200069f565b905082620004998583620006cf565b14620004f65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200054860201b60201c565b5f81836200056b5760405162461bcd60e51b8152600401620004ed919062000717565b505f620005798486620006cf565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005d657815f1904821115620005ba57620005ba62000582565b80851615620005c857918102915b93841c93908002906200059b565b509250929050565b5f82620005ee57506001620004f9565b81620005fc57505f620004f9565b8160018114620006155760028114620006205762000640565b6001915050620004f9565b60ff84111562000634576200063462000582565b50506001821b620004f9565b5060208310610133831016604e8410600b841016171562000665575081810a620004f9565b62000671838362000596565b805f190482111562000687576200068762000582565b029392505050565b5f620004f660ff841683620005de565b8082028115828204841417620004f957620004f962000582565b80820180821115620004f957620004f962000582565b5f82620006ea57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000700575f80fd5b81516001600160a01b0381168114620004f6575f80fd5b5f6020808352835180828501525f5b81811015620007445785810183015185820160400152820162000726565b505f604082860101526040601f19601f8301168501019250505092915050565b61207080620007725f395ff3fe6080604052600436106101e9575f3560e01c8063715018a611610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e14610548578063df20fd491461058c578063f2fde38b146105ab578063f887ea40146105ca578063f88de0c3146105e9575f80fd5b8063a8aa1b31146104cd578063a9059cbb146104ec578063b2bdfa7b1461050b578063b6a5d7de14610529575f80fd5b8063893d20e8116100d8578063893d20e81461046d5780638da5cb5b1461049d5780639358928b146104b957806395d89b411461021c575f80fd5b8063715018a61461041057806377b54bad1461042457806378109e54146104435780637d1db4a514610458575f80fd5b80631df4ccfc1161017e578063571ac8b01161014e578063571ac8b01461037e5780635d0044ca1461039d5780636ddd1713146103bc57806370a08231146103dc575f80fd5b80631df4ccfc1461031057806323b872dd1461032557806326f85dbe14610344578063313ce56714610363575f80fd5b806311f630f3116101b957806311f630f31461029d578063169bb498146102be57806318160ddd146102dd57806318abb635146102f1575f80fd5b80630445b667146101f457806306fdde031461021c57806308fd3d051461024e578063095ea7b31461027e575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50610209601e5481565b6040519081526020015b60405180910390f35b348015610227575f80fd5b5060408051808201825260048152635155425960e01b602082015290516102139190611c46565b348015610259575f80fd5b50601d5461026e90600160a01b900460ff1681565b6040519015158152602001610213565b348015610289575f80fd5b5061026e610298366004611cac565b6105fd565b3480156102a8575f80fd5b506102bc6102b7366004611cd4565b610669565b005b3480156102c9575f80fd5b506102bc6102d8366004611d13565b61073f565b3480156102e8575f80fd5b50600354610209565b3480156102fc575f80fd5b506102bc61030b366004611d3c565b6108c8565b34801561031b575f80fd5b50610209600f5481565b348015610330575f80fd5b5061026e61033f366004611d9d565b61099f565b34801561034f575f80fd5b506102bc61035e366004611de3565b610a5d565b34801561036e575f80fd5b5060405160098152602001610213565b348015610389575f80fd5b5061026e610398366004611e18565b610ac3565b3480156103a8575f80fd5b506102bc6103b7366004611e31565b610acf565b3480156103c7575f80fd5b50601d5461026e90600160a81b900460ff1681565b3480156103e7575f80fd5b506102096103f6366004611e18565b6001600160a01b03165f9081526006602052604090205490565b34801561041b575f80fd5b506102bc610b5b565b34801561042f575f80fd5b5061026e61043e366004611cac565b610bcc565b34801561044e575f80fd5b5061020960055481565b348015610463575f80fd5b5061020960045481565b348015610478575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610213565b3480156104a8575f80fd5b505f546001600160a01b0316610485565b3480156104c4575f80fd5b50610209610d31565b3480156104d8575f80fd5b50601d54610485906001600160a01b031681565b3480156104f7575f80fd5b5061026e610506366004611cac565b610d9c565b348015610516575f80fd5b505f54610485906001600160a01b031681565b348015610534575f80fd5b506102bc610543366004611e18565b610da8565b348015610553575f80fd5b50610209610562366004611e48565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610597575f80fd5b506102bc6105a6366004611e79565b610df7565b3480156105b6575f80fd5b506102bc6105c5366004611e18565b610e89565b3480156105d5575f80fd5b50601b54610485906001600160a01b031681565b3480156105f4575f80fd5b506102bc610f70565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106579086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b0316331461069b5760405162461bcd60e51b815260040161069290611e95565b60405180910390fd5b600a869055600d859055600b849055600c839055600e8290556106cc826106c6858188818c8c610fa9565b90610fa9565b600f5560108190556106df600182611ede565b600f541061072f5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610692565b610737611007565b505050505050565b5f546001600160a01b031633146107685760405162461bcd60e51b815260040161069290611e95565b601182905560128390556013819055600f54600a906107949060649061078e90876110a2565b90611120565b106107e15760405162461bcd60e51b815260206004820152601f60248201527f427579205461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610692565b600a6107ff606461078e601154600f546110a290919063ffffffff16565b1061084c5760405162461bcd60e51b815260206004820181905260248201527f53656c6c205461782063616e6e6f74206265206d6f7265207468616e203130256044820152606401610692565b600a61086a606461078e601354600f546110a290919063ffffffff16565b106108c35760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610692565b505050565b5f546001600160a01b031633146108f15760405162461bcd60e51b815260040161069290611e95565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1914610a48576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610a24918490611161565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610a53848484611199565b90505b9392505050565b5f546001600160a01b03163314610a865760405162461bcd60e51b815260040161069290611e95565b6001600160a01b039091165f908152601960209081526040808320805494151560ff199586168117909155601a9092529091208054909216179055565b5f610663825f196105fd565b5f546001600160a01b03163314610af85760405162461bcd60e51b815260040161069290611e95565b6001811015610b05575f80fd5b6103e881600354610b169190611efd565b610b209190611ede565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b5f546001600160a01b03163314610b845760405162461bcd60e51b815260040161069290611e95565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f80546001600160a01b03163314610bf65760405162461bcd60e51b815260040161069290611e95565b306001600160a01b03841603610c4e5760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e736044820152606401610692565b815f03610cbe576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbb9190611f14565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a569190611f2b565b905090565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610d2c929091610d969190611524565b90611524565b5f610a56338484611199565b5f546001600160a01b03163314610dd15760405162461bcd60e51b815260040161069290611e95565b6001600160a01b03165f908152600160208190526040909120805460ff19169091179055565b5f546001600160a01b03163314610e205760405162461bcd60e51b815260040161069290611e95565b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610eb25760405162461bcd60e51b815260040161069290611e95565b6001600160a01b038116610f175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610692565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610fa6573d5f803e3d5ffd5b50565b5f80610fb58385611f46565b905083811015610a565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610692565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b932800611044606461078e601254600f546110a290919063ffffffff16565b611060606461078e601154600f546110a290919063ffffffff16565b61107c606461078e601354600f546110a290919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036110b157505f610663565b5f6110bc8385611efd565b9050826110c98583611ede565b14610a565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610692565b5f610a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611565565b5f81848411156111845760405162461bcd60e51b81526004016106929190611c46565b505f6111908486611f59565b95945050505050565b601f545f9060ff16156111b8576111b1848484611591565b9050610a56565b6001600160a01b0384165f9081526001602052604090205460ff161580156111f857506001600160a01b0383165f9081526001602052604090205460ff16155b801561121257506015546001600160a01b03848116911614155b801561122c57506015546001600160a01b03858116911614155b1561128157601d54600160a01b900460ff166112815760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610692565b6001600160a01b0384165f9081526001602052604090205460ff161580156112b257506001600160a01b0383163014155b80156112c957506001600160a01b03831661dead14155b80156112e35750601d546001600160a01b03848116911614155b80156112fd57506018546001600160a01b03848116911614155b801561131757506015546001600160a01b03848116911614155b801561133b57506001600160a01b0383165f9081526009602052604090205460ff16155b156113db576001600160a01b0383165f908152600660205260409020546005546113658483611f46565b11156113d95760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610692565b505b6113e58483611661565b6113ed6116cd565b156113fa576113fa611721565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526006909152919091205461144b918490611161565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061149657506001600160a01b0384165f9081526008602052604090205460ff165b6114aa576114a5858486611ac1565b6114ac565b825b6001600160a01b0385165f908152600660205260409020549091506114d19082610fa9565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f8051602061201b833981519152906115119085815260200190565b60405180910390a3506001949350505050565b5f610a5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611161565b5f81836115855760405162461bcd60e51b81526004016106929190611c46565b505f6111908486611ede565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546115e1918490611161565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461160f9083610fa9565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f8051602061201b8339815191529061164f9086815260200190565b60405180910390a35060019392505050565b6004548111158061168957506001600160a01b0382165f9081526009602052604090205460ff165b6116c95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610692565b5050565b601d545f906001600160a01b031633148015906116ed5750601f5460ff16155b80156117025750601d54600160a81b900460ff165b8015610d2c575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055600f545f61173d826002611efd565b600a54601e5461174d9190611efd565b6117579190611ede565b90505f81601e546117689190611f59565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106117a0576117a0611f6c565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106117d1576117d1611f6c565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac947906118169085905f90869030904290600401611f80565b5f604051808303815f87803b15801561182d575f80fd5b505af115801561183f573d5f803e3d5ffd5b5050600a544792506118549150600290611ede565b61185e9086611f59565b94505f61186c866002611efd565b600a546118799084611efd565b6118839190611ede565b90505f61189f8761078e600b54866110a290919063ffffffff16565b90505f6118bb8861078e600d54876110a290919063ffffffff16565b90505f6118d78961078e600c54886110a290919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611926576040519150601f19603f3d011682016040523d82523d5f602084013e61192b565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611978576040519150601f19603f3d011682016040523d82523d5f602084013e61197d565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146119ca576040519150601f19603f3d011682016040523d82523d5f602084013e6119cf565b606091505b505f92505089159050611aab57601b5460145460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a49573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a6e9190611fef565b505060408051878152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff191690555050505050505050565b601354601d545f91906001600160a01b0390811690841603611ae65750601154611b01565b601d546001600160a01b0390811690861603611b0157506012545b5f611b336010546064611b149190611efd565b61078e84611b2d600f548a6110a290919063ffffffff16565b906110a2565b90505f611b51600f5461078e600e54856110a290919063ffffffff16565b90505f611b5e8383611524565b305f90815260066020526040902054909150611b7a9082610fa9565b305f90815260066020526040808220929092556018546001600160a01b031681522054611ba79083610fa9565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f8051602061201b833981519152910160405180910390a38115611c3057600354611bff9083611524565b6003556040518281525f906001600160a01b038a16905f8051602061201b8339815191529060200160405180910390a35b611c3a8784611524565b98975050505050505050565b5f6020808352835180828501525f5b81811015611c7157858101830151858201604001528201611c55565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ca7575f80fd5b919050565b5f8060408385031215611cbd575f80fd5b611cc683611c91565b946020939093013593505050565b5f805f805f8060c08789031215611ce9575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611d25575f80fd5b505081359360208301359350604090920135919050565b5f805f805f60a08688031215611d50575f80fd5b611d5986611c91565b9450611d6760208701611c91565b9350611d7560408701611c91565b9250611d8360608701611c91565b9150611d9160808701611c91565b90509295509295909350565b5f805f60608486031215611daf575f80fd5b611db884611c91565b9250611dc660208501611c91565b9150604084013590509250925092565b8015158114610fa6575f80fd5b5f8060408385031215611df4575f80fd5b611dfd83611c91565b91506020830135611e0d81611dd6565b809150509250929050565b5f60208284031215611e28575f80fd5b610a5682611c91565b5f60208284031215611e41575f80fd5b5035919050565b5f8060408385031215611e59575f80fd5b611e6283611c91565b9150611e7060208401611c91565b90509250929050565b5f8060408385031215611e8a575f80fd5b8235611cc681611dd6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611ef857634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761066357610663611eca565b5f60208284031215611f24575f80fd5b5051919050565b5f60208284031215611f3b575f80fd5b8151610a5681611dd6565b8082018082111561066357610663611eca565b8181038181111561066357610663611eca565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611fce5784516001600160a01b031683529383019391830191600101611fa9565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612001575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122086cf752bdd8dbb1e9e172a59185178b1c93fa5ad657b78284988b2422179090364736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101e9575f3560e01c8063715018a611610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e14610548578063df20fd491461058c578063f2fde38b146105ab578063f887ea40146105ca578063f88de0c3146105e9575f80fd5b8063a8aa1b31146104cd578063a9059cbb146104ec578063b2bdfa7b1461050b578063b6a5d7de14610529575f80fd5b8063893d20e8116100d8578063893d20e81461046d5780638da5cb5b1461049d5780639358928b146104b957806395d89b411461021c575f80fd5b8063715018a61461041057806377b54bad1461042457806378109e54146104435780637d1db4a514610458575f80fd5b80631df4ccfc1161017e578063571ac8b01161014e578063571ac8b01461037e5780635d0044ca1461039d5780636ddd1713146103bc57806370a08231146103dc575f80fd5b80631df4ccfc1461031057806323b872dd1461032557806326f85dbe14610344578063313ce56714610363575f80fd5b806311f630f3116101b957806311f630f31461029d578063169bb498146102be57806318160ddd146102dd57806318abb635146102f1575f80fd5b80630445b667146101f457806306fdde031461021c57806308fd3d051461024e578063095ea7b31461027e575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50610209601e5481565b6040519081526020015b60405180910390f35b348015610227575f80fd5b5060408051808201825260048152635155425960e01b602082015290516102139190611c46565b348015610259575f80fd5b50601d5461026e90600160a01b900460ff1681565b6040519015158152602001610213565b348015610289575f80fd5b5061026e610298366004611cac565b6105fd565b3480156102a8575f80fd5b506102bc6102b7366004611cd4565b610669565b005b3480156102c9575f80fd5b506102bc6102d8366004611d13565b61073f565b3480156102e8575f80fd5b50600354610209565b3480156102fc575f80fd5b506102bc61030b366004611d3c565b6108c8565b34801561031b575f80fd5b50610209600f5481565b348015610330575f80fd5b5061026e61033f366004611d9d565b61099f565b34801561034f575f80fd5b506102bc61035e366004611de3565b610a5d565b34801561036e575f80fd5b5060405160098152602001610213565b348015610389575f80fd5b5061026e610398366004611e18565b610ac3565b3480156103a8575f80fd5b506102bc6103b7366004611e31565b610acf565b3480156103c7575f80fd5b50601d5461026e90600160a81b900460ff1681565b3480156103e7575f80fd5b506102096103f6366004611e18565b6001600160a01b03165f9081526006602052604090205490565b34801561041b575f80fd5b506102bc610b5b565b34801561042f575f80fd5b5061026e61043e366004611cac565b610bcc565b34801561044e575f80fd5b5061020960055481565b348015610463575f80fd5b5061020960045481565b348015610478575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610213565b3480156104a8575f80fd5b505f546001600160a01b0316610485565b3480156104c4575f80fd5b50610209610d31565b3480156104d8575f80fd5b50601d54610485906001600160a01b031681565b3480156104f7575f80fd5b5061026e610506366004611cac565b610d9c565b348015610516575f80fd5b505f54610485906001600160a01b031681565b348015610534575f80fd5b506102bc610543366004611e18565b610da8565b348015610553575f80fd5b50610209610562366004611e48565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610597575f80fd5b506102bc6105a6366004611e79565b610df7565b3480156105b6575f80fd5b506102bc6105c5366004611e18565b610e89565b3480156105d5575f80fd5b50601b54610485906001600160a01b031681565b3480156105f4575f80fd5b506102bc610f70565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106579086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b0316331461069b5760405162461bcd60e51b815260040161069290611e95565b60405180910390fd5b600a869055600d859055600b849055600c839055600e8290556106cc826106c6858188818c8c610fa9565b90610fa9565b600f5560108190556106df600182611ede565b600f541061072f5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610692565b610737611007565b505050505050565b5f546001600160a01b031633146107685760405162461bcd60e51b815260040161069290611e95565b601182905560128390556013819055600f54600a906107949060649061078e90876110a2565b90611120565b106107e15760405162461bcd60e51b815260206004820152601f60248201527f427579205461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610692565b600a6107ff606461078e601154600f546110a290919063ffffffff16565b1061084c5760405162461bcd60e51b815260206004820181905260248201527f53656c6c205461782063616e6e6f74206265206d6f7265207468616e203130256044820152606401610692565b600a61086a606461078e601354600f546110a290919063ffffffff16565b106108c35760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610692565b505050565b5f546001600160a01b031633146108f15760405162461bcd60e51b815260040161069290611e95565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1914610a48576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610a24918490611161565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610a53848484611199565b90505b9392505050565b5f546001600160a01b03163314610a865760405162461bcd60e51b815260040161069290611e95565b6001600160a01b039091165f908152601960209081526040808320805494151560ff199586168117909155601a9092529091208054909216179055565b5f610663825f196105fd565b5f546001600160a01b03163314610af85760405162461bcd60e51b815260040161069290611e95565b6001811015610b05575f80fd5b6103e881600354610b169190611efd565b610b209190611ede565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b5f546001600160a01b03163314610b845760405162461bcd60e51b815260040161069290611e95565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f80546001600160a01b03163314610bf65760405162461bcd60e51b815260040161069290611e95565b306001600160a01b03841603610c4e5760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e736044820152606401610692565b815f03610cbe576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbb9190611f14565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a569190611f2b565b905090565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610d2c929091610d969190611524565b90611524565b5f610a56338484611199565b5f546001600160a01b03163314610dd15760405162461bcd60e51b815260040161069290611e95565b6001600160a01b03165f908152600160208190526040909120805460ff19169091179055565b5f546001600160a01b03163314610e205760405162461bcd60e51b815260040161069290611e95565b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610eb25760405162461bcd60e51b815260040161069290611e95565b6001600160a01b038116610f175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610692565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610fa6573d5f803e3d5ffd5b50565b5f80610fb58385611f46565b905083811015610a565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610692565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b932800611044606461078e601254600f546110a290919063ffffffff16565b611060606461078e601154600f546110a290919063ffffffff16565b61107c606461078e601354600f546110a290919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036110b157505f610663565b5f6110bc8385611efd565b9050826110c98583611ede565b14610a565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610692565b5f610a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611565565b5f81848411156111845760405162461bcd60e51b81526004016106929190611c46565b505f6111908486611f59565b95945050505050565b601f545f9060ff16156111b8576111b1848484611591565b9050610a56565b6001600160a01b0384165f9081526001602052604090205460ff161580156111f857506001600160a01b0383165f9081526001602052604090205460ff16155b801561121257506015546001600160a01b03848116911614155b801561122c57506015546001600160a01b03858116911614155b1561128157601d54600160a01b900460ff166112815760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610692565b6001600160a01b0384165f9081526001602052604090205460ff161580156112b257506001600160a01b0383163014155b80156112c957506001600160a01b03831661dead14155b80156112e35750601d546001600160a01b03848116911614155b80156112fd57506018546001600160a01b03848116911614155b801561131757506015546001600160a01b03848116911614155b801561133b57506001600160a01b0383165f9081526009602052604090205460ff16155b156113db576001600160a01b0383165f908152600660205260409020546005546113658483611f46565b11156113d95760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610692565b505b6113e58483611661565b6113ed6116cd565b156113fa576113fa611721565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526006909152919091205461144b918490611161565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061149657506001600160a01b0384165f9081526008602052604090205460ff165b6114aa576114a5858486611ac1565b6114ac565b825b6001600160a01b0385165f908152600660205260409020549091506114d19082610fa9565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f8051602061201b833981519152906115119085815260200190565b60405180910390a3506001949350505050565b5f610a5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611161565b5f81836115855760405162461bcd60e51b81526004016106929190611c46565b505f6111908486611ede565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546115e1918490611161565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461160f9083610fa9565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f8051602061201b8339815191529061164f9086815260200190565b60405180910390a35060019392505050565b6004548111158061168957506001600160a01b0382165f9081526009602052604090205460ff165b6116c95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610692565b5050565b601d545f906001600160a01b031633148015906116ed5750601f5460ff16155b80156117025750601d54600160a81b900460ff165b8015610d2c575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055600f545f61173d826002611efd565b600a54601e5461174d9190611efd565b6117579190611ede565b90505f81601e546117689190611f59565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106117a0576117a0611f6c565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106117d1576117d1611f6c565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac947906118169085905f90869030904290600401611f80565b5f604051808303815f87803b15801561182d575f80fd5b505af115801561183f573d5f803e3d5ffd5b5050600a544792506118549150600290611ede565b61185e9086611f59565b94505f61186c866002611efd565b600a546118799084611efd565b6118839190611ede565b90505f61189f8761078e600b54866110a290919063ffffffff16565b90505f6118bb8861078e600d54876110a290919063ffffffff16565b90505f6118d78961078e600c54886110a290919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611926576040519150601f19603f3d011682016040523d82523d5f602084013e61192b565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611978576040519150601f19603f3d011682016040523d82523d5f602084013e61197d565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146119ca576040519150601f19603f3d011682016040523d82523d5f602084013e6119cf565b606091505b505f92505089159050611aab57601b5460145460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a49573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a6e9190611fef565b505060408051878152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff191690555050505050505050565b601354601d545f91906001600160a01b0390811690841603611ae65750601154611b01565b601d546001600160a01b0390811690861603611b0157506012545b5f611b336010546064611b149190611efd565b61078e84611b2d600f548a6110a290919063ffffffff16565b906110a2565b90505f611b51600f5461078e600e54856110a290919063ffffffff16565b90505f611b5e8383611524565b305f90815260066020526040902054909150611b7a9082610fa9565b305f90815260066020526040808220929092556018546001600160a01b031681522054611ba79083610fa9565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f8051602061201b833981519152910160405180910390a38115611c3057600354611bff9083611524565b6003556040518281525f906001600160a01b038a16905f8051602061201b8339815191529060200160405180910390a35b611c3a8784611524565b98975050505050505050565b5f6020808352835180828501525f5b81811015611c7157858101830151858201604001528201611c55565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ca7575f80fd5b919050565b5f8060408385031215611cbd575f80fd5b611cc683611c91565b946020939093013593505050565b5f805f805f8060c08789031215611ce9575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611d25575f80fd5b505081359360208301359350604090920135919050565b5f805f805f60a08688031215611d50575f80fd5b611d5986611c91565b9450611d6760208701611c91565b9350611d7560408701611c91565b9250611d8360608701611c91565b9150611d9160808701611c91565b90509295509295909350565b5f805f60608486031215611daf575f80fd5b611db884611c91565b9250611dc660208501611c91565b9150604084013590509250925092565b8015158114610fa6575f80fd5b5f8060408385031215611df4575f80fd5b611dfd83611c91565b91506020830135611e0d81611dd6565b809150509250929050565b5f60208284031215611e28575f80fd5b610a5682611c91565b5f60208284031215611e41575f80fd5b5035919050565b5f8060408385031215611e59575f80fd5b611e6283611c91565b9150611e7060208401611c91565b90509250929050565b5f8060408385031215611e8a575f80fd5b8235611cc681611dd6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611ef857634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761066357610663611eca565b5f60208284031215611f24575f80fd5b5051919050565b5f60208284031215611f3b575f80fd5b8151610a5681611dd6565b8082018082111561066357610663611eca565b8181038181111561066357610663611eca565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611fce5784516001600160a01b031683529383019391830191600101611fa9565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612001575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122086cf752bdd8dbb1e9e172a59185178b1c93fa5ad657b78284988b2422179090364736f6c63430008140033
Deployed Bytecode Sourcemap
5104:13327:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7392:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7392:56:0;;;;;;;;8938:80;;;;;;;;;;-1:-1:-1;9010:5:0;;;;;;;;;;;-1:-1:-1;;;9010:5:0;;;;8938:80;;;;9010:5;8938:80;:::i;7313:30::-;;;;;;;;;;-1:-1:-1;7313:30:0;;;;-1:-1:-1;;;7313:30:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7313:30:0;749:187:1;9360:216:0;;;;;;;;;;-1:-1:-1;9360:216:0;;;;;:::i;:::-;;:::i;16924:572::-;;;;;;;;;;-1:-1:-1;16924:572:0;;;;;:::i;:::-;;:::i;:::-;;14472:490;;;;;;;;;;-1:-1:-1;14472:490:0;;;;;:::i;:::-;;:::i;8668:88::-;;;;;;;;;;-1:-1:-1;8741:12:0;;8668:88;;17509:540;;;;;;;;;;-1:-1:-1;17509:540:0;;;;;:::i;:::-;;:::i;6671:90::-;;;;;;;;;;;;;;;;9878:370;;;;;;;;;;-1:-1:-1;9878:370:0;;;;;:::i;:::-;;:::i;10618:168::-;;;;;;;;;;-1:-1:-1;10618:168:0;;;;;:::i;:::-;;:::i;8762:80::-;;;;;;;;;;-1:-1:-1;8762:80:0;;5454:1;3634:36:1;;3622:2;3607:18;8762:80:0;3492:184:1;9584:122:0;;;;;;;;;;-1:-1:-1;9584:122:0;;;;;:::i;:::-;;:::i;10260:246::-;;;;;;;;;;-1:-1:-1;10260:246:0;;;;;:::i;:::-;;:::i;7355:30::-;;;;;;;;;;-1:-1:-1;7355:30:0;;;;-1:-1:-1;;;7355:30:0;;;;;;9108:105;;;;;;;;;;-1:-1:-1;9108:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9192:18:0;9174:7;9192:18;;;:9;:18;;;;;;;9108:105;2018:148;;;;;;;;;;;;;:::i;14102:356::-;;;;;;;;;;-1:-1:-1;14102:356:0;;;;;:::i;:::-;;:::i;6174:61::-;;;;;;;;;;;;;;;;6107:60;;;;;;;;;;;;;;;;9024:78;;;;;;;;;;-1:-1:-1;9076:7:0;1869:6;-1:-1:-1;;;;;1869:6:0;9024:78;;;-1:-1:-1;;;;;4221:32:1;;;4203:51;;4191:2;4176:18;9024:78:0;4057:203:1;1804:79:0;;;;;;;;;;-1:-1:-1;1842:7:0;1869:6;-1:-1:-1;;;;;1869:6:0;1804:79;;18285:139;;;;;;;;;;;;;:::i;7287:19::-;;;;;;;;;;-1:-1:-1;7287:19:0;;;;-1:-1:-1;;;;;7287:19:0;;;9714:156;;;;;;;;;;-1:-1:-1;9714:156:0;;;;;:::i;:::-;;:::i;1416:21::-;;;;;;;;;;-1:-1:-1;1416:21:0;;;;-1:-1:-1;;;;;1416:21:0;;;10516:94;;;;;;;;;;-1:-1:-1;10516:94:0;;;;;:::i;:::-;;:::i;9219:133::-;;;;;;;;;;-1:-1:-1;9219:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9321:19:0;;;9303:7;9321:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9219:133;18057:211;;;;;;;;;;-1:-1:-1;18057:211:0;;;;;:::i;:::-;;:::i;2174:244::-;;;;;;;;;;-1:-1:-1;2174:244:0;;;;;:::i;:::-;;:::i;7217:24::-;;;;;;;;;;-1:-1:-1;7217:24:0;;;;-1:-1:-1;;;;;7217:24:0;;;13960:134;;;;;;;;;;;;;:::i;9360:216::-;9464:10;9435:4;9452:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9452:32:0;;;;;;;;;;:41;;;9509:37;9435:4;;9452:32;;9509:37;;;;9487:6;160:25:1;;148:2;133:18;;14:177;9509:37:0;;;;;;;;-1:-1:-1;9564:4:0;9360:216;;;;;:::o;16924:572::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;;;;;;;;;17094:12:::1;:28:::0;;;17133:7:::1;:18:::0;;;17162:12:::1;:28:::0;;;17201:6:::1;:16:::0;;;17228:7:::1;:18:::0;;;17268:73:::1;17238:8:::0;17268:59:::1;17210:7:::0;17268:59;17177:13;17268:59;17109:13;17143:8;17268:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17257:8;:84:::0;17352:14:::1;:32:::0;;;17414:18:::1;17431:1;17369:15:::0;17414:18:::1;:::i;:::-;17403:8;;:29;17395:71;;;::::0;-1:-1:-1;;;17395:71:0;;5987:2:1;17395:71:0::1;::::0;::::1;5969:21:1::0;6026:2;6006:18;;;5999:30;6065:31;6045:18;;;6038:59;6114:18;;17395:71:0::1;5785:353:1::0;17395:71:0::1;17478:10;:8;:10::i;:::-;16924:572:::0;;;;;;:::o;14472:490::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;14572:11:::1;:19:::0;;;14602:10:::1;:17:::0;;;14630:15:::1;:24:::0;;;14679:8:::1;::::0;14715:2:::1;::::0;14679:33:::1;::::0;14708:3:::1;::::0;14679:24:::1;::::0;14615:4;14679:12:::1;:24::i;:::-;:28:::0;::::1;:33::i;:::-;:38;14671:82;;;::::0;-1:-1:-1;;;14671:82:0;;6345:2:1;14671:82:0::1;::::0;::::1;6327:21:1::0;6384:2;6364:18;;;6357:30;6423:33;6403:18;;;6396:61;6474:18;;14671:82:0::1;6143:355:1::0;14671:82:0::1;14809:2;14772:34;14802:3;14772:25;14785:11;;14772:8;;:12;;:25;;;;:::i;:34::-;:39;14764:84;;;::::0;-1:-1:-1;;;14764:84:0;;6705:2:1;14764:84:0::1;::::0;::::1;6687:21:1::0;;;6724:18;;;6717:30;6783:34;6763:18;;;6756:62;6835:18;;14764:84:0::1;6503:356:1::0;14764:84:0::1;14908:2;14867:38;14901:3;14867:29;14880:15;;14867:8;;:12;;:29;;;;:::i;:38::-;:43;14859:92;;;::::0;-1:-1:-1;;;14859:92:0;;7066:2:1;14859:92:0::1;::::0;::::1;7048:21:1::0;7105:2;7085:18;;;7078:30;7144:34;7124:18;;;7117:62;-1:-1:-1;;;7195:18:1;;;7188:34;7239:19;;14859:92:0::1;6864:400:1::0;14859:92:0::1;14472:490:::0;;;:::o;17509:540::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;17704:21:::1;:46:::0;;-1:-1:-1;;;;;17704:46:0;;::::1;-1:-1:-1::0;;;;;;17704:46:0;;::::1;;::::0;;;17761:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17816:14:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17859:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17904:15:::1;:34:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;17956:85:::1;::::0;;7538:34:1;;;7603:2;7588:18;;7581:43;;;;7640:18;;;7633:43;;;;7707:2;7692:18;;7685:43;;;;17956:85:0::1;::::0;7487:3:1;7472:19;17956:85:0::1;;;;;;;17509:540:::0;;;;;:::o;9878:370::-;-1:-1:-1;;;;;9998:19:0;;9978:4;9998:19;;;:11;:19;;;;;;;;10018:10;9998:31;;;;;;;;-1:-1:-1;;9998:52:0;9995:186;;10100:69;;;;;;;;;;;-1:-1:-1;;;10100:69:0;;;;;;;;-1:-1:-1;;;;;10100:19:0;;-1:-1:-1;10100:19:0;;;:11;:19;;;;;10120:10;10100:31;;;;;;;;;;:69;;10136:6;;10100:35;:69::i;:::-;-1:-1:-1;;;;;10066:19:0;;;;;;:11;:19;;;;;;;;10086:10;10066:31;;;;;;;:103;9995:186;10200:40;10214:6;10222:9;10233:6;10200:13;:40::i;:::-;10193:47;;9878:370;;;;;;:::o;10618:168::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;10707:28:0;;::::1;::::0;::::1;::::0;;;10746:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;10618:168::o;9584:122::-;9639:4;9663:35;9671:7;-1:-1:-1;;9663:7:0;:35::i;10260:246::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;10363:1:::1;10345:14;:19;;10337:28;;;::::0;::::1;;10430:4;10411:14;10396:12;;:29;;;;:::i;:::-;10395:39;;;;:::i;:::-;10377:15;:57:::0;;;10450:30:::1;::::0;160:25:1;;;10450:30:0::1;::::0;148:2:1;133:18;10450:30:0::1;;;;;;;10260:246:::0;:::o;2018:148::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;2125:1:::1;2109:6:::0;;2088:40:::1;::::0;-1:-1:-1;;;;;2109:6:0;;::::1;::::0;2088:40:::1;::::0;2125:1;;2088:40:::1;2156:1;2139:19:::0;;-1:-1:-1;;;;;;2139:19:0::1;::::0;;2018:148::o;14102:356::-;14191:4;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;14237:4:::1;-1:-1:-1::0;;;;;14213:29:0;::::1;::::0;14205:74:::1;;;::::0;-1:-1:-1;;;14205:74:0;;8114:2:1;14205:74:0::1;::::0;::::1;8096:21:1::0;;;8133:18;;;8126:30;8192:34;8172:18;;;8165:62;8244:18;;14205:74:0::1;7912:356:1::0;14205:74:0::1;14291:6;14301:1;14291:11:::0;14288:96:::1;;14327:45;::::0;-1:-1:-1;;;14327:45:0;;14366:4:::1;14327:45;::::0;::::1;4203:51:1::0;-1:-1:-1;;;;;14327:30:0;::::1;::::0;::::1;::::0;4176:18:1;;14327:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14318:54;;14288:96;14401:49;::::0;-1:-1:-1;;;14401:49:0;;14431:10:::1;14401:49;::::0;::::1;8636:51:1::0;8703:18;;;8696:34;;;-1:-1:-1;;;;;14401:29:0;::::1;::::0;::::1;::::0;8609:18:1;;14401:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9093:7::-:0;9086:14;;9024:78;:::o;18285:139::-;9192:9;:18;;;;5221:42;18335:7;9192:18;;;;;18362:12;;18335:7;;18362:54;;9192:18;;18362:33;;:12;:16;:33::i;:::-;:37;;:54::i;9714:156::-;9794:4;9818:44;9832:10;9844:9;9855:6;9818:13;:44::i;10516:94::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10576:19:0::1;;::::0;;;10598:4:::1;10576:19;::::0;;;;;;;:26;;-1:-1:-1;;10576:26:0::1;::::0;;::::1;::::0;;10516:94::o;18057:211::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;18148:11:::1;:22:::0;;-1:-1:-1;;;;18148:22:0::1;-1:-1:-1::0;;;18148:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;18181:13:::1;:23:::0;;;18220:40:::1;::::0;;9159:25:1;;;18148:22:0::1;18248:11:::0;;;::::1;::::0;;;::::1;9227:14:1::0;9220:22;9215:2;9200:18;;9193:50;18220:40:0::1;::::0;9132:18:1;18220:40:0::1;;;;;;;18057:211:::0;;:::o;2174:244::-;1931:6;;-1:-1:-1;;;;;1931:6:0;1233:10;1931:22;1923:67;;;;-1:-1:-1;;;1923:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2263:22:0;::::1;2255:73;;;::::0;-1:-1:-1;;;2255:73:0;;9456:2:1;2255:73:0::1;::::0;::::1;9438:21:1::0;9495:2;9475:18;;;9468:30;9534:34;9514:18;;;9507:62;-1:-1:-1;;;9585:18:1;;;9578:36;9631:19;;2255:73:0::1;9254:402:1::0;2255:73:0::1;2365:6;::::0;;2344:38:::1;::::0;-1:-1:-1;;;;;2344:38:0;;::::1;::::0;2365:6;::::1;::::0;2344:38:::1;::::0;::::1;2393:6;:17:::0;;-1:-1:-1;;;;;;2393:17:0::1;-1:-1:-1::0;;;;;2393:17:0;;;::::1;::::0;;;::::1;::::0;;2174:244::o;13960:134::-;14019:20;;14011:61;;-1:-1:-1;;;;;14019:20:0;;;;14050:21;14011:61;;;;;14019:20;14011:61;14019:20;14011:61;14050:21;14019:20;14011:61;;;;;;;;;;;;;;;;;;;;;13960:134::o;3987:181::-;4045:7;;4077:5;4081:1;4077;:5;:::i;:::-;4065:17;;4106:1;4101;:6;;4093:46;;;;-1:-1:-1;;;4093:46:0;;9993:2:1;4093:46:0;;;9975:21:1;10032:2;10012:18;;;10005:30;10071:29;10051:18;;;10044:57;10118:18;;4093:46:0;9791:351:1;16671:241:0;16724:180;16739:33;16768:3;16739:24;16752:10;;16739:8;;:12;;:24;;;;:::i;:33::-;16794:34;16824:3;16794:25;16807:11;;16794:8;;:12;;:25;;;;:::i;:34::-;16850:38;16884:3;16850:29;16863:15;;16850:8;;:12;;:29;;;;:::i;:38::-;16724:180;;;10367:4:1;10355:17;;;10337:36;;10409:17;;;10404:2;10389:18;;10382:45;10463:17;;10443:18;;;10436:45;16724:180:0;;;;;;10325:2:1;16724:180:0;;;16671:241::o;4514:250::-;4572:7;4596:1;4601;4596:6;4592:47;;-1:-1:-1;4626:1:0;4619:8;;4592:47;4651:9;4663:5;4667:1;4663;:5;:::i;:::-;4651:17;-1:-1:-1;4696:1:0;4687:5;4691:1;4651:17;4687:5;:::i;:::-;:10;4679:56;;;;-1:-1:-1;;;4679:56:0;;10694:2:1;4679:56:0;;;10676:21:1;10733:2;10713:18;;;10706:30;10772:34;10752:18;;;10745:62;-1:-1:-1;;;10823:18:1;;;10816:31;10864:19;;4679:56:0;10492:397:1;4770:132:0;4828:7;4855:39;4859:1;4862;4855:39;;;;;;;;;;;;;;;;;:3;:39::i;4316:192::-;4402:7;4438:12;4430:6;;;;4422:29;;;;-1:-1:-1;;;4422:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4462:9:0;4474:5;4478:1;4474;:5;:::i;:::-;4462:17;4316:192;-1:-1:-1;;;;;4316:192:0:o;10802:1308::-;10914:6;;10894:4;;10914:6;;10911:63;;;10930:41;10945:6;10953:9;10964:6;10930:14;:41::i;:::-;10923:48;;;;10911:63;-1:-1:-1;;;;;10990:22:0;;;;;;:14;:22;;;;;;;;10989:23;:53;;;;-1:-1:-1;;;;;;11017:25:0;;;;;;:14;:25;;;;;;;;11016:26;10989:53;:89;;;;-1:-1:-1;11058:20:0;;-1:-1:-1;;;;;11046:32:0;;;11058:20;;11046:32;;10989:89;:122;;;;-1:-1:-1;11091:20:0;;-1:-1:-1;;;;;11082:29:0;;;11091:20;;11082:29;;10989:122;10986:209;;;11136:11;;-1:-1:-1;;;11136:11:0;;;;11128:43;;;;-1:-1:-1;;;11128:43:0;;11229:2:1;11128:43:0;;;11211:21:1;11268:2;11248:18;;;11241:30;-1:-1:-1;;;11287:18:1;;;11280:50;11347:18;;11128:43:0;11027:344:1;11128:43:0;-1:-1:-1;;;;;11237:22:0;;;;;;:14;:22;;;;;;;;11236:23;:53;;;;-1:-1:-1;;;;;;11263:26:0;;11284:4;11263:26;;11236:53;:84;;;;-1:-1:-1;;;;;;11294:26:0;;5221:42;11294:26;;11236:84;:105;;;;-1:-1:-1;11337:4:0;;-1:-1:-1;;;;;11324:17:0;;;11337:4;;11324:17;;11236:105;:137;;;;-1:-1:-1;11358:15:0;;-1:-1:-1;;;;;11345:28:0;;;11358:15;;11345:28;;11236:137;:174;;;;-1:-1:-1;11390:20:0;;-1:-1:-1;;;;;11377:33:0;;;11390:20;;11377:33;;11236:174;:207;;;;-1:-1:-1;;;;;;11415:28:0;;;;;;:17;:28;;;;;;;;11414:29;11236:207;11232:399;;;-1:-1:-1;;;;;9192:18:0;;11459;9192;;;:9;:18;;;;;;11548:15;;11524:19;11537:6;9192:18;11524:19;:::i;:::-;11523:40;;11515:114;;;;-1:-1:-1;;;11515:114:0;;11578:2:1;11515:114:0;;;11560:21:1;11617:2;11597:18;;;11590:30;11656:34;11636:18;;;11629:62;11727:32;11707:18;;;11700:60;11777:19;;11515:114:0;11376:426:1;11515:114:0;11444:187;11232:399;11643:28;11656:6;11664;11643:12;:28::i;:::-;11689:16;:14;:16::i;:::-;11686:35;;;11708:10;:8;:10::i;:::-;11751:53;;;;;;;;;;;-1:-1:-1;;;11751:53:0;;;;;;;;-1:-1:-1;;;;;11751:17:0;;-1:-1:-1;11751:17:0;;;:9;:17;;;;;;;;:53;;11773:6;;11751:21;:53::i;:::-;-1:-1:-1;;;;;11731:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11843:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;11871:27:0;;;;;;:16;:27;;;;;;;;11843:55;11842:103;;11911:34;11919:6;11927;11935:9;11911:7;:34::i;:::-;11842:103;;;11902:6;11842:103;-1:-1:-1;;;;;11979:20:0;;;;;;:9;:20;;;;;;11817:128;;-1:-1:-1;11979:40:0;;11817:128;11979:24;:40::i;:::-;-1:-1:-1;;;;;11956:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12037:43;;;;;;-1:-1:-1;;;;;;;;;;;12037:43:0;;;12065:14;160:25:1;;148:2;133:18;;14:177;12037:43:0;;;;;;;;-1:-1:-1;12098:4:0;;10802:1308;-1:-1:-1;;;;10802:1308:0:o;4174:136::-;4232:7;4259:43;4263:1;4266;4259:43;;;;;;;;;;;;;;;;;:3;:43::i;4908:189::-;4994:7;5029:12;5022:5;5014:28;;;;-1:-1:-1;;;5014:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5053:9:0;5065:5;5069:1;5065;:5;:::i;12119:330::-;12249:53;;;;;;;;;;;-1:-1:-1;;;12249:53:0;;;;;;;;-1:-1:-1;;;;;12249:17:0;;12212:4;12249:17;;;:9;:17;;;;;;;:53;;12271:6;;12249:21;:53::i;:::-;-1:-1:-1;;;;;12229:17:0;;;;;;;:9;:17;;;;;;:73;;;;12336:20;;;;;;;:32;;12361:6;12336:24;:32::i;:::-;-1:-1:-1;;;;;12313:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12384:35;;;;;;-1:-1:-1;;;;;;;;;;;12384:35:0;;;12412:6;160:25:1;;148:2;133:18;;14:177;12384:35:0;;;;;;;;-1:-1:-1;12437:4:0;12119:330;;;;;:::o;12457:168::-;12554:12;;12544:6;:22;;:51;;;-1:-1:-1;;;;;;12570:25:0;;;;;;:17;:25;;;;;;;;12544:51;12536:81;;;;-1:-1:-1;;;12536:81:0;;12009:2:1;12536:81:0;;;11991:21:1;12048:2;12028:18;;;12021:30;-1:-1:-1;;;12067:18:1;;;12060:47;12124:18;;12536:81:0;11807:341:1;12536:81:0;12457:168;;:::o;13750:197::-;13837:4;;13799;;-1:-1:-1;;;;;13837:4:0;13823:10;:18;;;;:38;;-1:-1:-1;13855:6:0;;;;13854:7;13823:38;:62;;;;-1:-1:-1;13874:11:0;;-1:-1:-1;;;13874:11:0;;;;13823:62;:116;;;;-1:-1:-1;;13926:13:0;;13916:4;13898:24;;;;:9;:24;;;;;;:41;;;13750:197::o;14978:1677::-;7496:6;:13;;-1:-1:-1;;7496:13:0;7505:4;7496:13;;;15059:8:::1;::::0;7496:6;15138:15:::1;15059:8:::0;15152:1:::1;15138:15;:::i;:::-;15123:12;;15107:13;;:28;;;;:::i;:::-;15106:48;;;;:::i;:::-;15080:74;;15165:20;15204:15;15188:13;;:31;;;;:::i;:::-;15256:16;::::0;;15270:1:::1;15256:16:::0;;;;;::::1;::::0;;15165:54;;-1:-1:-1;15232:21:0::1;::::0;15256:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15256:16:0::1;15232:40;;15301:4;15283;15288:1;15283:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15283:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15327:4:::1;::::0;15317:7;;15327:4;::::1;::::0;15317;;15327;;15317:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15317:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15344:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15344:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15416:12;;15344:6:::1;::::0;15459:4;;15486::::1;::::0;15506:15:::1;::::0;15344:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15630:12:0::1;::::0;15566:21:::1;::::0;-1:-1:-1;15630:16:0::1;::::0;-1:-1:-1;15645:1:0::1;::::0;15630:16:::1;:::i;:::-;15615:32;::::0;:11;:32:::1;:::i;:::-;15601:46:::0;-1:-1:-1;15668:26:0::1;15727:15;15601:46:::0;15741:1:::1;15727:15;:::i;:::-;15710:12;::::0;15698:24:::1;::::0;:9;:24:::1;:::i;:::-;15697:46;;;;:::i;:::-;15668:75;;15754:26;15783:44;15815:11;15783:27;15797:12;;15783:9;:13;;:27;;;;:::i;:44::-;15754:73;;15838:21;15862:39;15889:11;15862:22;15876:7;;15862:9;:13;;:22;;;;:::i;:39::-;15838:63;;15912:20;15935:38;15961:11;15935:21;15949:6;;15935:9;:13;;:21;;;;:::i;:38::-;16015:20;::::0;16007:65:::1;::::0;15912:61;;-1:-1:-1;15987:15:0::1;::::0;-1:-1:-1;;;;;16015:20:0;;::::1;::::0;16049:18;;15987:15;16007:65;15987:15;16007:65;16049:18;16015:20;16007:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16107:14:0::1;::::0;16099:53:::1;::::0;15986:86;;-1:-1:-1;;;;;;16107:14:0::1;::::0;16135:12;;16099:53:::1;::::0;;;16135:12;16107:14;16099:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16187:15:0::1;::::0;16179:55:::1;::::0;16083:69;;-1:-1:-1;;;;;;16187:15:0::1;::::0;16216:13;;16179:55:::1;::::0;;;16216:13;16187:15;16179:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16268:5:0::1;::::0;-1:-1:-1;;16289:19:0;;;-1:-1:-1;16286:362:0::1;;16324:6;::::0;16498:21:::1;::::0;16324:244:::1;::::0;-1:-1:-1;;;16324:244:0;;16400:4:::1;16324:244;::::0;::::1;13953:34:1::0;14003:18;;;13996:34;;;16324:6:0::1;14046:18:1::0;;;14039:34;;;14089:18;;;14082:34;-1:-1:-1;;;;;16498:21:0;;::::1;14132:19:1::0;;;14125:44;16538:15:0::1;14185:19:1::0;;;14178:35;16324:6:0;::::1;::::0;:22:::1;::::0;16354:18;;13887:19:1;;16324:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16588:48:0::1;::::0;;14709:25:1;;;14765:2;14750:18;;14743:34;;;16588:48:0::1;::::0;-1:-1:-1;14682:18:1;16588:48:0::1;;;;;;;16286:362;-1:-1:-1::0;;7514:6:0;:14;;-1:-1:-1;;7514:14:0;;;-1:-1:-1;;;;;;;;14978:1677:0:o;12760:982::-;12894:15;;12936:4;;12846:7;;12894:15;-1:-1:-1;;;;;12936:4:0;;;12923:17;;;;12920:142;;-1:-1:-1;12967:11:0;;12920:142;;;13009:4;;-1:-1:-1;;;;;13009:4:0;;;12999:14;;;;12996:66;;-1:-1:-1;13040:10:0;;12996:66;13074:17;13094:59;13132:14;;13149:3;13132:20;;;;:::i;:::-;13094:33;13119:7;13094:20;13105:8;;13094:6;:10;;:20;;;;:::i;:::-;:24;;:33::i;:59::-;13074:79;;13164:18;13185:36;13212:8;;13185:22;13199:7;;13185:9;:13;;:22;;;;:::i;:36::-;13164:57;-1:-1:-1;13232:22:0;13257:25;:9;13164:57;13257:13;:25::i;:::-;13338:4;13320:24;;;;:9;:24;;;;;;13232:50;;-1:-1:-1;13320:44:0;;13232:50;13320:28;:44::i;:::-;13311:4;13293:24;;;;:9;:24;;;;;;:71;;;;13414:15;;-1:-1:-1;;;;;13414:15:0;13404:26;;;;:42;;13435:10;13404:30;:42::i;:::-;13385:15;;-1:-1:-1;;;;;13385:15:0;;;13375:26;;;;:9;:26;;;;;;;;;:71;;;;13462:47;160:25:1;;;13487:4:0;;13462:47;;;;-1:-1:-1;;;;;;;;;;;13462:47:0;133:18:1;13462:47:0;;;;;;;13543:14;;13540:154;;13588:12;;:28;;13605:10;13588:16;:28::i;:::-;13573:12;:43;13636:34;;160:25:1;;;5294:42:0;;-1:-1:-1;;;;;13636:34:0;;;-1:-1:-1;;;;;;;;;;;13636:34:0;148:2:1;133:18;13636:34:0;;;;;;;13540:154;13713:21;:6;13724:9;13713:10;:21::i;:::-;13706:28;12760:982;-1:-1:-1;;;;;;;;12760:982:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:523::-;1482:6;1490;1498;1506;1514;1522;1575:3;1563:9;1554:7;1550:23;1546:33;1543:53;;;1592:1;1589;1582:12;1543:53;-1:-1:-1;;1615:23:1;;;1685:2;1670:18;;1657:32;;-1:-1:-1;1736:2:1;1721:18;;1708:32;;1787:2;1772:18;;1759:32;;-1:-1:-1;1838:3:1;1823:19;;1810:33;;-1:-1:-1;1890:3:1;1875:19;1862:33;;-1:-1:-1;1378:523:1;-1:-1:-1;1378:523:1:o;1906:316::-;1983:6;1991;1999;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;-1:-1:-1;;2091:23:1;;;2161:2;2146:18;;2133:32;;-1:-1:-1;2212:2:1;2197:18;;;2184:32;;1906:316;-1:-1:-1;1906:316:1:o;2227:484::-;2322:6;2330;2338;2346;2354;2407:3;2395:9;2386:7;2382:23;2378:33;2375:53;;;2424:1;2421;2414:12;2375:53;2447:29;2466:9;2447:29;:::i;:::-;2437:39;;2495:38;2529:2;2518:9;2514:18;2495:38;:::i;:::-;2485:48;;2552:38;2586:2;2575:9;2571:18;2552:38;:::i;:::-;2542:48;;2609:38;2643:2;2632:9;2628:18;2609:38;:::i;:::-;2599:48;;2666:39;2700:3;2689:9;2685:19;2666:39;:::i;:::-;2656:49;;2227:484;;;;;;;;:::o;2716:328::-;2793:6;2801;2809;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;2901:29;2920:9;2901:29;:::i;:::-;2891:39;;2949:38;2983:2;2972:9;2968:18;2949:38;:::i;:::-;2939:48;;3034:2;3023:9;3019:18;3006:32;2996:42;;2716:328;;;;;:::o;3049:118::-;3135:5;3128:13;3121:21;3114:5;3111:32;3101:60;;3157:1;3154;3147:12;3172:315;3237:6;3245;3298:2;3286:9;3277:7;3273:23;3269:32;3266:52;;;3314:1;3311;3304:12;3266:52;3337:29;3356:9;3337:29;:::i;:::-;3327:39;;3416:2;3405:9;3401:18;3388:32;3429:28;3451:5;3429:28;:::i;:::-;3476:5;3466:15;;;3172:315;;;;;:::o;3681:186::-;3740:6;3793:2;3781:9;3772:7;3768:23;3764:32;3761:52;;;3809:1;3806;3799:12;3761:52;3832:29;3851:9;3832:29;:::i;3872:180::-;3931:6;3984:2;3972:9;3963:7;3959:23;3955:32;3952:52;;;4000:1;3997;3990:12;3952:52;-1:-1:-1;4023:23:1;;3872:180;-1:-1:-1;3872:180:1:o;4265:260::-;4333:6;4341;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4433:29;4452:9;4433:29;:::i;:::-;4423:39;;4481:38;4515:2;4504:9;4500:18;4481:38;:::i;:::-;4471:48;;4265:260;;;;;:::o;4530:309::-;4595:6;4603;4656:2;4644:9;4635:7;4631:23;4627:32;4624:52;;;4672:1;4669;4662:12;4624:52;4711:9;4698:23;4730:28;4752:5;4730:28;:::i;5070:356::-;5272:2;5254:21;;;5291:18;;;5284:30;5350:34;5345:2;5330:18;;5323:62;5417:2;5402:18;;5070:356::o;5431:127::-;5492:10;5487:3;5483:20;5480:1;5473:31;5523:4;5520:1;5513:15;5547:4;5544:1;5537:15;5563:217;5603:1;5629;5619:132;;5673:10;5668:3;5664:20;5661:1;5654:31;5708:4;5705:1;5698:15;5736:4;5733:1;5726:15;5619:132;-1:-1:-1;5765:9:1;;5563:217::o;7739:168::-;7812:9;;;7843;;7860:15;;;7854:22;;7840:37;7830:71;;7881:18;;:::i;8273:184::-;8343:6;8396:2;8384:9;8375:7;8371:23;8367:32;8364:52;;;8412:1;8409;8402:12;8364:52;-1:-1:-1;8435:16:1;;8273:184;-1:-1:-1;8273:184:1:o;8741:245::-;8808:6;8861:2;8849:9;8840:7;8836:23;8832:32;8829:52;;;8877:1;8874;8867:12;8829:52;8909:9;8903:16;8928:28;8950:5;8928:28;:::i;9661:125::-;9726:9;;;9747:10;;;9744:36;;;9760:18;;:::i;10894:128::-;10961:9;;;10982:11;;;10979:37;;;10996:18;;:::i;12285:127::-;12346:10;12341:3;12337:20;12334:1;12327:31;12377:4;12374:1;12367:15;12401:4;12398:1;12391:15;12417:980;12679:4;12727:3;12716:9;12712:19;12758:6;12747:9;12740:25;12784:2;12822:6;12817:2;12806:9;12802:18;12795:34;12865:3;12860:2;12849:9;12845:18;12838:31;12889:6;12924;12918:13;12955:6;12947;12940:22;12993:3;12982:9;12978:19;12971:26;;13032:2;13024:6;13020:15;13006:29;;13053:1;13063:195;13077:6;13074:1;13071:13;13063:195;;;13142:13;;-1:-1:-1;;;;;13138:39:1;13126:52;;13233:15;;;;13198:12;;;;13174:1;13092:9;13063:195;;;-1:-1:-1;;;;;;;13314:32:1;;;;13309:2;13294:18;;13287:60;-1:-1:-1;;;13378:3:1;13363:19;13356:35;13275:3;12417:980;-1:-1:-1;;;12417:980:1:o;14224:306::-;14312:6;14320;14328;14381:2;14369:9;14360:7;14356:23;14352:32;14349:52;;;14397:1;14394;14387:12;14349:52;14426:9;14420:16;14410:26;;14476:2;14465:9;14461:18;14455:25;14445:35;;14520:2;14509:9;14505:18;14499:25;14489:35;;14224:306;;;;;:::o
Swarm Source
ipfs://86cf752bdd8dbb1e9e172a59185178b1c93fa5ad657b78284988b24221790903
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.