ERC-20
Overview
Max Total Supply
1,000,299,999.999999999999999996 TARO
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000032645424 TAROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FableofTarocchi
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-30 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.11; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function factory() external view returns (address); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } 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; } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract FableofTarocchi is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); mapping (address => bool) public isBot; bool private _swapping; bool private _isBuy; uint256 private _launchTime; address private devWallet; address public _Deployer; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = true; uint256 public buyTotalFees; uint256 public buyMintFee; uint256 public sellTotalFees; uint256 public sellBurnFee; uint256 public sellDevFee; uint256 public tokensForMint; uint256 public tokensForDev; uint256 public tokensForBurn; uint256 public _totalBurned; uint256 public _totalMinted; /******************/ // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event devWalletUpdated(address indexed newWallet, address indexed oldWallet); constructor(address depAddr) ERC20("Fable of Tarocchi", "TARO") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMintFee = 3; uint256 _sellBurnFee = 0; // uint256 _sellDevFee = 3; // uint256 totalSupply = 1 * 1e9 * 1e18; maxTransactionAmount = totalSupply * 1 / 100; maxWallet = totalSupply * 1 / 100; swapTokensAtAmount = totalSupply * 5 / 10000; // Set Fees buyMintFee = _buyMintFee; buyTotalFees = buyMintFee; sellBurnFee = _sellBurnFee; sellDevFee = _sellDevFee; sellTotalFees = sellBurnFee + sellDevFee; // Set Fee Wallet devWallet = depAddr; // set as dev wallet _Deployer = depAddr; // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(msg.sender, totalSupply); } receive() external payable { } // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; _launchTime = block.timestamp.add(1); } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool) { transferDelayEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 100000000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * 1e18; } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 5 / 100000000)/1e18, "Cannot set maxWallet lower than 0.5%"); maxWallet = newNum * 1e18; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateBuyFees(uint256 _mintFee) external { require(_msgSender() == _Deployer); buyMintFee = _mintFee; buyTotalFees = buyMintFee; require(buyTotalFees <= 10, "Must keep fees at 10% or less"); } function updateSellFees(uint256 _burnFee, uint256 _devFee) external { require(_msgSender() == _Deployer); sellBurnFee = _burnFee; sellDevFee = _devFee; sellTotalFees = sellBurnFee + sellDevFee; require(sellTotalFees <= 10, "Must keep fees at 10% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } // Variable Block - once enabled, can never be turned off function enableTrading(uint256 Bblock) external onlyOwner { tradingActive = true; _launchTime = block.timestamp.add(Bblock); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function updateDevWallet(address newWallet) external onlyOwner { emit devWalletUpdated(newWallet, devWallet); devWallet = newWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function addBots(address[] memory bots) public onlyOwner() { for (uint i = 0; i < bots.length; i++) { if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) { isBot[bots[i]] = true; } } } function removeBots(address[] memory bots) public onlyOwner() { for (uint i = 0; i < bots.length; i++) { isBot[bots[i]] = false; } } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!isBot[from], "Your address has been marked as a bot/sniper, you are unable to transfer or swap."); if (amount == 0) { super._transfer(from, to, 0); return; } if (block.timestamp < _launchTime) isBot[to] = true; if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_swapping ) { if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){ require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } // On buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } // On sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]){ require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && !_swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { _swapping = true; swapBack(); _swapping = false; } bool takeFee = !_swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false; uint256 buyFees = 0; uint256 sellFees = 0; // Only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // On sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ _isBuy = false; sellFees = amount.mul(sellTotalFees).div(10000); tokensForDev += sellFees * sellDevFee / sellTotalFees; tokensForBurn += sellFees * sellBurnFee / sellTotalFees; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { _isBuy = true; buyFees = amount.mul(buyTotalFees).div(10000); tokensForMint += buyFees * buyMintFee / buyTotalFees; _mint(to, tokensForMint); _totalMinted += tokensForMint; tokensForMint = 0; } if (sellTotalFees > 0 && !_isBuy) { super._transfer(from, address(this), sellFees); _burn(address(this), tokensForBurn); _totalBurned += tokensForBurn; tokensForBurn = 0; amount -= sellFees; } } super._transfer(from, to, amount); } function _swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); bool success; if(contractBalance == 0) {return;} if(contractBalance > swapTokensAtAmount * 20){ contractBalance = swapTokensAtAmount * 20; } _swapTokensForEth(contractBalance); tokensForDev = 0; (success,) = address(devWallet).call{value: address(this).balance}(""); } function totalBurned() public view returns (uint256) { return _totalBurned; } function totalMinted() public view returns (uint256) { return _totalMinted; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"depAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[],"name":"_Deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMintFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Bblock","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"removeBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506001601060006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040516200645f3803806200645f833981810160405281019062000088919062000b20565b6040518060400160405280601181526020017f4661626c65206f66205461726f636368690000000000000000000000000000008152506040518060400160405280600481526020017f5441524f0000000000000000000000000000000000000000000000000000000081525081600390805190602001906200010c92919062000a06565b5080600490805190602001906200012592919062000a06565b505050620001486200013c6200055c60201b60201c565b6200056460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001748160016200062a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a919062000b20565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000b20565b6040518363ffffffff1660e01b8152600401620002c792919062000b63565b6020604051808303816000875af1158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d919062000b20565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200035560a05160016200062a60201b60201c565b6200036a60a05160016200071460201b60201c565b6000600390506000806003905060006b033b2e3c9fd0803ce80000009050606460018262000399919062000bc9565b620003a5919062000c59565b600b819055506064600182620003bc919062000bc9565b620003c8919062000c59565b600d81905550612710600582620003e0919062000bc9565b620003ec919062000c59565b600c8190555083601281905550601254601181905550826014819055508160158190555060155460145462000422919062000c91565b60138190555085600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004cc620004be6200076f60201b60201c565b60016200079960201b60201c565b620004df3060016200079960201b60201c565b620004f461dead60016200079960201b60201c565b62000516620005086200076f60201b60201c565b60016200062a60201b60201c565b620005293060016200062a60201b60201c565b6200053e61dead60016200062a60201b60201c565b6200055033826200088360201b60201c565b50505050505062000e76565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200063a6200055c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006606200076f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006b09062000d4f565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007a96200055c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007cf6200076f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000828576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200081f9062000d4f565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ed9062000dc1565b60405180910390fd5b6200090a60008383620009fc60201b60201c565b80600260008282546200091e919062000c91565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000975919062000c91565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009dc919062000df4565b60405180910390a3620009f86000838362000a0160201b60201c565b5050565b505050565b505050565b82805462000a149062000e40565b90600052602060002090601f01602090048101928262000a38576000855562000a84565b82601f1062000a5357805160ff191683800117855562000a84565b8280016001018555821562000a84579182015b8281111562000a8357825182559160200191906001019062000a66565b5b50905062000a93919062000a97565b5090565b5b8082111562000ab257600081600090555060010162000a98565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ae88262000abb565b9050919050565b62000afa8162000adb565b811462000b0657600080fd5b50565b60008151905062000b1a8162000aef565b92915050565b60006020828403121562000b395762000b3862000ab6565b5b600062000b498482850162000b09565b91505092915050565b62000b5d8162000adb565b82525050565b600060408201905062000b7a600083018562000b52565b62000b89602083018462000b52565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bd68262000b90565b915062000be38362000b90565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c1f5762000c1e62000b9a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c668262000b90565b915062000c738362000b90565b92508262000c865762000c8562000c2a565b5b828204905092915050565b600062000c9e8262000b90565b915062000cab8362000b90565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ce35762000ce262000b9a565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d3760208362000cee565b915062000d448262000cff565b602082019050919050565b6000602082019050818103600083015262000d6a8162000d28565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000da9601f8362000cee565b915062000db68262000d71565b602082019050919050565b6000602082019050818103600083015262000ddc8162000d9a565b9050919050565b62000dee8162000b90565b82525050565b600060208201905062000e0b600083018462000de3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e5957607f821691505b6020821081141562000e705762000e6f62000e11565b5b50919050565b60805160a05161558b62000ed46000396000818161137d01528181611ac60152818161209f0152612ac4015260008181610ed60152818161211001528181612a6c01528181613c4a01528181613d2b0152613d52015261558b6000f3fe6080604052600436106103545760003560e01c806382aa7c68116101c6578063c0246668116100f7578063d89135cd11610095578063e884f2601161006f578063e884f26014610c8b578063f2fde38b14610cb6578063f8b45b0514610cdf578063fd01bd4c14610d0a5761035b565b8063d89135cd14610bf8578063dd62ed3e14610c23578063e2f4560514610c605761035b565b8063c8c8ebe4116100d1578063c8c8ebe414610b3c578063d257b34f14610b67578063d34628cc14610ba4578063d85ba06314610bcd5761035b565b8063c024666814610abf578063c18bc19514610ae8578063c876d0b914610b115761035b565b8063a2309ff811610164578063adb873bd1161013e578063adb873bd14610a01578063b62496f514610a2c578063bbc0c74214610a69578063bc32ca5714610a945761035b565b8063a2309ff81461095c578063a457c2d714610987578063a9059cbb146109c45761035b565b806395d89b41116101a057806395d89b41146108b25780639a7a23d6146108dd5780639fccce3214610906578063a0d82dc5146109315761035b565b806382aa7c68146108475780638a8c523c146108705780638da5cb5b146108875761035b565b8063313ce567116102a05780636c3bbfd71161023e57806371fc46881161021857806371fc46881461079f578063736bf591146107c8578063751039fc146107f35780637571336a1461081e5761035b565b80636c3bbfd71461072257806370a082311461074b578063715018a6146107885761035b565b806349bd5a5e1161027a57806349bd5a5e146106645780634a62bb651461068f5780634fbee193146106ba5780636a486a8e146106f75761035b565b8063313ce567146105bf57806339509351146105ea5780633bbac579146106275761035b565b80631816467f1161030d578063203e727e116102e7578063203e727e1461050357806323b872dd1461052c578063275b56c51461056957806327c8f835146105945761035b565b80631816467f146104845780631d777856146104ad5780631ebb1fe6146104d85761035b565b806302dbd8f81461036057806306fdde0314610389578063095ea7b3146103b457806310d5de53146103f15780631694505e1461042e57806318160ddd146104595761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b5061038760048036038101906103829190613e32565b610d35565b005b34801561039557600080fd5b5061039e610e04565b6040516103ab9190613f0b565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d69190613f8b565b610e96565b6040516103e89190613fe6565b60405180910390f35b3480156103fd57600080fd5b5061041860048036038101906104139190614001565b610eb4565b6040516104259190613fe6565b60405180910390f35b34801561043a57600080fd5b50610443610ed4565b604051610450919061408d565b60405180910390f35b34801561046557600080fd5b5061046e610ef8565b60405161047b91906140b7565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190614001565b610f02565b005b3480156104b957600080fd5b506104c261103e565b6040516104cf91906140b7565b60405180910390f35b3480156104e457600080fd5b506104ed611044565b6040516104fa91906140b7565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906140d2565b61104a565b005b34801561053857600080fd5b50610553600480360381019061054e91906140ff565b61115b565b6040516105609190613fe6565b60405180910390f35b34801561057557600080fd5b5061057e61127a565b60405161058b9190614161565b60405180910390f35b3480156105a057600080fd5b506105a96112a0565b6040516105b69190614161565b60405180910390f35b3480156105cb57600080fd5b506105d46112a6565b6040516105e19190614198565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190613f8b565b6112af565b60405161061e9190613fe6565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190614001565b61135b565b60405161065b9190613fe6565b60405180910390f35b34801561067057600080fd5b5061067961137b565b6040516106869190614161565b60405180910390f35b34801561069b57600080fd5b506106a461139f565b6040516106b19190613fe6565b60405180910390f35b3480156106c657600080fd5b506106e160048036038101906106dc9190614001565b6113b2565b6040516106ee9190613fe6565b60405180910390f35b34801561070357600080fd5b5061070c611408565b60405161071991906140b7565b60405180910390f35b34801561072e57600080fd5b50610749600480360381019061074491906142fb565b61140e565b005b34801561075757600080fd5b50610772600480360381019061076d9190614001565b61151f565b60405161077f91906140b7565b60405180910390f35b34801561079457600080fd5b5061079d611567565b005b3480156107ab57600080fd5b506107c660048036038101906107c191906140d2565b6115ef565b005b3480156107d457600080fd5b506107dd6116a9565b6040516107ea91906140b7565b60405180910390f35b3480156107ff57600080fd5b506108086116af565b6040516108159190613fe6565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614370565b61174f565b005b34801561085357600080fd5b5061086e600480360381019061086991906140d2565b611826565b005b34801561087c57600080fd5b506108856118d9565b005b34801561089357600080fd5b5061089c61198c565b6040516108a99190614161565b60405180910390f35b3480156108be57600080fd5b506108c76119b6565b6040516108d49190613f0b565b60405180910390f35b3480156108e957600080fd5b5061090460048036038101906108ff9190614370565b611a48565b005b34801561091257600080fd5b5061091b611b61565b60405161092891906140b7565b60405180910390f35b34801561093d57600080fd5b50610946611b67565b60405161095391906140b7565b60405180910390f35b34801561096857600080fd5b50610971611b6d565b60405161097e91906140b7565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a99190613f8b565b611b77565b6040516109bb9190613fe6565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e69190613f8b565b611c62565b6040516109f89190613fe6565b60405180910390f35b348015610a0d57600080fd5b50610a16611c80565b604051610a2391906140b7565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190614001565b611c86565b604051610a609190613fe6565b60405180910390f35b348015610a7557600080fd5b50610a7e611ca6565b604051610a8b9190613fe6565b60405180910390f35b348015610aa057600080fd5b50610aa9611cb9565b604051610ab691906140b7565b60405180910390f35b348015610acb57600080fd5b50610ae66004803603810190610ae19190614370565b611cbf565b005b348015610af457600080fd5b50610b0f6004803603810190610b0a91906140d2565b611d96565b005b348015610b1d57600080fd5b50610b26611ea7565b604051610b339190613fe6565b60405180910390f35b348015610b4857600080fd5b50610b51611eba565b604051610b5e91906140b7565b60405180910390f35b348015610b7357600080fd5b50610b8e6004803603810190610b8991906140d2565b611ec0565b604051610b9b9190613fe6565b60405180910390f35b348015610bb057600080fd5b50610bcb6004803603810190610bc691906142fb565b612015565b005b348015610bd957600080fd5b50610be2612208565b604051610bef91906140b7565b60405180910390f35b348015610c0457600080fd5b50610c0d61220e565b604051610c1a91906140b7565b60405180910390f35b348015610c2f57600080fd5b50610c4a6004803603810190610c4591906143b0565b612218565b604051610c5791906140b7565b60405180910390f35b348015610c6c57600080fd5b50610c7561229f565b604051610c8291906140b7565b60405180910390f35b348015610c9757600080fd5b50610ca06122a5565b604051610cad9190613fe6565b60405180910390f35b348015610cc257600080fd5b50610cdd6004803603810190610cd89190614001565b612345565b005b348015610ceb57600080fd5b50610cf461243d565b604051610d0191906140b7565b60405180910390f35b348015610d1657600080fd5b50610d1f612443565b604051610d2c91906140b7565b60405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d76612449565b73ffffffffffffffffffffffffffffffffffffffff1614610d9657600080fd5b8160148190555080601581905550601554601454610db4919061441f565b601381905550600a6013541115610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df7906144c1565b60405180910390fd5b5050565b606060038054610e1390614510565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90614510565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b5050505050905090565b6000610eaa610ea3612449565b8484612451565b6001905092915050565b601c6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610f0a612449565b73ffffffffffffffffffffffffffffffffffffffff16610f2861198c565b73ffffffffffffffffffffffffffffffffffffffff1614610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f759061458e565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b60125481565b611052612449565b73ffffffffffffffffffffffffffffffffffffffff1661107061198c565b73ffffffffffffffffffffffffffffffffffffffff16146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd9061458e565b60405180910390fd5b670de0b6b3a76400006305f5e10060016110de610ef8565b6110e891906145ae565b6110f29190614637565b6110fc9190614637565b81101561113e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611135906146da565b60405180910390fd5b670de0b6b3a76400008161115291906145ae565b600b8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006111a7612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611263578281101561124e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112459061476c565b60405180910390fd5b6112628561125a612449565b858403612451565b5b61126e85858561261c565b60019150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b60006012905090565b60006113516112bc612449565b8484600160006112ca612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134c919061441f565b612451565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60009054906101000a900460ff1681565b6000601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60135481565b611416612449565b73ffffffffffffffffffffffffffffffffffffffff1661143461198c565b73ffffffffffffffffffffffffffffffffffffffff161461148a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819061458e565b60405180910390fd5b60005b815181101561151b576000600660008484815181106114af576114ae61478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611513906147bb565b91505061148d565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61156f612449565b73ffffffffffffffffffffffffffffffffffffffff1661158d61198c565b73ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da9061458e565b60405180910390fd5b6115ed60006133a8565b565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611630612449565b73ffffffffffffffffffffffffffffffffffffffff161461165057600080fd5b80601281905550601254601181905550600a60115411156116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d906144c1565b60405180910390fd5b50565b601a5481565b60006116b9612449565b73ffffffffffffffffffffffffffffffffffffffff166116d761198c565b73ffffffffffffffffffffffffffffffffffffffff161461172d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117249061458e565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055506001905090565b611757612449565b73ffffffffffffffffffffffffffffffffffffffff1661177561198c565b73ffffffffffffffffffffffffffffffffffffffff16146117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29061458e565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61182e612449565b73ffffffffffffffffffffffffffffffffffffffff1661184c61198c565b73ffffffffffffffffffffffffffffffffffffffff16146118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118999061458e565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506118d0814261346e90919063ffffffff16565b60088190555050565b6118e1612449565b73ffffffffffffffffffffffffffffffffffffffff166118ff61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c9061458e565b60405180910390fd5b6001600e60016101000a81548160ff02191690831515021790555061198460014261346e90919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546119c590614510565b80601f01602080910402602001604051908101604052809291908181526020018280546119f190614510565b8015611a3e5780601f10611a1357610100808354040283529160200191611a3e565b820191906000526020600020905b815481529060010190602001808311611a2157829003601f168201915b5050505050905090565b611a50612449565b73ffffffffffffffffffffffffffffffffffffffff16611a6e61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb9061458e565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4a90614876565b60405180910390fd5b611b5d8282613484565b5050565b60175481565b60155481565b6000601a54905090565b60008060016000611b86612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90614908565b60405180910390fd5b611c57611c4e612449565b85858403612451565b600191505092915050565b6000611c76611c6f612449565b848461261c565b6001905092915050565b60145481565b601d6020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b60165481565b611cc7612449565b73ffffffffffffffffffffffffffffffffffffffff16611ce561198c565b73ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d329061458e565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d9e612449565b73ffffffffffffffffffffffffffffffffffffffff16611dbc61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e099061458e565b60405180910390fd5b670de0b6b3a76400006305f5e1006005611e2a610ef8565b611e3491906145ae565b611e3e9190614637565b611e489190614637565b811015611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e819061499a565b60405180910390fd5b670de0b6b3a764000081611e9e91906145ae565b600d8190555050565b601060009054906101000a900460ff1681565b600b5481565b6000611eca612449565b73ffffffffffffffffffffffffffffffffffffffff16611ee861198c565b73ffffffffffffffffffffffffffffffffffffffff1614611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f359061458e565b60405180910390fd5b620186a06001611f4c610ef8565b611f5691906145ae565b611f609190614637565b821015611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990614a2c565b60405180910390fd5b6103e86005611faf610ef8565b611fb991906145ae565b611fc39190614637565b821115612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90614abe565b60405180910390fd5b81600c8190555060019050919050565b61201d612449565b73ffffffffffffffffffffffffffffffffffffffff1661203b61198c565b73ffffffffffffffffffffffffffffffffffffffff1614612091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120889061458e565b60405180910390fd5b60005b8151811015612204577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168282815181106120e7576120e661478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415801561217957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168282815181106121585761215761478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156121f1576001600660008484815181106121975761219661478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806121fc906147bb565b915050612094565b5050565b60115481565b6000601954905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b60006122af612449565b73ffffffffffffffffffffffffffffffffffffffff166122cd61198c565b73ffffffffffffffffffffffffffffffffffffffff1614612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a9061458e565b60405180910390fd5b6000601060006101000a81548160ff0219169083151502179055506001905090565b61234d612449565b73ffffffffffffffffffffffffffffffffffffffff1661236b61198c565b73ffffffffffffffffffffffffffffffffffffffff16146123c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b89061458e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242890614b50565b60405180910390fd5b61243a816133a8565b50565b600d5481565b60195481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890614be2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252890614c74565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161260f91906140b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561268c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268390614d06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390614d98565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090614e50565b60405180910390fd5b60008114156127a35761279e838360006134df565b6133a3565b600854421015612806576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600e60009054906101000a900460ff1615612ec95761282361198c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612891575061286161198c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128ca5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612904575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561291d5750600760009054906101000a900460ff16155b15612ec857600e60019054906101000a900460ff16612a1757601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129d75750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d90614ebc565b60405180910390fd5b5b601060009054906101000a900460ff1615612bdf57612a3461198c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612abb57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b1357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612bde5743600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9090614f74565b60405180910390fd5b43600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c825750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d2957600b54811115612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390615006565b60405180910390fd5b600d54612cd88361151f565b82612ce3919061441f565b1115612d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1b90615072565b60405180910390fd5b612ec7565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612dcc5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e1b57600b54811115612e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0d90615104565b60405180910390fd5b612ec6565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ec557600d54612e788361151f565b82612e83919061441f565b1115612ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebb90615072565b60405180910390fd5b5b5b5b5b5b6000612ed43061151f565b90506000600c548210159050808015612efa5750600760009054906101000a900460ff16155b8015612f505750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612fa65750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ffc5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613040576001600760006101000a81548160ff021916908315150217905550613024613760565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130f65750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561310057600090505b600080821561339257601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561316457506000601354115b1561321a576000600760016101000a81548160ff0219169083151502179055506131ad61271061319f6013548961384a90919063ffffffff16565b61386090919063ffffffff16565b9050601354601554826131c091906145ae565b6131ca9190614637565b601760008282546131db919061441f565b92505081905550601354601454826131f391906145ae565b6131fd9190614637565b6018600082825461320e919061441f565b92505081905550613324565b601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561327557506000601154115b15613323576001600760016101000a81548160ff0219169083151502179055506132be6127106132b06011548961384a90919063ffffffff16565b61386090919063ffffffff16565b9150601154601254836132d191906145ae565b6132db9190614637565b601660008282546132ec919061441f565b925050819055506132ff87601654613876565b601654601a6000828254613313919061441f565b9250508190555060006016819055505b5b60006013541180156133435750600760019054906101000a900460ff16155b15613391576133538830836134df565b61335f306018546139d6565b60185460196000828254613373919061441f565b925050819055506000601881905550808661338e9190615124565b95505b5b61339d8888886134df565b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361347c919061441f565b905092915050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561354f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354690614d06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156135bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135b690614d98565b60405180910390fd5b6135ca838383613ba1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613647906151ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136e3919061441f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161374791906140b7565b60405180910390a361375a848484613ba6565b50505050565b600061376b3061151f565b905060008082141561377e575050613848565b6014600c5461378d91906145ae565b8211156137a6576014600c546137a391906145ae565b91505b6137af82613bab565b6000601781905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516137fd9061521b565b60006040518083038185875af1925050503d806000811461383a576040519150601f19603f3d011682016040523d82523d6000602084013e61383f565b606091505b50508091505050505b565b6000818361385891906145ae565b905092915050565b6000818361386e9190614637565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156138e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138dd9061527c565b60405180910390fd5b6138f260008383613ba1565b8060026000828254613904919061441f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613959919061441f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139be91906140b7565b60405180910390a36139d260008383613ba6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a3d9061530e565b60405180910390fd5b613a5282600083613ba1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613acf906153a0565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254613b2f9190615124565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b9491906140b7565b60405180910390a3505050565b505050565b505050565b6000600267ffffffffffffffff811115613bc857613bc76141b8565b5b604051908082528060200260200182016040528015613bf65781602001602082028036833780820191505090505b5090503081600081518110613c0e57613c0d61478c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd791906153d5565b81600181518110613ceb57613cea61478c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d50307f000000000000000000000000000000000000000000000000000000000000000084612451565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613db29594939291906154fb565b600060405180830381600087803b158015613dcc57600080fd5b505af1158015613de0573d6000803e3d6000fd5b505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613df2565b5b6000613e5785828601613e1d565b9250506020613e6885828601613e1d565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613eac578082015181840152602081019050613e91565b83811115613ebb576000848401525b50505050565b6000601f19601f8301169050919050565b6000613edd82613e72565b613ee78185613e7d565b9350613ef7818560208601613e8e565b613f0081613ec1565b840191505092915050565b60006020820190508181036000830152613f258184613ed2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f5882613f2d565b9050919050565b613f6881613f4d565b8114613f7357600080fd5b50565b600081359050613f8581613f5f565b92915050565b60008060408385031215613fa257613fa1613df2565b5b6000613fb085828601613f76565b9250506020613fc185828601613e1d565b9150509250929050565b60008115159050919050565b613fe081613fcb565b82525050565b6000602082019050613ffb6000830184613fd7565b92915050565b60006020828403121561401757614016613df2565b5b600061402584828501613f76565b91505092915050565b6000819050919050565b600061405361404e61404984613f2d565b61402e565b613f2d565b9050919050565b600061406582614038565b9050919050565b60006140778261405a565b9050919050565b6140878161406c565b82525050565b60006020820190506140a2600083018461407e565b92915050565b6140b181613dfc565b82525050565b60006020820190506140cc60008301846140a8565b92915050565b6000602082840312156140e8576140e7613df2565b5b60006140f684828501613e1d565b91505092915050565b60008060006060848603121561411857614117613df2565b5b600061412686828701613f76565b935050602061413786828701613f76565b925050604061414886828701613e1d565b9150509250925092565b61415b81613f4d565b82525050565b60006020820190506141766000830184614152565b92915050565b600060ff82169050919050565b6141928161417c565b82525050565b60006020820190506141ad6000830184614189565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141f082613ec1565b810181811067ffffffffffffffff8211171561420f5761420e6141b8565b5b80604052505050565b6000614222613de8565b905061422e82826141e7565b919050565b600067ffffffffffffffff82111561424e5761424d6141b8565b5b602082029050602081019050919050565b600080fd5b600061427761427284614233565b614218565b9050808382526020820190506020840283018581111561429a5761429961425f565b5b835b818110156142c357806142af8882613f76565b84526020840193505060208101905061429c565b5050509392505050565b600082601f8301126142e2576142e16141b3565b5b81356142f2848260208601614264565b91505092915050565b60006020828403121561431157614310613df2565b5b600082013567ffffffffffffffff81111561432f5761432e613df7565b5b61433b848285016142cd565b91505092915050565b61434d81613fcb565b811461435857600080fd5b50565b60008135905061436a81614344565b92915050565b6000806040838503121561438757614386613df2565b5b600061439585828601613f76565b92505060206143a68582860161435b565b9150509250929050565b600080604083850312156143c7576143c6613df2565b5b60006143d585828601613f76565b92505060206143e685828601613f76565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061442a82613dfc565b915061443583613dfc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561446a576144696143f0565b5b828201905092915050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b60006144ab601d83613e7d565b91506144b682614475565b602082019050919050565b600060208201905081810360008301526144da8161449e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061452857607f821691505b6020821081141561453c5761453b6144e1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614578602083613e7d565b915061458382614542565b602082019050919050565b600060208201905081810360008301526145a78161456b565b9050919050565b60006145b982613dfc565b91506145c483613dfc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145fd576145fc6143f0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061464282613dfc565b915061464d83613dfc565b92508261465d5761465c614608565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006146c4602f83613e7d565b91506146cf82614668565b604082019050919050565b600060208201905081810360008301526146f3816146b7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614756602883613e7d565b9150614761826146fa565b604082019050919050565b6000602082019050818103600083015261478581614749565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006147c682613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156147f9576147f86143f0565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614860603983613e7d565b915061486b82614804565b604082019050919050565b6000602082019050818103600083015261488f81614853565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006148f2602583613e7d565b91506148fd82614896565b604082019050919050565b60006020820190508181036000830152614921816148e5565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000614984602483613e7d565b915061498f82614928565b604082019050919050565b600060208201905081810360008301526149b381614977565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614a16603583613e7d565b9150614a21826149ba565b604082019050919050565b60006020820190508181036000830152614a4581614a09565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614aa8603483613e7d565b9150614ab382614a4c565b604082019050919050565b60006020820190508181036000830152614ad781614a9b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b3a602683613e7d565b9150614b4582614ade565b604082019050919050565b60006020820190508181036000830152614b6981614b2d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614bcc602483613e7d565b9150614bd782614b70565b604082019050919050565b60006020820190508181036000830152614bfb81614bbf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614c5e602283613e7d565b9150614c6982614c02565b604082019050919050565b60006020820190508181036000830152614c8d81614c51565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614cf0602583613e7d565b9150614cfb82614c94565b604082019050919050565b60006020820190508181036000830152614d1f81614ce3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614d82602383613e7d565b9150614d8d82614d26565b604082019050919050565b60006020820190508181036000830152614db181614d75565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b6000614e3a605183613e7d565b9150614e4582614db8565b606082019050919050565b60006020820190508181036000830152614e6981614e2d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614ea6601683613e7d565b9150614eb182614e70565b602082019050919050565b60006020820190508181036000830152614ed581614e99565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614f5e604983613e7d565b9150614f6982614edc565b606082019050919050565b60006020820190508181036000830152614f8d81614f51565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614ff0603583613e7d565b9150614ffb82614f94565b604082019050919050565b6000602082019050818103600083015261501f81614fe3565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061505c601383613e7d565b915061506782615026565b602082019050919050565b6000602082019050818103600083015261508b8161504f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006150ee603683613e7d565b91506150f982615092565b604082019050919050565b6000602082019050818103600083015261511d816150e1565b9050919050565b600061512f82613dfc565b915061513a83613dfc565b92508282101561514d5761514c6143f0565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006151b4602683613e7d565b91506151bf82615158565b604082019050919050565b600060208201905081810360008301526151e3816151a7565b9050919050565b600081905092915050565b50565b60006152056000836151ea565b9150615210826151f5565b600082019050919050565b6000615226826151f8565b9150819050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000615266601f83613e7d565b915061527182615230565b602082019050919050565b6000602082019050818103600083015261529581615259565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006152f8602183613e7d565b91506153038261529c565b604082019050919050565b60006020820190508181036000830152615327816152eb565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061538a602283613e7d565b91506153958261532e565b604082019050919050565b600060208201905081810360008301526153b98161537d565b9050919050565b6000815190506153cf81613f5f565b92915050565b6000602082840312156153eb576153ea613df2565b5b60006153f9848285016153c0565b91505092915050565b6000819050919050565b600061542761542261541d84615402565b61402e565b613dfc565b9050919050565b6154378161540c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61547281613f4d565b82525050565b60006154848383615469565b60208301905092915050565b6000602082019050919050565b60006154a88261543d565b6154b28185615448565b93506154bd83615459565b8060005b838110156154ee5781516154d58882615478565b97506154e083615490565b9250506001810190506154c1565b5085935050505092915050565b600060a08201905061551060008301886140a8565b61551d602083018761542e565b818103604083015261552f818661549d565b905061553e6060830185614152565b61554b60808301846140a8565b969550505050505056fea2646970667358221220ae0cb21ff368be67b9164cf5be538e4649e223f3f546dfa22bd9ca87cdcc514564736f6c634300080b0033000000000000000000000000e0e456ed6d8c2b28fba79df24f8ec15af4e4c14a
Deployed Bytecode
0x6080604052600436106103545760003560e01c806382aa7c68116101c6578063c0246668116100f7578063d89135cd11610095578063e884f2601161006f578063e884f26014610c8b578063f2fde38b14610cb6578063f8b45b0514610cdf578063fd01bd4c14610d0a5761035b565b8063d89135cd14610bf8578063dd62ed3e14610c23578063e2f4560514610c605761035b565b8063c8c8ebe4116100d1578063c8c8ebe414610b3c578063d257b34f14610b67578063d34628cc14610ba4578063d85ba06314610bcd5761035b565b8063c024666814610abf578063c18bc19514610ae8578063c876d0b914610b115761035b565b8063a2309ff811610164578063adb873bd1161013e578063adb873bd14610a01578063b62496f514610a2c578063bbc0c74214610a69578063bc32ca5714610a945761035b565b8063a2309ff81461095c578063a457c2d714610987578063a9059cbb146109c45761035b565b806395d89b41116101a057806395d89b41146108b25780639a7a23d6146108dd5780639fccce3214610906578063a0d82dc5146109315761035b565b806382aa7c68146108475780638a8c523c146108705780638da5cb5b146108875761035b565b8063313ce567116102a05780636c3bbfd71161023e57806371fc46881161021857806371fc46881461079f578063736bf591146107c8578063751039fc146107f35780637571336a1461081e5761035b565b80636c3bbfd71461072257806370a082311461074b578063715018a6146107885761035b565b806349bd5a5e1161027a57806349bd5a5e146106645780634a62bb651461068f5780634fbee193146106ba5780636a486a8e146106f75761035b565b8063313ce567146105bf57806339509351146105ea5780633bbac579146106275761035b565b80631816467f1161030d578063203e727e116102e7578063203e727e1461050357806323b872dd1461052c578063275b56c51461056957806327c8f835146105945761035b565b80631816467f146104845780631d777856146104ad5780631ebb1fe6146104d85761035b565b806302dbd8f81461036057806306fdde0314610389578063095ea7b3146103b457806310d5de53146103f15780631694505e1461042e57806318160ddd146104595761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b5061038760048036038101906103829190613e32565b610d35565b005b34801561039557600080fd5b5061039e610e04565b6040516103ab9190613f0b565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d69190613f8b565b610e96565b6040516103e89190613fe6565b60405180910390f35b3480156103fd57600080fd5b5061041860048036038101906104139190614001565b610eb4565b6040516104259190613fe6565b60405180910390f35b34801561043a57600080fd5b50610443610ed4565b604051610450919061408d565b60405180910390f35b34801561046557600080fd5b5061046e610ef8565b60405161047b91906140b7565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190614001565b610f02565b005b3480156104b957600080fd5b506104c261103e565b6040516104cf91906140b7565b60405180910390f35b3480156104e457600080fd5b506104ed611044565b6040516104fa91906140b7565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906140d2565b61104a565b005b34801561053857600080fd5b50610553600480360381019061054e91906140ff565b61115b565b6040516105609190613fe6565b60405180910390f35b34801561057557600080fd5b5061057e61127a565b60405161058b9190614161565b60405180910390f35b3480156105a057600080fd5b506105a96112a0565b6040516105b69190614161565b60405180910390f35b3480156105cb57600080fd5b506105d46112a6565b6040516105e19190614198565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190613f8b565b6112af565b60405161061e9190613fe6565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190614001565b61135b565b60405161065b9190613fe6565b60405180910390f35b34801561067057600080fd5b5061067961137b565b6040516106869190614161565b60405180910390f35b34801561069b57600080fd5b506106a461139f565b6040516106b19190613fe6565b60405180910390f35b3480156106c657600080fd5b506106e160048036038101906106dc9190614001565b6113b2565b6040516106ee9190613fe6565b60405180910390f35b34801561070357600080fd5b5061070c611408565b60405161071991906140b7565b60405180910390f35b34801561072e57600080fd5b50610749600480360381019061074491906142fb565b61140e565b005b34801561075757600080fd5b50610772600480360381019061076d9190614001565b61151f565b60405161077f91906140b7565b60405180910390f35b34801561079457600080fd5b5061079d611567565b005b3480156107ab57600080fd5b506107c660048036038101906107c191906140d2565b6115ef565b005b3480156107d457600080fd5b506107dd6116a9565b6040516107ea91906140b7565b60405180910390f35b3480156107ff57600080fd5b506108086116af565b6040516108159190613fe6565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614370565b61174f565b005b34801561085357600080fd5b5061086e600480360381019061086991906140d2565b611826565b005b34801561087c57600080fd5b506108856118d9565b005b34801561089357600080fd5b5061089c61198c565b6040516108a99190614161565b60405180910390f35b3480156108be57600080fd5b506108c76119b6565b6040516108d49190613f0b565b60405180910390f35b3480156108e957600080fd5b5061090460048036038101906108ff9190614370565b611a48565b005b34801561091257600080fd5b5061091b611b61565b60405161092891906140b7565b60405180910390f35b34801561093d57600080fd5b50610946611b67565b60405161095391906140b7565b60405180910390f35b34801561096857600080fd5b50610971611b6d565b60405161097e91906140b7565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a99190613f8b565b611b77565b6040516109bb9190613fe6565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e69190613f8b565b611c62565b6040516109f89190613fe6565b60405180910390f35b348015610a0d57600080fd5b50610a16611c80565b604051610a2391906140b7565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190614001565b611c86565b604051610a609190613fe6565b60405180910390f35b348015610a7557600080fd5b50610a7e611ca6565b604051610a8b9190613fe6565b60405180910390f35b348015610aa057600080fd5b50610aa9611cb9565b604051610ab691906140b7565b60405180910390f35b348015610acb57600080fd5b50610ae66004803603810190610ae19190614370565b611cbf565b005b348015610af457600080fd5b50610b0f6004803603810190610b0a91906140d2565b611d96565b005b348015610b1d57600080fd5b50610b26611ea7565b604051610b339190613fe6565b60405180910390f35b348015610b4857600080fd5b50610b51611eba565b604051610b5e91906140b7565b60405180910390f35b348015610b7357600080fd5b50610b8e6004803603810190610b8991906140d2565b611ec0565b604051610b9b9190613fe6565b60405180910390f35b348015610bb057600080fd5b50610bcb6004803603810190610bc691906142fb565b612015565b005b348015610bd957600080fd5b50610be2612208565b604051610bef91906140b7565b60405180910390f35b348015610c0457600080fd5b50610c0d61220e565b604051610c1a91906140b7565b60405180910390f35b348015610c2f57600080fd5b50610c4a6004803603810190610c4591906143b0565b612218565b604051610c5791906140b7565b60405180910390f35b348015610c6c57600080fd5b50610c7561229f565b604051610c8291906140b7565b60405180910390f35b348015610c9757600080fd5b50610ca06122a5565b604051610cad9190613fe6565b60405180910390f35b348015610cc257600080fd5b50610cdd6004803603810190610cd89190614001565b612345565b005b348015610ceb57600080fd5b50610cf461243d565b604051610d0191906140b7565b60405180910390f35b348015610d1657600080fd5b50610d1f612443565b604051610d2c91906140b7565b60405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d76612449565b73ffffffffffffffffffffffffffffffffffffffff1614610d9657600080fd5b8160148190555080601581905550601554601454610db4919061441f565b601381905550600a6013541115610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df7906144c1565b60405180910390fd5b5050565b606060038054610e1390614510565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90614510565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b5050505050905090565b6000610eaa610ea3612449565b8484612451565b6001905092915050565b601c6020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610f0a612449565b73ffffffffffffffffffffffffffffffffffffffff16610f2861198c565b73ffffffffffffffffffffffffffffffffffffffff1614610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f759061458e565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b60125481565b611052612449565b73ffffffffffffffffffffffffffffffffffffffff1661107061198c565b73ffffffffffffffffffffffffffffffffffffffff16146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd9061458e565b60405180910390fd5b670de0b6b3a76400006305f5e10060016110de610ef8565b6110e891906145ae565b6110f29190614637565b6110fc9190614637565b81101561113e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611135906146da565b60405180910390fd5b670de0b6b3a76400008161115291906145ae565b600b8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006111a7612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611263578281101561124e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112459061476c565b60405180910390fd5b6112628561125a612449565b858403612451565b5b61126e85858561261c565b60019150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b60006012905090565b60006113516112bc612449565b8484600160006112ca612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134c919061441f565b612451565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f00000000000000000000000002d8b395da3d4efe1efff4fa1e2c301f0848b94981565b600e60009054906101000a900460ff1681565b6000601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60135481565b611416612449565b73ffffffffffffffffffffffffffffffffffffffff1661143461198c565b73ffffffffffffffffffffffffffffffffffffffff161461148a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819061458e565b60405180910390fd5b60005b815181101561151b576000600660008484815181106114af576114ae61478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611513906147bb565b91505061148d565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61156f612449565b73ffffffffffffffffffffffffffffffffffffffff1661158d61198c565b73ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da9061458e565b60405180910390fd5b6115ed60006133a8565b565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611630612449565b73ffffffffffffffffffffffffffffffffffffffff161461165057600080fd5b80601281905550601254601181905550600a60115411156116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d906144c1565b60405180910390fd5b50565b601a5481565b60006116b9612449565b73ffffffffffffffffffffffffffffffffffffffff166116d761198c565b73ffffffffffffffffffffffffffffffffffffffff161461172d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117249061458e565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055506001905090565b611757612449565b73ffffffffffffffffffffffffffffffffffffffff1661177561198c565b73ffffffffffffffffffffffffffffffffffffffff16146117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29061458e565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61182e612449565b73ffffffffffffffffffffffffffffffffffffffff1661184c61198c565b73ffffffffffffffffffffffffffffffffffffffff16146118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118999061458e565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506118d0814261346e90919063ffffffff16565b60088190555050565b6118e1612449565b73ffffffffffffffffffffffffffffffffffffffff166118ff61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c9061458e565b60405180910390fd5b6001600e60016101000a81548160ff02191690831515021790555061198460014261346e90919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546119c590614510565b80601f01602080910402602001604051908101604052809291908181526020018280546119f190614510565b8015611a3e5780601f10611a1357610100808354040283529160200191611a3e565b820191906000526020600020905b815481529060010190602001808311611a2157829003601f168201915b5050505050905090565b611a50612449565b73ffffffffffffffffffffffffffffffffffffffff16611a6e61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb9061458e565b60405180910390fd5b7f00000000000000000000000002d8b395da3d4efe1efff4fa1e2c301f0848b94973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4a90614876565b60405180910390fd5b611b5d8282613484565b5050565b60175481565b60155481565b6000601a54905090565b60008060016000611b86612449565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90614908565b60405180910390fd5b611c57611c4e612449565b85858403612451565b600191505092915050565b6000611c76611c6f612449565b848461261c565b6001905092915050565b60145481565b601d6020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b60165481565b611cc7612449565b73ffffffffffffffffffffffffffffffffffffffff16611ce561198c565b73ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d329061458e565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d9e612449565b73ffffffffffffffffffffffffffffffffffffffff16611dbc61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e099061458e565b60405180910390fd5b670de0b6b3a76400006305f5e1006005611e2a610ef8565b611e3491906145ae565b611e3e9190614637565b611e489190614637565b811015611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e819061499a565b60405180910390fd5b670de0b6b3a764000081611e9e91906145ae565b600d8190555050565b601060009054906101000a900460ff1681565b600b5481565b6000611eca612449565b73ffffffffffffffffffffffffffffffffffffffff16611ee861198c565b73ffffffffffffffffffffffffffffffffffffffff1614611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f359061458e565b60405180910390fd5b620186a06001611f4c610ef8565b611f5691906145ae565b611f609190614637565b821015611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990614a2c565b60405180910390fd5b6103e86005611faf610ef8565b611fb991906145ae565b611fc39190614637565b821115612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90614abe565b60405180910390fd5b81600c8190555060019050919050565b61201d612449565b73ffffffffffffffffffffffffffffffffffffffff1661203b61198c565b73ffffffffffffffffffffffffffffffffffffffff1614612091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120889061458e565b60405180910390fd5b60005b8151811015612204577f00000000000000000000000002d8b395da3d4efe1efff4fa1e2c301f0848b94973ffffffffffffffffffffffffffffffffffffffff168282815181106120e7576120e661478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415801561217957507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168282815181106121585761215761478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156121f1576001600660008484815181106121975761219661478c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806121fc906147bb565b915050612094565b5050565b60115481565b6000601954905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b60006122af612449565b73ffffffffffffffffffffffffffffffffffffffff166122cd61198c565b73ffffffffffffffffffffffffffffffffffffffff1614612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a9061458e565b60405180910390fd5b6000601060006101000a81548160ff0219169083151502179055506001905090565b61234d612449565b73ffffffffffffffffffffffffffffffffffffffff1661236b61198c565b73ffffffffffffffffffffffffffffffffffffffff16146123c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b89061458e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242890614b50565b60405180910390fd5b61243a816133a8565b50565b600d5481565b60195481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890614be2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252890614c74565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161260f91906140b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561268c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268390614d06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390614d98565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090614e50565b60405180910390fd5b60008114156127a35761279e838360006134df565b6133a3565b600854421015612806576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600e60009054906101000a900460ff1615612ec95761282361198c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612891575061286161198c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128ca5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612904575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561291d5750600760009054906101000a900460ff16155b15612ec857600e60019054906101000a900460ff16612a1757601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129d75750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d90614ebc565b60405180910390fd5b5b601060009054906101000a900460ff1615612bdf57612a3461198c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612abb57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b1357507f00000000000000000000000002d8b395da3d4efe1efff4fa1e2c301f0848b94973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612bde5743600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9090614f74565b60405180910390fd5b43600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c825750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d2957600b54811115612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390615006565b60405180910390fd5b600d54612cd88361151f565b82612ce3919061441f565b1115612d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1b90615072565b60405180910390fd5b612ec7565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612dcc5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e1b57600b54811115612e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0d90615104565b60405180910390fd5b612ec6565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ec557600d54612e788361151f565b82612e83919061441f565b1115612ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebb90615072565b60405180910390fd5b5b5b5b5b5b6000612ed43061151f565b90506000600c548210159050808015612efa5750600760009054906101000a900460ff16155b8015612f505750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612fa65750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ffc5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613040576001600760006101000a81548160ff021916908315150217905550613024613760565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130f65750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561310057600090505b600080821561339257601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561316457506000601354115b1561321a576000600760016101000a81548160ff0219169083151502179055506131ad61271061319f6013548961384a90919063ffffffff16565b61386090919063ffffffff16565b9050601354601554826131c091906145ae565b6131ca9190614637565b601760008282546131db919061441f565b92505081905550601354601454826131f391906145ae565b6131fd9190614637565b6018600082825461320e919061441f565b92505081905550613324565b601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561327557506000601154115b15613323576001600760016101000a81548160ff0219169083151502179055506132be6127106132b06011548961384a90919063ffffffff16565b61386090919063ffffffff16565b9150601154601254836132d191906145ae565b6132db9190614637565b601660008282546132ec919061441f565b925050819055506132ff87601654613876565b601654601a6000828254613313919061441f565b9250508190555060006016819055505b5b60006013541180156133435750600760019054906101000a900460ff16155b15613391576133538830836134df565b61335f306018546139d6565b60185460196000828254613373919061441f565b925050819055506000601881905550808661338e9190615124565b95505b5b61339d8888886134df565b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361347c919061441f565b905092915050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561354f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354690614d06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156135bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135b690614d98565b60405180910390fd5b6135ca838383613ba1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613647906151ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136e3919061441f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161374791906140b7565b60405180910390a361375a848484613ba6565b50505050565b600061376b3061151f565b905060008082141561377e575050613848565b6014600c5461378d91906145ae565b8211156137a6576014600c546137a391906145ae565b91505b6137af82613bab565b6000601781905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516137fd9061521b565b60006040518083038185875af1925050503d806000811461383a576040519150601f19603f3d011682016040523d82523d6000602084013e61383f565b606091505b50508091505050505b565b6000818361385891906145ae565b905092915050565b6000818361386e9190614637565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156138e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138dd9061527c565b60405180910390fd5b6138f260008383613ba1565b8060026000828254613904919061441f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613959919061441f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139be91906140b7565b60405180910390a36139d260008383613ba6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a3d9061530e565b60405180910390fd5b613a5282600083613ba1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613acf906153a0565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254613b2f9190615124565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b9491906140b7565b60405180910390a3505050565b505050565b505050565b6000600267ffffffffffffffff811115613bc857613bc76141b8565b5b604051908082528060200260200182016040528015613bf65781602001602082028036833780820191505090505b5090503081600081518110613c0e57613c0d61478c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd791906153d5565b81600181518110613ceb57613cea61478c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d50307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612451565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613db29594939291906154fb565b600060405180830381600087803b158015613dcc57600080fd5b505af1158015613de0573d6000803e3d6000fd5b505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613df2565b5b6000613e5785828601613e1d565b9250506020613e6885828601613e1d565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613eac578082015181840152602081019050613e91565b83811115613ebb576000848401525b50505050565b6000601f19601f8301169050919050565b6000613edd82613e72565b613ee78185613e7d565b9350613ef7818560208601613e8e565b613f0081613ec1565b840191505092915050565b60006020820190508181036000830152613f258184613ed2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f5882613f2d565b9050919050565b613f6881613f4d565b8114613f7357600080fd5b50565b600081359050613f8581613f5f565b92915050565b60008060408385031215613fa257613fa1613df2565b5b6000613fb085828601613f76565b9250506020613fc185828601613e1d565b9150509250929050565b60008115159050919050565b613fe081613fcb565b82525050565b6000602082019050613ffb6000830184613fd7565b92915050565b60006020828403121561401757614016613df2565b5b600061402584828501613f76565b91505092915050565b6000819050919050565b600061405361404e61404984613f2d565b61402e565b613f2d565b9050919050565b600061406582614038565b9050919050565b60006140778261405a565b9050919050565b6140878161406c565b82525050565b60006020820190506140a2600083018461407e565b92915050565b6140b181613dfc565b82525050565b60006020820190506140cc60008301846140a8565b92915050565b6000602082840312156140e8576140e7613df2565b5b60006140f684828501613e1d565b91505092915050565b60008060006060848603121561411857614117613df2565b5b600061412686828701613f76565b935050602061413786828701613f76565b925050604061414886828701613e1d565b9150509250925092565b61415b81613f4d565b82525050565b60006020820190506141766000830184614152565b92915050565b600060ff82169050919050565b6141928161417c565b82525050565b60006020820190506141ad6000830184614189565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141f082613ec1565b810181811067ffffffffffffffff8211171561420f5761420e6141b8565b5b80604052505050565b6000614222613de8565b905061422e82826141e7565b919050565b600067ffffffffffffffff82111561424e5761424d6141b8565b5b602082029050602081019050919050565b600080fd5b600061427761427284614233565b614218565b9050808382526020820190506020840283018581111561429a5761429961425f565b5b835b818110156142c357806142af8882613f76565b84526020840193505060208101905061429c565b5050509392505050565b600082601f8301126142e2576142e16141b3565b5b81356142f2848260208601614264565b91505092915050565b60006020828403121561431157614310613df2565b5b600082013567ffffffffffffffff81111561432f5761432e613df7565b5b61433b848285016142cd565b91505092915050565b61434d81613fcb565b811461435857600080fd5b50565b60008135905061436a81614344565b92915050565b6000806040838503121561438757614386613df2565b5b600061439585828601613f76565b92505060206143a68582860161435b565b9150509250929050565b600080604083850312156143c7576143c6613df2565b5b60006143d585828601613f76565b92505060206143e685828601613f76565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061442a82613dfc565b915061443583613dfc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561446a576144696143f0565b5b828201905092915050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b60006144ab601d83613e7d565b91506144b682614475565b602082019050919050565b600060208201905081810360008301526144da8161449e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061452857607f821691505b6020821081141561453c5761453b6144e1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614578602083613e7d565b915061458382614542565b602082019050919050565b600060208201905081810360008301526145a78161456b565b9050919050565b60006145b982613dfc565b91506145c483613dfc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145fd576145fc6143f0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061464282613dfc565b915061464d83613dfc565b92508261465d5761465c614608565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006146c4602f83613e7d565b91506146cf82614668565b604082019050919050565b600060208201905081810360008301526146f3816146b7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614756602883613e7d565b9150614761826146fa565b604082019050919050565b6000602082019050818103600083015261478581614749565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006147c682613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156147f9576147f86143f0565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614860603983613e7d565b915061486b82614804565b604082019050919050565b6000602082019050818103600083015261488f81614853565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006148f2602583613e7d565b91506148fd82614896565b604082019050919050565b60006020820190508181036000830152614921816148e5565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000614984602483613e7d565b915061498f82614928565b604082019050919050565b600060208201905081810360008301526149b381614977565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614a16603583613e7d565b9150614a21826149ba565b604082019050919050565b60006020820190508181036000830152614a4581614a09565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614aa8603483613e7d565b9150614ab382614a4c565b604082019050919050565b60006020820190508181036000830152614ad781614a9b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b3a602683613e7d565b9150614b4582614ade565b604082019050919050565b60006020820190508181036000830152614b6981614b2d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614bcc602483613e7d565b9150614bd782614b70565b604082019050919050565b60006020820190508181036000830152614bfb81614bbf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614c5e602283613e7d565b9150614c6982614c02565b604082019050919050565b60006020820190508181036000830152614c8d81614c51565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614cf0602583613e7d565b9150614cfb82614c94565b604082019050919050565b60006020820190508181036000830152614d1f81614ce3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614d82602383613e7d565b9150614d8d82614d26565b604082019050919050565b60006020820190508181036000830152614db181614d75565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b6000614e3a605183613e7d565b9150614e4582614db8565b606082019050919050565b60006020820190508181036000830152614e6981614e2d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614ea6601683613e7d565b9150614eb182614e70565b602082019050919050565b60006020820190508181036000830152614ed581614e99565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614f5e604983613e7d565b9150614f6982614edc565b606082019050919050565b60006020820190508181036000830152614f8d81614f51565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614ff0603583613e7d565b9150614ffb82614f94565b604082019050919050565b6000602082019050818103600083015261501f81614fe3565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061505c601383613e7d565b915061506782615026565b602082019050919050565b6000602082019050818103600083015261508b8161504f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006150ee603683613e7d565b91506150f982615092565b604082019050919050565b6000602082019050818103600083015261511d816150e1565b9050919050565b600061512f82613dfc565b915061513a83613dfc565b92508282101561514d5761514c6143f0565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006151b4602683613e7d565b91506151bf82615158565b604082019050919050565b600060208201905081810360008301526151e3816151a7565b9050919050565b600081905092915050565b50565b60006152056000836151ea565b9150615210826151f5565b600082019050919050565b6000615226826151f8565b9150819050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000615266601f83613e7d565b915061527182615230565b602082019050919050565b6000602082019050818103600083015261529581615259565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006152f8602183613e7d565b91506153038261529c565b604082019050919050565b60006020820190508181036000830152615327816152eb565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061538a602283613e7d565b91506153958261532e565b604082019050919050565b600060208201905081810360008301526153b98161537d565b9050919050565b6000815190506153cf81613f5f565b92915050565b6000602082840312156153eb576153ea613df2565b5b60006153f9848285016153c0565b91505092915050565b6000819050919050565b600061542761542261541d84615402565b61402e565b613dfc565b9050919050565b6154378161540c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61547281613f4d565b82525050565b60006154848383615469565b60208301905092915050565b6000602082019050919050565b60006154a88261543d565b6154b28185615448565b93506154bd83615459565b8060005b838110156154ee5781516154d58882615478565b97506154e083615490565b9250506001810190506154c1565b5085935050505092915050565b600060a08201905061551060008301886140a8565b61551d602083018761542e565b818103604083015261552f818661549d565b905061553e6060830185614152565b61554b60808301846140a8565b969550505050505056fea2646970667358221220ae0cb21ff368be67b9164cf5be538e4649e223f3f546dfa22bd9ca87cdcc514564736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e0e456ed6d8c2b28fba79df24f8ec15af4e4c14a
-----Decoded View---------------
Arg [0] : depAddr (address): 0xE0E456ed6D8c2b28fba79dF24F8eC15AF4e4c14A
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e0e456ed6d8c2b28fba79df24f8ec15af4e4c14a
Deployed Bytecode Sourcemap
11634:13598:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17197:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3001:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3915:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13023:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11719:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3322:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18271:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12771:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12562:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16317:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4092:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12052:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11822:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3221:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4673:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11884:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11777;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12212:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18439:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12599:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18855:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3438:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10417:103;;;;;;;;;;;;;:::i;:::-;;16946:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12842:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15527:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16790:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17969:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15342:130;;;;;;;;;;;;;:::i;:::-;;10194:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3109:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17653:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12737:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12667:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25132:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4896:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3573:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12634:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13245:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12252:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12702:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17513:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16562:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12476:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12089:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15923:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18576:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12528:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25033:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3756:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12131:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15713:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10528:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12171:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12808:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17197:308;17300:9;;;;;;;;;;;17284:25;;:12;:10;:12::i;:::-;:25;;;17276:34;;;;;;17335:8;17321:11;:22;;;;17367:7;17354:10;:20;;;;17415:10;;17401:11;;:24;;;;:::i;:::-;17385:13;:40;;;;17461:2;17444:13;;:19;;17436:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17197:308;;:::o;3001:100::-;3055:13;3088:5;3081:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3001:100;:::o;3915:169::-;3998:4;4015:39;4024:12;:10;:12::i;:::-;4038:7;4047:6;4015:8;:39::i;:::-;4072:4;4065:11;;3915:169;;;;:::o;13023:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;11719:51::-;;;:::o;3322:108::-;3383:7;3410:12;;3403:19;;3322:108;:::o;18271:157::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18378:9:::1;;;;;;;;;;;18350:38;;18367:9;18350:38;;;;;;;;;;;;18411:9;18399;;:21;;;;;;;;;;;;;;;;;;18271:157:::0;:::o;12771:28::-;;;;:::o;12562:25::-;;;;:::o;16317:237::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16443:4:::1;16430:9;16426:1;16410:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:29;;;;:::i;:::-;16409:38;;;;:::i;:::-;16399:6;:48;;16391:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;16542:4;16533:6;:13;;;;:::i;:::-;16510:20;:36;;;;16317:237:::0;:::o;4092:573::-;4232:4;4249:24;4276:11;:19;4288:6;4276:19;;;;;;;;;;;;;;;:33;4296:12;:10;:12::i;:::-;4276:33;;;;;;;;;;;;;;;;4249:60;;4344:17;4324:16;:37;4320:265;;4406:6;4386:16;:26;;4378:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4501:57;4510:6;4518:12;:10;:12::i;:::-;4551:6;4532:16;:25;4501:8;:57::i;:::-;4320:265;4597:36;4607:6;4615:9;4626:6;4597:9;:36::i;:::-;4653:4;4646:11;;;4092:573;;;;;:::o;12052:24::-;;;;;;;;;;;;;:::o;11822:53::-;11868:6;11822:53;:::o;3221:93::-;3279:5;3304:2;3297:9;;3221:93;:::o;4673:215::-;4761:4;4778:80;4787:12;:10;:12::i;:::-;4801:7;4847:10;4810:11;:25;4822:12;:10;:12::i;:::-;4810:25;;;;;;;;;;;;;;;:34;4836:7;4810:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4778:8;:80::i;:::-;4876:4;4869:11;;4673:215;;;;:::o;11884:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11777:::-;;;:::o;12212:33::-;;;;;;;;;;;;;:::o;18439:125::-;18504:4;18528:19;:28;18548:7;18528:28;;;;;;;;;;;;;;;;;;;;;;;;;18521:35;;18439:125;;;:::o;12599:28::-;;;;:::o;18855:168::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18933:6:::1;18928:88;18949:4;:11;18945:1;:15;18928:88;;;18999:5;18982;:14;18988:4;18993:1;18988:7;;;;;;;;:::i;:::-;;;;;;;;18982:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18962:3;;;;;:::i;:::-;;;;18928:88;;;;18855:168:::0;:::o;3438:127::-;3512:7;3539:9;:18;3549:7;3539:18;;;;;;;;;;;;;;;;3532:25;;3438:127;;;:::o;10417:103::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10482:30:::1;10509:1;10482:18;:30::i;:::-;10417:103::o:0;16946:242::-;17031:9;;;;;;;;;;;17015:25;;:12;:10;:12::i;:::-;:25;;;17007:34;;;;;;17065:8;17052:10;:21;;;;17099:10;;17084:12;:25;;;;17144:2;17128:12;;:18;;17120:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16946:242;:::o;12842:27::-;;;;:::o;15527:121::-;15579:4;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15613:5:::1;15596:14;;:22;;;;;;;;;;;;;;;;;;15636:4;15629:11;;15527:121:::0;:::o;16790:144::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16922:4:::1;16880:31;:39;16912:6;16880:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16790:144:::0;;:::o;17969:149::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18054:4:::1;18038:13;;:20;;;;;;;;;;;;;;;;;;18083:27;18103:6;18083:15;:19;;:27;;;;:::i;:::-;18069:11;:41;;;;17969:149:::0;:::o;15342:130::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15413:4:::1;15397:13;;:20;;;;;;;;;;;;;;;;;;15442:22;15462:1;15442:15;:19;;:22;;;;:::i;:::-;15428:11;:36;;;;15342:130::o:0;10194:87::-;10240:7;10267:6;;;;;;;;;;;10260:13;;10194:87;:::o;3109:104::-;3165:13;3198:7;3191:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:104;:::o;17653:244::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17760:13:::1;17752:21;;:4;:21;;;;17744:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17848:41;17877:4;17883:5;17848:28;:41::i;:::-;17653:244:::0;;:::o;12737:27::-;;;;:::o;12667:25::-;;;;:::o;25132:91::-;25176:7;25203:12;;25196:19;;25132:91;:::o;4896:413::-;4989:4;5006:24;5033:11;:25;5045:12;:10;:12::i;:::-;5033:25;;;;;;;;;;;;;;;:34;5059:7;5033:34;;;;;;;;;;;;;;;;5006:61;;5106:15;5086:16;:35;;5078:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5199:67;5208:12;:10;:12::i;:::-;5222:7;5250:15;5231:16;:34;5199:8;:67::i;:::-;5297:4;5290:11;;;4896:413;;;;:::o;3573:175::-;3659:4;3676:42;3686:12;:10;:12::i;:::-;3700:9;3711:6;3676:9;:42::i;:::-;3736:4;3729:11;;3573:175;;;;:::o;12634:26::-;;;;:::o;13245:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12252:33::-;;;;;;;;;;;;;:::o;12702:28::-;;;;:::o;17513:132::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17629:8:::1;17598:19;:28;17618:7;17598:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17513:132:::0;;:::o;16562:216::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16689:4:::1;16678:9;16674:1;16658:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:29;;;;:::i;:::-;16657:36;;;;:::i;:::-;16647:6;:46;;16639:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;16766:4;16757:6;:13;;;;:::i;:::-;16745:9;:25;;;;16562:216:::0;:::o;12476:39::-;;;;;;;;;;;;;:::o;12089:35::-;;;;:::o;15923:382::-;16004:4;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16061:6:::1;16057:1;16041:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;16028:9;:39;;16020:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16176:4;16172:1;16156:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16143:9;:37;;16135:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16268:9;16247:18;:30;;;;16294:4;16287:11;;15923:382:::0;;;:::o;18576:267::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18651:6:::1;18646:190;18667:4;:11;18663:1;:15;18646:190;;;18715:13;18704:24;;:4;18709:1;18704:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;18751:15;18732:35;;:4;18737:1;18732:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;18704:63;18700:125;;;18805:4;18788:5;:14;18794:4;18799:1;18794:7;;;;;;;;:::i;:::-;;;;;;;;18788:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18700:125;18680:3;;;;;:::i;:::-;;;;18646:190;;;;18576:267:::0;:::o;12528:27::-;;;;:::o;25033:91::-;25077:7;25104:12;;25097:19;;25033:91;:::o;3756:151::-;3845:7;3872:11;:18;3884:5;3872:18;;;;;;;;;;;;;;;:27;3891:7;3872:27;;;;;;;;;;;;;;;;3865:34;;3756:151;;;;:::o;12131:33::-;;;;:::o;15713:135::-;15773:4;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15813:5:::1;15790:20;;:28;;;;;;;;;;;;;;;;;;15836:4;15829:11;;15713:135:::0;:::o;10528:201::-;10340:12;:10;:12::i;:::-;10329:23;;:7;:5;:7::i;:::-;:23;;;10321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10637:1:::1;10617:22;;:8;:22;;;;10609:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10693:28;10712:8;10693:18;:28::i;:::-;10528:201:::0;:::o;12171:24::-;;;;:::o;12808:27::-;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;7001:380::-;7154:1;7137:19;;:5;:19;;;;7129:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7235:1;7216:21;;:7;:21;;;;7208:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7319:6;7289:11;:18;7301:5;7289:18;;;;;;;;;;;;;;;:27;7308:7;7289:27;;;;;;;;;;;;;;;:36;;;;7357:7;7341:32;;7350:5;7341:32;;;7366:6;7341:32;;;;;;:::i;:::-;;;;;;;;7001:380;;;:::o;19031:4403::-;19179:1;19163:18;;:4;:18;;;;19155:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19256:1;19242:16;;:2;:16;;;;19234:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19318:5;:11;19324:4;19318:11;;;;;;;;;;;;;;;;;;;;;;;;;19317:12;19309:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19451:1;19441:6;:11;19437:93;;;19469:28;19485:4;19491:2;19495:1;19469:15;:28::i;:::-;19512:7;;19437:93;19572:11;;19554:15;:29;19550:51;;;19597:4;19585:5;:9;19591:2;19585:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;19550:51;19626:14;;;;;;;;;;;19622:1834;;;19687:7;:5;:7::i;:::-;19679:15;;:4;:15;;;;:49;;;;;19721:7;:5;:7::i;:::-;19715:13;;:2;:13;;;;19679:49;:86;;;;;19763:1;19749:16;;:2;:16;;;;19679:86;:128;;;;;19800:6;19786:21;;:2;:21;;;;19679:128;:159;;;;;19829:9;;;;;;;;;;;19828:10;19679:159;19657:1788;;;19878:13;;;;;;;;;;;19873:150;;19924:19;:25;19944:4;19924:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19953:19;:23;19973:2;19953:23;;;;;;;;;;;;;;;;;;;;;;;;;19924:52;19916:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19873:150;20181:20;;;;;;;;;;;20177:423;;;20235:7;:5;:7::i;:::-;20229:13;;:2;:13;;;;:47;;;;;20260:15;20246:30;;:2;:30;;;;20229:47;:79;;;;;20294:13;20280:28;;:2;:28;;;;20229:79;20225:356;;;20386:12;20344:28;:39;20373:9;20344:39;;;;;;;;;;;;;;;;:54;20336:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;20545:12;20503:28;:39;20532:9;20503:39;;;;;;;;;;;;;;;:54;;;;20225:356;20177:423;20668:25;:31;20694:4;20668:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20704:31;:35;20736:2;20704:35;;;;;;;;;;;;;;;;;;;;;;;;;20703:36;20668:71;20664:766;;;20782:20;;20772:6;:30;;20764:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20917:9;;20900:13;20910:2;20900:9;:13::i;:::-;20891:6;:22;;;;:::i;:::-;:35;;20883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20664:766;;;21043:25;:29;21069:2;21043:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21077:31;:37;21109:4;21077:37;;;;;;;;;;;;;;;;;;;;;;;;;21076:38;21043:71;21039:391;;;21157:20;;21147:6;:30;;21139:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21039:391;;;21284:31;:35;21316:2;21284:35;;;;;;;;;;;;;;;;;;;;;;;;;21279:151;;21377:9;;21360:13;21370:2;21360:9;:13::i;:::-;21351:6;:22;;;;:::i;:::-;:35;;21343:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21279:151;21039:391;20664:766;19657:1788;19622:1834;21470:28;21501:24;21519:4;21501:9;:24::i;:::-;21470:55;;21536:12;21575:18;;21551:20;:42;;21536:57;;21624:7;:34;;;;;21649:9;;;;;;;;;;;21648:10;21624:34;:83;;;;;21676:25;:31;21702:4;21676:31;;;;;;;;;;;;;;;;;;;;;;;;;21675:32;21624:83;:126;;;;;21725:19;:25;21745:4;21725:25;;;;;;;;;;;;;;;;;;;;;;;;;21724:26;21624:126;:167;;;;;21768:19;:23;21788:2;21768:23;;;;;;;;;;;;;;;;;;;;;;;;;21767:24;21624:167;21606:297;;;21830:4;21818:9;;:16;;;;;;;;;;;;;;;;;;21849:10;:8;:10::i;:::-;21886:5;21874:9;;:17;;;;;;;;;;;;;;;;;;21606:297;21915:12;21931:9;;;;;;;;;;;21930:10;21915:25;;22042:19;:25;22062:4;22042:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22071:19;:23;22091:2;22071:23;;;;;;;;;;;;;;;;;;;;;;;;;22042:52;22038:73;;;22106:5;22096:15;;22038:73;22142:15;22172:16;22281:7;22277:1104;;;22333:25;:29;22359:2;22333:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22382:1;22366:13;;:17;22333:50;22329:724;;;22412:5;22403:6;;:14;;;;;;;;;;;;;;;;;;22447:36;22477:5;22447:25;22458:13;;22447:6;:10;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;22436:47;;22542:13;;22529:10;;22518:8;:21;;;;:::i;:::-;:37;;;;:::i;:::-;22502:12;;:53;;;;;;;:::i;:::-;;;;;;;;22616:13;;22602:11;;22591:8;:22;;;;:::i;:::-;:38;;;;:::i;:::-;22574:13;;:55;;;;;;;:::i;:::-;;;;;;;;22329:724;;;22690:25;:31;22716:4;22690:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22740:1;22725:12;;:16;22690:51;22687:366;;;22771:4;22762:6;;:13;;;;;;;;;;;;;;;;;;22804:35;22833:5;22804:24;22815:12;;22804:6;:10;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;22794:45;;22898:12;;22885:10;;22875:7;:20;;;;:::i;:::-;:35;;;;:::i;:::-;22858:13;;:52;;;;;;;:::i;:::-;;;;;;;;22929:24;22935:2;22939:13;;22929:5;:24::i;:::-;22988:13;;22972:12;;:29;;;;;;;:::i;:::-;;;;;;;;23036:1;23020:13;:17;;;;22687:366;22329:724;23089:1;23073:13;;:17;:28;;;;;23095:6;;;;;;;;;;;23094:7;23073:28;23069:290;;;23122:46;23138:4;23152;23159:8;23122:15;:46::i;:::-;23187:35;23201:4;23208:13;;23187:5;:35::i;:::-;23257:13;;23241:12;;:29;;;;;;;:::i;:::-;;;;;;;;23305:1;23289:13;:17;;;;23335:8;23325:18;;;;;:::i;:::-;;;23069:290;22277:1104;23393:33;23409:4;23415:2;23419:6;23393:15;:33::i;:::-;19144:4290;;;;;19031:4403;;;;:::o;10737:191::-;10811:16;10830:6;;;;;;;;;;;10811:25;;10856:8;10847:6;;:17;;;;;;;;;;;;;;;;;;10911:8;10880:40;;10901:8;10880:40;;;;;;;;;;;;10800:128;10737:191;:::o;8791:98::-;8849:7;8880:1;8876;:5;;;;:::i;:::-;8869:12;;8791:98;;;;:::o;18126:130::-;18243:5;18209:25;:31;18235:4;18209:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18126:130;;:::o;5317:733::-;5475:1;5457:20;;:6;:20;;;;5449:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5559:1;5538:23;;:9;:23;;;;5530:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5614:47;5635:6;5643:9;5654:6;5614:20;:47::i;:::-;5674:21;5698:9;:17;5708:6;5698:17;;;;;;;;;;;;;;;;5674:41;;5751:6;5734:13;:23;;5726:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5872:6;5856:13;:22;5836:9;:17;5846:6;5836:17;;;;;;;;;;;;;;;:42;;;;5924:6;5900:9;:20;5910:9;5900:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5965:9;5948:35;;5957:6;5948:35;;;5976:6;5948:35;;;;;;:::i;:::-;;;;;;;;5996:46;6016:6;6024:9;6035:6;5996:19;:46::i;:::-;5438:612;5317:733;;;:::o;24566:459::-;24605:23;24631:24;24649:4;24631:9;:24::i;:::-;24605:50;;24666:12;24714:1;24695:15;:20;24692:34;;;24718:7;;;;24692:34;24781:2;24760:18;;:23;;;;:::i;:::-;24742:15;:41;24739:111;;;24836:2;24815:18;;:23;;;;:::i;:::-;24797:41;;24739:111;24862:34;24880:15;24862:17;:34::i;:::-;24928:1;24913:12;:16;;;;24964:9;;;;;;;;;;;24956:23;;24987:21;24956:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24943:70;;;;;24594:431;;24566:459;:::o;9003:98::-;9061:7;9092:1;9088;:5;;;;:::i;:::-;9081:12;;9003:98;;;;:::o;9109:::-;9167:7;9198:1;9194;:5;;;;:::i;:::-;9187:12;;9109:98;;;;:::o;6058:399::-;6161:1;6142:21;;:7;:21;;;;6134:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6212:49;6241:1;6245:7;6254:6;6212:20;:49::i;:::-;6290:6;6274:12;;:22;;;;;;;:::i;:::-;;;;;;;;6329:6;6307:9;:18;6317:7;6307:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;6372:7;6351:37;;6368:1;6351:37;;;6381:6;6351:37;;;;;;:::i;:::-;;;;;;;;6401:48;6429:1;6433:7;6442:6;6401:19;:48::i;:::-;6058:399;;:::o;6465:528::-;6568:1;6549:21;;:7;:21;;;;6541:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6621:49;6642:7;6659:1;6663:6;6621:20;:49::i;:::-;6683:22;6708:9;:18;6718:7;6708:18;;;;;;;;;;;;;;;;6683:43;;6763:6;6745:14;:24;;6737:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6882:6;6865:14;:23;6844:9;:18;6854:7;6844:18;;;;;;;;;;;;;;;:44;;;;6926:6;6910:12;;:22;;;;;;;:::i;:::-;;;;;;;;6974:1;6948:37;;6957:7;6948:37;;;6978:6;6948:37;;;;;;:::i;:::-;;;;;;;;6530:463;6465:528;;:::o;7389:125::-;;;;:::o;7522:124::-;;;;:::o;23442:590::-;23569:21;23607:1;23593:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23569:40;;23638:4;23620;23625:1;23620:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23664:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23654:4;23659:1;23654:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23699:62;23716:4;23731:15;23749:11;23699:8;:62::i;:::-;23800:15;:66;;;23881:11;23907:1;23951:4;23978;23998:15;23800:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23498:534;23442:590;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:307::-;1518:1;1528:113;1542:6;1539:1;1536:13;1528:113;;;1627:1;1622:3;1618:11;1612:18;1608:1;1603:3;1599:11;1592:39;1564:2;1561:1;1557:10;1552:15;;1528:113;;;1659:6;1656:1;1653:13;1650:101;;;1739:1;1730:6;1725:3;1721:16;1714:27;1650:101;1499:258;1450:307;;;:::o;1763:102::-;1804:6;1855:2;1851:7;1846:2;1839:5;1835:14;1831:28;1821:38;;1763:102;;;:::o;1871:364::-;1959:3;1987:39;2020:5;1987:39;:::i;:::-;2042:71;2106:6;2101:3;2042:71;:::i;:::-;2035:78;;2122:52;2167:6;2162:3;2155:4;2148:5;2144:16;2122:52;:::i;:::-;2199:29;2221:6;2199:29;:::i;:::-;2194:3;2190:39;2183:46;;1963:272;1871:364;;;;:::o;2241:313::-;2354:4;2392:2;2381:9;2377:18;2369:26;;2441:9;2435:4;2431:20;2427:1;2416:9;2412:17;2405:47;2469:78;2542:4;2533:6;2469:78;:::i;:::-;2461:86;;2241:313;;;;:::o;2560:126::-;2597:7;2637:42;2630:5;2626:54;2615:65;;2560:126;;;:::o;2692:96::-;2729:7;2758:24;2776:5;2758:24;:::i;:::-;2747:35;;2692:96;;;:::o;2794:122::-;2867:24;2885:5;2867:24;:::i;:::-;2860:5;2857:35;2847:63;;2906:1;2903;2896:12;2847:63;2794:122;:::o;2922:139::-;2968:5;3006:6;2993:20;2984:29;;3022:33;3049:5;3022:33;:::i;:::-;2922:139;;;;:::o;3067:474::-;3135:6;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3067:474;;;;;:::o;3547:90::-;3581:7;3624:5;3617:13;3610:21;3599:32;;3547:90;;;:::o;3643:109::-;3724:21;3739:5;3724:21;:::i;:::-;3719:3;3712:34;3643:109;;:::o;3758:210::-;3845:4;3883:2;3872:9;3868:18;3860:26;;3896:65;3958:1;3947:9;3943:17;3934:6;3896:65;:::i;:::-;3758:210;;;;:::o;3974:329::-;4033:6;4082:2;4070:9;4061:7;4057:23;4053:32;4050:119;;;4088:79;;:::i;:::-;4050:119;4208:1;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4179:117;3974:329;;;;:::o;4309:60::-;4337:3;4358:5;4351:12;;4309:60;;;:::o;4375:142::-;4425:9;4458:53;4476:34;4485:24;4503:5;4485:24;:::i;:::-;4476:34;:::i;:::-;4458:53;:::i;:::-;4445:66;;4375:142;;;:::o;4523:126::-;4573:9;4606:37;4637:5;4606:37;:::i;:::-;4593:50;;4523:126;;;:::o;4655:153::-;4732:9;4765:37;4796:5;4765:37;:::i;:::-;4752:50;;4655:153;;;:::o;4814:185::-;4928:64;4986:5;4928:64;:::i;:::-;4923:3;4916:77;4814:185;;:::o;5005:276::-;5125:4;5163:2;5152:9;5148:18;5140:26;;5176:98;5271:1;5260:9;5256:17;5247:6;5176:98;:::i;:::-;5005:276;;;;:::o;5287:118::-;5374:24;5392:5;5374:24;:::i;:::-;5369:3;5362:37;5287:118;;:::o;5411:222::-;5504:4;5542:2;5531:9;5527:18;5519:26;;5555:71;5623:1;5612:9;5608:17;5599:6;5555:71;:::i;:::-;5411:222;;;;:::o;5639:329::-;5698:6;5747:2;5735:9;5726:7;5722:23;5718:32;5715:119;;;5753:79;;:::i;:::-;5715:119;5873:1;5898:53;5943:7;5934:6;5923:9;5919:22;5898:53;:::i;:::-;5888:63;;5844:117;5639:329;;;;:::o;5974:619::-;6051:6;6059;6067;6116:2;6104:9;6095:7;6091:23;6087:32;6084:119;;;6122:79;;:::i;:::-;6084:119;6242:1;6267:53;6312:7;6303:6;6292:9;6288:22;6267:53;:::i;:::-;6257:63;;6213:117;6369:2;6395:53;6440:7;6431:6;6420:9;6416:22;6395:53;:::i;:::-;6385:63;;6340:118;6497:2;6523:53;6568:7;6559:6;6548:9;6544:22;6523:53;:::i;:::-;6513:63;;6468:118;5974:619;;;;;:::o;6599:118::-;6686:24;6704:5;6686:24;:::i;:::-;6681:3;6674:37;6599:118;;:::o;6723:222::-;6816:4;6854:2;6843:9;6839:18;6831:26;;6867:71;6935:1;6924:9;6920:17;6911:6;6867:71;:::i;:::-;6723:222;;;;:::o;6951:86::-;6986:7;7026:4;7019:5;7015:16;7004:27;;6951:86;;;:::o;7043:112::-;7126:22;7142:5;7126:22;:::i;:::-;7121:3;7114:35;7043:112;;:::o;7161:214::-;7250:4;7288:2;7277:9;7273:18;7265:26;;7301:67;7365:1;7354:9;7350:17;7341:6;7301:67;:::i;:::-;7161:214;;;;:::o;7381:117::-;7490:1;7487;7480:12;7504:180;7552:77;7549:1;7542:88;7649:4;7646:1;7639:15;7673:4;7670:1;7663:15;7690:281;7773:27;7795:4;7773:27;:::i;:::-;7765:6;7761:40;7903:6;7891:10;7888:22;7867:18;7855:10;7852:34;7849:62;7846:88;;;7914:18;;:::i;:::-;7846:88;7954:10;7950:2;7943:22;7733:238;7690:281;;:::o;7977:129::-;8011:6;8038:20;;:::i;:::-;8028:30;;8067:33;8095:4;8087:6;8067:33;:::i;:::-;7977:129;;;:::o;8112:311::-;8189:4;8279:18;8271:6;8268:30;8265:56;;;8301:18;;:::i;:::-;8265:56;8351:4;8343:6;8339:17;8331:25;;8411:4;8405;8401:15;8393:23;;8112:311;;;:::o;8429:117::-;8538:1;8535;8528:12;8569:710;8665:5;8690:81;8706:64;8763:6;8706:64;:::i;:::-;8690:81;:::i;:::-;8681:90;;8791:5;8820:6;8813:5;8806:21;8854:4;8847:5;8843:16;8836:23;;8907:4;8899:6;8895:17;8887:6;8883:30;8936:3;8928:6;8925:15;8922:122;;;8955:79;;:::i;:::-;8922:122;9070:6;9053:220;9087:6;9082:3;9079:15;9053:220;;;9162:3;9191:37;9224:3;9212:10;9191:37;:::i;:::-;9186:3;9179:50;9258:4;9253:3;9249:14;9242:21;;9129:144;9113:4;9108:3;9104:14;9097:21;;9053:220;;;9057:21;8671:608;;8569:710;;;;;:::o;9302:370::-;9373:5;9422:3;9415:4;9407:6;9403:17;9399:27;9389:122;;9430:79;;:::i;:::-;9389:122;9547:6;9534:20;9572:94;9662:3;9654:6;9647:4;9639:6;9635:17;9572:94;:::i;:::-;9563:103;;9379:293;9302:370;;;;:::o;9678:539::-;9762:6;9811:2;9799:9;9790:7;9786:23;9782:32;9779:119;;;9817:79;;:::i;:::-;9779:119;9965:1;9954:9;9950:17;9937:31;9995:18;9987:6;9984:30;9981:117;;;10017:79;;:::i;:::-;9981:117;10122:78;10192:7;10183:6;10172:9;10168:22;10122:78;:::i;:::-;10112:88;;9908:302;9678:539;;;;:::o;10223:116::-;10293:21;10308:5;10293:21;:::i;:::-;10286:5;10283:32;10273:60;;10329:1;10326;10319:12;10273:60;10223:116;:::o;10345:133::-;10388:5;10426:6;10413:20;10404:29;;10442:30;10466:5;10442:30;:::i;:::-;10345:133;;;;:::o;10484:468::-;10549:6;10557;10606:2;10594:9;10585:7;10581:23;10577:32;10574:119;;;10612:79;;:::i;:::-;10574:119;10732:1;10757:53;10802:7;10793:6;10782:9;10778:22;10757:53;:::i;:::-;10747:63;;10703:117;10859:2;10885:50;10927:7;10918:6;10907:9;10903:22;10885:50;:::i;:::-;10875:60;;10830:115;10484:468;;;;;:::o;10958:474::-;11026:6;11034;11083:2;11071:9;11062:7;11058:23;11054:32;11051:119;;;11089:79;;:::i;:::-;11051:119;11209:1;11234:53;11279:7;11270:6;11259:9;11255:22;11234:53;:::i;:::-;11224:63;;11180:117;11336:2;11362:53;11407:7;11398:6;11387:9;11383:22;11362:53;:::i;:::-;11352:63;;11307:118;10958:474;;;;;:::o;11438:180::-;11486:77;11483:1;11476:88;11583:4;11580:1;11573:15;11607:4;11604:1;11597:15;11624:305;11664:3;11683:20;11701:1;11683:20;:::i;:::-;11678:25;;11717:20;11735:1;11717:20;:::i;:::-;11712:25;;11871:1;11803:66;11799:74;11796:1;11793:81;11790:107;;;11877:18;;:::i;:::-;11790:107;11921:1;11918;11914:9;11907:16;;11624:305;;;;:::o;11935:179::-;12075:31;12071:1;12063:6;12059:14;12052:55;11935:179;:::o;12120:366::-;12262:3;12283:67;12347:2;12342:3;12283:67;:::i;:::-;12276:74;;12359:93;12448:3;12359:93;:::i;:::-;12477:2;12472:3;12468:12;12461:19;;12120:366;;;:::o;12492:419::-;12658:4;12696:2;12685:9;12681:18;12673:26;;12745:9;12739:4;12735:20;12731:1;12720:9;12716:17;12709:47;12773:131;12899:4;12773:131;:::i;:::-;12765:139;;12492:419;;;:::o;12917:180::-;12965:77;12962:1;12955:88;13062:4;13059:1;13052:15;13086:4;13083:1;13076:15;13103:320;13147:6;13184:1;13178:4;13174:12;13164:22;;13231:1;13225:4;13221:12;13252:18;13242:81;;13308:4;13300:6;13296:17;13286:27;;13242:81;13370:2;13362:6;13359:14;13339:18;13336:38;13333:84;;;13389:18;;:::i;:::-;13333:84;13154:269;13103:320;;;:::o;13429:182::-;13569:34;13565:1;13557:6;13553:14;13546:58;13429:182;:::o;13617:366::-;13759:3;13780:67;13844:2;13839:3;13780:67;:::i;:::-;13773:74;;13856:93;13945:3;13856:93;:::i;:::-;13974:2;13969:3;13965:12;13958:19;;13617:366;;;:::o;13989:419::-;14155:4;14193:2;14182:9;14178:18;14170:26;;14242:9;14236:4;14232:20;14228:1;14217:9;14213:17;14206:47;14270:131;14396:4;14270:131;:::i;:::-;14262:139;;13989:419;;;:::o;14414:348::-;14454:7;14477:20;14495:1;14477:20;:::i;:::-;14472:25;;14511:20;14529:1;14511:20;:::i;:::-;14506:25;;14699:1;14631:66;14627:74;14624:1;14621:81;14616:1;14609:9;14602:17;14598:105;14595:131;;;14706:18;;:::i;:::-;14595:131;14754:1;14751;14747:9;14736:20;;14414:348;;;;:::o;14768:180::-;14816:77;14813:1;14806:88;14913:4;14910:1;14903:15;14937:4;14934:1;14927:15;14954:185;14994:1;15011:20;15029:1;15011:20;:::i;:::-;15006:25;;15045:20;15063:1;15045:20;:::i;:::-;15040:25;;15084:1;15074:35;;15089:18;;:::i;:::-;15074:35;15131:1;15128;15124:9;15119:14;;14954:185;;;;:::o;15145:234::-;15285:34;15281:1;15273:6;15269:14;15262:58;15354:17;15349:2;15341:6;15337:15;15330:42;15145:234;:::o;15385:366::-;15527:3;15548:67;15612:2;15607:3;15548:67;:::i;:::-;15541:74;;15624:93;15713:3;15624:93;:::i;:::-;15742:2;15737:3;15733:12;15726:19;;15385:366;;;:::o;15757:419::-;15923:4;15961:2;15950:9;15946:18;15938:26;;16010:9;16004:4;16000:20;15996:1;15985:9;15981:17;15974:47;16038:131;16164:4;16038:131;:::i;:::-;16030:139;;15757:419;;;:::o;16182:227::-;16322:34;16318:1;16310:6;16306:14;16299:58;16391:10;16386:2;16378:6;16374:15;16367:35;16182:227;:::o;16415:366::-;16557:3;16578:67;16642:2;16637:3;16578:67;:::i;:::-;16571:74;;16654:93;16743:3;16654:93;:::i;:::-;16772:2;16767:3;16763:12;16756:19;;16415:366;;;:::o;16787:419::-;16953:4;16991:2;16980:9;16976:18;16968:26;;17040:9;17034:4;17030:20;17026:1;17015:9;17011:17;17004:47;17068:131;17194:4;17068:131;:::i;:::-;17060:139;;16787:419;;;:::o;17212:180::-;17260:77;17257:1;17250:88;17357:4;17354:1;17347:15;17381:4;17378:1;17371:15;17398:233;17437:3;17460:24;17478:5;17460:24;:::i;:::-;17451:33;;17506:66;17499:5;17496:77;17493:103;;;17576:18;;:::i;:::-;17493:103;17623:1;17616:5;17612:13;17605:20;;17398:233;;;:::o;17637:244::-;17777:34;17773:1;17765:6;17761:14;17754:58;17846:27;17841:2;17833:6;17829:15;17822:52;17637:244;:::o;17887:366::-;18029:3;18050:67;18114:2;18109:3;18050:67;:::i;:::-;18043:74;;18126:93;18215:3;18126:93;:::i;:::-;18244:2;18239:3;18235:12;18228:19;;17887:366;;;:::o;18259:419::-;18425:4;18463:2;18452:9;18448:18;18440:26;;18512:9;18506:4;18502:20;18498:1;18487:9;18483:17;18476:47;18540:131;18666:4;18540:131;:::i;:::-;18532:139;;18259:419;;;:::o;18684:224::-;18824:34;18820:1;18812:6;18808:14;18801:58;18893:7;18888:2;18880:6;18876:15;18869:32;18684:224;:::o;18914:366::-;19056:3;19077:67;19141:2;19136:3;19077:67;:::i;:::-;19070:74;;19153:93;19242:3;19153:93;:::i;:::-;19271:2;19266:3;19262:12;19255:19;;18914:366;;;:::o;19286:419::-;19452:4;19490:2;19479:9;19475:18;19467:26;;19539:9;19533:4;19529:20;19525:1;19514:9;19510:17;19503:47;19567:131;19693:4;19567:131;:::i;:::-;19559:139;;19286:419;;;:::o;19711:223::-;19851:34;19847:1;19839:6;19835:14;19828:58;19920:6;19915:2;19907:6;19903:15;19896:31;19711:223;:::o;19940:366::-;20082:3;20103:67;20167:2;20162:3;20103:67;:::i;:::-;20096:74;;20179:93;20268:3;20179:93;:::i;:::-;20297:2;20292:3;20288:12;20281:19;;19940:366;;;:::o;20312:419::-;20478:4;20516:2;20505:9;20501:18;20493:26;;20565:9;20559:4;20555:20;20551:1;20540:9;20536:17;20529:47;20593:131;20719:4;20593:131;:::i;:::-;20585:139;;20312:419;;;:::o;20737:240::-;20877:34;20873:1;20865:6;20861:14;20854:58;20946:23;20941:2;20933:6;20929:15;20922:48;20737:240;:::o;20983:366::-;21125:3;21146:67;21210:2;21205:3;21146:67;:::i;:::-;21139:74;;21222:93;21311:3;21222:93;:::i;:::-;21340:2;21335:3;21331:12;21324:19;;20983:366;;;:::o;21355:419::-;21521:4;21559:2;21548:9;21544:18;21536:26;;21608:9;21602:4;21598:20;21594:1;21583:9;21579:17;21572:47;21636:131;21762:4;21636:131;:::i;:::-;21628:139;;21355:419;;;:::o;21780:239::-;21920:34;21916:1;21908:6;21904:14;21897:58;21989:22;21984:2;21976:6;21972:15;21965:47;21780:239;:::o;22025:366::-;22167:3;22188:67;22252:2;22247:3;22188:67;:::i;:::-;22181:74;;22264:93;22353:3;22264:93;:::i;:::-;22382:2;22377:3;22373:12;22366:19;;22025:366;;;:::o;22397:419::-;22563:4;22601:2;22590:9;22586:18;22578:26;;22650:9;22644:4;22640:20;22636:1;22625:9;22621:17;22614:47;22678:131;22804:4;22678:131;:::i;:::-;22670:139;;22397:419;;;:::o;22822:225::-;22962:34;22958:1;22950:6;22946:14;22939:58;23031:8;23026:2;23018:6;23014:15;23007:33;22822:225;:::o;23053:366::-;23195:3;23216:67;23280:2;23275:3;23216:67;:::i;:::-;23209:74;;23292:93;23381:3;23292:93;:::i;:::-;23410:2;23405:3;23401:12;23394:19;;23053:366;;;:::o;23425:419::-;23591:4;23629:2;23618:9;23614:18;23606:26;;23678:9;23672:4;23668:20;23664:1;23653:9;23649:17;23642:47;23706:131;23832:4;23706:131;:::i;:::-;23698:139;;23425:419;;;:::o;23850:223::-;23990:34;23986:1;23978:6;23974:14;23967:58;24059:6;24054:2;24046:6;24042:15;24035:31;23850:223;:::o;24079:366::-;24221:3;24242:67;24306:2;24301:3;24242:67;:::i;:::-;24235:74;;24318:93;24407:3;24318:93;:::i;:::-;24436:2;24431:3;24427:12;24420:19;;24079:366;;;:::o;24451:419::-;24617:4;24655:2;24644:9;24640:18;24632:26;;24704:9;24698:4;24694:20;24690:1;24679:9;24675:17;24668:47;24732:131;24858:4;24732:131;:::i;:::-;24724:139;;24451:419;;;:::o;24876:221::-;25016:34;25012:1;25004:6;25000:14;24993:58;25085:4;25080:2;25072:6;25068:15;25061:29;24876:221;:::o;25103:366::-;25245:3;25266:67;25330:2;25325:3;25266:67;:::i;:::-;25259:74;;25342:93;25431:3;25342:93;:::i;:::-;25460:2;25455:3;25451:12;25444:19;;25103:366;;;:::o;25475:419::-;25641:4;25679:2;25668:9;25664:18;25656:26;;25728:9;25722:4;25718:20;25714:1;25703:9;25699:17;25692:47;25756:131;25882:4;25756:131;:::i;:::-;25748:139;;25475:419;;;:::o;25900:224::-;26040:34;26036:1;26028:6;26024:14;26017:58;26109:7;26104:2;26096:6;26092:15;26085:32;25900:224;:::o;26130:366::-;26272:3;26293:67;26357:2;26352:3;26293:67;:::i;:::-;26286:74;;26369:93;26458:3;26369:93;:::i;:::-;26487:2;26482:3;26478:12;26471:19;;26130:366;;;:::o;26502:419::-;26668:4;26706:2;26695:9;26691:18;26683:26;;26755:9;26749:4;26745:20;26741:1;26730:9;26726:17;26719:47;26783:131;26909:4;26783:131;:::i;:::-;26775:139;;26502:419;;;:::o;26927:222::-;27067:34;27063:1;27055:6;27051:14;27044:58;27136:5;27131:2;27123:6;27119:15;27112:30;26927:222;:::o;27155:366::-;27297:3;27318:67;27382:2;27377:3;27318:67;:::i;:::-;27311:74;;27394:93;27483:3;27394:93;:::i;:::-;27512:2;27507:3;27503:12;27496:19;;27155:366;;;:::o;27527:419::-;27693:4;27731:2;27720:9;27716:18;27708:26;;27780:9;27774:4;27770:20;27766:1;27755:9;27751:17;27744:47;27808:131;27934:4;27808:131;:::i;:::-;27800:139;;27527:419;;;:::o;27952:305::-;28092:34;28088:1;28080:6;28076:14;28069:58;28161:34;28156:2;28148:6;28144:15;28137:59;28230:19;28225:2;28217:6;28213:15;28206:44;27952:305;:::o;28263:366::-;28405:3;28426:67;28490:2;28485:3;28426:67;:::i;:::-;28419:74;;28502:93;28591:3;28502:93;:::i;:::-;28620:2;28615:3;28611:12;28604:19;;28263:366;;;:::o;28635:419::-;28801:4;28839:2;28828:9;28824:18;28816:26;;28888:9;28882:4;28878:20;28874:1;28863:9;28859:17;28852:47;28916:131;29042:4;28916:131;:::i;:::-;28908:139;;28635:419;;;:::o;29060:172::-;29200:24;29196:1;29188:6;29184:14;29177:48;29060:172;:::o;29238:366::-;29380:3;29401:67;29465:2;29460:3;29401:67;:::i;:::-;29394:74;;29477:93;29566:3;29477:93;:::i;:::-;29595:2;29590:3;29586:12;29579:19;;29238:366;;;:::o;29610:419::-;29776:4;29814:2;29803:9;29799:18;29791:26;;29863:9;29857:4;29853:20;29849:1;29838:9;29834:17;29827:47;29891:131;30017:4;29891:131;:::i;:::-;29883:139;;29610:419;;;:::o;30035:297::-;30175:34;30171:1;30163:6;30159:14;30152:58;30244:34;30239:2;30231:6;30227:15;30220:59;30313:11;30308:2;30300:6;30296:15;30289:36;30035:297;:::o;30338:366::-;30480:3;30501:67;30565:2;30560:3;30501:67;:::i;:::-;30494:74;;30577:93;30666:3;30577:93;:::i;:::-;30695:2;30690:3;30686:12;30679:19;;30338:366;;;:::o;30710:419::-;30876:4;30914:2;30903:9;30899:18;30891:26;;30963:9;30957:4;30953:20;30949:1;30938:9;30934:17;30927:47;30991:131;31117:4;30991:131;:::i;:::-;30983:139;;30710:419;;;:::o;31135:240::-;31275:34;31271:1;31263:6;31259:14;31252:58;31344:23;31339:2;31331:6;31327:15;31320:48;31135:240;:::o;31381:366::-;31523:3;31544:67;31608:2;31603:3;31544:67;:::i;:::-;31537:74;;31620:93;31709:3;31620:93;:::i;:::-;31738:2;31733:3;31729:12;31722:19;;31381:366;;;:::o;31753:419::-;31919:4;31957:2;31946:9;31942:18;31934:26;;32006:9;32000:4;31996:20;31992:1;31981:9;31977:17;31970:47;32034:131;32160:4;32034:131;:::i;:::-;32026:139;;31753:419;;;:::o;32178:169::-;32318:21;32314:1;32306:6;32302:14;32295:45;32178:169;:::o;32353:366::-;32495:3;32516:67;32580:2;32575:3;32516:67;:::i;:::-;32509:74;;32592:93;32681:3;32592:93;:::i;:::-;32710:2;32705:3;32701:12;32694:19;;32353:366;;;:::o;32725:419::-;32891:4;32929:2;32918:9;32914:18;32906:26;;32978:9;32972:4;32968:20;32964:1;32953:9;32949:17;32942:47;33006:131;33132:4;33006:131;:::i;:::-;32998:139;;32725:419;;;:::o;33150:241::-;33290:34;33286:1;33278:6;33274:14;33267:58;33359:24;33354:2;33346:6;33342:15;33335:49;33150:241;:::o;33397:366::-;33539:3;33560:67;33624:2;33619:3;33560:67;:::i;:::-;33553:74;;33636:93;33725:3;33636:93;:::i;:::-;33754:2;33749:3;33745:12;33738:19;;33397:366;;;:::o;33769:419::-;33935:4;33973:2;33962:9;33958:18;33950:26;;34022:9;34016:4;34012:20;34008:1;33997:9;33993:17;33986:47;34050:131;34176:4;34050:131;:::i;:::-;34042:139;;33769:419;;;:::o;34194:191::-;34234:4;34254:20;34272:1;34254:20;:::i;:::-;34249:25;;34288:20;34306:1;34288:20;:::i;:::-;34283:25;;34327:1;34324;34321:8;34318:34;;;34332:18;;:::i;:::-;34318:34;34377:1;34374;34370:9;34362:17;;34194:191;;;;:::o;34391:225::-;34531:34;34527:1;34519:6;34515:14;34508:58;34600:8;34595:2;34587:6;34583:15;34576:33;34391:225;:::o;34622:366::-;34764:3;34785:67;34849:2;34844:3;34785:67;:::i;:::-;34778:74;;34861:93;34950:3;34861:93;:::i;:::-;34979:2;34974:3;34970:12;34963:19;;34622:366;;;:::o;34994:419::-;35160:4;35198:2;35187:9;35183:18;35175:26;;35247:9;35241:4;35237:20;35233:1;35222:9;35218:17;35211:47;35275:131;35401:4;35275:131;:::i;:::-;35267:139;;34994:419;;;:::o;35419:147::-;35520:11;35557:3;35542:18;;35419:147;;;;:::o;35572:114::-;;:::o;35692:398::-;35851:3;35872:83;35953:1;35948:3;35872:83;:::i;:::-;35865:90;;35964:93;36053:3;35964:93;:::i;:::-;36082:1;36077:3;36073:11;36066:18;;35692:398;;;:::o;36096:379::-;36280:3;36302:147;36445:3;36302:147;:::i;:::-;36295:154;;36466:3;36459:10;;36096:379;;;:::o;36481:181::-;36621:33;36617:1;36609:6;36605:14;36598:57;36481:181;:::o;36668:366::-;36810:3;36831:67;36895:2;36890:3;36831:67;:::i;:::-;36824:74;;36907:93;36996:3;36907:93;:::i;:::-;37025:2;37020:3;37016:12;37009:19;;36668:366;;;:::o;37040:419::-;37206:4;37244:2;37233:9;37229:18;37221:26;;37293:9;37287:4;37283:20;37279:1;37268:9;37264:17;37257:47;37321:131;37447:4;37321:131;:::i;:::-;37313:139;;37040:419;;;:::o;37465:220::-;37605:34;37601:1;37593:6;37589:14;37582:58;37674:3;37669:2;37661:6;37657:15;37650:28;37465:220;:::o;37691:366::-;37833:3;37854:67;37918:2;37913:3;37854:67;:::i;:::-;37847:74;;37930:93;38019:3;37930:93;:::i;:::-;38048:2;38043:3;38039:12;38032:19;;37691:366;;;:::o;38063:419::-;38229:4;38267:2;38256:9;38252:18;38244:26;;38316:9;38310:4;38306:20;38302:1;38291:9;38287:17;38280:47;38344:131;38470:4;38344:131;:::i;:::-;38336:139;;38063:419;;;:::o;38488:221::-;38628:34;38624:1;38616:6;38612:14;38605:58;38697:4;38692:2;38684:6;38680:15;38673:29;38488:221;:::o;38715:366::-;38857:3;38878:67;38942:2;38937:3;38878:67;:::i;:::-;38871:74;;38954:93;39043:3;38954:93;:::i;:::-;39072:2;39067:3;39063:12;39056:19;;38715:366;;;:::o;39087:419::-;39253:4;39291:2;39280:9;39276:18;39268:26;;39340:9;39334:4;39330:20;39326:1;39315:9;39311:17;39304:47;39368:131;39494:4;39368:131;:::i;:::-;39360:139;;39087:419;;;:::o;39512:143::-;39569:5;39600:6;39594:13;39585:22;;39616:33;39643:5;39616:33;:::i;:::-;39512:143;;;;:::o;39661:351::-;39731:6;39780:2;39768:9;39759:7;39755:23;39751:32;39748:119;;;39786:79;;:::i;:::-;39748:119;39906:1;39931:64;39987:7;39978:6;39967:9;39963:22;39931:64;:::i;:::-;39921:74;;39877:128;39661:351;;;;:::o;40018:85::-;40063:7;40092:5;40081:16;;40018:85;;;:::o;40109:158::-;40167:9;40200:61;40218:42;40227:32;40253:5;40227:32;:::i;:::-;40218:42;:::i;:::-;40200:61;:::i;:::-;40187:74;;40109:158;;;:::o;40273:147::-;40368:45;40407:5;40368:45;:::i;:::-;40363:3;40356:58;40273:147;;:::o;40426:114::-;40493:6;40527:5;40521:12;40511:22;;40426:114;;;:::o;40546:184::-;40645:11;40679:6;40674:3;40667:19;40719:4;40714:3;40710:14;40695:29;;40546:184;;;;:::o;40736:132::-;40803:4;40826:3;40818:11;;40856:4;40851:3;40847:14;40839:22;;40736:132;;;:::o;40874:108::-;40951:24;40969:5;40951:24;:::i;:::-;40946:3;40939:37;40874:108;;:::o;40988:179::-;41057:10;41078:46;41120:3;41112:6;41078:46;:::i;:::-;41156:4;41151:3;41147:14;41133:28;;40988:179;;;;:::o;41173:113::-;41243:4;41275;41270:3;41266:14;41258:22;;41173:113;;;:::o;41322:732::-;41441:3;41470:54;41518:5;41470:54;:::i;:::-;41540:86;41619:6;41614:3;41540:86;:::i;:::-;41533:93;;41650:56;41700:5;41650:56;:::i;:::-;41729:7;41760:1;41745:284;41770:6;41767:1;41764:13;41745:284;;;41846:6;41840:13;41873:63;41932:3;41917:13;41873:63;:::i;:::-;41866:70;;41959:60;42012:6;41959:60;:::i;:::-;41949:70;;41805:224;41792:1;41789;41785:9;41780:14;;41745:284;;;41749:14;42045:3;42038:10;;41446:608;;;41322:732;;;;:::o;42060:831::-;42323:4;42361:3;42350:9;42346:19;42338:27;;42375:71;42443:1;42432:9;42428:17;42419:6;42375:71;:::i;:::-;42456:80;42532:2;42521:9;42517:18;42508:6;42456:80;:::i;:::-;42583:9;42577:4;42573:20;42568:2;42557:9;42553:18;42546:48;42611:108;42714:4;42705:6;42611:108;:::i;:::-;42603:116;;42729:72;42797:2;42786:9;42782:18;42773:6;42729:72;:::i;:::-;42811:73;42879:3;42868:9;42864:19;42855:6;42811:73;:::i;:::-;42060:831;;;;;;;;:::o
Swarm Source
ipfs://ae0cb21ff368be67b9164cf5be538e4649e223f3f546dfa22bd9ca87cdcc5145
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.