ERC-20
Overview
Max Total Supply
87,564,000 Burned
Holders
56
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000005637344 BurnedValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TOAST
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-21 */ //SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.7; 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; } } } interface ERC20 { function totalSupply() external view returns (uint _totalSupply); function balanceOf(address _owner) external view returns (uint balance); function transfer(address _to, uint _value) external returns (bool success); function transferFrom(address _from, address _to, uint _value) external returns (bool success); function approve(address _spender, uint _value) external returns (bool success); function allowance(address _owner, address _spender) external view returns (uint remaining); event Transfer(address indexed _from, address indexed _to, uint _value); event Approval(address indexed _owner, address indexed _spender, uint _value); } interface IUniswapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapRouter01 { function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function factory() external pure returns (address); function WETH() external pure returns (address); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getamountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getamountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getamountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getamountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapRouter02 is IUniswapRouter01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint 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 (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint 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 (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); 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 (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; } contract smart { using SafeMath for uint; address public router_address = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IUniswapRouter02 public router = IUniswapRouter02(router_address); function create_weth_pair(address token) private returns (address, IUniswapV2Pair) { address pair_address = IUniswapFactory(router.factory()).createPair(token, router.WETH()); return (pair_address, IUniswapV2Pair(pair_address)); } function get_weth_reserve(address pair_address) private view returns(uint, uint) { IUniswapV2Pair pair = IUniswapV2Pair(pair_address); uint112 token_reserve; uint112 native_reserve; uint32 last_timestamp; (token_reserve, native_reserve, last_timestamp) = pair.getReserves(); return (token_reserve, native_reserve); } function get_weth_price_impact(address token, uint amount, bool sell) private view returns(uint) { address pair_address = IUniswapFactory(router.factory()).getPair(token, router.WETH()); (uint res_token, uint res_weth) = get_weth_reserve(pair_address); uint impact; if(sell) { impact = (amount.mul(100)).div(res_token); } else { impact = (amount.mul(100)).div(res_weth); } return impact; } } contract protected { bool public bot_smasher = false; bool public trade_enabled = false; mapping (address => bool) public is_auth; function authorized(address addy) public view returns(bool) { return is_auth[addy]; } function set_authorized(address addy, bool booly) public onlyAuth { is_auth[addy] = booly; } modifier onlyAuth() { require( is_auth[msg.sender] || msg.sender==owner, "not owner"); _; } address public owner; address public developer; modifier onlyDev { require(msg.sender==developer); _; } modifier onlyOwner() { require(msg.sender==owner, "not owner"); _; } bool public locked; modifier safe() { require(!locked, "reentrant"); locked = true; _; locked = false; } receive() external payable {} fallback() external payable {} } contract TOAST is smart, protected, ERC20 { using SafeMath for uint; using SafeMath for uint8; mapping(address => bool) public tax_free; mapping(address => bool) public lock_free; mapping(address => bool) public is_black; mapping(address => bool) public is_free_from_max_tx; mapping(address => bool) public is_free_from_max_wallet; string public constant _name = 'TOAST'; string public constant _symbol = 'Burned'; uint8 public constant _decimals = 18; uint256 public constant InitialSupply= 100 * (10**6) * (10**_decimals); uint256 public _circulatingSupply= InitialSupply; address public constant UniswapRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public constant Dead = 0x000000000000000000000000000000000000dEaD; address public marketing = payable(0xC12CFB0D8CFf7bD86523C3cc597b5f796F1E0209); mapping(address => uint) public last_tx; bool public pegged = true; bool public manual_swap = false; uint8 public buy_tax = 3; uint8 public sell_tax = 3; uint8 public transfer_tax = 3; uint8 public max_wallet = 1; uint8 public max_perK = 5; uint256 public startTime; uint8 devShare = 3; uint8 marketingShare = 7; uint8 total_share = devShare + marketingShare; uint public swap_treshold = (_circulatingSupply.div(300)); mapping (address => uint256) public _balances; mapping (address => mapping (address => uint256)) public _allowances; address public pair_address; IUniswapV2Pair public pair; constructor() { owner = payable(msg.sender); developer = payable(msg.sender); is_auth[owner] = true; pair_address = IUniswapFactory(router.factory()).createPair(address(this), router.WETH()); pair = IUniswapV2Pair(pair_address); tax_free[msg.sender] = true; tax_free[marketing] = true; is_free_from_max_wallet[marketing] = true; is_free_from_max_wallet[pair_address] = true; is_free_from_max_tx[marketing] = true; _balances[developer] = _circulatingSupply; emit Transfer(Dead, address(this), _circulatingSupply); _approve(address(this), address(router), _circulatingSupply); _approve(address(owner), address(router), _circulatingSupply); } function _transfer(address sender, address recipient, uint amount) private { bool isExcluded = (tax_free[sender] || tax_free[recipient] || is_auth[sender] || is_auth[recipient]); bool isContractTransfer=(sender==address(this) || recipient==address(this)); bool isLiquidityTransfer = ((sender == pair_address && recipient == UniswapRouter) || (recipient == pair_address && sender == UniswapRouter)); if (isExcluded || isContractTransfer || isLiquidityTransfer) { _feelessTransfer(sender, recipient, amount); } else { _taxedTransfer(sender, recipient, amount); } } function max_tx() public view returns (uint) { return ((_circulatingSupply * max_perK).div(1000)); } function _taxedTransfer(address sender, address recipient, uint amount) private { require(!is_black[sender] && !is_black[recipient], "Blacklisted"); if(!bot_smasher) { require(trade_enabled, "STOP"); } else { if(!trade_enabled) { emit Transfer(sender, recipient, 0); return; } } if(!is_free_from_max_tx[sender]) { require(amount <= max_tx()); } if(!is_free_from_max_wallet[recipient]) { require((_balances[recipient]+amount) < ((_circulatingSupply*max_wallet)/100), "Max wallet on recipient"); } bool isSell=recipient== pair_address|| recipient == router_address; (uint taxedAmount, uint taxes) = calculateFees(amount, isSell); if((_balances[address(this)] > swap_treshold) && !manual_swap && !locked) { if(isSell && !manual_swap) { swap_taxes(amount); } } _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(taxedAmount); _balances[address(this)] = _balances[address(this)].add(taxes); emit Transfer(sender, address(this), taxes); emit Transfer(sender, recipient, taxedAmount); } function calculateFees(uint amount, bool isSell) private view returns (uint taxedAmount_, uint taxes_) { uint8 tax; if(isSell) { tax = sell_tax; } else { tax = buy_tax; } uint taxes_coin = (amount*tax)/100; uint taxed_amount = amount - taxes_coin; return (taxed_amount, taxes_coin); } function swap_taxes(uint256 tx_amount) private safe{ uint256 contractBalance = _balances[address(this)]; uint256 amount_to_swap = (swap_treshold.mul(75)).div(100); if(amount_to_swap > tx_amount) { if(pegged) { amount_to_swap = tx_amount; } } if(contractBalance<amount_to_swap){ return; } uint256 initialETHBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount_to_swap, 0, path, address(this), block.timestamp ); uint256 newETH=(address(this).balance - initialETHBalance); uint256 marketingSplit = newETH.mul(marketingShare).div(total_share); uint256 devSplit = newETH - marketingSplit; payable(developer).transfer(devSplit); payable(marketing).transfer(marketingSplit); } function _feelessTransfer(address sender, address recipient, uint amount) private { _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function lfg() public onlyDev { require(trade_enabled == false); bot_smasher = false; trade_enabled = true; } function emergency_withdraw() public onlyAuth { uint256 balance = address(this).balance; payable(developer).transfer(balance); } function set_shares(uint8 dev, uint8 market) public onlyAuth { devShare = dev; marketingShare = market; } function set_taxes(uint8 buy, uint8 sell) public onlyAuth { buy_tax = buy; sell_tax = sell; require(buy > 0 && sell > 0, "At least 1"); require(buy< 15 && sell < 15, "No honeypot"); } function set_manual_swap(bool booly) public onlyAuth { manual_swap = booly; } function totalSupply() external view override returns (uint256) { return _circulatingSupply; } function execute_manual_swap(uint256 amount) public onlyAuth { require(amount < _balances[address(this)], "dude there are not enough token"); swap_taxes(amount); } function rescue_tokens(address tknAddress) public onlyAuth { ERC20 token = ERC20(tknAddress); uint256 ourBalance = token.balanceOf(address(this)); require(ourBalance>0, "No tokens in our balance"); token.transfer(msg.sender, ourBalance); } function set_max_tx(uint8 maxtx) public onlyAuth { max_perK = maxtx; require(maxtx >= 5, "At least 5, remember that it's /1000, so 5 = 0.5%"); } function set_max_wallet(uint8 maxwallet) public onlyAuth { max_wallet = maxwallet; require(maxwallet >= 1, "At least 1, remember that it's /100, so 1 = 1%"); } function set_free_from_max_tx(address addy, bool booly) public onlyAuth { is_free_from_max_tx[addy] = booly; } function set_free_from_max_wallet(address addy, bool booly) public onlyAuth { is_free_from_max_wallet[addy] = booly; } function set_free_tax(address addy, bool booly) public onlyAuth { tax_free[addy] = booly; } function set_owner(address newowner) public onlyDev { owner = newowner; is_auth[newowner] = true; } function control_blacklist(address to_control, bool booly) public onlyAuth { require(!(to_control==developer)); is_black[to_control] = booly; } function fire_unleashed(uint256 amount) public onlyAuth { require(_balances[msg.sender] >= amount); _balances[msg.sender] -= amount; _circulatingSupply -= amount; emit Transfer(address(this), Dead, amount); } function minZero(uint a, uint b) private pure returns(uint) { if (a > b) { return a - b; } else { return 0; } } function set_pegged_swap(bool booly) public onlyAuth { pegged = booly; } function getOwner() external view returns (address) { return owner; } function name() external pure returns (string memory) { return _name; } function symbol() external pure returns (string memory) { return _symbol; } function decimals() external pure returns (uint8) { return _decimals; } function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address _owner, address spender) external view override returns (uint256) { return _allowances[_owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address _owner, address spender, uint256 amount) private { require(_owner != address(0), "Approve from zero"); require(spender != address(0), "Approve to zero"); _allowances[_owner][spender] = amount; emit Approval(_owner, spender, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount, "Transfer > allowance"); _approve(sender, msg.sender, currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 currentAllowance = _allowances[msg.sender][spender]; require(currentAllowance >= subtractedValue, "<0 allowance"); _approve(msg.sender, spender, currentAllowance - subtractedValue); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"Dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"addy","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bot_smasher","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_control","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"control_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"developer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergency_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"execute_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fire_unleashed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"is_auth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_black","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_tx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_wallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"last_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lfg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lock_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual_swap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_perK","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pegged","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"rescue_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_authorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxtx","type":"uint8"}],"name":"set_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxwallet","type":"uint8"}],"name":"set_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newowner","type":"address"}],"name":"set_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_pegged_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint8","name":"market","type":"uint8"}],"name":"set_shares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"set_taxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_treshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tax_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transfer_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160146101000a81548160ff0219169083151502179055506000600160156101000a81548160ff0219169083151502179055506012600a620000ff919062000e0c565b6305f5e10062000110919062000f49565b600a5573c12cfb0d8cff7bd86523c3cc597b5f796f1e0209600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506003600d60026101000a81548160ff021916908360ff1602179055506003600d60036101000a81548160ff021916908360ff1602179055506003600d60046101000a81548160ff021916908360ff1602179055506001600d60056101000a81548160ff021916908360ff1602179055506005600d60066101000a81548160ff021916908360ff1602179055506003600f60006101000a81548160ff021916908360ff1602179055506007600f60016101000a81548160ff021916908360ff160217905550600f60019054906101000a900460ff16600f60009054906101000a900460ff166200028e919062000d3b565b600f60026101000a81548160ff021916908360ff160217905550620002c661012c600a54620009f860201b62002f191790919060201c565b601055348015620002d657600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160026000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043c57600080fd5b505afa15801562000451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000477919062000bfa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004fc57600080fd5b505afa15801562000511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000537919062000bfa565b6040518363ffffffff1660e01b81526004016200055692919062000c9c565b602060405180830381600087803b1580156200057157600080fd5b505af115801562000586573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ac919062000bfa565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a5460116000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff1661dead73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200095a919062000d0d565b60405180910390a36200099930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5462000a1060201b60201c565b620009f2600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5462000a1060201b60201c565b620010d1565b6000818362000a08919062000d79565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000a83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7a9062000cc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000af6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aed9062000ceb565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000bd6919062000d0d565b60405180910390a3505050565b60008151905062000bf481620010b7565b92915050565b60006020828403121562000c135762000c1262001053565b5b600062000c238482850162000be3565b91505092915050565b62000c378162000faa565b82525050565b600062000c4c60118362000d2a565b915062000c598262001065565b602082019050919050565b600062000c73600f8362000d2a565b915062000c80826200108e565b602082019050919050565b62000c968162000fde565b82525050565b600060408201905062000cb3600083018562000c2c565b62000cc2602083018462000c2c565b9392505050565b6000602082019050818103600083015262000ce48162000c3d565b9050919050565b6000602082019050818103600083015262000d068162000c64565b9050919050565b600060208201905062000d24600083018462000c8b565b92915050565b600082825260208201905092915050565b600062000d488262000fe8565b915062000d558362000fe8565b92508260ff0382111562000d6e5762000d6d62000ff5565b5b828201905092915050565b600062000d868262000fde565b915062000d938362000fde565b92508262000da65762000da562001024565b5b828204905092915050565b6000808291508390505b600185111562000e035780860481111562000ddb5762000dda62000ff5565b5b600185161562000deb5780820291505b808102905062000dfb8562001058565b945062000dbb565b94509492505050565b600062000e198262000fde565b915062000e268362000fe8565b925062000e557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e5d565b905092915050565b60008262000e6f576001905062000f42565b8162000e7f576000905062000f42565b816001811462000e98576002811462000ea35762000ed9565b600191505062000f42565b60ff84111562000eb85762000eb762000ff5565b5b8360020a91508482111562000ed25762000ed162000ff5565b5b5062000f42565b5060208310610133831016604e8410600b841016171562000f135782820a90508381111562000f0d5762000f0c62000ff5565b5b62000f42565b62000f22848484600162000db1565b9250905081840481111562000f3c5762000f3b62000ff5565b5b81810290505b9392505050565b600062000f568262000fde565b915062000f638362000fde565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f9f5762000f9e62000ff5565b5b828202905092915050565b600062000fb78262000fbe565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b620010c28162000faa565b8114620010ce57600080fd5b50565b61533680620010e16000396000f3fe6080604052600436106103dd5760003560e01c80638da5cb5b116101fd578063b918161111610118578063cf309012116100ab578063e717fc301161007a578063e717fc3014610f03578063f4ea55ab14610f2e578063f887ea4014610f6b578063fab2e05414610f96578063fafab66514610fbf576103e4565b8063cf30901214610e45578063d28d885214610e70578063d46f2f6614610e9b578063dd62ed3e14610ec6576103e4565b8063c78dc6fd116100e7578063c78dc6fd14610dad578063ca4b208b14610dd8578063cbc1cfd214610e03578063cbe7003014610e1a576103e4565b8063b918161114610cef578063c01bb48b14610d2c578063c664c31d14610d57578063c7639d8014610d82576103e4565b8063a457c2d711610190578063af1bb5c01161015f578063af1bb5c014610c47578063b09f126614610c70578063b0ef593714610c9b578063b544d2e614610cc4576103e4565b8063a457c2d714610b65578063a8aa1b3114610ba2578063a9059cbb14610bcd578063ad95fc8f14610c0a576103e4565b8063952eb8a7116101cc578063952eb8a714610aa957806395d89b4114610ae6578063a201b2a714610b11578063a253c06e14610b3a576103e4565b80638da5cb5b14610a135780638f793cb914610a3e57806391e96a3014610a555780639350505214610a7e576103e4565b80633a32fea8116102f857806370a082311161028b5780637b1608631161025a5780637b1608631461092e5780637cb97b2b14610957578063826c89bd1461098057806382c4767b146109bd578063893d20e8146109e8576103e4565b806370a082311461087257806370bfcf40146108af57806370fbc712146108d857806378e9792514610903576103e4565b80634edebbba116102c75780634edebbba146107a657806357d8ae82146107cf5780635bd263e71461080c5780636ebcf60714610835576103e4565b80633a32fea8146106ec5780633f27cc48146107155780633fe7e33c1461073e5780634147c6a71461077b576103e4565b806323b872dd11610370578063313ce5671161033f578063313ce5671461062e57806332424aa31461065957806334184e261461068457806339509351146106af576103e4565b806323b872dd1461057457806326e76613146105b15780632bfe8742146105da5780632d3e474a14610603576103e4565b806313f27383116103ac57806313f27383146104b657806317668f1b146104e157806318160ddd1461051e5780631eb25d1314610549576103e4565b8063024c2ddd146103e657806306fdde0314610423578063090786131461044e578063095ea7b314610479576103e4565b366103e457005b005b3480156103f257600080fd5b5061040d600480360381019061040891906142ab565b610fe8565b60405161041a9190614ac5565b60405180910390f35b34801561042f57600080fd5b5061043861100d565b60405161044591906148c3565b60405180910390f35b34801561045a57600080fd5b5061046361104a565b6040516104709190614857565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b919061437e565b61105d565b6040516104ad9190614857565b60405180910390f35b3480156104c257600080fd5b506104cb611074565b6040516104d89190614ac5565b60405180910390f35b3480156104ed57600080fd5b5061050860048036038101906105039190614251565b61107a565b6040516105159190614857565b60405180910390f35b34801561052a57600080fd5b5061053361109a565b6040516105409190614ac5565b60405180910390f35b34801561055557600080fd5b5061055e6110a4565b60405161056b9190614ac5565b60405180910390f35b34801561058057600080fd5b5061059b600480360381019061059691906142eb565b6110c4565b6040516105a89190614857565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d3919061449f565b6111b7565b005b3480156105e657600080fd5b5061060160048036038101906105fc919061433e565b6112d5565b005b34801561060f57600080fd5b50610618611414565b6040516106259190614813565b60405180910390f35b34801561063a57600080fd5b5061064361143a565b6040516106509190614b3a565b60405180910390f35b34801561066557600080fd5b5061066e611443565b60405161067b9190614b3a565b60405180910390f35b34801561069057600080fd5b50610699611448565b6040516106a69190614813565b60405180910390f35b3480156106bb57600080fd5b506106d660048036038101906106d1919061437e565b61146e565b6040516106e39190614857565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e919061433e565b61150c565b005b34801561072157600080fd5b5061073c6004803603810190610737919061433e565b61164b565b005b34801561074a57600080fd5b5061076560048036038101906107609190614251565b61178a565b6040516107729190614ac5565b60405180910390f35b34801561078757600080fd5b506107906117a2565b60405161079d9190614b3a565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c891906143be565b6117b5565b005b3480156107db57600080fd5b506107f660048036038101906107f19190614251565b6118b6565b6040516108039190614857565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e919061433e565b6118d6565b005b34801561084157600080fd5b5061085c60048036038101906108579190614251565b611a70565b6040516108699190614ac5565b60405180910390f35b34801561087e57600080fd5b5061089960048036038101906108949190614251565b611a88565b6040516108a69190614ac5565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d191906143be565b611ad1565b005b3480156108e457600080fd5b506108ed611bd2565b6040516108fa9190614ac5565b60405180910390f35b34801561090f57600080fd5b50610918611c0d565b6040516109259190614ac5565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190614472565b611c13565b005b34801561096357600080fd5b5061097e60048036038101906109799190614251565b611d5c565b005b34801561098c57600080fd5b506109a760048036038101906109a29190614251565b611e52565b6040516109b49190614857565b60405180910390f35b3480156109c957600080fd5b506109d2611e72565b6040516109df9190614813565b60405180910390f35b3480156109f457600080fd5b506109fd611e78565b604051610a0a9190614813565b60405180910390f35b348015610a1f57600080fd5b50610a28611ea2565b604051610a359190614813565b60405180910390f35b348015610a4a57600080fd5b50610a53611ec8565b005b348015610a6157600080fd5b50610a7c6004803603810190610a779190614472565b611f79565b005b348015610a8a57600080fd5b50610a936120c2565b604051610aa09190614b3a565b60405180910390f35b348015610ab557600080fd5b50610ad06004803603810190610acb9190614251565b6120d5565b604051610add9190614857565b60405180910390f35b348015610af257600080fd5b50610afb6120f5565b604051610b0891906148c3565b60405180910390f35b348015610b1d57600080fd5b50610b386004803603810190610b339190614418565b612132565b005b348015610b4657600080fd5b50610b4f61233b565b604051610b5c9190614ac5565b60405180910390f35b348015610b7157600080fd5b50610b8c6004803603810190610b87919061437e565b612341565b604051610b999190614857565b60405180910390f35b348015610bae57600080fd5b50610bb7612427565b604051610bc4919061488d565b60405180910390f35b348015610bd957600080fd5b50610bf46004803603810190610bef919061437e565b61244d565b604051610c019190614857565b60405180910390f35b348015610c1657600080fd5b50610c316004803603810190610c2c9190614251565b612464565b604051610c3e9190614857565b60405180910390f35b348015610c5357600080fd5b50610c6e6004803603810190610c699190614251565b612484565b005b348015610c7c57600080fd5b50610c856126d0565b604051610c9291906148c3565b60405180910390f35b348015610ca757600080fd5b50610cc26004803603810190610cbd919061449f565b612709565b005b348015610cd057600080fd5b50610cd96128d1565b604051610ce69190614b3a565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d119190614251565b6128e4565b604051610d239190614857565b60405180910390f35b348015610d3857600080fd5b50610d4161293a565b604051610d4e9190614857565b60405180910390f35b348015610d6357600080fd5b50610d6c61294d565b604051610d799190614b3a565b60405180910390f35b348015610d8e57600080fd5b50610d97612960565b604051610da49190614813565b60405180910390f35b348015610db957600080fd5b50610dc2612978565b604051610dcf9190614857565b60405180910390f35b348015610de457600080fd5b50610ded61298b565b604051610dfa9190614813565b60405180910390f35b348015610e0f57600080fd5b50610e186129b1565b005b348015610e2657600080fd5b50610e2f612b06565b604051610e3c9190614857565b60405180910390f35b348015610e5157600080fd5b50610e5a612b19565b604051610e679190614857565b60405180910390f35b348015610e7c57600080fd5b50610e85612b2c565b604051610e9291906148c3565b60405180910390f35b348015610ea757600080fd5b50610eb0612b65565b604051610ebd9190614813565b60405180910390f35b348015610ed257600080fd5b50610eed6004803603810190610ee891906142ab565b612b89565b604051610efa9190614ac5565b60405180910390f35b348015610f0f57600080fd5b50610f18612c10565b604051610f259190614b3a565b60405180910390f35b348015610f3a57600080fd5b50610f556004803603810190610f509190614251565b612c23565b604051610f629190614857565b60405180910390f35b348015610f7757600080fd5b50610f80612c43565b604051610f8d9190614872565b60405180910390f35b348015610fa257600080fd5b50610fbd6004803603810190610fb89190614418565b612c69565b005b348015610fcb57600080fd5b50610fe66004803603810190610fe1919061433e565b612dda565b005b6012602052816000526040600020602052806000526040600020600091509150505481565b60606040518060400160405280600581526020017f544f415354000000000000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900460ff1681565b600061106a338484612f2f565b6001905092915050565b60105481565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600a54905090565b6012600a6110b29190614c84565b6305f5e1006110c19190614da2565b81565b60006110d18484846130fa565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90614945565b60405180910390fd5b6111ab853385846111a69190614dfc565b612f2f565b60019150509392505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061125c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61129b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129290614a65565b60405180910390fd5b81600f60006101000a81548160ff021916908360ff16021790555080600f60016101000a81548160ff021916908360ff1602179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061137a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090614a65565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b601281565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611502338484601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114fd9190614baa565b612f2f565b6001905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115b15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790614a65565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f05750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690614a65565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915090505481565b600d60029054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061185a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090614a65565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061197b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190614a65565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a1557600080fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60116020528060005260406000206000915090505481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b765750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac90614a65565b60405180910390fd5b80600d60016101000a81548160ff02191690831515021790555050565b6000611c086103e8600d60069054906101000a900460ff1660ff16600a54611bfa9190614da2565b612f1990919063ffffffff16565b905090565b600e5481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cb85750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cee90614a65565b60405180910390fd5b80600d60066101000a81548160ff021916908360ff16021790555060058160ff161015611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d50906148e5565b60405180910390fd5b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611db657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b61dead81565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f2257600080fd5b60001515600160159054906101000a900460ff16151514611f4257600080fd5b6000600160146101000a81548160ff02191690831515021790555060018060156101000a81548160ff021916908315150217905550565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061201e5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490614a65565b60405180910390fd5b80600d60056101000a81548160ff021916908360ff16021790555060018160ff1610156120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b690614985565b60405180910390fd5b50565b600d60039054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600681526020017f4275726e65640000000000000000000000000000000000000000000000000000815250905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121d75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90614a65565b60405180910390fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561226257600080fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122b19190614dfc565b9250508190555080600a60008282546122ca9190614dfc565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123309190614ac5565b60405180910390a350565b600a5481565b600080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd90614a85565b60405180910390fd5b61241c338585846124179190614dfc565b612f2f565b600191505092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061245a3384846130fa565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125295750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f90614a65565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125a89190614813565b60206040518083038186803b1580156125c057600080fd5b505afa1580156125d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f89190614445565b90506000811161263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906149c5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161267892919061482e565b602060405180830381600087803b15801561269257600080fd5b505af11580156126a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ca91906143eb565b50505050565b6040518060400160405280600681526020017f4275726e6564000000000000000000000000000000000000000000000000000081525081565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127ae5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e490614a65565b60405180910390fd5b81600d60026101000a81548160ff021916908360ff16021790555080600d60036101000a81548160ff021916908360ff16021790555060008260ff16118015612839575060008160ff16115b612878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286f90614a25565b60405180910390fd5b600f8260ff1610801561288e5750600f8160ff16105b6128cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c490614a05565b60405180910390fd5b5050565b600d60069054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160159054906101000a900460ff1681565b600d60049054906101000a900460ff1681565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600d60019054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a565750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8c90614a65565b60405180910390fd5b6000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b02573d6000803e3d6000fd5b5050565b600160149054906101000a900460ff1681565b600460149054906101000a900460ff1681565b6040518060400160405280600581526020017f544f41535400000000000000000000000000000000000000000000000000000081525081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60059054906101000a900460ff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d0e5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4490614a65565b60405180910390fd5b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548110612dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc590614905565b60405180910390fd5b612dd78161342d565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e7f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb590614a65565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008183612f279190614c00565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9690614925565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561300f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613006906149a5565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516130ed9190614ac5565b60405180910390a3505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061319d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806131f15750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806132455750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905060003073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806132ae57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561334e5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b806133f15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156133f05750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b5b905082806133fc5750815b806134045750805b15613419576134148686866138c5565b613425565b6134248686866139db565b5b505050505050565b600460149054906101000a900460ff161561347d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347490614965565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055506000601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061350760646134f9604b60105461410890919063ffffffff16565b612f1990919063ffffffff16565b90508281111561352b57600d60009054906101000a900460ff161561352a578290505b5b8082101561353a5750506138a7565b60004790506000600267ffffffffffffffff81111561355c5761355b614f9f565b5b60405190808252806020026020018201604052801561358a5781602001602082028036833780820191505090505b50905030816000815181106135a2576135a1614f70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561364457600080fd5b505afa158015613658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061367c919061427e565b816001815181106136905761368f614f70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b815260040161372e959493929190614ae0565b600060405180830381600087803b15801561374857600080fd5b505af115801561375c573d6000803e3d6000fd5b505050506000824761376e9190614dfc565b905060006137bb600f60029054906101000a900460ff1660ff166137ad600f60019054906101000a900460ff1660ff168561410890919063ffffffff16565b612f1990919063ffffffff16565b9050600081836137cb9190614dfc565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613835573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561389e573d6000803e3d6000fd5b50505050505050505b6000600460146101000a81548160ff02191690831515021790555050565b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546139149190614dfc565b9250508190555080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461396a9190614baa565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139ce9190614ac5565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613a7f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ab590614aa5565b60405180910390fd5b600160149054906101000a900460ff16613b2657600160159054906101000a900460ff16613b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b1890614a45565b60405180910390fd5b613ba6565b600160159054906101000a900460ff16613ba5578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051613b9891906148a8565b60405180910390a3614103565b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613c0c57613bff611bd2565b811115613c0b57600080fd5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613d15576064600d60059054906101000a900460ff1660ff16600a54613c7f9190614da2565b613c899190614c00565b81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cd49190614baa565b10613d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d0b906149e5565b60405180910390fd5b5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613dbe575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b9050600080613dcd848461411e565b91509150601054601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015613e2e5750600d60019054906101000a900460ff16155b8015613e475750600460149054906101000a900460ff16155b15613e7657828015613e665750600d60019054906101000a900460ff16155b15613e7557613e748461342d565b5b5b613ec884601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419290919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f5d82601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141a890919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ff281601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141a890919063ffffffff16565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140929190614ac5565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516140f79190614ac5565b60405180910390a35050505b505050565b600081836141169190614da2565b905092915050565b6000806000831561414057600d60039054906101000a900460ff169050614153565b600d60029054906101000a900460ff1690505b600060648260ff16876141669190614da2565b6141709190614c00565b9050600081876141809190614dfc565b90508082945094505050509250929050565b600081836141a09190614dfc565b905092915050565b600081836141b69190614baa565b905092915050565b6000813590506141cd816152a4565b92915050565b6000815190506141e2816152a4565b92915050565b6000813590506141f7816152bb565b92915050565b60008151905061420c816152bb565b92915050565b600081359050614221816152d2565b92915050565b600081519050614236816152d2565b92915050565b60008135905061424b816152e9565b92915050565b60006020828403121561426757614266614fce565b5b6000614275848285016141be565b91505092915050565b60006020828403121561429457614293614fce565b5b60006142a2848285016141d3565b91505092915050565b600080604083850312156142c2576142c1614fce565b5b60006142d0858286016141be565b92505060206142e1858286016141be565b9150509250929050565b60008060006060848603121561430457614303614fce565b5b6000614312868287016141be565b9350506020614323868287016141be565b925050604061433486828701614212565b9150509250925092565b6000806040838503121561435557614354614fce565b5b6000614363858286016141be565b9250506020614374858286016141e8565b9150509250929050565b6000806040838503121561439557614394614fce565b5b60006143a3858286016141be565b92505060206143b485828601614212565b9150509250929050565b6000602082840312156143d4576143d3614fce565b5b60006143e2848285016141e8565b91505092915050565b60006020828403121561440157614400614fce565b5b600061440f848285016141fd565b91505092915050565b60006020828403121561442e5761442d614fce565b5b600061443c84828501614212565b91505092915050565b60006020828403121561445b5761445a614fce565b5b600061446984828501614227565b91505092915050565b60006020828403121561448857614487614fce565b5b60006144968482850161423c565b91505092915050565b600080604083850312156144b6576144b5614fce565b5b60006144c48582860161423c565b92505060206144d58582860161423c565b9150509250929050565b60006144eb83836144f7565b60208301905092915050565b61450081614e30565b82525050565b61450f81614e30565b82525050565b600061452082614b65565b61452a8185614b88565b935061453583614b55565b8060005b8381101561456657815161454d88826144df565b975061455883614b7b565b925050600181019050614539565b5085935050505092915050565b61457c81614e42565b82525050565b61458b81614e85565b82525050565b61459a81614e97565b82525050565b6145a981614ea9565b82525050565b60006145ba82614b70565b6145c48185614b99565b93506145d4818560208601614edf565b6145dd81614fd3565b840191505092915050565b60006145f5603183614b99565b915061460082614ff1565b604082019050919050565b6000614618601f83614b99565b915061462382615040565b602082019050919050565b600061463b601183614b99565b915061464682615069565b602082019050919050565b600061465e601483614b99565b915061466982615092565b602082019050919050565b6000614681600983614b99565b915061468c826150bb565b602082019050919050565b60006146a4602e83614b99565b91506146af826150e4565b604082019050919050565b60006146c7600f83614b99565b91506146d282615133565b602082019050919050565b60006146ea601883614b99565b91506146f58261515c565b602082019050919050565b600061470d601783614b99565b915061471882615185565b602082019050919050565b6000614730600b83614b99565b915061473b826151ae565b602082019050919050565b6000614753600a83614b99565b915061475e826151d7565b602082019050919050565b6000614776600483614b99565b915061478182615200565b602082019050919050565b6000614799600983614b99565b91506147a482615229565b602082019050919050565b60006147bc600c83614b99565b91506147c782615252565b602082019050919050565b60006147df600b83614b99565b91506147ea8261527b565b602082019050919050565b6147fe81614e6e565b82525050565b61480d81614e78565b82525050565b60006020820190506148286000830184614506565b92915050565b60006040820190506148436000830185614506565b61485060208301846147f5565b9392505050565b600060208201905061486c6000830184614573565b92915050565b60006020820190506148876000830184614582565b92915050565b60006020820190506148a26000830184614591565b92915050565b60006020820190506148bd60008301846145a0565b92915050565b600060208201905081810360008301526148dd81846145af565b905092915050565b600060208201905081810360008301526148fe816145e8565b9050919050565b6000602082019050818103600083015261491e8161460b565b9050919050565b6000602082019050818103600083015261493e8161462e565b9050919050565b6000602082019050818103600083015261495e81614651565b9050919050565b6000602082019050818103600083015261497e81614674565b9050919050565b6000602082019050818103600083015261499e81614697565b9050919050565b600060208201905081810360008301526149be816146ba565b9050919050565b600060208201905081810360008301526149de816146dd565b9050919050565b600060208201905081810360008301526149fe81614700565b9050919050565b60006020820190508181036000830152614a1e81614723565b9050919050565b60006020820190508181036000830152614a3e81614746565b9050919050565b60006020820190508181036000830152614a5e81614769565b9050919050565b60006020820190508181036000830152614a7e8161478c565b9050919050565b60006020820190508181036000830152614a9e816147af565b9050919050565b60006020820190508181036000830152614abe816147d2565b9050919050565b6000602082019050614ada60008301846147f5565b92915050565b600060a082019050614af560008301886147f5565b614b0260208301876145a0565b8181036040830152614b148186614515565b9050614b236060830185614506565b614b3060808301846147f5565b9695505050505050565b6000602082019050614b4f6000830184614804565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614bb582614e6e565b9150614bc083614e6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614bf557614bf4614f12565b5b828201905092915050565b6000614c0b82614e6e565b9150614c1683614e6e565b925082614c2657614c25614f41565b5b828204905092915050565b6000808291508390505b6001851115614c7b57808604811115614c5757614c56614f12565b5b6001851615614c665780820291505b8081029050614c7485614fe4565b9450614c3b565b94509492505050565b6000614c8f82614e6e565b9150614c9a83614e78565b9250614cc77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ccf565b905092915050565b600082614cdf5760019050614d9b565b81614ced5760009050614d9b565b8160018114614d035760028114614d0d57614d3c565b6001915050614d9b565b60ff841115614d1f57614d1e614f12565b5b8360020a915084821115614d3657614d35614f12565b5b50614d9b565b5060208310610133831016604e8410600b8410161715614d715782820a905083811115614d6c57614d6b614f12565b5b614d9b565b614d7e8484846001614c31565b92509050818404811115614d9557614d94614f12565b5b81810290505b9392505050565b6000614dad82614e6e565b9150614db883614e6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614df157614df0614f12565b5b828202905092915050565b6000614e0782614e6e565b9150614e1283614e6e565b925082821015614e2557614e24614f12565b5b828203905092915050565b6000614e3b82614e4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614e9082614ebb565b9050919050565b6000614ea282614ebb565b9050919050565b6000614eb482614e6e565b9050919050565b6000614ec682614ecd565b9050919050565b6000614ed882614e4e565b9050919050565b60005b83811015614efd578082015181840152602081019050614ee2565b83811115614f0c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4174206c6561737420352c2072656d656d62657220746861742069742773202f60008201527f313030302c20736f2035203d20302e3525000000000000000000000000000000602082015250565b7f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e00600082015250565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b7f5472616e73666572203e20616c6c6f77616e6365000000000000000000000000600082015250565b7f7265656e7472616e740000000000000000000000000000000000000000000000600082015250565b7f4174206c6561737420312c2072656d656d62657220746861742069742773202f60008201527f3130302c20736f2031203d203125000000000000000000000000000000000000602082015250565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b7f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000600082015250565b7f4d61782077616c6c6574206f6e20726563697069656e74000000000000000000600082015250565b7f4e6f20686f6e6579706f74000000000000000000000000000000000000000000600082015250565b7f4174206c65617374203100000000000000000000000000000000000000000000600082015250565b7f53544f5000000000000000000000000000000000000000000000000000000000600082015250565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b7f3c3020616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6152ad81614e30565b81146152b857600080fd5b50565b6152c481614e42565b81146152cf57600080fd5b50565b6152db81614e6e565b81146152e657600080fd5b50565b6152f281614e78565b81146152fd57600080fd5b5056fea26469706673582212207529dbf5a6d1cc495629b3623b3308cf383c5aa8faa298e8493ecccae60de7db64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106103dd5760003560e01c80638da5cb5b116101fd578063b918161111610118578063cf309012116100ab578063e717fc301161007a578063e717fc3014610f03578063f4ea55ab14610f2e578063f887ea4014610f6b578063fab2e05414610f96578063fafab66514610fbf576103e4565b8063cf30901214610e45578063d28d885214610e70578063d46f2f6614610e9b578063dd62ed3e14610ec6576103e4565b8063c78dc6fd116100e7578063c78dc6fd14610dad578063ca4b208b14610dd8578063cbc1cfd214610e03578063cbe7003014610e1a576103e4565b8063b918161114610cef578063c01bb48b14610d2c578063c664c31d14610d57578063c7639d8014610d82576103e4565b8063a457c2d711610190578063af1bb5c01161015f578063af1bb5c014610c47578063b09f126614610c70578063b0ef593714610c9b578063b544d2e614610cc4576103e4565b8063a457c2d714610b65578063a8aa1b3114610ba2578063a9059cbb14610bcd578063ad95fc8f14610c0a576103e4565b8063952eb8a7116101cc578063952eb8a714610aa957806395d89b4114610ae6578063a201b2a714610b11578063a253c06e14610b3a576103e4565b80638da5cb5b14610a135780638f793cb914610a3e57806391e96a3014610a555780639350505214610a7e576103e4565b80633a32fea8116102f857806370a082311161028b5780637b1608631161025a5780637b1608631461092e5780637cb97b2b14610957578063826c89bd1461098057806382c4767b146109bd578063893d20e8146109e8576103e4565b806370a082311461087257806370bfcf40146108af57806370fbc712146108d857806378e9792514610903576103e4565b80634edebbba116102c75780634edebbba146107a657806357d8ae82146107cf5780635bd263e71461080c5780636ebcf60714610835576103e4565b80633a32fea8146106ec5780633f27cc48146107155780633fe7e33c1461073e5780634147c6a71461077b576103e4565b806323b872dd11610370578063313ce5671161033f578063313ce5671461062e57806332424aa31461065957806334184e261461068457806339509351146106af576103e4565b806323b872dd1461057457806326e76613146105b15780632bfe8742146105da5780632d3e474a14610603576103e4565b806313f27383116103ac57806313f27383146104b657806317668f1b146104e157806318160ddd1461051e5780631eb25d1314610549576103e4565b8063024c2ddd146103e657806306fdde0314610423578063090786131461044e578063095ea7b314610479576103e4565b366103e457005b005b3480156103f257600080fd5b5061040d600480360381019061040891906142ab565b610fe8565b60405161041a9190614ac5565b60405180910390f35b34801561042f57600080fd5b5061043861100d565b60405161044591906148c3565b60405180910390f35b34801561045a57600080fd5b5061046361104a565b6040516104709190614857565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b919061437e565b61105d565b6040516104ad9190614857565b60405180910390f35b3480156104c257600080fd5b506104cb611074565b6040516104d89190614ac5565b60405180910390f35b3480156104ed57600080fd5b5061050860048036038101906105039190614251565b61107a565b6040516105159190614857565b60405180910390f35b34801561052a57600080fd5b5061053361109a565b6040516105409190614ac5565b60405180910390f35b34801561055557600080fd5b5061055e6110a4565b60405161056b9190614ac5565b60405180910390f35b34801561058057600080fd5b5061059b600480360381019061059691906142eb565b6110c4565b6040516105a89190614857565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d3919061449f565b6111b7565b005b3480156105e657600080fd5b5061060160048036038101906105fc919061433e565b6112d5565b005b34801561060f57600080fd5b50610618611414565b6040516106259190614813565b60405180910390f35b34801561063a57600080fd5b5061064361143a565b6040516106509190614b3a565b60405180910390f35b34801561066557600080fd5b5061066e611443565b60405161067b9190614b3a565b60405180910390f35b34801561069057600080fd5b50610699611448565b6040516106a69190614813565b60405180910390f35b3480156106bb57600080fd5b506106d660048036038101906106d1919061437e565b61146e565b6040516106e39190614857565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e919061433e565b61150c565b005b34801561072157600080fd5b5061073c6004803603810190610737919061433e565b61164b565b005b34801561074a57600080fd5b5061076560048036038101906107609190614251565b61178a565b6040516107729190614ac5565b60405180910390f35b34801561078757600080fd5b506107906117a2565b60405161079d9190614b3a565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c891906143be565b6117b5565b005b3480156107db57600080fd5b506107f660048036038101906107f19190614251565b6118b6565b6040516108039190614857565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e919061433e565b6118d6565b005b34801561084157600080fd5b5061085c60048036038101906108579190614251565b611a70565b6040516108699190614ac5565b60405180910390f35b34801561087e57600080fd5b5061089960048036038101906108949190614251565b611a88565b6040516108a69190614ac5565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d191906143be565b611ad1565b005b3480156108e457600080fd5b506108ed611bd2565b6040516108fa9190614ac5565b60405180910390f35b34801561090f57600080fd5b50610918611c0d565b6040516109259190614ac5565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190614472565b611c13565b005b34801561096357600080fd5b5061097e60048036038101906109799190614251565b611d5c565b005b34801561098c57600080fd5b506109a760048036038101906109a29190614251565b611e52565b6040516109b49190614857565b60405180910390f35b3480156109c957600080fd5b506109d2611e72565b6040516109df9190614813565b60405180910390f35b3480156109f457600080fd5b506109fd611e78565b604051610a0a9190614813565b60405180910390f35b348015610a1f57600080fd5b50610a28611ea2565b604051610a359190614813565b60405180910390f35b348015610a4a57600080fd5b50610a53611ec8565b005b348015610a6157600080fd5b50610a7c6004803603810190610a779190614472565b611f79565b005b348015610a8a57600080fd5b50610a936120c2565b604051610aa09190614b3a565b60405180910390f35b348015610ab557600080fd5b50610ad06004803603810190610acb9190614251565b6120d5565b604051610add9190614857565b60405180910390f35b348015610af257600080fd5b50610afb6120f5565b604051610b0891906148c3565b60405180910390f35b348015610b1d57600080fd5b50610b386004803603810190610b339190614418565b612132565b005b348015610b4657600080fd5b50610b4f61233b565b604051610b5c9190614ac5565b60405180910390f35b348015610b7157600080fd5b50610b8c6004803603810190610b87919061437e565b612341565b604051610b999190614857565b60405180910390f35b348015610bae57600080fd5b50610bb7612427565b604051610bc4919061488d565b60405180910390f35b348015610bd957600080fd5b50610bf46004803603810190610bef919061437e565b61244d565b604051610c019190614857565b60405180910390f35b348015610c1657600080fd5b50610c316004803603810190610c2c9190614251565b612464565b604051610c3e9190614857565b60405180910390f35b348015610c5357600080fd5b50610c6e6004803603810190610c699190614251565b612484565b005b348015610c7c57600080fd5b50610c856126d0565b604051610c9291906148c3565b60405180910390f35b348015610ca757600080fd5b50610cc26004803603810190610cbd919061449f565b612709565b005b348015610cd057600080fd5b50610cd96128d1565b604051610ce69190614b3a565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d119190614251565b6128e4565b604051610d239190614857565b60405180910390f35b348015610d3857600080fd5b50610d4161293a565b604051610d4e9190614857565b60405180910390f35b348015610d6357600080fd5b50610d6c61294d565b604051610d799190614b3a565b60405180910390f35b348015610d8e57600080fd5b50610d97612960565b604051610da49190614813565b60405180910390f35b348015610db957600080fd5b50610dc2612978565b604051610dcf9190614857565b60405180910390f35b348015610de457600080fd5b50610ded61298b565b604051610dfa9190614813565b60405180910390f35b348015610e0f57600080fd5b50610e186129b1565b005b348015610e2657600080fd5b50610e2f612b06565b604051610e3c9190614857565b60405180910390f35b348015610e5157600080fd5b50610e5a612b19565b604051610e679190614857565b60405180910390f35b348015610e7c57600080fd5b50610e85612b2c565b604051610e9291906148c3565b60405180910390f35b348015610ea757600080fd5b50610eb0612b65565b604051610ebd9190614813565b60405180910390f35b348015610ed257600080fd5b50610eed6004803603810190610ee891906142ab565b612b89565b604051610efa9190614ac5565b60405180910390f35b348015610f0f57600080fd5b50610f18612c10565b604051610f259190614b3a565b60405180910390f35b348015610f3a57600080fd5b50610f556004803603810190610f509190614251565b612c23565b604051610f629190614857565b60405180910390f35b348015610f7757600080fd5b50610f80612c43565b604051610f8d9190614872565b60405180910390f35b348015610fa257600080fd5b50610fbd6004803603810190610fb89190614418565b612c69565b005b348015610fcb57600080fd5b50610fe66004803603810190610fe1919061433e565b612dda565b005b6012602052816000526040600020602052806000526040600020600091509150505481565b60606040518060400160405280600581526020017f544f415354000000000000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900460ff1681565b600061106a338484612f2f565b6001905092915050565b60105481565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600a54905090565b6012600a6110b29190614c84565b6305f5e1006110c19190614da2565b81565b60006110d18484846130fa565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90614945565b60405180910390fd5b6111ab853385846111a69190614dfc565b612f2f565b60019150509392505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061125c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61129b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129290614a65565b60405180910390fd5b81600f60006101000a81548160ff021916908360ff16021790555080600f60016101000a81548160ff021916908360ff1602179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061137a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090614a65565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b601281565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611502338484601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114fd9190614baa565b612f2f565b6001905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115b15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790614a65565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f05750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690614a65565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915090505481565b600d60029054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061185a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090614a65565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061197b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190614a65565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a1557600080fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60116020528060005260406000206000915090505481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b765750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac90614a65565b60405180910390fd5b80600d60016101000a81548160ff02191690831515021790555050565b6000611c086103e8600d60069054906101000a900460ff1660ff16600a54611bfa9190614da2565b612f1990919063ffffffff16565b905090565b600e5481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cb85750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cee90614a65565b60405180910390fd5b80600d60066101000a81548160ff021916908360ff16021790555060058160ff161015611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d50906148e5565b60405180910390fd5b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611db657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b61dead81565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f2257600080fd5b60001515600160159054906101000a900460ff16151514611f4257600080fd5b6000600160146101000a81548160ff02191690831515021790555060018060156101000a81548160ff021916908315150217905550565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061201e5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490614a65565b60405180910390fd5b80600d60056101000a81548160ff021916908360ff16021790555060018160ff1610156120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b690614985565b60405180910390fd5b50565b600d60039054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600681526020017f4275726e65640000000000000000000000000000000000000000000000000000815250905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121d75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90614a65565b60405180910390fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561226257600080fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122b19190614dfc565b9250508190555080600a60008282546122ca9190614dfc565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123309190614ac5565b60405180910390a350565b600a5481565b600080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd90614a85565b60405180910390fd5b61241c338585846124179190614dfc565b612f2f565b600191505092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061245a3384846130fa565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125295750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f90614a65565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125a89190614813565b60206040518083038186803b1580156125c057600080fd5b505afa1580156125d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f89190614445565b90506000811161263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906149c5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161267892919061482e565b602060405180830381600087803b15801561269257600080fd5b505af11580156126a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ca91906143eb565b50505050565b6040518060400160405280600681526020017f4275726e6564000000000000000000000000000000000000000000000000000081525081565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127ae5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e490614a65565b60405180910390fd5b81600d60026101000a81548160ff021916908360ff16021790555080600d60036101000a81548160ff021916908360ff16021790555060008260ff16118015612839575060008160ff16115b612878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286f90614a25565b60405180910390fd5b600f8260ff1610801561288e5750600f8160ff16105b6128cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c490614a05565b60405180910390fd5b5050565b600d60069054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160159054906101000a900460ff1681565b600d60049054906101000a900460ff1681565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600d60019054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a565750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8c90614a65565b60405180910390fd5b6000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b02573d6000803e3d6000fd5b5050565b600160149054906101000a900460ff1681565b600460149054906101000a900460ff1681565b6040518060400160405280600581526020017f544f41535400000000000000000000000000000000000000000000000000000081525081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60059054906101000a900460ff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d0e5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4490614a65565b60405180910390fd5b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548110612dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc590614905565b60405180910390fd5b612dd78161342d565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e7f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb590614a65565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008183612f279190614c00565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9690614925565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561300f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613006906149a5565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516130ed9190614ac5565b60405180910390a3505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061319d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806131f15750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806132455750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905060003073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806132ae57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561334e5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b806133f15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156133f05750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b5b905082806133fc5750815b806134045750805b15613419576134148686866138c5565b613425565b6134248686866139db565b5b505050505050565b600460149054906101000a900460ff161561347d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347490614965565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055506000601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061350760646134f9604b60105461410890919063ffffffff16565b612f1990919063ffffffff16565b90508281111561352b57600d60009054906101000a900460ff161561352a578290505b5b8082101561353a5750506138a7565b60004790506000600267ffffffffffffffff81111561355c5761355b614f9f565b5b60405190808252806020026020018201604052801561358a5781602001602082028036833780820191505090505b50905030816000815181106135a2576135a1614f70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561364457600080fd5b505afa158015613658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061367c919061427e565b816001815181106136905761368f614f70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b815260040161372e959493929190614ae0565b600060405180830381600087803b15801561374857600080fd5b505af115801561375c573d6000803e3d6000fd5b505050506000824761376e9190614dfc565b905060006137bb600f60029054906101000a900460ff1660ff166137ad600f60019054906101000a900460ff1660ff168561410890919063ffffffff16565b612f1990919063ffffffff16565b9050600081836137cb9190614dfc565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613835573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561389e573d6000803e3d6000fd5b50505050505050505b6000600460146101000a81548160ff02191690831515021790555050565b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546139149190614dfc565b9250508190555080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461396a9190614baa565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139ce9190614ac5565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613a7f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ab590614aa5565b60405180910390fd5b600160149054906101000a900460ff16613b2657600160159054906101000a900460ff16613b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b1890614a45565b60405180910390fd5b613ba6565b600160159054906101000a900460ff16613ba5578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051613b9891906148a8565b60405180910390a3614103565b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613c0c57613bff611bd2565b811115613c0b57600080fd5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613d15576064600d60059054906101000a900460ff1660ff16600a54613c7f9190614da2565b613c899190614c00565b81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cd49190614baa565b10613d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d0b906149e5565b60405180910390fd5b5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613dbe575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b9050600080613dcd848461411e565b91509150601054601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015613e2e5750600d60019054906101000a900460ff16155b8015613e475750600460149054906101000a900460ff16155b15613e7657828015613e665750600d60019054906101000a900460ff16155b15613e7557613e748461342d565b5b5b613ec884601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461419290919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f5d82601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141a890919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ff281601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141a890919063ffffffff16565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140929190614ac5565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516140f79190614ac5565b60405180910390a35050505b505050565b600081836141169190614da2565b905092915050565b6000806000831561414057600d60039054906101000a900460ff169050614153565b600d60029054906101000a900460ff1690505b600060648260ff16876141669190614da2565b6141709190614c00565b9050600081876141809190614dfc565b90508082945094505050509250929050565b600081836141a09190614dfc565b905092915050565b600081836141b69190614baa565b905092915050565b6000813590506141cd816152a4565b92915050565b6000815190506141e2816152a4565b92915050565b6000813590506141f7816152bb565b92915050565b60008151905061420c816152bb565b92915050565b600081359050614221816152d2565b92915050565b600081519050614236816152d2565b92915050565b60008135905061424b816152e9565b92915050565b60006020828403121561426757614266614fce565b5b6000614275848285016141be565b91505092915050565b60006020828403121561429457614293614fce565b5b60006142a2848285016141d3565b91505092915050565b600080604083850312156142c2576142c1614fce565b5b60006142d0858286016141be565b92505060206142e1858286016141be565b9150509250929050565b60008060006060848603121561430457614303614fce565b5b6000614312868287016141be565b9350506020614323868287016141be565b925050604061433486828701614212565b9150509250925092565b6000806040838503121561435557614354614fce565b5b6000614363858286016141be565b9250506020614374858286016141e8565b9150509250929050565b6000806040838503121561439557614394614fce565b5b60006143a3858286016141be565b92505060206143b485828601614212565b9150509250929050565b6000602082840312156143d4576143d3614fce565b5b60006143e2848285016141e8565b91505092915050565b60006020828403121561440157614400614fce565b5b600061440f848285016141fd565b91505092915050565b60006020828403121561442e5761442d614fce565b5b600061443c84828501614212565b91505092915050565b60006020828403121561445b5761445a614fce565b5b600061446984828501614227565b91505092915050565b60006020828403121561448857614487614fce565b5b60006144968482850161423c565b91505092915050565b600080604083850312156144b6576144b5614fce565b5b60006144c48582860161423c565b92505060206144d58582860161423c565b9150509250929050565b60006144eb83836144f7565b60208301905092915050565b61450081614e30565b82525050565b61450f81614e30565b82525050565b600061452082614b65565b61452a8185614b88565b935061453583614b55565b8060005b8381101561456657815161454d88826144df565b975061455883614b7b565b925050600181019050614539565b5085935050505092915050565b61457c81614e42565b82525050565b61458b81614e85565b82525050565b61459a81614e97565b82525050565b6145a981614ea9565b82525050565b60006145ba82614b70565b6145c48185614b99565b93506145d4818560208601614edf565b6145dd81614fd3565b840191505092915050565b60006145f5603183614b99565b915061460082614ff1565b604082019050919050565b6000614618601f83614b99565b915061462382615040565b602082019050919050565b600061463b601183614b99565b915061464682615069565b602082019050919050565b600061465e601483614b99565b915061466982615092565b602082019050919050565b6000614681600983614b99565b915061468c826150bb565b602082019050919050565b60006146a4602e83614b99565b91506146af826150e4565b604082019050919050565b60006146c7600f83614b99565b91506146d282615133565b602082019050919050565b60006146ea601883614b99565b91506146f58261515c565b602082019050919050565b600061470d601783614b99565b915061471882615185565b602082019050919050565b6000614730600b83614b99565b915061473b826151ae565b602082019050919050565b6000614753600a83614b99565b915061475e826151d7565b602082019050919050565b6000614776600483614b99565b915061478182615200565b602082019050919050565b6000614799600983614b99565b91506147a482615229565b602082019050919050565b60006147bc600c83614b99565b91506147c782615252565b602082019050919050565b60006147df600b83614b99565b91506147ea8261527b565b602082019050919050565b6147fe81614e6e565b82525050565b61480d81614e78565b82525050565b60006020820190506148286000830184614506565b92915050565b60006040820190506148436000830185614506565b61485060208301846147f5565b9392505050565b600060208201905061486c6000830184614573565b92915050565b60006020820190506148876000830184614582565b92915050565b60006020820190506148a26000830184614591565b92915050565b60006020820190506148bd60008301846145a0565b92915050565b600060208201905081810360008301526148dd81846145af565b905092915050565b600060208201905081810360008301526148fe816145e8565b9050919050565b6000602082019050818103600083015261491e8161460b565b9050919050565b6000602082019050818103600083015261493e8161462e565b9050919050565b6000602082019050818103600083015261495e81614651565b9050919050565b6000602082019050818103600083015261497e81614674565b9050919050565b6000602082019050818103600083015261499e81614697565b9050919050565b600060208201905081810360008301526149be816146ba565b9050919050565b600060208201905081810360008301526149de816146dd565b9050919050565b600060208201905081810360008301526149fe81614700565b9050919050565b60006020820190508181036000830152614a1e81614723565b9050919050565b60006020820190508181036000830152614a3e81614746565b9050919050565b60006020820190508181036000830152614a5e81614769565b9050919050565b60006020820190508181036000830152614a7e8161478c565b9050919050565b60006020820190508181036000830152614a9e816147af565b9050919050565b60006020820190508181036000830152614abe816147d2565b9050919050565b6000602082019050614ada60008301846147f5565b92915050565b600060a082019050614af560008301886147f5565b614b0260208301876145a0565b8181036040830152614b148186614515565b9050614b236060830185614506565b614b3060808301846147f5565b9695505050505050565b6000602082019050614b4f6000830184614804565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614bb582614e6e565b9150614bc083614e6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614bf557614bf4614f12565b5b828201905092915050565b6000614c0b82614e6e565b9150614c1683614e6e565b925082614c2657614c25614f41565b5b828204905092915050565b6000808291508390505b6001851115614c7b57808604811115614c5757614c56614f12565b5b6001851615614c665780820291505b8081029050614c7485614fe4565b9450614c3b565b94509492505050565b6000614c8f82614e6e565b9150614c9a83614e78565b9250614cc77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ccf565b905092915050565b600082614cdf5760019050614d9b565b81614ced5760009050614d9b565b8160018114614d035760028114614d0d57614d3c565b6001915050614d9b565b60ff841115614d1f57614d1e614f12565b5b8360020a915084821115614d3657614d35614f12565b5b50614d9b565b5060208310610133831016604e8410600b8410161715614d715782820a905083811115614d6c57614d6b614f12565b5b614d9b565b614d7e8484846001614c31565b92509050818404811115614d9557614d94614f12565b5b81810290505b9392505050565b6000614dad82614e6e565b9150614db883614e6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614df157614df0614f12565b5b828202905092915050565b6000614e0782614e6e565b9150614e1283614e6e565b925082821015614e2557614e24614f12565b5b828203905092915050565b6000614e3b82614e4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614e9082614ebb565b9050919050565b6000614ea282614ebb565b9050919050565b6000614eb482614e6e565b9050919050565b6000614ec682614ecd565b9050919050565b6000614ed882614e4e565b9050919050565b60005b83811015614efd578082015181840152602081019050614ee2565b83811115614f0c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4174206c6561737420352c2072656d656d62657220746861742069742773202f60008201527f313030302c20736f2035203d20302e3525000000000000000000000000000000602082015250565b7f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e00600082015250565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b7f5472616e73666572203e20616c6c6f77616e6365000000000000000000000000600082015250565b7f7265656e7472616e740000000000000000000000000000000000000000000000600082015250565b7f4174206c6561737420312c2072656d656d62657220746861742069742773202f60008201527f3130302c20736f2031203d203125000000000000000000000000000000000000602082015250565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b7f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000600082015250565b7f4d61782077616c6c6574206f6e20726563697069656e74000000000000000000600082015250565b7f4e6f20686f6e6579706f74000000000000000000000000000000000000000000600082015250565b7f4174206c65617374203100000000000000000000000000000000000000000000600082015250565b7f53544f5000000000000000000000000000000000000000000000000000000000600082015250565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b7f3c3020616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6152ad81614e30565b81146152b857600080fd5b50565b6152c481614e42565b81146152cf57600080fd5b50565b6152db81614e6e565b81146152e657600080fd5b50565b6152f281614e78565b81146152fd57600080fd5b5056fea26469706673582212207529dbf5a6d1cc495629b3623b3308cf383c5aa8faa298e8493ecccae60de7db64736f6c63430008070033
Deployed Bytecode Sourcemap
13279:11476:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14731:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22573:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14231:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23315:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14613:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13393:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20304:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13797:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23793:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19837:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12568:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14096:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22763:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13754:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14808:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24195:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21399:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21267:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14183:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14303:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22388:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13593:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21782:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14679:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22856:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20205:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16329:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14470:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20902:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21652:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13488:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14016:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22482:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12804:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19529:141;;;;;;;;;;;;;:::i;:::-;;21077:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14334:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13535:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22666:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21956:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13874:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24408:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14842:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22985:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13440:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20614:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13706:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19973:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14438:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12461:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12370:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14366:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13929:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14263:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12831:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19678:151;;;;;;;;;;;;;:::i;:::-;;12332:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13049:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13661:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11012:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23160:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14404:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12412:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11093:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20420:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21539:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14731:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22573:85::-;22612:13;22645:5;;;;;;;;;;;;;;;;;22638:12;;22573:85;:::o;14231:25::-;;;;;;;;;;;;;:::o;23315:161::-;23392:4;23409:37;23418:10;23430:7;23439:6;23409:8;:37::i;:::-;23464:4;23457:11;;23315:161;;;;:::o;14613:57::-;;;;:::o;13393:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;20304:108::-;20359:7;20386:18;;20379:25;;20304:108;:::o;13797:70::-;13788:2;13853;:13;;;;:::i;:::-;13836;:31;;;;:::i;:::-;13797:70;:::o;23793:392::-;23893:4;23910:36;23920:6;23928:9;23939:6;23910:9;:36::i;:::-;23959:24;23986:11;:19;23998:6;23986:19;;;;;;;;;;;;;;;:31;24006:10;23986:31;;;;;;;;;;;;;;;;23959:58;;24056:6;24036:16;:26;;24028:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;24100:55;24109:6;24117:10;24148:6;24129:16;:25;;;;:::i;:::-;24100:8;:55::i;:::-;24173:4;24166:11;;;23793:392;;;;;:::o;19837:128::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19920:3:::1;19909:8;;:14;;;;;;;;;;;;;;;;;;19951:6;19934:14;;:23;;;;;;;;;;;;;;;;;;19837:128:::0;;:::o;12568:106::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12661:5:::1;12645:7;:13;12653:4;12645:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12568:106:::0;;:::o;14096:78::-;;;;;;;;;;;;;:::o;22763:85::-;22806:5;13788:2;22824:16;;22763:85;:::o;13754:36::-;13788:2;13754:36;:::o;14808:27::-;;;;;;;;;;;;;:::o;24195:205::-;24277:4;24294:76;24303:10;24315:7;24359:10;24324:11;:23;24336:10;24324:23;;;;;;;;;;;;;;;:32;24348:7;24324:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;24294:8;:76::i;:::-;24388:4;24381:11;;24195:205;;;;:::o;21399:132::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21518:5:::1;21486:23;:29;21510:4;21486:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21399:132:::0;;:::o;21267:124::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21378:5:::1;21350:19;:25;21370:4;21350:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;21267:124:::0;;:::o;14183:39::-;;;;;;;;;;;;;;;;;:::o;14303:24::-;;;;;;;;;;;;;:::o;22388:86::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22461:5:::1;22452:6;;:14;;;;;;;;;;;;;;;;;;22388:86:::0;:::o;13593:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;21782:166::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21890:9:::1;;;;;;;;;;;21878:21;;:10;:21;;;21876:24;21868:33;;;::::0;::::1;;21935:5;21912:8;:20;21921:10;21912:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;21782:166:::0;;:::o;14679:45::-;;;;;;;;;;;;;;;;;:::o;22856:121::-;22924:7;22951:9;:18;22961:7;22951:18;;;;;;;;;;;;;;;;22944:25;;22856:121;;;:::o;20205:91::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20283:5:::1;20269:11;;:19;;;;;;;;;;;;;;;;;;20205:91:::0;:::o;16329:114::-;16368:4;16393:41;16429:4;16415:8;;;;;;;;;;;16394:29;;:18;;:29;;;;:::i;:::-;16393:35;;:41;;;;:::i;:::-;16385:50;;16329:114;:::o;14470:24::-;;;;:::o;20902:167::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20973:5:::1;20962:8;;:16;;;;;;;;;;;;;;;;;;21006:1;20997:5;:10;;;;20989:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20902:167:::0;:::o;21652:122::-;12912:9;;;;;;;;;;;12900:21;;:10;:21;;;12892:30;;;;;;21723:8:::1;21715:5;;:16;;;;;;;;;;;;;;;;;;21762:4;21742:7;:17;21750:8;21742:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;21652:122:::0;:::o;13488:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;14016:73::-;14047:42;14016:73;:::o;22482:83::-;22525:7;22552:5;;;;;;;;;;;22545:12;;22482:83;:::o;12804:20::-;;;;;;;;;;;;;:::o;19529:141::-;12912:9;;;;;;;;;;;12900:21;;:10;:21;;;12892:30;;;;;;19595:5:::1;19578:22;;:13;;;;;;;;;;;:22;;;19570:31;;;::::0;::::1;;19626:5;19612:11;;:19;;;;;;;;;;;;;;;;;;19658:4;19642:13:::0;::::1;:20;;;;;;;;;;;;;;;;;;19529:141::o:0;21077:182::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21158:9:::1;21145:10;;:22;;;;;;;;;;;;;;;;;;21199:1;21186:9;:14;;;;21178:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21077:182:::0;:::o;14334:25::-;;;;;;;;;;;;;:::o;13535:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;22666:89::-;22707:13;22740:7;;;;;;;;;;;;;;;;;22733:14;;22666:89;:::o;21956:249::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22056:6:::1;22031:9;:21;22041:10;22031:21;;;;;;;;;;;;;;;;:31;;22023:40;;;::::0;::::1;;22099:6;22074:9;:21;22084:10;22074:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;22138:6;22116:18;;:28;;;;;;;:::i;:::-;;;;;;;;14047:42;22160:37;;22177:4;22160:37;;;22190:6;22160:37;;;;;;:::i;:::-;;;;;;;;21956:249:::0;:::o;13874:48::-;;;;:::o;24408:342::-;24495:4;24512:24;24539:11;:23;24551:10;24539:23;;;;;;;;;;;;;;;:32;24563:7;24539:32;;;;;;;;;;;;;;;;24512:59;;24610:15;24590:16;:35;;24582:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;24655:65;24664:10;24676:7;24704:15;24685:16;:34;;;;:::i;:::-;24655:8;:65::i;:::-;24738:4;24731:11;;;24408:342;;;;:::o;14842:26::-;;;;;;;;;;;;;:::o;22985:167::-;23065:4;23082:40;23092:10;23104:9;23115:6;23082:9;:40::i;:::-;23140:4;23133:11;;22985:167;;;;:::o;13440:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;20614:280::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20684:11:::1;20704:10;20684:31;;20726:18;20747:5;:15;;;20771:4;20747:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20726:51;;20807:1;20796:10;:12;20788:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;20848:5;:14;;;20863:10;20875;20848:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20673:221;;20614:280:::0;:::o;13706:41::-;;;;;;;;;;;;;;;;;;;:::o;19973:224::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20052:3:::1;20042:7;;:13;;;;;;;;;;;;;;;;;;20077:4;20066:8;;:15;;;;;;;;;;;;;;;;;;20106:1;20100:3;:7;;;:19;;;;;20118:1;20111:4;:8;;;20100:19;20092:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;20158:2;20153:3;:7;;;:20;;;;;20171:2;20164:4;:9;;;20153:20;20145:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19973:224:::0;;:::o;14438:25::-;;;;;;;;;;;;;:::o;12461:99::-;12515:4;12539:7;:13;12547:4;12539:13;;;;;;;;;;;;;;;;;;;;;;;;;12532:20;;12461:99;;;:::o;12370:33::-;;;;;;;;;;;;;:::o;14366:29::-;;;;;;;;;;;;;:::o;13929:80::-;13967:42;13929:80;:::o;14263:31::-;;;;;;;;;;;;;:::o;12831:24::-;;;;;;;;;;;;;:::o;19678:151::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19735:15:::1;19753:21;19735:39;;19793:9;;;;;;;;;;;19785:27;;:36;19813:7;19785:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19724:105;19678:151::o:0;12332:31::-;;;;;;;;;;;;;:::o;13049:18::-;;;;;;;;;;;;;:::o;13661:38::-;;;;;;;;;;;;;;;;;;;:::o;11012:74::-;;;;;;;;;;;;:::o;23160:147::-;23244:7;23271:11;:19;23283:6;23271:19;;;;;;;;;;;;;;;:28;23291:7;23271:28;;;;;;;;;;;;;;;;23264:35;;23160:147;;;;:::o;14404:27::-;;;;;;;;;;;;;:::o;12412:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;11093:65::-;;;;;;;;;;;;;:::o;20420:186::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20509:9:::1;:24;20527:4;20509:24;;;;;;;;;;;;;;;;20500:6;:33;20492:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;20580:18;20591:6;20580:10;:18::i;:::-;20420:186:::0;:::o;21539:105::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21631:5:::1;21614:8;:14;21623:4;21614:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;21539:105:::0;;:::o;1529:98::-;1587:7;1618:1;1614;:5;;;;:::i;:::-;1607:12;;1529:98;;;;:::o;23482:303::-;23594:1;23576:20;;:6;:20;;;;23568:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;23656:1;23637:21;;:7;:21;;;;23629:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;23722:6;23691:11;:19;23703:6;23691:19;;;;;;;;;;;;;;;:28;23711:7;23691:28;;;;;;;;;;;;;;;:37;;;;23761:7;23744:33;;23753:6;23744:33;;;23770:6;23744:33;;;;;;:::i;:::-;;;;;;;;23482:303;;;:::o;15655:666::-;15743:15;15762:8;:16;15771:6;15762:16;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;15782:8;:19;15791:9;15782:19;;;;;;;;;;;;;;;;;;;;;;;;;15762:39;:58;;;;15805:7;:15;15813:6;15805:15;;;;;;;;;;;;;;;;;;;;;;;;;15762:58;:80;;;;15824:7;:18;15832:9;15824:18;;;;;;;;;;;;;;;;;;;;;;;;;15762:80;15743:100;;15856:23;15897:4;15881:21;;:6;:21;;;:49;;;;15925:4;15906:24;;:9;:24;;;15881:49;15856:75;;15944:24;15983:12;;;;;;;;;;;15973:22;;:6;:22;;;:52;;;;;13967:42;15999:26;;:9;:26;;;15973:52;15972:121;;;;16053:12;;;;;;;;;;;16040:25;;:9;:25;;;:52;;;;;13967:42;16069:23;;:6;:23;;;16040:52;15972:121;15944:150;;16111:10;:32;;;;16125:18;16111:32;:55;;;;16147:19;16111:55;16107:205;;;16183:43;16200:6;16208:9;16219:6;16183:16;:43::i;:::-;16107:205;;;16259:41;16274:6;16282:9;16293:6;16259:14;:41::i;:::-;16107:205;15730:591;;;15655:666;;;:::o;18192:1099::-;13110:6;;;;;;;;;;;13109:7;13101:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;13150:4;13141:6;;:13;;;;;;;;;;;;;;;;;;18254:23:::1;18280:9;:24;18298:4;18280:24;;;;;;;;;;;;;;;;18254:50;;18315:22;18340:32;18368:3;18341:21;18359:2;18341:13;;:17;;:21;;;;:::i;:::-;18340:27;;:32;;;;:::i;:::-;18315:57;;18405:9;18388:14;:26;18385:129;;;18434:6;;;;;;;;;;;18431:72;;;18478:9;18461:26;;18431:72;18385:129;18543:14;18527:15;:30;18524:67;;;18573:7;;;;18524:67;18603:25;18631:21;18603:49;;18663:21;18701:1;18687:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18663:40;;18732:4;18714;18719:1;18714:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18758:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18748:4;18753:1;18748:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18782:6;;;;;;;;;;;:57;;;18854:14;18883:1;18899:4;18926;18946:15;18782:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18987:14;19027:17;19003:21;:41;;;;:::i;:::-;18987:58;;19058:22;19083:43;19114:11;;;;;;;;;;;19083:43;;:26;19094:14;;;;;;;;;;;19083:26;;:6;:10;;:26;;;;:::i;:::-;:30;;:43;;;;:::i;:::-;19058:68;;19137:16;19165:14;19156:6;:23;;;;:::i;:::-;19137:42;;19198:9;;;;;;;;;;;19190:27;;:37;19218:8;19190:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19246:9;;;;;;;;;;;19238:27;;:43;19266:14;19238:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18243:1048;;;;;;;13165:1;13186:5:::0;13177:6;;:14;;;;;;;;;;;;;;;;;;18192:1099;:::o;19301:220::-;19415:6;19394:9;:17;19404:6;19394:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;19456:6;19432:9;:20;19442:9;19432:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;19495:9;19478:35;;19487:6;19478:35;;;19506:6;19478:35;;;;;;:::i;:::-;;;;;;;;19301:220;;;:::o;16451:1341::-;16551:8;:16;16560:6;16551:16;;;;;;;;;;;;;;;;;;;;;;;;;16550:17;:41;;;;;16572:8;:19;16581:9;16572:19;;;;;;;;;;;;;;;;;;;;;;;;;16571:20;16550:41;16542:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16624:11;;;;;;;;;;;16620:220;;16660:13;;;;;;;;;;;16652:30;;;;;;;;;;;;:::i;:::-;;;;;;;;;16620:220;;;16719:13;;;;;;;;;;;16715:114;;16775:9;16758:30;;16767:6;16758:30;;;16786:1;16758:30;;;;;;:::i;:::-;;;;;;;;16807:7;;16715:114;16620:220;16856:19;:27;16876:6;16856:27;;;;;;;;;;;;;;;;;;;;;;;;;16852:87;;16918:8;:6;:8::i;:::-;16908:6;:18;;16900:27;;;;;;16852:87;16955:23;:34;16979:9;16955:34;;;;;;;;;;;;;;;;;;;;;;;;;16951:172;;17079:3;17067:10;;;;;;;;;;;17048:29;;:18;;:29;;;;:::i;:::-;17047:35;;;;:::i;:::-;17036:6;17015:9;:20;17025:9;17015:20;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;17014:69;17006:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16951:172;17135:11;17159:12;;;;;;;;;;;17147:24;;:9;:24;;;:54;;;;17187:14;;;;;;;;;;17174:27;;:9;:27;;;17147:54;17135:66;;17215:16;17233:10;17247:29;17261:6;17269;17247:13;:29::i;:::-;17214:62;;;;17320:13;;17293:9;:24;17311:4;17293:24;;;;;;;;;;;;;;;;:40;17292:58;;;;;17339:11;;;;;;;;;;;17338:12;17292:58;:69;;;;;17355:6;;;;;;;;;;;17354:7;17292:69;17289:180;;;17381:6;:22;;;;;17392:11;;;;;;;;;;;17391:12;17381:22;17378:80;;;17424:18;17435:6;17424:10;:18::i;:::-;17378:80;17289:180;17501:29;17523:6;17501:9;:17;17511:6;17501:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;17481:9;:17;17491:6;17481:17;;;;;;;;;;;;;;;:49;;;;17564:37;17589:11;17564:9;:20;17574:9;17564:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;17541:9;:20;17551:9;17541:20;;;;;;;;;;;;;;;:60;;;;17639:35;17668:5;17639:9;:24;17657:4;17639:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;17612:9;:24;17630:4;17612:24;;;;;;;;;;;;;;;:62;;;;17715:4;17690:38;;17699:6;17690:38;;;17722:5;17690:38;;;;;;:::i;:::-;;;;;;;;17761:9;17744:40;;17753:6;17744:40;;;17772:11;17744:40;;;;;;:::i;:::-;;;;;;;;16531:1261;;;16451:1341;;;;:::o;1423:98::-;1481:7;1512:1;1508;:5;;;;:::i;:::-;1501:12;;1423:98;;;;:::o;17800:384::-;17871:17;17890:11;17914:9;17939:6;17936:98;;;17968:8;;;;;;;;;;;17962:14;;17936:98;;;18015:7;;;;;;;;;;;18009:13;;17936:98;18046:15;18077:3;18072;18065:10;;:6;:10;;;;:::i;:::-;18064:16;;;;:::i;:::-;18046:34;;18091:17;18120:10;18111:6;:19;;;;:::i;:::-;18091:39;;18149:12;18163:10;18141:33;;;;;;;17800:384;;;;;:::o;1317:98::-;1375:7;1406:1;1402;:5;;;;:::i;:::-;1395:12;;1317:98;;;;:::o;1211:::-;1269:7;1300:1;1296;:5;;;;:::i;:::-;1289:12;;1211:98;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:135::-;921:5;959:6;946:20;937:29;;975:31;1000:5;975:31;:::i;:::-;877:135;;;;:::o;1018:329::-;1077:6;1126:2;1114:9;1105:7;1101:23;1097:32;1094:119;;;1132:79;;:::i;:::-;1094:119;1252:1;1277:53;1322:7;1313:6;1302:9;1298:22;1277:53;:::i;:::-;1267:63;;1223:117;1018:329;;;;:::o;1353:351::-;1423:6;1472:2;1460:9;1451:7;1447:23;1443:32;1440:119;;;1478:79;;:::i;:::-;1440:119;1598:1;1623:64;1679:7;1670:6;1659:9;1655:22;1623:64;:::i;:::-;1613:74;;1569:128;1353:351;;;;:::o;1710:474::-;1778:6;1786;1835:2;1823:9;1814:7;1810:23;1806:32;1803:119;;;1841:79;;:::i;:::-;1803:119;1961:1;1986:53;2031:7;2022:6;2011:9;2007:22;1986:53;:::i;:::-;1976:63;;1932:117;2088:2;2114:53;2159:7;2150:6;2139:9;2135:22;2114:53;:::i;:::-;2104:63;;2059:118;1710:474;;;;;:::o;2190:619::-;2267:6;2275;2283;2332:2;2320:9;2311:7;2307:23;2303:32;2300:119;;;2338:79;;:::i;:::-;2300:119;2458:1;2483:53;2528:7;2519:6;2508:9;2504:22;2483:53;:::i;:::-;2473:63;;2429:117;2585:2;2611:53;2656:7;2647:6;2636:9;2632:22;2611:53;:::i;:::-;2601:63;;2556:118;2713:2;2739:53;2784:7;2775:6;2764:9;2760:22;2739:53;:::i;:::-;2729:63;;2684:118;2190:619;;;;;:::o;2815:468::-;2880:6;2888;2937:2;2925:9;2916:7;2912:23;2908:32;2905:119;;;2943:79;;:::i;:::-;2905:119;3063:1;3088:53;3133:7;3124:6;3113:9;3109:22;3088:53;:::i;:::-;3078:63;;3034:117;3190:2;3216:50;3258:7;3249:6;3238:9;3234:22;3216:50;:::i;:::-;3206:60;;3161:115;2815:468;;;;;:::o;3289:474::-;3357:6;3365;3414:2;3402:9;3393:7;3389:23;3385:32;3382:119;;;3420:79;;:::i;:::-;3382:119;3540:1;3565:53;3610:7;3601:6;3590:9;3586:22;3565:53;:::i;:::-;3555:63;;3511:117;3667:2;3693:53;3738:7;3729:6;3718:9;3714:22;3693:53;:::i;:::-;3683:63;;3638:118;3289:474;;;;;:::o;3769:323::-;3825:6;3874:2;3862:9;3853:7;3849:23;3845:32;3842:119;;;3880:79;;:::i;:::-;3842:119;4000:1;4025:50;4067:7;4058:6;4047:9;4043:22;4025:50;:::i;:::-;4015:60;;3971:114;3769:323;;;;:::o;4098:345::-;4165:6;4214:2;4202:9;4193:7;4189:23;4185:32;4182:119;;;4220:79;;:::i;:::-;4182:119;4340:1;4365:61;4418:7;4409:6;4398:9;4394:22;4365:61;:::i;:::-;4355:71;;4311:125;4098:345;;;;:::o;4449:329::-;4508:6;4557:2;4545:9;4536:7;4532:23;4528:32;4525:119;;;4563:79;;:::i;:::-;4525:119;4683:1;4708:53;4753:7;4744:6;4733:9;4729:22;4708:53;:::i;:::-;4698:63;;4654:117;4449:329;;;;:::o;4784:351::-;4854:6;4903:2;4891:9;4882:7;4878:23;4874:32;4871:119;;;4909:79;;:::i;:::-;4871:119;5029:1;5054:64;5110:7;5101:6;5090:9;5086:22;5054:64;:::i;:::-;5044:74;;5000:128;4784:351;;;;:::o;5141:325::-;5198:6;5247:2;5235:9;5226:7;5222:23;5218:32;5215:119;;;5253:79;;:::i;:::-;5215:119;5373:1;5398:51;5441:7;5432:6;5421:9;5417:22;5398:51;:::i;:::-;5388:61;;5344:115;5141:325;;;;:::o;5472:466::-;5536:6;5544;5593:2;5581:9;5572:7;5568:23;5564:32;5561:119;;;5599:79;;:::i;:::-;5561:119;5719:1;5744:51;5787:7;5778:6;5767:9;5763:22;5744:51;:::i;:::-;5734:61;;5690:115;5844:2;5870:51;5913:7;5904:6;5893:9;5889:22;5870:51;:::i;:::-;5860:61;;5815:116;5472:466;;;;;:::o;5944:179::-;6013:10;6034:46;6076:3;6068:6;6034:46;:::i;:::-;6112:4;6107:3;6103:14;6089:28;;5944:179;;;;:::o;6129:108::-;6206:24;6224:5;6206:24;:::i;:::-;6201:3;6194:37;6129:108;;:::o;6243:118::-;6330:24;6348:5;6330:24;:::i;:::-;6325:3;6318:37;6243:118;;:::o;6397:732::-;6516:3;6545:54;6593:5;6545:54;:::i;:::-;6615:86;6694:6;6689:3;6615:86;:::i;:::-;6608:93;;6725:56;6775:5;6725:56;:::i;:::-;6804:7;6835:1;6820:284;6845:6;6842:1;6839:13;6820:284;;;6921:6;6915:13;6948:63;7007:3;6992:13;6948:63;:::i;:::-;6941:70;;7034:60;7087:6;7034:60;:::i;:::-;7024:70;;6880:224;6867:1;6864;6860:9;6855:14;;6820:284;;;6824:14;7120:3;7113:10;;6521:608;;;6397:732;;;;:::o;7135:109::-;7216:21;7231:5;7216:21;:::i;:::-;7211:3;7204:34;7135:109;;:::o;7250:179::-;7361:61;7416:5;7361:61;:::i;:::-;7356:3;7349:74;7250:179;;:::o;7435:177::-;7545:60;7599:5;7545:60;:::i;:::-;7540:3;7533:73;7435:177;;:::o;7618:147::-;7713:45;7752:5;7713:45;:::i;:::-;7708:3;7701:58;7618:147;;:::o;7771:364::-;7859:3;7887:39;7920:5;7887:39;:::i;:::-;7942:71;8006:6;8001:3;7942:71;:::i;:::-;7935:78;;8022:52;8067:6;8062:3;8055:4;8048:5;8044:16;8022:52;:::i;:::-;8099:29;8121:6;8099:29;:::i;:::-;8094:3;8090:39;8083:46;;7863:272;7771:364;;;;:::o;8141:366::-;8283:3;8304:67;8368:2;8363:3;8304:67;:::i;:::-;8297:74;;8380:93;8469:3;8380:93;:::i;:::-;8498:2;8493:3;8489:12;8482:19;;8141:366;;;:::o;8513:::-;8655:3;8676:67;8740:2;8735:3;8676:67;:::i;:::-;8669:74;;8752:93;8841:3;8752:93;:::i;:::-;8870:2;8865:3;8861:12;8854:19;;8513:366;;;:::o;8885:::-;9027:3;9048:67;9112:2;9107:3;9048:67;:::i;:::-;9041:74;;9124:93;9213:3;9124:93;:::i;:::-;9242:2;9237:3;9233:12;9226:19;;8885:366;;;:::o;9257:::-;9399:3;9420:67;9484:2;9479:3;9420:67;:::i;:::-;9413:74;;9496:93;9585:3;9496:93;:::i;:::-;9614:2;9609:3;9605:12;9598:19;;9257:366;;;:::o;9629:365::-;9771:3;9792:66;9856:1;9851:3;9792:66;:::i;:::-;9785:73;;9867:93;9956:3;9867:93;:::i;:::-;9985:2;9980:3;9976:12;9969:19;;9629:365;;;:::o;10000:366::-;10142:3;10163:67;10227:2;10222:3;10163:67;:::i;:::-;10156:74;;10239:93;10328:3;10239:93;:::i;:::-;10357:2;10352:3;10348:12;10341:19;;10000:366;;;:::o;10372:::-;10514:3;10535:67;10599:2;10594:3;10535:67;:::i;:::-;10528:74;;10611:93;10700:3;10611:93;:::i;:::-;10729:2;10724:3;10720:12;10713:19;;10372:366;;;:::o;10744:::-;10886:3;10907:67;10971:2;10966:3;10907:67;:::i;:::-;10900:74;;10983:93;11072:3;10983:93;:::i;:::-;11101:2;11096:3;11092:12;11085:19;;10744:366;;;:::o;11116:::-;11258:3;11279:67;11343:2;11338:3;11279:67;:::i;:::-;11272:74;;11355:93;11444:3;11355:93;:::i;:::-;11473:2;11468:3;11464:12;11457:19;;11116:366;;;:::o;11488:::-;11630:3;11651:67;11715:2;11710:3;11651:67;:::i;:::-;11644:74;;11727:93;11816:3;11727:93;:::i;:::-;11845:2;11840:3;11836:12;11829:19;;11488:366;;;:::o;11860:::-;12002:3;12023:67;12087:2;12082:3;12023:67;:::i;:::-;12016:74;;12099:93;12188:3;12099:93;:::i;:::-;12217:2;12212:3;12208:12;12201:19;;11860:366;;;:::o;12232:365::-;12374:3;12395:66;12459:1;12454:3;12395:66;:::i;:::-;12388:73;;12470:93;12559:3;12470:93;:::i;:::-;12588:2;12583:3;12579:12;12572:19;;12232:365;;;:::o;12603:::-;12745:3;12766:66;12830:1;12825:3;12766:66;:::i;:::-;12759:73;;12841:93;12930:3;12841:93;:::i;:::-;12959:2;12954:3;12950:12;12943:19;;12603:365;;;:::o;12974:366::-;13116:3;13137:67;13201:2;13196:3;13137:67;:::i;:::-;13130:74;;13213:93;13302:3;13213:93;:::i;:::-;13331:2;13326:3;13322:12;13315:19;;12974:366;;;:::o;13346:::-;13488:3;13509:67;13573:2;13568:3;13509:67;:::i;:::-;13502:74;;13585:93;13674:3;13585:93;:::i;:::-;13703:2;13698:3;13694:12;13687:19;;13346:366;;;:::o;13718:118::-;13805:24;13823:5;13805:24;:::i;:::-;13800:3;13793:37;13718:118;;:::o;13842:112::-;13925:22;13941:5;13925:22;:::i;:::-;13920:3;13913:35;13842:112;;:::o;13960:222::-;14053:4;14091:2;14080:9;14076:18;14068:26;;14104:71;14172:1;14161:9;14157:17;14148:6;14104:71;:::i;:::-;13960:222;;;;:::o;14188:332::-;14309:4;14347:2;14336:9;14332:18;14324:26;;14360:71;14428:1;14417:9;14413:17;14404:6;14360:71;:::i;:::-;14441:72;14509:2;14498:9;14494:18;14485:6;14441:72;:::i;:::-;14188:332;;;;;:::o;14526:210::-;14613:4;14651:2;14640:9;14636:18;14628:26;;14664:65;14726:1;14715:9;14711:17;14702:6;14664:65;:::i;:::-;14526:210;;;;:::o;14742:270::-;14859:4;14897:2;14886:9;14882:18;14874:26;;14910:95;15002:1;14991:9;14987:17;14978:6;14910:95;:::i;:::-;14742:270;;;;:::o;15018:268::-;15134:4;15172:2;15161:9;15157:18;15149:26;;15185:94;15276:1;15265:9;15261:17;15252:6;15185:94;:::i;:::-;15018:268;;;;:::o;15292:238::-;15393:4;15431:2;15420:9;15416:18;15408:26;;15444:79;15520:1;15509:9;15505:17;15496:6;15444:79;:::i;:::-;15292:238;;;;:::o;15536:313::-;15649:4;15687:2;15676:9;15672:18;15664:26;;15736:9;15730:4;15726:20;15722:1;15711:9;15707:17;15700:47;15764:78;15837:4;15828:6;15764:78;:::i;:::-;15756:86;;15536:313;;;;:::o;15855:419::-;16021:4;16059:2;16048:9;16044:18;16036:26;;16108:9;16102:4;16098:20;16094:1;16083:9;16079:17;16072:47;16136:131;16262:4;16136:131;:::i;:::-;16128:139;;15855:419;;;:::o;16280:::-;16446:4;16484:2;16473:9;16469:18;16461:26;;16533:9;16527:4;16523:20;16519:1;16508:9;16504:17;16497:47;16561:131;16687:4;16561:131;:::i;:::-;16553:139;;16280:419;;;:::o;16705:::-;16871:4;16909:2;16898:9;16894:18;16886:26;;16958:9;16952:4;16948:20;16944:1;16933:9;16929:17;16922:47;16986:131;17112:4;16986:131;:::i;:::-;16978:139;;16705:419;;;:::o;17130:::-;17296:4;17334:2;17323:9;17319:18;17311:26;;17383:9;17377:4;17373:20;17369:1;17358:9;17354:17;17347:47;17411:131;17537:4;17411:131;:::i;:::-;17403:139;;17130:419;;;:::o;17555:::-;17721:4;17759:2;17748:9;17744:18;17736:26;;17808:9;17802:4;17798:20;17794:1;17783:9;17779:17;17772:47;17836:131;17962:4;17836:131;:::i;:::-;17828:139;;17555:419;;;:::o;17980:::-;18146:4;18184:2;18173:9;18169:18;18161:26;;18233:9;18227:4;18223:20;18219:1;18208:9;18204:17;18197:47;18261:131;18387:4;18261:131;:::i;:::-;18253:139;;17980:419;;;:::o;18405:::-;18571:4;18609:2;18598:9;18594:18;18586:26;;18658:9;18652:4;18648:20;18644:1;18633:9;18629:17;18622:47;18686:131;18812:4;18686:131;:::i;:::-;18678:139;;18405:419;;;:::o;18830:::-;18996:4;19034:2;19023:9;19019:18;19011:26;;19083:9;19077:4;19073:20;19069:1;19058:9;19054:17;19047:47;19111:131;19237:4;19111:131;:::i;:::-;19103:139;;18830:419;;;:::o;19255:::-;19421:4;19459:2;19448:9;19444:18;19436:26;;19508:9;19502:4;19498:20;19494:1;19483:9;19479:17;19472:47;19536:131;19662:4;19536:131;:::i;:::-;19528:139;;19255:419;;;:::o;19680:::-;19846:4;19884:2;19873:9;19869:18;19861:26;;19933:9;19927:4;19923:20;19919:1;19908:9;19904:17;19897:47;19961:131;20087:4;19961:131;:::i;:::-;19953:139;;19680:419;;;:::o;20105:::-;20271:4;20309:2;20298:9;20294:18;20286:26;;20358:9;20352:4;20348:20;20344:1;20333:9;20329:17;20322:47;20386:131;20512:4;20386:131;:::i;:::-;20378:139;;20105:419;;;:::o;20530:::-;20696:4;20734:2;20723:9;20719:18;20711:26;;20783:9;20777:4;20773:20;20769:1;20758:9;20754:17;20747:47;20811:131;20937:4;20811:131;:::i;:::-;20803:139;;20530:419;;;:::o;20955:::-;21121:4;21159:2;21148:9;21144:18;21136:26;;21208:9;21202:4;21198:20;21194:1;21183:9;21179:17;21172:47;21236:131;21362:4;21236:131;:::i;:::-;21228:139;;20955:419;;;:::o;21380:::-;21546:4;21584:2;21573:9;21569:18;21561:26;;21633:9;21627:4;21623:20;21619:1;21608:9;21604:17;21597:47;21661:131;21787:4;21661:131;:::i;:::-;21653:139;;21380:419;;;:::o;21805:::-;21971:4;22009:2;21998:9;21994:18;21986:26;;22058:9;22052:4;22048:20;22044:1;22033:9;22029:17;22022:47;22086:131;22212:4;22086:131;:::i;:::-;22078:139;;21805:419;;;:::o;22230:222::-;22323:4;22361:2;22350:9;22346:18;22338:26;;22374:71;22442:1;22431:9;22427:17;22418:6;22374:71;:::i;:::-;22230:222;;;;:::o;22458:831::-;22721:4;22759:3;22748:9;22744:19;22736:27;;22773:71;22841:1;22830:9;22826:17;22817:6;22773:71;:::i;:::-;22854:80;22930:2;22919:9;22915:18;22906:6;22854:80;:::i;:::-;22981:9;22975:4;22971:20;22966:2;22955:9;22951:18;22944:48;23009:108;23112:4;23103:6;23009:108;:::i;:::-;23001:116;;23127:72;23195:2;23184:9;23180:18;23171:6;23127:72;:::i;:::-;23209:73;23277:3;23266:9;23262:19;23253:6;23209:73;:::i;:::-;22458:831;;;;;;;;:::o;23295:214::-;23384:4;23422:2;23411:9;23407:18;23399:26;;23435:67;23499:1;23488:9;23484:17;23475:6;23435:67;:::i;:::-;23295:214;;;;:::o;23596:132::-;23663:4;23686:3;23678:11;;23716:4;23711:3;23707:14;23699:22;;23596:132;;;:::o;23734:114::-;23801:6;23835:5;23829:12;23819:22;;23734:114;;;:::o;23854:99::-;23906:6;23940:5;23934:12;23924:22;;23854:99;;;:::o;23959:113::-;24029:4;24061;24056:3;24052:14;24044:22;;23959:113;;;:::o;24078:184::-;24177:11;24211:6;24206:3;24199:19;24251:4;24246:3;24242:14;24227:29;;24078:184;;;;:::o;24268:169::-;24352:11;24386:6;24381:3;24374:19;24426:4;24421:3;24417:14;24402:29;;24268:169;;;;:::o;24443:305::-;24483:3;24502:20;24520:1;24502:20;:::i;:::-;24497:25;;24536:20;24554:1;24536:20;:::i;:::-;24531:25;;24690:1;24622:66;24618:74;24615:1;24612:81;24609:107;;;24696:18;;:::i;:::-;24609:107;24740:1;24737;24733:9;24726:16;;24443:305;;;;:::o;24754:185::-;24794:1;24811:20;24829:1;24811:20;:::i;:::-;24806:25;;24845:20;24863:1;24845:20;:::i;:::-;24840:25;;24884:1;24874:35;;24889:18;;:::i;:::-;24874:35;24931:1;24928;24924:9;24919:14;;24754:185;;;;:::o;24945:848::-;25006:5;25013:4;25037:6;25028:15;;25061:5;25052:14;;25075:712;25096:1;25086:8;25083:15;25075:712;;;25191:4;25186:3;25182:14;25176:4;25173:24;25170:50;;;25200:18;;:::i;:::-;25170:50;25250:1;25240:8;25236:16;25233:451;;;25665:4;25658:5;25654:16;25645:25;;25233:451;25715:4;25709;25705:15;25697:23;;25745:32;25768:8;25745:32;:::i;:::-;25733:44;;25075:712;;;24945:848;;;;;;;:::o;25799:281::-;25857:5;25881:23;25899:4;25881:23;:::i;:::-;25873:31;;25925:25;25941:8;25925:25;:::i;:::-;25913:37;;25969:104;26006:66;25996:8;25990:4;25969:104;:::i;:::-;25960:113;;25799:281;;;;:::o;26086:1073::-;26140:5;26331:8;26321:40;;26352:1;26343:10;;26354:5;;26321:40;26380:4;26370:36;;26397:1;26388:10;;26399:5;;26370:36;26466:4;26514:1;26509:27;;;;26550:1;26545:191;;;;26459:277;;26509:27;26527:1;26518:10;;26529:5;;;26545:191;26590:3;26580:8;26577:17;26574:43;;;26597:18;;:::i;:::-;26574:43;26646:8;26643:1;26639:16;26630:25;;26681:3;26674:5;26671:14;26668:40;;;26688:18;;:::i;:::-;26668:40;26721:5;;;26459:277;;26845:2;26835:8;26832:16;26826:3;26820:4;26817:13;26813:36;26795:2;26785:8;26782:16;26777:2;26771:4;26768:12;26764:35;26748:111;26745:246;;;26901:8;26895:4;26891:19;26882:28;;26936:3;26929:5;26926:14;26923:40;;;26943:18;;:::i;:::-;26923:40;26976:5;;26745:246;27016:42;27054:3;27044:8;27038:4;27035:1;27016:42;:::i;:::-;27001:57;;;;27090:4;27085:3;27081:14;27074:5;27071:25;27068:51;;;27099:18;;:::i;:::-;27068:51;27148:4;27141:5;27137:16;27128:25;;26086:1073;;;;;;:::o;27165:348::-;27205:7;27228:20;27246:1;27228:20;:::i;:::-;27223:25;;27262:20;27280:1;27262:20;:::i;:::-;27257:25;;27450:1;27382:66;27378:74;27375:1;27372:81;27367:1;27360:9;27353:17;27349:105;27346:131;;;27457:18;;:::i;:::-;27346:131;27505:1;27502;27498:9;27487:20;;27165:348;;;;:::o;27519:191::-;27559:4;27579:20;27597:1;27579:20;:::i;:::-;27574:25;;27613:20;27631:1;27613:20;:::i;:::-;27608:25;;27652:1;27649;27646:8;27643:34;;;27657:18;;:::i;:::-;27643:34;27702:1;27699;27695:9;27687:17;;27519:191;;;;:::o;27716:96::-;27753:7;27782:24;27800:5;27782:24;:::i;:::-;27771:35;;27716:96;;;:::o;27818:90::-;27852:7;27895:5;27888:13;27881:21;27870:32;;27818:90;;;:::o;27914:126::-;27951:7;27991:42;27984:5;27980:54;27969:65;;27914:126;;;:::o;28046:77::-;28083:7;28112:5;28101:16;;28046:77;;;:::o;28129:86::-;28164:7;28204:4;28197:5;28193:16;28182:27;;28129:86;;;:::o;28221:150::-;28295:9;28328:37;28359:5;28328:37;:::i;:::-;28315:50;;28221:150;;;:::o;28377:149::-;28450:9;28483:37;28514:5;28483:37;:::i;:::-;28470:50;;28377:149;;;:::o;28532:121::-;28590:9;28623:24;28641:5;28623:24;:::i;:::-;28610:37;;28532:121;;;:::o;28659:126::-;28709:9;28742:37;28773:5;28742:37;:::i;:::-;28729:50;;28659:126;;;:::o;28791:113::-;28841:9;28874:24;28892:5;28874:24;:::i;:::-;28861:37;;28791:113;;;:::o;28910:307::-;28978:1;28988:113;29002:6;28999:1;28996:13;28988:113;;;29087:1;29082:3;29078:11;29072:18;29068:1;29063:3;29059:11;29052:39;29024:2;29021:1;29017:10;29012:15;;28988:113;;;29119:6;29116:1;29113:13;29110:101;;;29199:1;29190:6;29185:3;29181:16;29174:27;29110:101;28959:258;28910:307;;;:::o;29223:180::-;29271:77;29268:1;29261:88;29368:4;29365:1;29358:15;29392:4;29389:1;29382:15;29409:180;29457:77;29454:1;29447:88;29554:4;29551:1;29544:15;29578:4;29575:1;29568:15;29595:180;29643:77;29640:1;29633:88;29740:4;29737:1;29730:15;29764:4;29761:1;29754:15;29781:180;29829:77;29826:1;29819:88;29926:4;29923:1;29916:15;29950:4;29947:1;29940:15;30090:117;30199:1;30196;30189:12;30213:102;30254:6;30305:2;30301:7;30296:2;30289:5;30285:14;30281:28;30271:38;;30213:102;;;:::o;30321:::-;30363:8;30410:5;30407:1;30403:13;30382:34;;30321:102;;;:::o;30429:236::-;30569:34;30565:1;30557:6;30553:14;30546:58;30638:19;30633:2;30625:6;30621:15;30614:44;30429:236;:::o;30671:181::-;30811:33;30807:1;30799:6;30795:14;30788:57;30671:181;:::o;30858:167::-;30998:19;30994:1;30986:6;30982:14;30975:43;30858:167;:::o;31031:170::-;31171:22;31167:1;31159:6;31155:14;31148:46;31031:170;:::o;31207:159::-;31347:11;31343:1;31335:6;31331:14;31324:35;31207:159;:::o;31372:233::-;31512:34;31508:1;31500:6;31496:14;31489:58;31581:16;31576:2;31568:6;31564:15;31557:41;31372:233;:::o;31611:165::-;31751:17;31747:1;31739:6;31735:14;31728:41;31611:165;:::o;31782:174::-;31922:26;31918:1;31910:6;31906:14;31899:50;31782:174;:::o;31962:173::-;32102:25;32098:1;32090:6;32086:14;32079:49;31962:173;:::o;32141:161::-;32281:13;32277:1;32269:6;32265:14;32258:37;32141:161;:::o;32308:160::-;32448:12;32444:1;32436:6;32432:14;32425:36;32308:160;:::o;32474:154::-;32614:6;32610:1;32602:6;32598:14;32591:30;32474:154;:::o;32634:159::-;32774:11;32770:1;32762:6;32758:14;32751:35;32634:159;:::o;32799:162::-;32939:14;32935:1;32927:6;32923:14;32916:38;32799:162;:::o;32967:161::-;33107:13;33103:1;33095:6;33091:14;33084:37;32967:161;:::o;33134:122::-;33207:24;33225:5;33207:24;:::i;:::-;33200:5;33197:35;33187:63;;33246:1;33243;33236:12;33187:63;33134:122;:::o;33262:116::-;33332:21;33347:5;33332:21;:::i;:::-;33325:5;33322:32;33312:60;;33368:1;33365;33358:12;33312:60;33262:116;:::o;33384:122::-;33457:24;33475:5;33457:24;:::i;:::-;33450:5;33447:35;33437:63;;33496:1;33493;33486:12;33437:63;33384:122;:::o;33512:118::-;33583:22;33599:5;33583:22;:::i;:::-;33576:5;33573:33;33563:61;;33620:1;33617;33610:12;33563:61;33512:118;:::o
Swarm Source
ipfs://7529dbf5a6d1cc495629b3623b3308cf383c5aa8faa298e8493ecccae60de7db
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.