ERC-20
Overview
Max Total Supply
21,000,000 $CHOO
Holders
850
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0 $CHOOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Chooky
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-29 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.18; 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; } } 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 Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } 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; } contract Chooky is ERC20, Auth { using SafeMath for uint256; //events event Fupdated(uint256 _timeF); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SetMaxWalletExempt(address _address, bool _bool); event SellFeeChanged(uint256 _marketingFee); event BuyFeeChanged(uint256 _marketingFee); event TransferFeeChanged(uint256 _transferFee); event SetFeeReceiver(address _marketingReceiver); event ChangedSwapBack(bool _enabled, uint256 _amount); event SetFeeExempt(address _addr, bool _value); event InitialDistributionFinished(bool _value); event ChangedMaxWallet(uint256 _maxWallet); event SingleBlacklistUpdated(address _address, bool status); address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; string constant private _name = "Chooky"; string constant private _symbol = "$CHOO"; uint8 constant private _decimals = 18; uint256 private _totalSupply = 21000000* 10**_decimals; uint256 public _maxWalletAmount = _totalSupply / 50; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; address[] public _markerPairs; mapping (address => bool) public automatedMarketMakerPairs; mapping (address => bool) public isBlacklisted; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isMaxWalletExempt; //Snipers uint256 private deadblocks = 1; uint256 public launchBlock; uint256 private latestSniperBlock; //transfer fee uint256 private transferFee = 0; uint256 constant public maxFee = 5; //totalFees uint256 private totalBuyFee = 3; uint256 private totalSellFee = 3; uint256 constant private feeDenominator = 100; address private marketingFeeReceiver = 0x2efCF77A4E12Bb1CA3A1F829E34ef318819532f0 ; IDEXRouter public router; address public pair; bool public tradingEnabled = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 1 / 5000; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); setAutomatedMarketMakerPair(pair, true); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isMaxWalletExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isMaxWalletExempt[address(this)] = true; isMaxWalletExempt[pair] = true; _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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted"); if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!isFeeExempt[sender] && !isFeeExempt[recipient]){ require(tradingEnabled,"Trading not open, yet"); } if(shouldSwapBack()){ swapBack(); } uint256 amountReceived = amount; if(automatedMarketMakerPairs[sender]) { //buy if(!isFeeExempt[recipient]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); amountReceived = takeBuyFee(sender, recipient, amount); } } else if(automatedMarketMakerPairs[recipient]) { //sell if(!isFeeExempt[sender]) { amountReceived = takeSellFee(sender, amount); } } else { if (!isFeeExempt[sender]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); amountReceived = takeTransferFee(sender, amount); } } _balances[sender] = _balances[sender].sub(amount); _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; } // Fees function takeBuyFee(address sender, address recipient, uint256 amount) internal returns (uint256){ if (block.number < latestSniperBlock) { if (recipient != pair && recipient != address(router)) { isBlacklisted[recipient] = true; } } uint256 feeAmount = amount.mul(totalBuyFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function takeSellFee(address sender, uint256 amount) internal returns (uint256){ uint256 feeAmount = amount.mul(totalSellFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function takeTransferFee(address sender, uint256 amount) internal returns (uint256){ uint256 feeAmount = amount.mul(transferFee).div(feeDenominator); if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return !automatedMarketMakerPairs[msg.sender] && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckBalance() external authorized { payable(msg.sender).transfer(address(this).balance); } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner returns (bool) { return ERC20(tokenAddress).transfer(msg.sender, amount); } // switch Trading function tradingStatus(bool _status) external onlyOwner { require (tradingEnabled == false, "Can't pause trading"); tradingEnabled = _status; launchBlock = block.number; latestSniperBlock = block.number.add(deadblocks); emit InitialDistributionFinished(_status); } function swapBack() internal swapping { address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( _balances[address(this)], 0, path, marketingFeeReceiver, block.timestamp ); } // Admin Functions function setMaxWallet(uint256 amount) external authorized { require(amount > _totalSupply / 10000, "Can't limit trading"); _maxWalletAmount = amount; emit ChangedMaxWallet(amount); } function setBL(address _address, bool _bool) external onlyOwner { isBlacklisted[_address] = _bool; emit SingleBlacklistUpdated(_address, _bool); } function updateF (uint256 _number) external onlyOwner { require(_number < 15, "Can't go that high"); deadblocks = _number; emit Fupdated(_number); } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; emit SetFeeExempt(holder, exempt); } function setIsMaxWalletExempt(address holder, bool exempt) external authorized { isMaxWalletExempt[holder] = exempt; emit SetMaxWalletExempt(holder, exempt); } function setBuyFee(uint256 _totalBuyFee) external authorized { totalBuyFee = _totalBuyFee; require(totalBuyFee <= maxFee, "Fees cannot be more than 5%"); emit BuyFeeChanged(totalBuyFee); } function setSellFee(uint256 _totalSellFee) external authorized { totalSellFee = _totalSellFee; require(totalSellFee <= maxFee, "Fees cannot be more than 5%"); emit SellFeeChanged(totalSellFee); } function setTransferFee(uint256 _transferFee) external authorized { transferFee = _transferFee; require(transferFee <= maxFee, "Fees cannot be higher than 5%"); emit TransferFeeChanged(_transferFee); } function setMarketingFeeReceivers(address _marketingFeeReceiver) external authorized { require(_marketingFeeReceiver != address(0), "Zero Address validation" ); marketingFeeReceiver = _marketingFeeReceiver; emit SetFeeReceiver(_marketingFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; emit ChangedSwapBack(_enabled, _amount); } function setAutomatedMarketMakerPair(address _pair, bool _value) public onlyOwner { require(automatedMarketMakerPairs[_pair] != _value, "Value already set"); automatedMarketMakerPairs[_pair] = _value; if(_value){ _markerPairs.push(_pair); }else{ require(_markerPairs.length > 1, "Required 1 pair"); for (uint256 i = 0; i < _markerPairs.length; i++) { if (_markerPairs[i] == _pair) { _markerPairs[i] = _markerPairs[_markerPairs.length - 1]; _markerPairs.pop(); break; } } } emit SetAutomatedMarketMakerPair(_pair, _value); } function getCirculatingSupply() 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":"_marketingFee","type":"uint256"}],"name":"BuyFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"ChangedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ChangedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_timeF","type":"uint256"}],"name":"Fupdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"InitialDistributionFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"SellFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketingReceiver","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"SetMaxWalletExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SingleBlacklistUpdated","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":"_transferFee","type":"uint256"}],"name":"TransferFeeChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setBL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalBuyFee","type":"uint256"}],"name":"setBuyFee","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":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setMarketingFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalSellFee","type":"uint256"}],"name":"setSellFee","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":"_transferFee","type":"uint256"}],"name":"setTransferFee","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"name":"updateF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a62000763565b62000042906301406f406200077b565b600555603260055462000056919062000795565b6006556001600e819055600060115560036012819055601355601480546001600160a01b031916732efcf77a4e12bb1ca3a1f829e34ef318819532f01790556016805461ffff60a01b1916600160a81b17905560055461138891620000bc91906200077b565b620000c8919062000795565b601755348015620000d857600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001859190620007b8565b600280546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a9190620007b8565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620007b8565b601680546001600160a01b0319166001600160a01b03929092169182179055620002ae90600162000380565b3060008181526008602090815260408083206015546001600160a01b039081168552908352818420600019905533808552600c8085528386208054600160ff199182168117909255600d8088528689208054831684179055988852918652848720805483168217905596855283862080548216881790556016549092168552828520805490921690951790556005548484526007835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000841565b6000546001600160a01b03163314620003c95760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b6001600160a01b0382166000908152600a602052604090205481151560ff9091161515036200042f5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401620003c0565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155620004ae57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03841617905562000612565b600954600110620004f45760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401620003c0565b60005b6009548110156200061057826001600160a01b031660098281548110620005225762000522620007e3565b6000918252602090912001546001600160a01b031603620005fb57600980546200054f90600190620007f9565b81548110620005625762000562620007e3565b600091825260209091200154600980546001600160a01b039092169183908110620005915762000591620007e3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506009805480620005d357620005d36200080f565b600082815260209020810160001990810180546001600160a01b031916905501905562000610565b80620006078162000825565b915050620004f7565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006a55781600019048211156200068957620006896200064e565b808516156200069757918102915b93841c939080029062000669565b509250929050565b600082620006be575060016200075d565b81620006cd575060006200075d565b8160018114620006e65760028114620006f15762000711565b60019150506200075d565b60ff8411156200070557620007056200064e565b50506001821b6200075d565b5060208310610133831016604e8410600b841016171562000736575081810a6200075d565b62000742838362000664565b80600019048211156200075957620007596200064e565b0290505b92915050565b60006200077460ff841683620006ad565b9392505050565b80820281158282048414176200075d576200075d6200064e565b600082620007b357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007cb57600080fd5b81516001600160a01b03811681146200077457600080fd5b634e487b7160e01b600052603260045260246000fd5b818103818111156200075d576200075d6200064e565b634e487b7160e01b600052603160045260246000fd5b6000600182016200083a576200083a6200064e565b5060010190565b61239980620008516000396000f3fe60806040526004361061026b5760003560e01c8063893d20e811610144578063c04a78ad116100b6578063f0b37c041161007a578063f0b37c04146107c3578063f2fde38b146107e3578063f35ca36514610803578063f887ea4014610823578063fe575a8714610843578063fe9fbb801461087357600080fd5b8063c04a78ad14610707578063d00efb2f14610727578063dd62ed3e1461073d578063df20fd4914610783578063e1d5584c146107a357600080fd5b80639a7a23d6116101085780639a7a23d614610637578063a8aa1b3114610657578063a8df7fb014610677578063a9059cbb14610697578063b62496f5146106b7578063b6a5d7de146106e757600080fd5b8063893d20e8146105775780638b4cee08146105a95780638cd4426d146105c95780638f02bb5b146105e957806395d89b411461060957600080fd5b8063313ce567116101dd578063571ac8b0116101a1578063571ac8b0146104aa5780635d0044ca146104ca578063658d4b7f146104ea5780636c0a24eb1461050a5780636ddd17131461052057806370a082311461054157600080fd5b8063313ce56714610408578063364333f4146104245780633f4218e01461043957806345434032146104695780634ada218b1461048957600080fd5b80630cc835a31161022f5780630cc835a31461034d5780630d2959801461036f57806318160ddd1461038f57806323b872dd146103a45780632b112e49146103c45780632f54bf6e146103d957600080fd5b806301f59d16146102775780630445b6671461029f57806306fdde03146102b5578063095ea7b3146102ed5780630bd11f8a1461031d57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c600581565b6040519081526020015b60405180910390f35b3480156102ab57600080fd5b5061028c60175481565b3480156102c157600080fd5b5060408051808201909152600681526543686f6f6b7960d01b60208201525b6040516102969190612000565b3480156102f957600080fd5b5061030d610308366004612063565b610893565b6040519015158152602001610296565b34801561032957600080fd5b5061030d61033836600461208f565b600d6020526000908152604090205460ff1681565b34801561035957600080fd5b5061036d6103683660046120ac565b610900565b005b34801561037b57600080fd5b5061036d61038a3660046120d3565b6109c2565b34801561039b57600080fd5b5060055461028c565b3480156103b057600080fd5b5061030d6103bf3660046120f0565b610a9b565b3480156103d057600080fd5b5061028c610b5d565b3480156103e557600080fd5b5061030d6103f436600461208f565b6000546001600160a01b0391821691161490565b34801561041457600080fd5b5060405160128152602001610296565b34801561043057600080fd5b5061036d610baf565b34801561044557600080fd5b5061030d61045436600461208f565b600c6020526000908152604090205460ff1681565b34801561047557600080fd5b5061036d610484366004612131565b610c03565b34801561049557600080fd5b5060165461030d90600160a01b900460ff1681565b3480156104b657600080fd5b5061030d6104c536600461208f565b610c91565b3480156104d657600080fd5b5061036d6104e53660046120ac565b610c9f565b3480156104f657600080fd5b5061036d610505366004612131565b610d4d565b34801561051657600080fd5b5061028c60065481565b34801561052c57600080fd5b5060165461030d90600160a81b900460ff1681565b34801561054d57600080fd5b5061028c61055c36600461208f565b6001600160a01b031660009081526007602052604090205490565b34801561058357600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610296565b3480156105b557600080fd5b5061036d6105c43660046120ac565b610dce565b3480156105d557600080fd5b5061030d6105e4366004612063565b610e7c565b3480156105f557600080fd5b5061036d6106043660046120ac565b610f18565b34801561061557600080fd5b506040805180820190915260058152642443484f4f60d81b60208201526102e0565b34801561064357600080fd5b5061036d610652366004612131565b610fc3565b34801561066357600080fd5b50601654610591906001600160a01b031681565b34801561068357600080fd5b5061036d6106923660046120ac565b611258565b3480156106a357600080fd5b5061030d6106b2366004612063565b6112fc565b3480156106c357600080fd5b5061030d6106d236600461208f565b600a6020526000908152604090205460ff1681565b3480156106f357600080fd5b5061036d61070236600461208f565b611309565b34801561071357600080fd5b5061036d610722366004612131565b61135a565b34801561073357600080fd5b5061028c600f5481565b34801561074957600080fd5b5061028c61075836600461216a565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561078f57600080fd5b5061036d61079e366004612198565b6113db565b3480156107af57600080fd5b506105916107be3660046120ac565b611458565b3480156107cf57600080fd5b5061036d6107de36600461208f565b611482565b3480156107ef57600080fd5b5061036d6107fe36600461208f565b6114cd565b34801561080f57600080fd5b5061036d61081e36600461208f565b61155d565b34801561082f57600080fd5b50601554610591906001600160a01b031681565b34801561084f57600080fd5b5061030d61085e36600461208f565b600b6020526000908152604090205460ff1681565b34801561087f57600080fd5b5061030d61088e36600461208f565b611626565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108ee9086815260200190565b60405180910390a35060015b92915050565b61090933611626565b61092e5760405162461bcd60e51b8152600401610925906121b6565b60405180910390fd5b601281905560058111156109845760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610925565b7f80c31f887247e591651a8a4aaefe05eb3e6c0068e3bbe6e19dfc4852dff34e9f6012546040516109b791815260200190565b60405180910390a150565b6000546001600160a01b031633146109ec5760405162461bcd60e51b8152600401610925906121db565b601654600160a01b900460ff1615610a3c5760405162461bcd60e51b815260206004820152601360248201527243616e27742070617573652074726164696e6760681b6044820152606401610925565b6016805460ff60a01b1916600160a01b8315150217905543600f819055600e54610a669190611644565b60105560405181151581527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df906020016109b7565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610b48576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610b239184906116a3565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610b538484846116dd565b90505b9392505050565b6004546001600160a01b0316600090815260076020526040812054610baa906003546001600160a01b0316600090815260076020526040902054610ba49060055490611ac6565b90611ac6565b905090565b610bb833611626565b610bd45760405162461bcd60e51b8152600401610925906121b6565b60405133904780156108fc02916000818181858888f19350505050158015610c00573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610c2d5760405162461bcd60e51b8152600401610925906121db565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527ffa491a64c37cae03f614a1a2cac67ee30dd227958ca171908cf843cf9692fdda91015b60405180910390a15050565b60006108fa82600019610893565b610ca833611626565b610cc45760405162461bcd60e51b8152600401610925906121b6565b612710600554610cd49190612211565b8111610d185760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610925565b60068190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b906020016109b7565b610d5633611626565b610d725760405162461bcd60e51b8152600401610925906121b6565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d9101610c85565b610dd733611626565b610df35760405162461bcd60e51b8152600401610925906121b6565b60138190556005811115610e495760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610925565b7f18fd0e62c6c2ddcb9f523a495dfb8337adc6d1c2cfac842b112d49d7e69a10316013546040516109b791815260200190565b600080546001600160a01b03163314610ea75760405162461bcd60e51b8152600401610925906121db565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190612233565b610f2133611626565b610f3d5760405162461bcd60e51b8152600401610925906121b6565b60118190556005811115610f935760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e2035250000006044820152606401610925565b6040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f4906020016109b7565b6000546001600160a01b03163314610fed5760405162461bcd60e51b8152600401610925906121db565b6001600160a01b0382166000908152600a602052604090205481151560ff9091161515036110515760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610925565b6001600160a01b0382166000908152600a60205260409020805460ff191682158015919091179091556110ce57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03841617905561121c565b6009546001106111125760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610925565b60005b60095481101561121a57826001600160a01b03166009828154811061113c5761113c612250565b6000918252602090912001546001600160a01b031603611208576009805461116690600190612266565b8154811061117657611176612250565b600091825260209091200154600980546001600160a01b0390921691839081106111a2576111a2612250565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806111e1576111e1612279565b600082815260209020810160001990810180546001600160a01b031916905501905561121a565b806112128161228f565b915050611115565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000546001600160a01b031633146112825760405162461bcd60e51b8152600401610925906121db565b600f81106112c75760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b6044820152606401610925565b600e8190556040518181527f80838eb3341767dec8bc142ca41047631270a18952c3b835d5ca0d1c3608a2cb906020016109b7565b6000610b563384846116dd565b6000546001600160a01b031633146113335760405162461bcd60e51b8152600401610925906121db565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61136333611626565b61137f5760405162461bcd60e51b8152600401610925906121b6565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610c85565b6113e433611626565b6114005760405162461bcd60e51b8152600401610925906121b6565b6016805460ff60a81b1916600160a81b84151590810291909117909155601782905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610c85565b6009818154811061146857600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146114ac5760405162461bcd60e51b8152600401610925906121db565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146114f75760405162461bcd60e51b8152600401610925906121db565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616391016109b7565b61156633611626565b6115825760405162461bcd60e51b8152600401610925906121b6565b6001600160a01b0381166115d85760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e0000000000000000006044820152606401610925565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f906020016109b7565b6001600160a01b031660009081526001602052604090205460ff1690565b60008061165183856122a8565b905083811015610b565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610925565b600081848411156116c75760405162461bcd60e51b81526004016109259190612000565b5060006116d48486612266565b95945050505050565b6001600160a01b0383166000908152600b602052604081205460ff1615801561171f57506001600160a01b0383166000908152600b602052604090205460ff16155b6117595760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610925565b60185460ff16156117765761176f848484611b08565b9050610b56565b6001600160a01b0384166000908152600c602052604090205460ff161580156117b857506001600160a01b0383166000908152600c602052604090205460ff16155b1561180e57601654600160a01b900460ff1661180e5760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b6044820152606401610925565b611816611bdc565b1561182357611823611c34565b6001600160a01b0384166000908152600a6020526040902054829060ff1615611910576001600160a01b0384166000908152600c602052604090205460ff1661190b576006546001600160a01b03851660009081526007602052604090205461188c9085611644565b1115806118b157506001600160a01b0384166000908152600d602052604090205460ff165b6118fd5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610925565b611908858585611d46565b90505b611a1f565b6001600160a01b0384166000908152600a602052604090205460ff161561195b576001600160a01b0385166000908152600c602052604090205460ff1661190b576119088584611e37565b6001600160a01b0385166000908152600c602052604090205460ff16611a1f576006546001600160a01b0385166000908152600760205260409020546119a19085611644565b1115806119c657506001600160a01b0384166000908152600d602052604090205460ff165b611a125760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610925565b611a1c8584611eca565b90505b6001600160a01b038516600090815260076020526040902054611a429084611ac6565b6001600160a01b038087166000908152600760205260408082209390935590861681522054611a719082611644565b6001600160a01b03808616600081815260076020526040908190209390935591519087169060008051602061234483398151915290611ab39085815260200190565b60405180910390a3506001949350505050565b6000610b5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116a3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611b599184906116a3565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611b889083611644565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061234483398151915290611bca9086815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff16158015611bff575060185460ff16155b8015611c145750601654600160a81b900460ff165b8015610baa57505060175430600090815260076020526040902054101590565b6018805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c7657611c76612250565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611ca757611ca7612250565b6001600160a01b039283166020918202929092018101919091526015543060009081526007909252604080832054601454915163791ac94760e01b81529285169463791ac94794611d0794929390928892919091169042906004016122bb565b600060405180830381600087803b158015611d2157600080fd5b505af1158015611d35573d6000803e3d6000fd5b50506018805460ff19169055505050565b6000601054431015611da7576016546001600160a01b03848116911614801590611d7e57506015546001600160a01b03848116911614155b15611da7576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b6000611dc96064611dc360125486611f1390919063ffffffff16565b90611f95565b30600090815260076020526040902054909150611de69082611644565b30600081815260076020526040908190209290925590516001600160a01b0387169060008051602061234483398151915290611e259085815260200190565b60405180910390a36116d48382611ac6565b600080611e546064611dc360135486611f1390919063ffffffff16565b30600090815260076020526040902054909150611e719082611644565b30600081815260076020526040908190209290925590516001600160a01b0386169060008051602061234483398151915290611eb09085815260200190565b60405180910390a3611ec28382611ac6565b949350505050565b600080611ee76064611dc360115486611f1390919063ffffffff16565b90508015611f095730600090815260076020526040902054611e719082611644565b611ec28382611ac6565b600082600003611f25575060006108fa565b6000611f31838561232c565b905082611f3e8583612211565b14610b565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610925565b6000610b5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ff35760405162461bcd60e51b81526004016109259190612000565b5060006116d48486612211565b600060208083528351808285015260005b8181101561202d57858101830151858201604001528201612011565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c0057600080fd5b6000806040838503121561207657600080fd5b82356120818161204e565b946020939093013593505050565b6000602082840312156120a157600080fd5b8135610b568161204e565b6000602082840312156120be57600080fd5b5035919050565b8015158114610c0057600080fd5b6000602082840312156120e557600080fd5b8135610b56816120c5565b60008060006060848603121561210557600080fd5b83356121108161204e565b925060208401356121208161204e565b929592945050506040919091013590565b6000806040838503121561214457600080fd5b823561214f8161204e565b9150602083013561215f816120c5565b809150509250929050565b6000806040838503121561217d57600080fd5b82356121888161204e565b9150602083013561215f8161204e565b600080604083850312156121ab57600080fd5b8235612081816120c5565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261222e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561224557600080fd5b8151610b56816120c5565b634e487b7160e01b600052603260045260246000fd5b818103818111156108fa576108fa6121fb565b634e487b7160e01b600052603160045260246000fd5b6000600182016122a1576122a16121fb565b5060010190565b808201808211156108fa576108fa6121fb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561230b5784516001600160a01b0316835293830193918301916001016122e6565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176108fa576108fa6121fb56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203add5f6551a6de95de3b050ec7899dbb6b30ade4a5811a4ac9c37da2b987195264736f6c63430008120033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c8063893d20e811610144578063c04a78ad116100b6578063f0b37c041161007a578063f0b37c04146107c3578063f2fde38b146107e3578063f35ca36514610803578063f887ea4014610823578063fe575a8714610843578063fe9fbb801461087357600080fd5b8063c04a78ad14610707578063d00efb2f14610727578063dd62ed3e1461073d578063df20fd4914610783578063e1d5584c146107a357600080fd5b80639a7a23d6116101085780639a7a23d614610637578063a8aa1b3114610657578063a8df7fb014610677578063a9059cbb14610697578063b62496f5146106b7578063b6a5d7de146106e757600080fd5b8063893d20e8146105775780638b4cee08146105a95780638cd4426d146105c95780638f02bb5b146105e957806395d89b411461060957600080fd5b8063313ce567116101dd578063571ac8b0116101a1578063571ac8b0146104aa5780635d0044ca146104ca578063658d4b7f146104ea5780636c0a24eb1461050a5780636ddd17131461052057806370a082311461054157600080fd5b8063313ce56714610408578063364333f4146104245780633f4218e01461043957806345434032146104695780634ada218b1461048957600080fd5b80630cc835a31161022f5780630cc835a31461034d5780630d2959801461036f57806318160ddd1461038f57806323b872dd146103a45780632b112e49146103c45780632f54bf6e146103d957600080fd5b806301f59d16146102775780630445b6671461029f57806306fdde03146102b5578063095ea7b3146102ed5780630bd11f8a1461031d57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c600581565b6040519081526020015b60405180910390f35b3480156102ab57600080fd5b5061028c60175481565b3480156102c157600080fd5b5060408051808201909152600681526543686f6f6b7960d01b60208201525b6040516102969190612000565b3480156102f957600080fd5b5061030d610308366004612063565b610893565b6040519015158152602001610296565b34801561032957600080fd5b5061030d61033836600461208f565b600d6020526000908152604090205460ff1681565b34801561035957600080fd5b5061036d6103683660046120ac565b610900565b005b34801561037b57600080fd5b5061036d61038a3660046120d3565b6109c2565b34801561039b57600080fd5b5060055461028c565b3480156103b057600080fd5b5061030d6103bf3660046120f0565b610a9b565b3480156103d057600080fd5b5061028c610b5d565b3480156103e557600080fd5b5061030d6103f436600461208f565b6000546001600160a01b0391821691161490565b34801561041457600080fd5b5060405160128152602001610296565b34801561043057600080fd5b5061036d610baf565b34801561044557600080fd5b5061030d61045436600461208f565b600c6020526000908152604090205460ff1681565b34801561047557600080fd5b5061036d610484366004612131565b610c03565b34801561049557600080fd5b5060165461030d90600160a01b900460ff1681565b3480156104b657600080fd5b5061030d6104c536600461208f565b610c91565b3480156104d657600080fd5b5061036d6104e53660046120ac565b610c9f565b3480156104f657600080fd5b5061036d610505366004612131565b610d4d565b34801561051657600080fd5b5061028c60065481565b34801561052c57600080fd5b5060165461030d90600160a81b900460ff1681565b34801561054d57600080fd5b5061028c61055c36600461208f565b6001600160a01b031660009081526007602052604090205490565b34801561058357600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610296565b3480156105b557600080fd5b5061036d6105c43660046120ac565b610dce565b3480156105d557600080fd5b5061030d6105e4366004612063565b610e7c565b3480156105f557600080fd5b5061036d6106043660046120ac565b610f18565b34801561061557600080fd5b506040805180820190915260058152642443484f4f60d81b60208201526102e0565b34801561064357600080fd5b5061036d610652366004612131565b610fc3565b34801561066357600080fd5b50601654610591906001600160a01b031681565b34801561068357600080fd5b5061036d6106923660046120ac565b611258565b3480156106a357600080fd5b5061030d6106b2366004612063565b6112fc565b3480156106c357600080fd5b5061030d6106d236600461208f565b600a6020526000908152604090205460ff1681565b3480156106f357600080fd5b5061036d61070236600461208f565b611309565b34801561071357600080fd5b5061036d610722366004612131565b61135a565b34801561073357600080fd5b5061028c600f5481565b34801561074957600080fd5b5061028c61075836600461216a565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561078f57600080fd5b5061036d61079e366004612198565b6113db565b3480156107af57600080fd5b506105916107be3660046120ac565b611458565b3480156107cf57600080fd5b5061036d6107de36600461208f565b611482565b3480156107ef57600080fd5b5061036d6107fe36600461208f565b6114cd565b34801561080f57600080fd5b5061036d61081e36600461208f565b61155d565b34801561082f57600080fd5b50601554610591906001600160a01b031681565b34801561084f57600080fd5b5061030d61085e36600461208f565b600b6020526000908152604090205460ff1681565b34801561087f57600080fd5b5061030d61088e36600461208f565b611626565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108ee9086815260200190565b60405180910390a35060015b92915050565b61090933611626565b61092e5760405162461bcd60e51b8152600401610925906121b6565b60405180910390fd5b601281905560058111156109845760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610925565b7f80c31f887247e591651a8a4aaefe05eb3e6c0068e3bbe6e19dfc4852dff34e9f6012546040516109b791815260200190565b60405180910390a150565b6000546001600160a01b031633146109ec5760405162461bcd60e51b8152600401610925906121db565b601654600160a01b900460ff1615610a3c5760405162461bcd60e51b815260206004820152601360248201527243616e27742070617573652074726164696e6760681b6044820152606401610925565b6016805460ff60a01b1916600160a01b8315150217905543600f819055600e54610a669190611644565b60105560405181151581527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df906020016109b7565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610b48576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610b239184906116a3565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610b538484846116dd565b90505b9392505050565b6004546001600160a01b0316600090815260076020526040812054610baa906003546001600160a01b0316600090815260076020526040902054610ba49060055490611ac6565b90611ac6565b905090565b610bb833611626565b610bd45760405162461bcd60e51b8152600401610925906121b6565b60405133904780156108fc02916000818181858888f19350505050158015610c00573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610c2d5760405162461bcd60e51b8152600401610925906121db565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527ffa491a64c37cae03f614a1a2cac67ee30dd227958ca171908cf843cf9692fdda91015b60405180910390a15050565b60006108fa82600019610893565b610ca833611626565b610cc45760405162461bcd60e51b8152600401610925906121b6565b612710600554610cd49190612211565b8111610d185760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610925565b60068190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b906020016109b7565b610d5633611626565b610d725760405162461bcd60e51b8152600401610925906121b6565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d9101610c85565b610dd733611626565b610df35760405162461bcd60e51b8152600401610925906121b6565b60138190556005811115610e495760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610925565b7f18fd0e62c6c2ddcb9f523a495dfb8337adc6d1c2cfac842b112d49d7e69a10316013546040516109b791815260200190565b600080546001600160a01b03163314610ea75760405162461bcd60e51b8152600401610925906121db565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190612233565b610f2133611626565b610f3d5760405162461bcd60e51b8152600401610925906121b6565b60118190556005811115610f935760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e2035250000006044820152606401610925565b6040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f4906020016109b7565b6000546001600160a01b03163314610fed5760405162461bcd60e51b8152600401610925906121db565b6001600160a01b0382166000908152600a602052604090205481151560ff9091161515036110515760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610925565b6001600160a01b0382166000908152600a60205260409020805460ff191682158015919091179091556110ce57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03841617905561121c565b6009546001106111125760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610925565b60005b60095481101561121a57826001600160a01b03166009828154811061113c5761113c612250565b6000918252602090912001546001600160a01b031603611208576009805461116690600190612266565b8154811061117657611176612250565b600091825260209091200154600980546001600160a01b0390921691839081106111a2576111a2612250565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806111e1576111e1612279565b600082815260209020810160001990810180546001600160a01b031916905501905561121a565b806112128161228f565b915050611115565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000546001600160a01b031633146112825760405162461bcd60e51b8152600401610925906121db565b600f81106112c75760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b6044820152606401610925565b600e8190556040518181527f80838eb3341767dec8bc142ca41047631270a18952c3b835d5ca0d1c3608a2cb906020016109b7565b6000610b563384846116dd565b6000546001600160a01b031633146113335760405162461bcd60e51b8152600401610925906121db565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61136333611626565b61137f5760405162461bcd60e51b8152600401610925906121b6565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610c85565b6113e433611626565b6114005760405162461bcd60e51b8152600401610925906121b6565b6016805460ff60a81b1916600160a81b84151590810291909117909155601782905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610c85565b6009818154811061146857600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146114ac5760405162461bcd60e51b8152600401610925906121db565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146114f75760405162461bcd60e51b8152600401610925906121db565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616391016109b7565b61156633611626565b6115825760405162461bcd60e51b8152600401610925906121b6565b6001600160a01b0381166115d85760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e0000000000000000006044820152606401610925565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f906020016109b7565b6001600160a01b031660009081526001602052604090205460ff1690565b60008061165183856122a8565b905083811015610b565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610925565b600081848411156116c75760405162461bcd60e51b81526004016109259190612000565b5060006116d48486612266565b95945050505050565b6001600160a01b0383166000908152600b602052604081205460ff1615801561171f57506001600160a01b0383166000908152600b602052604090205460ff16155b6117595760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610925565b60185460ff16156117765761176f848484611b08565b9050610b56565b6001600160a01b0384166000908152600c602052604090205460ff161580156117b857506001600160a01b0383166000908152600c602052604090205460ff16155b1561180e57601654600160a01b900460ff1661180e5760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b6044820152606401610925565b611816611bdc565b1561182357611823611c34565b6001600160a01b0384166000908152600a6020526040902054829060ff1615611910576001600160a01b0384166000908152600c602052604090205460ff1661190b576006546001600160a01b03851660009081526007602052604090205461188c9085611644565b1115806118b157506001600160a01b0384166000908152600d602052604090205460ff165b6118fd5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610925565b611908858585611d46565b90505b611a1f565b6001600160a01b0384166000908152600a602052604090205460ff161561195b576001600160a01b0385166000908152600c602052604090205460ff1661190b576119088584611e37565b6001600160a01b0385166000908152600c602052604090205460ff16611a1f576006546001600160a01b0385166000908152600760205260409020546119a19085611644565b1115806119c657506001600160a01b0384166000908152600d602052604090205460ff165b611a125760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610925565b611a1c8584611eca565b90505b6001600160a01b038516600090815260076020526040902054611a429084611ac6565b6001600160a01b038087166000908152600760205260408082209390935590861681522054611a719082611644565b6001600160a01b03808616600081815260076020526040908190209390935591519087169060008051602061234483398151915290611ab39085815260200190565b60405180910390a3506001949350505050565b6000610b5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116a3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611b599184906116a3565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611b889083611644565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061234483398151915290611bca9086815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff16158015611bff575060185460ff16155b8015611c145750601654600160a81b900460ff165b8015610baa57505060175430600090815260076020526040902054101590565b6018805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c7657611c76612250565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611ca757611ca7612250565b6001600160a01b039283166020918202929092018101919091526015543060009081526007909252604080832054601454915163791ac94760e01b81529285169463791ac94794611d0794929390928892919091169042906004016122bb565b600060405180830381600087803b158015611d2157600080fd5b505af1158015611d35573d6000803e3d6000fd5b50506018805460ff19169055505050565b6000601054431015611da7576016546001600160a01b03848116911614801590611d7e57506015546001600160a01b03848116911614155b15611da7576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b6000611dc96064611dc360125486611f1390919063ffffffff16565b90611f95565b30600090815260076020526040902054909150611de69082611644565b30600081815260076020526040908190209290925590516001600160a01b0387169060008051602061234483398151915290611e259085815260200190565b60405180910390a36116d48382611ac6565b600080611e546064611dc360135486611f1390919063ffffffff16565b30600090815260076020526040902054909150611e719082611644565b30600081815260076020526040908190209290925590516001600160a01b0386169060008051602061234483398151915290611eb09085815260200190565b60405180910390a3611ec28382611ac6565b949350505050565b600080611ee76064611dc360115486611f1390919063ffffffff16565b90508015611f095730600090815260076020526040902054611e719082611644565b611ec28382611ac6565b600082600003611f25575060006108fa565b6000611f31838561232c565b905082611f3e8583612211565b14610b565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610925565b6000610b5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ff35760405162461bcd60e51b81526004016109259190612000565b5060006116d48486612211565b600060208083528351808285015260005b8181101561202d57858101830151858201604001528201612011565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c0057600080fd5b6000806040838503121561207657600080fd5b82356120818161204e565b946020939093013593505050565b6000602082840312156120a157600080fd5b8135610b568161204e565b6000602082840312156120be57600080fd5b5035919050565b8015158114610c0057600080fd5b6000602082840312156120e557600080fd5b8135610b56816120c5565b60008060006060848603121561210557600080fd5b83356121108161204e565b925060208401356121208161204e565b929592945050506040919091013590565b6000806040838503121561214457600080fd5b823561214f8161204e565b9150602083013561215f816120c5565b809150509250929050565b6000806040838503121561217d57600080fd5b82356121888161204e565b9150602083013561215f8161204e565b600080604083850312156121ab57600080fd5b8235612081816120c5565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261222e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561224557600080fd5b8151610b56816120c5565b634e487b7160e01b600052603260045260246000fd5b818103818111156108fa576108fa6121fb565b634e487b7160e01b600052603160045260246000fd5b6000600182016122a1576122a16121fb565b5060010190565b808201808211156108fa576108fa6121fb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561230b5784516001600160a01b0316835293830193918301916001016122e6565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176108fa576108fa6121fb56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203add5f6551a6de95de3b050ec7899dbb6b30ade4a5811a4ac9c37da2b987195264736f6c63430008120033
Deployed Bytecode Sourcemap
4676:12425:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6458:34;;;;;;;;;;;;6491:1;6458:34;;;;;160:25:1;;;148:2;133:18;6458:34:0;;;;;;;;6883:54;;;;;;;;;;;;;;;;8054:80;;;;;;;;;;-1:-1:-1;8126:5:0;;;;;;;;;;;;-1:-1:-1;;;8126:5:0;;;;8054:80;;;;;;;:::i;8476:216::-;;;;;;;;;;-1:-1:-1;8476:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8476:216:0;1205:187:1;6211:50:0;;;;;;;;;;-1:-1:-1;6211:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14916:222;;;;;;;;;;-1:-1:-1;14916:222:0;;;;;:::i;:::-;;:::i;:::-;;13201:316;;;;;;;;;;-1:-1:-1;13201:316:0;;;;;:::i;:::-;;:::i;7784:88::-;;;;;;;;;;-1:-1:-1;7857:12:0;;7784:88;;8994:370;;;;;;;;;;-1:-1:-1;8994:370:0;;;;;:::i;:::-;;:::i;16952:142::-;;;;;;;;;;;;;:::i;2745:103::-;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;7878:80;;;;;;;;;;-1:-1:-1;7878:80:0;;5737:2;2806:36:1;;2794:2;2779:18;7878:80:0;2664:184:1;12876:119:0;;;;;;;;;;;;;:::i;6160:44::-;;;;;;;;;;-1:-1:-1;6160:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14165:179;;;;;;;;;;-1:-1:-1;14165:179:0;;;;;:::i;:::-;;:::i;6805:34::-;;;;;;;;;;-1:-1:-1;6805:34:0;;;;-1:-1:-1;;;6805:34:0;;;;;;8700:122;;;;;;;;;;-1:-1:-1;8700:122:0;;;;;:::i;:::-;;:::i;13941:216::-;;;;;;;;;;-1:-1:-1;13941:216:0;;;;;:::i;:::-;;:::i;14550:166::-;;;;;;;;;;-1:-1:-1;14550:166:0;;;;;:::i;:::-;;:::i;5811:51::-;;;;;;;;;;;;;;;;6846:30;;;;;;;;;;-1:-1:-1;6846:30:0;;;;-1:-1:-1;;;6846:30:0;;;;;;8224:105;;;;;;;;;;-1:-1:-1;8224:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8308:18:0;8290:7;8308:18;;;:9;:18;;;;;;;8224:105;8140:78;;;;;;;;;;-1:-1:-1;8192:7:0;8210:5;-1:-1:-1;;;;;8210:5:0;8140:78;;;-1:-1:-1;;;;;3404:32:1;;;3386:51;;3374:2;3359:18;8140:78:0;3240:203:1;15146:229:0;;;;;;;;;;-1:-1:-1;15146:229:0;;;;;:::i;:::-;;:::i;13003:167::-;;;;;;;;;;-1:-1:-1;13003:167:0;;;;;:::i;:::-;;:::i;15383:236::-;;;;;;;;;;-1:-1:-1;15383:236:0;;;;;:::i;:::-;;:::i;7964:84::-;;;;;;;;;;-1:-1:-1;8038:7:0;;;;;;;;;;;;-1:-1:-1;;;8038:7:0;;;;7964:84;;16139:801;;;;;;;;;;-1:-1:-1;16139:801:0;;;;;:::i;:::-;;:::i;6777:19::-;;;;;;;;;;-1:-1:-1;6777:19:0;;;;-1:-1:-1;;;;;6777:19:0;;;14352:190;;;;;;;;;;-1:-1:-1;14352:190:0;;;;;:::i;:::-;;:::i;8830:156::-;;;;;;;;;;-1:-1:-1;8830:156:0;;;;;:::i;:::-;;:::i;6038:58::-;;;;;;;;;;-1:-1:-1;6038:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2538:94;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;14724:184::-;;;;;;;;;;-1:-1:-1;14724:184:0;;;;;:::i;:::-;;:::i;6323:26::-;;;;;;;;;;;;;;;;8335:133;;;;;;;;;;-1:-1:-1;8335:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8437:19:0;;;8419:7;8437:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8335:133;15923:208;;;;;;;;;;-1:-1:-1;15923:208:0;;;;;:::i;:::-;;:::i;6002:29::-;;;;;;;;;;-1:-1:-1;6002:29:0;;;;;:::i;:::-;;:::i;2640:97::-;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;15629:286::-;;;;;;;;;;-1:-1:-1;15629:286:0;;;;;:::i;:::-;;:::i;6746:24::-;;;;;;;;;;-1:-1:-1;6746:24:0;;;;-1:-1:-1;;;;;6746:24:0;;;6105:46;;;;;;;;;;-1:-1:-1;6105:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2856:107;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;8476:216::-;8580:10;8551:4;8568:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8568:32:0;;;;;;;;;;:41;;;8625:37;8551:4;;8568:32;;8625:37;;;;8603:6;160:25:1;;148:2;133:18;;14:177;8625:37:0;;;;;;;;-1:-1:-1;8680:4:0;8476:216;;;;;:::o;14916:222::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;;;;;;;;;14988:11:::1;:26:::0;;;6491:1:::1;15033:21:::0;::::1;;15025:61;;;::::0;-1:-1:-1;;;15025:61:0;;5183:2:1;15025:61:0::1;::::0;::::1;5165:21:1::0;5222:2;5202:18;;;5195:30;5261:29;5241:18;;;5234:57;5308:18;;15025:61:0::1;4981:351:1::0;15025:61:0::1;15104:26;15118:11;;15104:26;;;;160:25:1::0;;148:2;133:18;;14:177;15104:26:0::1;;;;;;;;14916:222:::0;:::o;13201:316::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13277:14:::1;::::0;-1:-1:-1;;;13277:14:0;::::1;;;:23;13268:56;;;::::0;-1:-1:-1;;;13268:56:0;;5873:2:1;13268:56:0::1;::::0;::::1;5855:21:1::0;5912:2;5892:18;;;5885:30;-1:-1:-1;;;5931:18:1;;;5924:49;5990:18;;13268:56:0::1;5671:343:1::0;13268:56:0::1;13335:14;:24:::0;;-1:-1:-1;;;;13335:24:0::1;-1:-1:-1::0;;;13335:24:0;::::1;;;;::::0;;13384:12:::1;13370:11;:26:::0;;;13444:10:::1;::::0;13427:28:::1;::::0;13384:12;13427:16:::1;:28::i;:::-;13407:17;:48:::0;13473:36:::1;::::0;1370:14:1;;1363:22;1345:41;;13473:36:0::1;::::0;1333:2:1;1318:18;13473:36:0::1;1205:187:1::0;8994:370:0;-1:-1:-1;;;;;9114:19:0;;9094:4;9114:19;;;:11;:19;;;;;;;;9134:10;9114:31;;;;;;;;-1:-1:-1;;9114:52:0;9111:186;;9216:69;;;;;;;;;;;-1:-1:-1;;;9216:69:0;;;;;;;;-1:-1:-1;;;;;9216:19:0;;-1:-1:-1;9216:19:0;;;:11;:19;;;;;9236:10;9216:31;;;;;;;;;;:69;;9252:6;;9216:35;:69::i;:::-;-1:-1:-1;;;;;9182:19:0;;;;;;:11;:19;;;;;;;;9202:10;9182:31;;;;;;;:103;9111:186;9316:40;9330:6;9338:9;9349:6;9316:13;:40::i;:::-;9309:47;;8994:370;;;;;;:::o;16952:142::-;17080:4;;-1:-1:-1;;;;;17080:4:0;17005:7;8308:18;;;:9;:18;;;;;;17032:54;;17059:4;;-1:-1:-1;;;;;17059:4:0;8290:7;8308:18;;;:9;:18;;;;;;17032:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17025:61;;16952:142;:::o;12876:119::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;12936:51:::1;::::0;12944:10:::1;::::0;12965:21:::1;12936:51:::0;::::1;;;::::0;::::1;::::0;;;12965:21;12944:10;12936:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12876:119::o:0;14165:179::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14240:23:0;::::1;;::::0;;;:13:::1;:23;::::0;;;;;;;;:31;;-1:-1:-1;;14240:31:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14297:39;;6187:51:1;;;6254:18;;;6247:50;14297:39:0::1;::::0;6160:18:1;14297:39:0::1;;;;;;;;14165:179:::0;;:::o;8700:122::-;8755:4;8779:35;8787:7;-1:-1:-1;;8779:7:0;:35::i;13941:216::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14042:5:::1;14027:12;;:20;;;;:::i;:::-;14018:6;:29;14010:61;;;::::0;-1:-1:-1;;;14010:61:0;;6864:2:1;14010:61:0::1;::::0;::::1;6846:21:1::0;6903:2;6883:18;;;6876:30;-1:-1:-1;;;6922:18:1;;;6915:49;6981:18;;14010:61:0::1;6662:343:1::0;14010:61:0::1;14082:16;:25:::0;;;14125:24:::1;::::0;160:25:1;;;14125:24:0::1;::::0;148:2:1;133:18;14125:24:0::1;14:177:1::0;14550:166:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14634:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;14634:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14680;;6187:51:1;;;6254:18;;;6247:50;14680:28:0::1;::::0;6160:18:1;14680:28:0::1;6019:284:1::0;15146:229:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15220:12:::1;:28:::0;;;6491:1:::1;15267:22:::0;::::1;;15259:62;;;::::0;-1:-1:-1;;;15259:62:0;;5183:2:1;15259:62:0::1;::::0;::::1;5165:21:1::0;5222:2;5202:18;;;5195:30;5261:29;5241:18;;;5234:57;5308:18;;15259:62:0::1;4981:351:1::0;15259:62:0::1;15339:28;15354:12;;15339:28;;;;160:25:1::0;;148:2;133:18;;14:177;13003:167:0;13090:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13114:48:::1;::::0;-1:-1:-1;;;13114:48:0;;13143:10:::1;13114:48;::::0;::::1;7184:51:1::0;7251:18;;;7244:34;;;-1:-1:-1;;;;;13114:28:0;::::1;::::0;::::1;::::0;7157:18:1;;13114:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15383:236::-:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15461:11:::1;:26:::0;;;6491:1:::1;15507:21:::0;::::1;;15499:63;;;::::0;-1:-1:-1;;;15499:63:0;;7741:2:1;15499:63:0::1;::::0;::::1;7723:21:1::0;7780:2;7760:18;;;7753:30;7819:31;7799:18;;;7792:59;7868:18;;15499:63:0::1;7539:353:1::0;15499:63:0::1;15578:32;::::0;160:25:1;;;15578:32:0::1;::::0;148:2:1;133:18;15578:32:0::1;14:177:1::0;16139:801:0;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16244:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;:42;::::1;;:32;::::0;;::::1;:42;;::::0;16236:72:::1;;;::::0;-1:-1:-1;;;16236:72:0;;8099:2:1;16236:72:0::1;::::0;::::1;8081:21:1::0;8138:2;8118:18;;;8111:30;-1:-1:-1;;;8157:18:1;;;8150:47;8214:18;;16236:72:0::1;7897:341:1::0;16236:72:0::1;-1:-1:-1::0;;;;;16325:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;:41;;-1:-1:-1;;16325:41:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;16383:482:::1;;16412:12;:24:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;16412:24:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;16412:24:0::1;-1:-1:-1::0;;;;;16412:24:0;::::1;;::::0;;16383:482:::1;;;16483:12;:19:::0;16505:1:::1;-1:-1:-1::0;16475:51:0::1;;;::::0;-1:-1:-1;;;16475:51:0;;8445:2:1;16475:51:0::1;::::0;::::1;8427:21:1::0;8484:2;8464:18;;;8457:30;-1:-1:-1;;;8503:18:1;;;8496:45;8558:18;;16475:51:0::1;8243:339:1::0;16475:51:0::1;16550:9;16545:305;16569:12;:19:::0;16565:23;::::1;16545:305;;;16641:5;-1:-1:-1::0;;;;;16622:24:0::1;:12;16635:1;16622:15;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;16622:15:0::1;:24:::0;16618:213:::1;;16693:12;16706:19:::0;;:23:::1;::::0;16728:1:::1;::::0;16706:23:::1;:::i;:::-;16693:37;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;16675:12:::1;:15:::0;;-1:-1:-1;;;;;16693:37:0;;::::1;::::0;16688:1;;16675:15;::::1;;;;;:::i;:::-;;;;;;;;;:55;;;;;-1:-1:-1::0;;;;;16675:55:0::1;;;;;-1:-1:-1::0;;;;;16675:55:0::1;;;;;;16757:12;:18;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;16757:18:0;;;;;-1:-1:-1;;;;;;16757:18:0::1;::::0;;;;;16802:5:::1;;16618:213;16590:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16545:305;;;;16383:482;16886:42;::::0;;::::1;;::::0;-1:-1:-1;;;;;16886:42:0;::::1;::::0;::::1;::::0;;;::::1;16139:801:::0;;:::o;14352:190::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;14435:2:::1;14425:7;:12;14417:43;;;::::0;-1:-1:-1;;;14417:43:0;;9326:2:1;14417:43:0::1;::::0;::::1;9308:21:1::0;9365:2;9345:18;;;9338:30;-1:-1:-1;;;9384:18:1;;;9377:48;9442:18;;14417:43:0::1;9124:342:1::0;14417:43:0::1;14471:10;:20:::0;;;14517:17:::1;::::0;160:25:1;;;14517:17:0::1;::::0;148:2:1;133:18;14517:17:0::1;14:177:1::0;8830:156:0;8910:4;8934:44;8948:10;8960:9;8971:6;8934:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;14724:184::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14814:25:0;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;;:34;;-1:-1:-1;;14814:34:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14866;;6187:51:1;;;6254:18;;;6247:50;14866:34:0::1;::::0;6160:18:1;14866:34:0::1;6019:284:1::0;15923:208:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;16015:11:::1;:22:::0;;-1:-1:-1;;;;16015:22:0::1;-1:-1:-1::0;;;16015:22:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;16048:13:::1;:23:::0;;;16089:34:::1;::::0;;9639:41:1;;;9711:2;9696:18;;9689:34;;;16089::0::1;::::0;9612:18:1;16089:34:0::1;9471:258:1::0;6002:29:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6002:29:0;;-1:-1:-1;6002:29:0;:::o;2640:97::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;2971:173::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;3386:51:1;;;3111:25:0::1;::::0;3359:18:1;3111:25:0::1;3240:203:1::0;15629:286:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15733:35:0;::::1;15725:72;;;::::0;-1:-1:-1;;;15725:72:0;;10152:2:1;15725:72:0::1;::::0;::::1;10134:21:1::0;10191:2;10171:18;;;10164:30;10230:25;10210:18;;;10203:53;10273:18;;15725:72:0::1;9950:347:1::0;15725:72:0::1;15808:20;:44:::0;;-1:-1:-1;;;;;;15808:44:0::1;-1:-1:-1::0;;;;;15808:44:0;::::1;::::0;;::::1;::::0;;;15870:37:::1;::::0;3386:51:1;;;15870:37:0::1;::::0;3374:2:1;3359:18;15870:37:0::1;3240:203:1::0;2856:107:0;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;10634:2:1;199:46:0;;;10616:21:1;10673:2;10653:18;;;10646:30;10712:29;10692:18;;;10685:57;10759:18;;199:46:0;10432:351:1;422:192:0;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;9372:1547::-;-1:-1:-1;;;;;9490:21:0;;9464:4;9490:21;;;:13;:21;;;;;;;;9489:22;:51;;;;-1:-1:-1;;;;;;9516:24:0;;;;;;:13;:24;;;;;;;;9515:25;9489:51;9481:74;;;;-1:-1:-1;;;9481:74:0;;10990:2:1;9481:74:0;;;10972:21:1;11029:2;11009:18;;;11002:30;-1:-1:-1;;;11048:18:1;;;11041:41;11099:18;;9481:74:0;10788:335:1;9481:74:0;9569:6;;;;9566:63;;;9585:41;9600:6;9608:9;9619:6;9585:14;:41::i;:::-;9578:48;;;;9566:63;-1:-1:-1;;;;;9645:19:0;;;;;;:11;:19;;;;;;;;9644:20;:47;;;;-1:-1:-1;;;;;;9669:22:0;;;;;;:11;:22;;;;;;;;9668:23;9644:47;9641:125;;;9715:14;;-1:-1:-1;;;9715:14:0;;;;9707:47;;;;-1:-1:-1;;;9707:47:0;;11330:2:1;9707:47:0;;;11312:21:1;11369:2;11349:18;;;11342:30;-1:-1:-1;;;11388:18:1;;;11381:51;11449:18;;9707:47:0;11128:345:1;9707:47:0;9781:16;:14;:16::i;:::-;9778:35;;;9800:10;:8;:10::i;:::-;-1:-1:-1;;;;;9875:33:0;;9827:22;9875:33;;;:25;:33;;;;;;9852:6;;9875:33;;9872:811;;;-1:-1:-1;;;;;9935:22:0;;;;;;:11;:22;;;;;;;;9931:264;;10022:16;;-1:-1:-1;;;;;9986:20:0;;;;;;:9;:20;;;;;;:32;;10011:6;9986:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10042:28:0;;;;;;:17;:28;;;;;;;;9986:84;9978:128;;;;-1:-1:-1;;;9978:128:0;;11680:2:1;9978:128:0;;;11662:21:1;11719:2;11699:18;;;11692:30;11758:33;11738:18;;;11731:61;11809:18;;9978:128:0;11478:355:1;9978:128:0;10142:37;10153:6;10161:9;10172:6;10142:10;:37::i;:::-;10125:54;;9931:264;9872:811;;;-1:-1:-1;;;;;10217:36:0;;;;;;:25;:36;;;;;;;;10214:469;;;-1:-1:-1;;;;;10281:19:0;;;;;;:11;:19;;;;;;;;10277:104;;10338:27;10350:6;10358;10338:11;:27::i;10214:469::-;-1:-1:-1;;;;;10419:19:0;;;;;;:11;:19;;;;;;;;10414:258;;10504:16;;-1:-1:-1;;;;;10468:20:0;;;;;;:9;:20;;;;;;:32;;10493:6;10468:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10524:28:0;;;;;;:17;:28;;;;;;;;10468:84;10460:128;;;;-1:-1:-1;;;10460:128:0;;11680:2:1;10460:128:0;;;11662:21:1;11719:2;11699:18;;;11692:30;11758:33;11738:18;;;11731:61;11809:18;;10460:128:0;11478:355:1;10460:128:0;10624:31;10640:6;10648;10624:15;:31::i;:::-;10607:48;;10414:258;-1:-1:-1;;;;;10715:17:0;;;;;;:9;:17;;;;;;:29;;10737:6;10715:21;:29::i;:::-;-1:-1:-1;;;;;10695:17:0;;;;;;;:9;:17;;;;;;:49;;;;10778:20;;;;;;;:40;;10803:14;10778:24;:40::i;:::-;-1:-1:-1;;;;;10755:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10846:43;;;;;;-1:-1:-1;;;;;;;;;;;10846:43:0;;;10874:14;160:25:1;;148:2;133:18;;14:177;10846:43:0;;;;;;;;-1:-1:-1;10907:4:0;;9372:1547;-1:-1:-1;;;;9372:1547:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;10931:330::-;11061:53;;;;;;;;;;;-1:-1:-1;;;11061:53:0;;;;;;;;-1:-1:-1;;;;;11061:17:0;;11024:4;11061:17;;;:9;:17;;;;;;;:53;;11083:6;;11061:21;:53::i;:::-;-1:-1:-1;;;;;11041:17:0;;;;;;;:9;:17;;;;;;:73;;;;11148:20;;;;;;;:32;;11173:6;11148:24;:32::i;:::-;-1:-1:-1;;;;;11125:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11196:35;;;;;;-1:-1:-1;;;;;;;;;;;11196:35:0;;;11224:6;160:25:1;;148:2;133:18;;14:177;11196:35:0;;;;;;;;-1:-1:-1;11249:4:0;10931:330;;;;;:::o;12642:226::-;12751:10;12691:4;12725:37;;;:25;:37;;;;;;;;12724:38;:58;;;;-1:-1:-1;12776:6:0;;;;12775:7;12724:58;:82;;;;-1:-1:-1;12795:11:0;;-1:-1:-1;;;12795:11:0;;;;12724:82;:136;;;;-1:-1:-1;;12847:13:0;;12837:4;12819:24;;;;:9;:24;;;;;;:41;;;12642:226::o;13525:384::-;6994:6;:13;;-1:-1:-1;;6994:13:0;7003:4;6994:13;;;13600:16:::1;::::0;;13614:1:::1;13600:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13600:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13600:16:0::1;13576:40;;13645:4;13627;13632:1;13627:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13627:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13671:4:::1;::::0;13661:7;;13671:4;::::1;::::0;13661;;13671;;13661:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;13661:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;13688:6:::1;::::0;13778:4:::1;13688:6;13760:24:::0;;;:9:::1;:24:::0;;;;;;;;13834:20:::1;::::0;13688:207;;-1:-1:-1;;;13688:207:0;;:6;;::::1;::::0;:57:::1;::::0;:207:::1;::::0;13760:24;;13688:6;;13815:4;;13834:20;;;::::1;::::0;13869:15:::1;::::0;13688:207:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7012:6:0;:14;;-1:-1:-1;;7012:14:0;;;-1:-1:-1;;;13525:384:0:o;11282:558::-;11371:7;11409:17;;11394:12;:32;11390:189;;;11460:4;;-1:-1:-1;;;;;11447:17:0;;;11460:4;;11447:17;;;;:49;;-1:-1:-1;11489:6:0;;-1:-1:-1;;;;;11468:28:0;;;11489:6;;11468:28;;11447:49;11443:121;;;-1:-1:-1;;;;;11517:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;11517:31:0;11544:4;11517:31;;;11443:121;11591:17;11611:43;6641:3;11611:23;11622:11;;11611:6;:10;;:23;;;;:::i;:::-;:27;;:43::i;:::-;11712:4;11694:24;;;;:9;:24;;;;;;11591:63;;-1:-1:-1;11694:39:0;;11591:63;11694:28;:39::i;:::-;11685:4;11667:24;;;;:9;:24;;;;;;;:66;;;;11749:42;;-1:-1:-1;;;;;11749:42:0;;;-1:-1:-1;;;;;;;;;;;11749:42:0;;;11781:9;160:25:1;;148:2;133:18;;14:177;11749:42:0;;;;;;;;11811:21;:6;11822:9;11811:10;:21::i;11848:354::-;11919:7;11938:17;11958:44;6641:3;11958:24;11969:12;;11958:6;:10;;:24;;;;:::i;:44::-;12060:4;12042:24;;;;:9;:24;;;;;;11938:64;;-1:-1:-1;12042:39:0;;11938:64;12042:28;:39::i;:::-;12033:4;12015:24;;;;:9;:24;;;;;;;:66;;;;12097:42;;-1:-1:-1;;;;;12097:42:0;;;-1:-1:-1;;;;;;;;;;;12097:42:0;;;12129:9;160:25:1;;148:2;133:18;;14:177;12097:42:0;;;;;;;;12159:21;:6;12170:9;12159:10;:21::i;:::-;12152:28;11848:354;-1:-1:-1;;;;11848:354:0:o;12210:420::-;12285:7;12304:17;12324:43;6641:3;12324:23;12335:11;;12324:6;:10;;:23;;;;:::i;:43::-;12304:63;-1:-1:-1;12396:13:0;;12392:176;;12471:4;12453:24;;;;:9;:24;;;;;;:39;;12482:9;12453:28;:39::i;12392:176::-;12600:21;:6;12611:9;12600:10;:21::i;620:250::-;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;13330:2:1;785:56:0;;;13312:21:1;13369:2;13349:18;;;13342:30;13408:34;13388:18;;;13381:62;-1:-1:-1;;;13459:18:1;;;13452:31;13500:19;;785:56:0;13128:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;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;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:180::-;1708:6;1761:2;1749:9;1740:7;1736:23;1732:32;1729:52;;;1777:1;1774;1767:12;1729:52;-1:-1:-1;1800:23:1;;1649:180;-1:-1:-1;1649:180:1:o;1834:118::-;1920:5;1913:13;1906:21;1899:5;1896:32;1886:60;;1942:1;1939;1932:12;1957:241;2013:6;2066:2;2054:9;2045:7;2041:23;2037:32;2034:52;;;2082:1;2079;2072:12;2034:52;2121:9;2108:23;2140:28;2162:5;2140:28;:::i;2203:456::-;2280:6;2288;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2404:9;2391:23;2423:31;2448:5;2423:31;:::i;:::-;2473:5;-1:-1:-1;2530:2:1;2515:18;;2502:32;2543:33;2502:32;2543:33;:::i;:::-;2203:456;;2595:7;;-1:-1:-1;;;2649:2:1;2634:18;;;;2621:32;;2203:456::o;2853:382::-;2918:6;2926;2979:2;2967:9;2958:7;2954:23;2950:32;2947:52;;;2995:1;2992;2985:12;2947:52;3034:9;3021:23;3053:31;3078:5;3053:31;:::i;:::-;3103:5;-1:-1:-1;3160:2:1;3145:18;;3132:32;3173:30;3132:32;3173:30;:::i;:::-;3222:7;3212:17;;;2853:382;;;;;:::o;3448:388::-;3516:6;3524;3577:2;3565:9;3556:7;3552:23;3548:32;3545:52;;;3593:1;3590;3583:12;3545:52;3632:9;3619:23;3651:31;3676:5;3651:31;:::i;:::-;3701:5;-1:-1:-1;3758:2:1;3743:18;;3730:32;3771:33;3730:32;3771:33;:::i;3841:309::-;3906:6;3914;3967:2;3955:9;3946:7;3942:23;3938:32;3935:52;;;3983:1;3980;3973:12;3935:52;4022:9;4009:23;4041:28;4063:5;4041:28;:::i;4641:335::-;4843:2;4825:21;;;4882:2;4862:18;;;4855:30;-1:-1:-1;;;4916:2:1;4901:18;;4894:41;4967:2;4952:18;;4641:335::o;5337:329::-;5539:2;5521:21;;;5578:1;5558:18;;;5551:29;-1:-1:-1;;;5611:2:1;5596:18;;5589:36;5657:2;5642:18;;5337:329::o;6308:127::-;6369:10;6364:3;6360:20;6357:1;6350:31;6400:4;6397:1;6390:15;6424:4;6421:1;6414:15;6440:217;6480:1;6506;6496:132;;6550:10;6545:3;6541:20;6538:1;6531:31;6585:4;6582:1;6575:15;6613:4;6610:1;6603:15;6496:132;-1:-1:-1;6642:9:1;;6440:217::o;7289:245::-;7356:6;7409:2;7397:9;7388:7;7384:23;7380:32;7377:52;;;7425:1;7422;7415:12;7377:52;7457:9;7451:16;7476:28;7498:5;7476:28;:::i;8587:127::-;8648:10;8643:3;8639:20;8636:1;8629:31;8679:4;8676:1;8669:15;8703:4;8700:1;8693:15;8719:128;8786:9;;;8807:11;;;8804:37;;;8821:18;;:::i;8852:127::-;8913:10;8908:3;8904:20;8901:1;8894:31;8944:4;8941:1;8934:15;8968:4;8965:1;8958:15;8984:135;9023:3;9044:17;;;9041:43;;9064:18;;:::i;:::-;-1:-1:-1;9111:1:1;9100:13;;8984:135::o;10302:125::-;10367:9;;;10388:10;;;10385:36;;;10401:18;;:::i;11970:980::-;12232:4;12280:3;12269:9;12265:19;12311:6;12300:9;12293:25;12337:2;12375:6;12370:2;12359:9;12355:18;12348:34;12418:3;12413:2;12402:9;12398:18;12391:31;12442:6;12477;12471:13;12508:6;12500;12493:22;12546:3;12535:9;12531:19;12524:26;;12585:2;12577:6;12573:15;12559:29;;12606:1;12616:195;12630:6;12627:1;12624:13;12616:195;;;12695:13;;-1:-1:-1;;;;;12691:39:1;12679:52;;12786:15;;;;12751:12;;;;12727:1;12645:9;12616:195;;;-1:-1:-1;;;;;;;12867:32:1;;;;12862:2;12847:18;;12840:60;-1:-1:-1;;;12931:3:1;12916:19;12909:35;12828:3;11970:980;-1:-1:-1;;;11970:980:1:o;12955:168::-;13028:9;;;13059;;13076:15;;;13070:22;;13056:37;13046:71;;13097:18;;:::i
Swarm Source
ipfs://3add5f6551a6de95de3b050ec7899dbb6b30ade4a5811a4ac9c37da2b9871952
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.