ERC-20
Overview
Max Total Supply
100,000,000 LEDGER
Holders
39
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
184,233.714549823851075473 LEDGERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LedgerAi
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-20 */ /* 888 888 d8888 8888888 d8888 888 888 d88888 888 d88888 888 888 d88P888 888 d88P888 888 .d88b. .d88888 .d88b. .d88b. 888d888 d88P 888 888 d88P 888 888 888 888d888 8888b. 888 d8P Y8b d88" 888 d88P"88b d8P Y8b 888P" d88P 888 888 d88P 888 888 888 888P" "88b 888 88888888 888 888 888 888 88888888 888 d88P 888 888 d88P 888 888 888 888 .d888888 888 Y8b. Y88b 888 Y88b 888 Y8b. 888 d8888888888 888 d8888888888 Y88b 888 888 888 888 88888888 "Y8888 "Y88888 "Y88888 "Y8888 888 d88P 888 8888888 88888888 d88P 888 "Y88888 888 "Y888888 888 Y8b d88P "Y88P" *OFFICIAL* Ledger Ai | Improve Governance, Reduce Risk, and Strengthen Outcomes Ticker: $LEDGER TG: @LedgerAI_Aura X: x.com/LedgerAI_Aura Web: http://ledgerai.co/ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { require(owner() == _msgSender(), "Invalid owner"); _; } function owner() public view virtual returns (address) { return _owner; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "New owner is ZERO"); _transferOwnership(newOwner); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { return 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 div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function tryDiv(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 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 sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return 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 sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address from, address to, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } contract ERC20 is IERC20, Context { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; 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 approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: Not owner != address(0)"); require(spender != address(0), "ERC20: Not spender != address(0)"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { _transfer(from, to, amount); uint256 curAllow = _allowances[from][_msgSender()]; require(curAllow >= amount, "ERC20: Not curAllow >= amount"); unchecked { _approve(from, _msgSender(), curAllow - amount); } return true; } function transfer(address to, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), to, amount); return true; } function increaseAllowance(address spender, uint256 addValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addValue); return true; } function decreaseAllowance(address spender, uint256 subValue) public virtual returns (bool) { uint256 curAllow = _allowances[_msgSender()][spender]; require(curAllow >= subValue, "ERC20: Not curAllow >= subValue"); unchecked { _approve(_msgSender(), spender, curAllow - subValue); } return true; } function _mint( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: Not account != address(0)"); _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: Not account != address(0)"); _beforeTokenTransfer(account, address(0), amount); uint256 kBalance = _balances[account]; require(kBalance >= amount, "ERC20: kBalance >= amount"); unchecked { _balances[account] = kBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _beforeTokenTransfer( address from, address to, uint256 amount) internal virtual { } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: Not from != address(0)"); require(to != address(0), "ERC20: Not to != address(0)"); _beforeTokenTransfer(from, to, amount); uint256 balanceFrom = _balances[from]; require(balanceFrom >= amount, "ERC20: Not balanceFrom >= amount"); unchecked { _balances[from] = balanceFrom - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _afterTokenTransfer( address from, address to, uint256 amount) internal virtual { // Nothing } } contract LedgerAi is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public swapRouter; address public swapPair; uint256 public minSwapTokenAmount; uint256 public maxTokenAmountPerWallet; uint256 public maxTokenAmountPerTxn; bool public bTradingActive = false; bool public bSwapEnabled = false; address public marketingWallet; address public devWallet; uint256 public tokenAmountForMarketing; uint256 public tokenAmountForDev; mapping(address => bool) public bExcludedMaxTokenAmountPerTxn; mapping(address => bool) public bExcludedFromTax; mapping(address => bool) public automatedMarketMakerPairs; bool public limitsInEffect = true; uint256 public sellTotalTax; uint256 public sellMarketingTax; uint256 public sellDevTax; uint256 public buyTotalTax; uint256 public buyMarketingTax; uint256 public buyDevTax; bool private bSwapping; struct StartTradingRequest { uint256 deadline; } mapping(address => bool) private blackList; constructor(address _devWallet, address _marketingWallet, address _swapRouter) ERC20("LedgerAI", "LEDGER"){ devWallet = address(_devWallet); marketingWallet = address(_marketingWallet); swapRouter = IUniswapV2Router02(_swapRouter); swapPair = IUniswapV2Factory(swapRouter.factory()).createPair(address(this), swapRouter.WETH()); bExcludedMaxTokenAmountPerTxn[owner()] = true; bExcludedMaxTokenAmountPerTxn[address(this)] = true; uint256 totalSupply = 100_000_000 * (10 ** decimals()); minSwapTokenAmount = (totalSupply * 5) / 40000; // 0.05% swap wallet maxTokenAmountPerTxn = (totalSupply * 2) / 200; // 1% from total supply max transaction amount maxTokenAmountPerWallet = (totalSupply * 2) / 200; // 1% from total supply max wallet amount bExcludedFromTax[address(this)] = true; bExcludedFromTax[owner()] = true; automatedMarketMakerPairs[address(swapPair)] = true; bExcludedMaxTokenAmountPerTxn[address(0xdead)] = true; bExcludedMaxTokenAmountPerTxn[address(swapRouter)] = true; bExcludedMaxTokenAmountPerTxn[address(swapPair)] = true; bExcludedFromTax[address(0xdead)] = true; sellMarketingTax = 12; sellDevTax = 12; sellTotalTax = sellMarketingTax + sellDevTax; buyMarketingTax = 12; buyDevTax = 12; buyTotalTax = buyMarketingTax + buyDevTax; _mint(msg.sender, totalSupply); } function updateDevWallet(address _devWallet) external onlyOwner { devWallet = _devWallet; } function updateMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = _marketingWallet; } function activateTrading() external onlyOwner { bTradingActive = true; bSwapEnabled = true; } function enableTrading() external { require(tx.origin == owner(), "Only owner can enable trading"); bTradingActive = true; bSwapEnabled = true; } function excludeFromMaxTokenAmountPerTxn(address addr, bool value) external onlyOwner { bExcludedMaxTokenAmountPerTxn[addr] = value; } function excludeFromTax(address account, bool value) external onlyOwner { bExcludedFromTax[account] = value; } function removeLimits() external onlyOwner { limitsInEffect = false; } function updateSwapEnabled(bool enabled) external onlyOwner { bSwapEnabled = enabled; } function updateMinimumSwapTokenAmount(uint256 amount) external onlyOwner { require(amount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(amount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply."); minSwapTokenAmount = amount; } function updateMaxTokensPerWallet(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerWallet lower than 0.5%"); maxTokenAmountPerWallet = newNum * (10 ** decimals()); } function updateMaxTokenAmountPerTxn(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerTxn lower than 0.1%"); maxTokenAmountPerTxn = newNum * (10 ** decimals()); } function setBlackList(address addr, bool enable) external onlyOwner { blackList[addr] = enable; } function updateBuyTax(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { buyMarketingTax = newMarketFee; buyDevTax = newDevFee; buyTotalTax = buyMarketingTax + buyDevTax; require(buyTotalTax <= 95, "Must keep tax at 95% or less"); } function updateSellTax(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { sellMarketingTax = newMarketFee; sellDevTax = newDevFee; sellTotalTax = sellMarketingTax + sellDevTax; require(sellTotalTax <= 95, "Must keep tax at 95% or less"); } function setAutomatedMarketMakerPairs(address pair, bool value) external onlyOwner { require(pair != swapPair, "The pair cannot be removed from automatedMarketMakerPairs"); automatedMarketMakerPairs[pair] = value; } function swapBack() private { bool success; uint256 tokenAmountToSwap = tokenAmountForMarketing + tokenAmountForDev; uint256 tokenBalance = balanceOf(address(this)); if (tokenAmountToSwap == 0 || tokenBalance == 0) return; if (tokenBalance > minSwapTokenAmount * 20) tokenBalance = minSwapTokenAmount * 20; uint256 prevETHBalance = address(this).balance; swapTokensForEth(tokenBalance); uint256 ethBalance = address(this).balance.sub(prevETHBalance); uint256 ethForDev = ethBalance.mul(tokenAmountForDev).div(tokenAmountToSwap); (success, ) = address(devWallet).call{value: ethForDev}(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); tokenAmountForMarketing = 0; tokenAmountForDev = 0; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: Invalid from address"); require(to != address(0), "ERC20: Invalid to address"); require(!blackList[from], "ERC20: from is black list"); require(!blackList[to], "ERC20: to is black list"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !bSwapping) { if (!bTradingActive) { require(bExcludedFromTax[from] || bExcludedFromTax[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !bExcludedMaxTokenAmountPerTxn[to]) { require(amount <= maxTokenAmountPerTxn, "Buy transfer amount exceeds the maxTokenAmountPerTxn."); require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !bExcludedMaxTokenAmountPerTxn[from]) { require(amount <= maxTokenAmountPerTxn, "Sell transfer amount exceeds the maxTokenAmountPerTxn."); } else if (!bExcludedMaxTokenAmountPerTxn[to]) { require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded"); } } } uint256 tokenBalance = balanceOf(address(this)); bool canSwap = tokenBalance >= minSwapTokenAmount; if (bSwapEnabled && canSwap && !bSwapping && !automatedMarketMakerPairs[from] && !bExcludedFromTax[from] && !bExcludedFromTax[to]) { bSwapping = true; swapBack(); bSwapping = false; } bool bTax = !bSwapping; if (bExcludedFromTax[from] || bExcludedFromTax[to]) bTax = false; uint256 fees = 0; if (bTax) { if (automatedMarketMakerPairs[to] && sellTotalTax > 0) { fees = amount.mul(sellTotalTax).div(100); tokenAmountForDev += (fees * sellDevTax) / sellTotalTax; tokenAmountForMarketing += (fees * sellMarketingTax) / sellTotalTax; } else if (automatedMarketMakerPairs[from] && buyTotalTax > 0) { fees = amount.mul(buyTotalTax).div(100); tokenAmountForDev += (fees * buyDevTax) / buyTotalTax; tokenAmountForMarketing += (fees * buyMarketingTax) / buyTotalTax; } if (fees > 0) super._transfer(from, address(this), fees); amount -= fees; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a < b) ? a : b; } receive() external payable {} function swapTokensForEth(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = swapRouter.WETH(); _approve(address(this), address(swapRouter), amount); // make the swap swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function withdrawEthPool() external onlyOwner() { bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } function emergencyWithdrawToken(address tokenAddress) external onlyOwner() { IERC20 token = IERC20(tokenAddress); uint256 balance = token.balanceOf(address(this)); token.transfer(msg.sender, balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_swapRouter","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"},{"inputs":[],"name":"activateTrading","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":"","type":"address"}],"name":"bExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bExcludedMaxTokenAmountPerTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bTradingActive","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":"buyDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"subValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"emergencyWithdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapTokenAmount","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokensPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMinimumSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEthPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506001601260006101000a81548160ff0219169083151502179055503480156200006257600080fd5b50604051620061ff380380620061ff833981810160405281019062000088919062000b7d565b6040518060400160405280600881526020017f4c656467657241490000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4c45444745520000000000000000000000000000000000000000000000000000815250816000908162000105919062000e53565b50806001908162000117919062000e53565b5050506200013a6200012e6200088f60201b60201c565b6200089760201b60201c565b82600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000291919062000f3a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000341919062000f3a565b6040518363ffffffff1660e01b81526004016200036092919062000f7d565b6020604051808303816000875af115801562000380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a6919062000f3a565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f6000620003fc6200095d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000620004b76200098760201b60201c565b600a620004c591906200113a565b6305f5e100620004d691906200118b565b9050619c40600582620004ea91906200118b565b620004f6919062001205565b60088190555060c86002826200050d91906200118b565b62000519919062001205565b600a8190555060c86002826200053091906200118b565b6200053c919062001205565b6009819055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000620005b06200095d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c601481905550600c6015819055506015546014546200084591906200123d565b601381905550600c601781905550600c6018819055506018546017546200086d91906200123d565b6016819055506200088533826200099060201b60201c565b5050505062001329565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f990620012d9565b60405180910390fd5b62000a166000838362000b0960201b60201c565b806002600082825462000a2a91906200123d565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a8291906200123d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000ae991906200130c565b60405180910390a362000b056000838362000b0e60201b60201c565b5050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b458262000b18565b9050919050565b62000b578162000b38565b811462000b6357600080fd5b50565b60008151905062000b778162000b4c565b92915050565b60008060006060848603121562000b995762000b9862000b13565b5b600062000ba98682870162000b66565b935050602062000bbc8682870162000b66565b925050604062000bcf8682870162000b66565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c5b57607f821691505b60208210810362000c715762000c7062000c13565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000cdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c9c565b62000ce7868362000c9c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d3462000d2e62000d288462000cff565b62000d09565b62000cff565b9050919050565b6000819050919050565b62000d508362000d13565b62000d6862000d5f8262000d3b565b84845462000ca9565b825550505050565b600090565b62000d7f62000d70565b62000d8c81848462000d45565b505050565b5b8181101562000db45762000da860008262000d75565b60018101905062000d92565b5050565b601f82111562000e035762000dcd8162000c77565b62000dd88462000c8c565b8101602085101562000de8578190505b62000e0062000df78562000c8c565b83018262000d91565b50505b505050565b600082821c905092915050565b600062000e286000198460080262000e08565b1980831691505092915050565b600062000e43838362000e15565b9150826002028217905092915050565b62000e5e8262000bd9565b67ffffffffffffffff81111562000e7a5762000e7962000be4565b5b62000e86825462000c42565b62000e9382828562000db8565b600060209050601f83116001811462000ecb576000841562000eb6578287015190505b62000ec2858262000e35565b86555062000f32565b601f19841662000edb8662000c77565b60005b8281101562000f055784890151825560018201915060208501945060208101905062000ede565b8683101562000f25578489015162000f21601f89168262000e15565b8355505b6001600288020188555050505b505050505050565b60006020828403121562000f535762000f5262000b13565b5b600062000f638482850162000b66565b91505092915050565b62000f778162000b38565b82525050565b600060408201905062000f94600083018562000f6c565b62000fa3602083018462000f6c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620010385780860481111562001010576200100f62000faa565b5b6001851615620010205780820291505b8081029050620010308562000fd9565b945062000ff0565b94509492505050565b60008262001053576001905062001126565b8162001063576000905062001126565b81600181146200107c57600281146200108757620010bd565b600191505062001126565b60ff8411156200109c576200109b62000faa565b5b8360020a915084821115620010b657620010b562000faa565b5b5062001126565b5060208310610133831016604e8410600b8410161715620010f75782820a905083811115620010f157620010f062000faa565b5b62001126565b62001106848484600162000fe6565b9250905081840481111562001120576200111f62000faa565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011478262000cff565b915062001154836200112d565b9250620011837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001041565b905092915050565b6000620011988262000cff565b9150620011a58362000cff565b9250828202620011b58162000cff565b91508282048414831517620011cf57620011ce62000faa565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012128262000cff565b91506200121f8362000cff565b925082620012325762001231620011d6565b5b828204905092915050565b60006200124a8262000cff565b9150620012578362000cff565b925082820190508082111562001272576200127162000faa565b5b92915050565b600082825260208201905092915050565b7f45524332303a204e6f74206163636f756e7420213d2061646472657373283029600082015250565b6000620012c160208362001278565b9150620012ce8262001289565b602082019050919050565b60006020820190508181036000830152620012f481620012b2565b9050919050565b620013068162000cff565b82525050565b6000602082019050620013236000830184620012fb565b92915050565b614ec680620013396000396000f3fe6080604052600436106103035760003560e01c806370a0823111610190578063af8f26e7116100dc578063c42c3f8811610095578063dd62ed3e1161006f578063dd62ed3e14610b43578063e27a55fe14610b80578063e96db1ef14610bab578063f2fde38b14610bd65761030a565b8063c42c3f8814610ac4578063c6a3064714610aef578063d929a08314610b185761030a565b8063af8f26e7146109b4578063b38d5ef4146109df578063b62496f514610a08578063b79c188614610a45578063be69188314610a6e578063c31c9c0714610a995761030a565b80638da5cb5b1161014957806395d89b411161012357806395d89b41146108e6578063a457c2d714610911578063a9059cbb1461094e578063aacebbe31461098b5761030a565b80638da5cb5b146108675780638ea5220f14610892578063924de9b7146108bd5761030a565b806370a082311461078f578063715018a6146107cc578063751039fc146107e357806375f0a874146107fa5780637d673170146108255780638a8c523c146108505761030a565b8063313ce5671161024f578063544d1ec91161020857806368092bd9116101e257806368092bd9146106d5578063685fbc6b146106fe5780636f498e21146107295780637070678b146107665761030a565b8063544d1ec9146106585780635df6e68e1461068157806367b740e9146106ac5761030a565b8063313ce567146105465780633301241114610571578063372b44b81461059c57806339509351146105c757806345167f26146106045780634a62bb651461062d5761030a565b80631816467f116102bc57806322f598351161029657806322f598351461047857806323b872dd146104b557806326991cc8146104f25780632c81355e1461051d5761030a565b80631816467f146103fb57806318c34be1146104245780631af032031461044f5761030a565b806306fdde031461030f578063095ea7b31461033a5780630bd05b69146103775780630e3d57eb1461038e578063151d8039146103a557806318160ddd146103d05761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610bff565b604051610331919061396d565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613a28565b610c91565b60405161036e9190613a83565b60405180910390f35b34801561038357600080fd5b5061038c610caf565b005b34801561039a57600080fd5b506103a3610d63565b005b3480156103b157600080fd5b506103ba610e50565b6040516103c79190613a83565b60405180910390f35b3480156103dc57600080fd5b506103e5610e63565b6040516103f29190613aad565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d9190613ac8565b610e6d565b005b34801561043057600080fd5b50610439610f2d565b6040516104469190613aad565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190613ac8565b610f33565b005b34801561048457600080fd5b5061049f600480360381019061049a9190613ac8565b6110b6565b6040516104ac9190613a83565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190613af5565b6110d6565b6040516104e99190613a83565b60405180910390f35b3480156104fe57600080fd5b506105076111ce565b6040516105149190613b57565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f9190613b72565b6111f4565b005b34801561055257600080fd5b5061055b611341565b6040516105689190613bbb565b60405180910390f35b34801561057d57600080fd5b5061058661134a565b6040516105939190613aad565b60405180910390f35b3480156105a857600080fd5b506105b1611350565b6040516105be9190613aad565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e99190613a28565b611356565b6040516105fb9190613a83565b60405180910390f35b34801561061057600080fd5b5061062b60048036038101906106269190613c02565b611402565b005b34801561063957600080fd5b50610642611569565b60405161064f9190613a83565b60405180910390f35b34801561066457600080fd5b5061067f600480360381019061067a9190613b72565b61157c565b005b34801561068d57600080fd5b506106966116a1565b6040516106a39190613aad565b60405180910390f35b3480156106b857600080fd5b506106d360048036038101906106ce9190613b72565b6116a7565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190613c02565b6117cc565b005b34801561070a57600080fd5b506107136118a3565b6040516107209190613aad565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190613ac8565b6118a9565b60405161075d9190613a83565b60405180910390f35b34801561077257600080fd5b5061078d60048036038101906107889190613c02565b6118c9565b005b34801561079b57600080fd5b506107b660048036038101906107b19190613ac8565b6119a0565b6040516107c39190613aad565b60405180910390f35b3480156107d857600080fd5b506107e16119e9565b005b3480156107ef57600080fd5b506107f8611a71565b005b34801561080657600080fd5b5061080f611b0a565b60405161081c9190613b57565b60405180910390f35b34801561083157600080fd5b5061083a611b30565b6040516108479190613aad565b60405180910390f35b34801561085c57600080fd5b50610865611b36565b005b34801561087357600080fd5b5061087c611be3565b6040516108899190613b57565b60405180910390f35b34801561089e57600080fd5b506108a7611c0d565b6040516108b49190613b57565b60405180910390f35b3480156108c957600080fd5b506108e460048036038101906108df9190613c42565b611c33565b005b3480156108f257600080fd5b506108fb611ccc565b604051610908919061396d565b60405180910390f35b34801561091d57600080fd5b5061093860048036038101906109339190613a28565b611d5e565b6040516109459190613a83565b60405180910390f35b34801561095a57600080fd5b5061097560048036038101906109709190613a28565b611e49565b6040516109829190613a83565b60405180910390f35b34801561099757600080fd5b506109b260048036038101906109ad9190613ac8565b611e67565b005b3480156109c057600080fd5b506109c9611f27565b6040516109d69190613aad565b60405180910390f35b3480156109eb57600080fd5b50610a066004803603810190610a019190613c6f565b611f2d565b005b348015610a1457600080fd5b50610a2f6004803603810190610a2a9190613ac8565b612017565b604051610a3c9190613a83565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a679190613c6f565b612037565b005b348015610a7a57600080fd5b50610a83612121565b604051610a909190613aad565b60405180910390f35b348015610aa557600080fd5b50610aae612127565b604051610abb9190613d0e565b60405180910390f35b348015610ad057600080fd5b50610ad961214d565b604051610ae69190613aad565b60405180910390f35b348015610afb57600080fd5b50610b166004803603810190610b119190613c02565b612153565b005b348015610b2457600080fd5b50610b2d61222a565b604051610b3a9190613a83565b60405180910390f35b348015610b4f57600080fd5b50610b6a6004803603810190610b659190613d29565b61223d565b604051610b779190613aad565b60405180910390f35b348015610b8c57600080fd5b50610b956122c4565b604051610ba29190613aad565b60405180910390f35b348015610bb757600080fd5b50610bc06122ca565b604051610bcd9190613aad565b60405180910390f35b348015610be257600080fd5b50610bfd6004803603810190610bf89190613ac8565b6122d0565b005b606060008054610c0e90613d98565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3a90613d98565b8015610c875780601f10610c5c57610100808354040283529160200191610c87565b820191906000526020600020905b815481529060010190602001808311610c6a57829003601f168201915b5050505050905090565b6000610ca5610c9e6123c7565b84846123cf565b6001905092915050565b610cb76123c7565b73ffffffffffffffffffffffffffffffffffffffff16610cd5611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290613e15565b60405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff021916908315150217905550565b610d6b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16610d89611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690613e15565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610e0590613e66565b60006040518083038185875af1925050503d8060008114610e42576040519150601f19603f3d011682016040523d82523d6000602084013e610e47565b606091505b50508091505050565b600b60019054906101000a900460ff1681565b6000600254905090565b610e756123c7565b73ffffffffffffffffffffffffffffffffffffffff16610e93611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090613e15565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b610f3b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16610f59611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690613e15565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fef9190613b57565b602060405180830381865afa15801561100c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110309190613e90565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161106d929190613ebd565b6020604051808303816000875af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190613efb565b50505050565b60106020528060005260406000206000915054906101000a900460ff1681565b60006110e3848484612598565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061112e6123c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590613f74565b60405180910390fd5b6111c2856111ba6123c7565b8584036123cf565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111fc6123c7565b73ffffffffffffffffffffffffffffffffffffffff1661121a611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790613e15565b60405180910390fd5b620186a0600161127e610e63565b6112889190613fc3565b6112929190614034565b8110156112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906140d7565b60405180910390fd5b6103e860056112e1610e63565b6112eb9190613fc3565b6112f59190614034565b811115611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90614169565b60405180910390fd5b8060088190555050565b60006012905090565b60175481565b600e5481565b60006113f86113636123c7565b8484600460006113716123c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f39190614189565b6123cf565b6001905092915050565b61140a6123c7565b73ffffffffffffffffffffffffffffffffffffffff16611428611be3565b73ffffffffffffffffffffffffffffffffffffffff161461147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147590613e15565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115059061422f565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6115846123c7565b73ffffffffffffffffffffffffffffffffffffffff166115a2611be3565b73ffffffffffffffffffffffffffffffffffffffff16146115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90613e15565b60405180910390fd5b611600611341565b600a61160c9190614382565b6103e86001611619610e63565b6116239190613fc3565b61162d9190614034565b6116379190614034565b811015611679576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116709061443f565b60405180910390fd5b611681611341565b600a61168d9190614382565b816116989190613fc3565b600a8190555050565b60165481565b6116af6123c7565b73ffffffffffffffffffffffffffffffffffffffff166116cd611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90613e15565b60405180910390fd5b61172b611341565b600a6117379190614382565b6103e86005611744610e63565b61174e9190613fc3565b6117589190614034565b6117629190614034565b8110156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906144d1565b60405180910390fd5b6117ac611341565b600a6117b89190614382565b816117c39190613fc3565b60098190555050565b6117d46123c7565b73ffffffffffffffffffffffffffffffffffffffff166117f2611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f90613e15565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b600f6020528060005260406000206000915054906101000a900460ff1681565b6118d16123c7565b73ffffffffffffffffffffffffffffffffffffffff166118ef611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c90613e15565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119f16123c7565b73ffffffffffffffffffffffffffffffffffffffff16611a0f611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c90613e15565b60405180910390fd5b611a6f600061311b565b565b611a796123c7565b73ffffffffffffffffffffffffffffffffffffffff16611a97611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae490613e15565b60405180910390fd5b6000601260006101000a81548160ff021916908315150217905550565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b611b3e611be3565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061453d565b60405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c3b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16611c59611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca690613e15565b60405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b606060018054611cdb90613d98565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0790613d98565b8015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b5050505050905090565b60008060046000611d6d6123c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e21906145a9565b60405180910390fd5b611e3e611e356123c7565b858584036123cf565b600191505092915050565b6000611e5d611e566123c7565b8484612598565b6001905092915050565b611e6f6123c7565b73ffffffffffffffffffffffffffffffffffffffff16611e8d611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda90613e15565b60405180910390fd5b80600b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b611f356123c7565b73ffffffffffffffffffffffffffffffffffffffff16611f53611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa090613e15565b60405180910390fd5b8160178190555080601881905550601854601754611fc79190614189565b601681905550605f6016541115612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90614615565b60405180910390fd5b5050565b60116020528060005260406000206000915054906101000a900460ff1681565b61203f6123c7565b73ffffffffffffffffffffffffffffffffffffffff1661205d611be3565b73ffffffffffffffffffffffffffffffffffffffff16146120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613e15565b60405180910390fd5b81601481905550806015819055506015546014546120d19190614189565b601381905550605f601354111561211d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211490614615565b60405180910390fd5b5050565b60155481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b61215b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16612179611be3565b73ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690613e15565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60145481565b6122d86123c7565b73ffffffffffffffffffffffffffffffffffffffff166122f6611be3565b73ffffffffffffffffffffffffffffffffffffffff161461234c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234390613e15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b290614681565b60405180910390fd5b6123c48161311b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906146ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a490614759565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161258b9190613aad565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fe906147c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266d90614831565b60405180910390fd5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fa9061489d565b60405180910390fd5b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790614909565b60405180910390fd5b600081036127a9576127a4838360006131e1565b613116565b601260009054906101000a900460ff1615612ca4576127c6611be3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128345750612804611be3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561286d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128a7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128c05750601960009054906101000a900460ff16155b15612ca357600b60009054906101000a900460ff166129ba57601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061297a5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6129b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b090614975565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a5d5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b0457600a54811115612aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9e90614a07565b60405180910390fd5b600954612ab3836119a0565b82612abe9190614189565b1115612aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af690614a73565b60405180910390fd5b612ca2565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ba75750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bf657600a54811115612bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be890614b05565b60405180910390fd5b612ca1565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ca057600954612c53836119a0565b82612c5e9190614189565b1115612c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9690614a73565b60405180910390fd5b5b5b5b5b5b6000612caf306119a0565b905060006008548210159050600b60019054906101000a900460ff168015612cd45750805b8015612ced5750601960009054906101000a900460ff16155b8015612d435750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d995750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612def5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e33576001601960006101000a81548160ff021916908315150217905550612e17613463565b6000601960006101000a81548160ff0219169083151502179055505b6000601960009054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ee95750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ef357600090505b6000811561310657601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f5657506000601354115b15612ff057612f836064612f756013548861364e90919063ffffffff16565b61366490919063ffffffff16565b905060135460155482612f969190613fc3565b612fa09190614034565b600e6000828254612fb19190614189565b9250508190555060135460145482612fc99190613fc3565b612fd39190614034565b600d6000828254612fe49190614189565b925050819055506130e2565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561304b57506000601654115b156130e157613078606461306a6016548861364e90919063ffffffff16565b61366490919063ffffffff16565b90506016546018548261308b9190613fc3565b6130959190614034565b600e60008282546130a69190614189565b92505081905550601654601754826130be9190613fc3565b6130c89190614034565b600d60008282546130d99190614189565b925050819055505b5b60008111156130f7576130f68730836131e1565b5b80856131039190614b25565b94505b6131118787876131e1565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324790614ba5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036132bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132b690614c11565b60405180910390fd5b6132ca83838361367a565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334890614c7d565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133e69190614189565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161344a9190613aad565b60405180910390a361345d84848461367f565b50505050565b600080600e54600d546134769190614189565b90506000613483306119a0565b905060008214806134945750600081145b156134a15750505061364c565b60146008546134b09190613fc3565b8111156134c95760146008546134c69190613fc3565b90505b60004790506134d782613684565b60006134ec82476138c790919063ffffffff16565b9050600061351785613509600e548561364e90919063ffffffff16565b61366490919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161355f90613e66565b60006040518083038185875af1925050503d806000811461359c576040519150601f19603f3d011682016040523d82523d6000602084013e6135a1565b606091505b505080965050600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516135ed90613e66565b60006040518083038185875af1925050503d806000811461362a576040519150601f19603f3d011682016040523d82523d6000602084013e61362f565b606091505b5050809650506000600d819055506000600e819055505050505050505b565b6000818361365c9190613fc3565b905092915050565b600081836136729190614034565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156136a1576136a0614c9d565b5b6040519080825280602002602001820160405280156136cf5781602001602082028036833780820191505090505b50905030816000815181106136e7576136e6614ccc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561378e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b29190614d10565b816001815181106137c6576137c5614ccc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061382d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123cf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613891959493929190614e36565b600060405180830381600087803b1580156138ab57600080fd5b505af11580156138bf573d6000803e3d6000fd5b505050505050565b600081836138d59190614b25565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139175780820151818401526020810190506138fc565b60008484015250505050565b6000601f19601f8301169050919050565b600061393f826138dd565b61394981856138e8565b93506139598185602086016138f9565b61396281613923565b840191505092915050565b600060208201905081810360008301526139878184613934565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006139bf82613994565b9050919050565b6139cf816139b4565b81146139da57600080fd5b50565b6000813590506139ec816139c6565b92915050565b6000819050919050565b613a05816139f2565b8114613a1057600080fd5b50565b600081359050613a22816139fc565b92915050565b60008060408385031215613a3f57613a3e61398f565b5b6000613a4d858286016139dd565b9250506020613a5e85828601613a13565b9150509250929050565b60008115159050919050565b613a7d81613a68565b82525050565b6000602082019050613a986000830184613a74565b92915050565b613aa7816139f2565b82525050565b6000602082019050613ac26000830184613a9e565b92915050565b600060208284031215613ade57613add61398f565b5b6000613aec848285016139dd565b91505092915050565b600080600060608486031215613b0e57613b0d61398f565b5b6000613b1c868287016139dd565b9350506020613b2d868287016139dd565b9250506040613b3e86828701613a13565b9150509250925092565b613b51816139b4565b82525050565b6000602082019050613b6c6000830184613b48565b92915050565b600060208284031215613b8857613b8761398f565b5b6000613b9684828501613a13565b91505092915050565b600060ff82169050919050565b613bb581613b9f565b82525050565b6000602082019050613bd06000830184613bac565b92915050565b613bdf81613a68565b8114613bea57600080fd5b50565b600081359050613bfc81613bd6565b92915050565b60008060408385031215613c1957613c1861398f565b5b6000613c27858286016139dd565b9250506020613c3885828601613bed565b9150509250929050565b600060208284031215613c5857613c5761398f565b5b6000613c6684828501613bed565b91505092915050565b60008060408385031215613c8657613c8561398f565b5b6000613c9485828601613a13565b9250506020613ca585828601613a13565b9150509250929050565b6000819050919050565b6000613cd4613ccf613cca84613994565b613caf565b613994565b9050919050565b6000613ce682613cb9565b9050919050565b6000613cf882613cdb565b9050919050565b613d0881613ced565b82525050565b6000602082019050613d236000830184613cff565b92915050565b60008060408385031215613d4057613d3f61398f565b5b6000613d4e858286016139dd565b9250506020613d5f858286016139dd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613db057607f821691505b602082108103613dc357613dc2613d69565b5b50919050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000613dff600d836138e8565b9150613e0a82613dc9565b602082019050919050565b60006020820190508181036000830152613e2e81613df2565b9050919050565b600081905092915050565b50565b6000613e50600083613e35565b9150613e5b82613e40565b600082019050919050565b6000613e7182613e43565b9150819050919050565b600081519050613e8a816139fc565b92915050565b600060208284031215613ea657613ea561398f565b5b6000613eb484828501613e7b565b91505092915050565b6000604082019050613ed26000830185613b48565b613edf6020830184613a9e565b9392505050565b600081519050613ef581613bd6565b92915050565b600060208284031215613f1157613f1061398f565b5b6000613f1f84828501613ee6565b91505092915050565b7f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e74000000600082015250565b6000613f5e601d836138e8565b9150613f6982613f28565b602082019050919050565b60006020820190508181036000830152613f8d81613f51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fce826139f2565b9150613fd9836139f2565b9250828202613fe7816139f2565b91508282048414831517613ffe57613ffd613f94565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061403f826139f2565b915061404a836139f2565b92508261405a57614059614005565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006140c16035836138e8565b91506140cc82614065565b604082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006141536034836138e8565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b6000614194826139f2565b915061419f836139f2565b92508282019050808211156141b7576141b6613f94565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006142196039836138e8565b9150614224826141bd565b604082019050919050565b600060208201905081810360008301526142488161420c565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156142a65780860481111561428257614281613f94565b5b60018516156142915780820291505b808102905061429f8561424f565b9450614266565b94509492505050565b6000826142bf576001905061437b565b816142cd576000905061437b565b81600181146142e357600281146142ed5761431c565b600191505061437b565b60ff8411156142ff576142fe613f94565b5b8360020a91508482111561431657614315613f94565b5b5061437b565b5060208310610133831016604e8410600b84101617156143515782820a90508381111561434c5761434b613f94565b5b61437b565b61435e848484600161425c565b9250905081840481111561437557614374613f94565b5b81810290505b9392505050565b600061438d826139f2565b915061439883613b9f565b92506143c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846142af565b905092915050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000614429602f836138e8565b9150614434826143cd565b604082019050919050565b600060208201905081810360008301526144588161441c565b9050919050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c60008201527f6574206c6f776572207468616e20302e35250000000000000000000000000000602082015250565b60006144bb6032836138e8565b91506144c68261445f565b604082019050919050565b600060208201905081810360008301526144ea816144ae565b9050919050565b7f4f6e6c79206f776e65722063616e20656e61626c652074726164696e67000000600082015250565b6000614527601d836138e8565b9150614532826144f1565b602082019050919050565b600060208201905081810360008301526145568161451a565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c756500600082015250565b6000614593601f836138e8565b915061459e8261455d565b602082019050919050565b600060208201905081810360008301526145c281614586565b9050919050565b7f4d757374206b6565702074617820617420393525206f72206c65737300000000600082015250565b60006145ff601c836138e8565b915061460a826145c9565b602082019050919050565b6000602082019050818103600083015261462e816145f2565b9050919050565b7f4e6577206f776e6572206973205a45524f000000000000000000000000000000600082015250565b600061466b6011836138e8565b915061467682614635565b602082019050919050565b6000602082019050818103600083015261469a8161465e565b9050919050565b7f45524332303a204e6f74206f776e657220213d20616464726573732830290000600082015250565b60006146d7601e836138e8565b91506146e2826146a1565b602082019050919050565b60006020820190508181036000830152614706816146ca565b9050919050565b7f45524332303a204e6f74207370656e64657220213d2061646472657373283029600082015250565b60006147436020836138e8565b915061474e8261470d565b602082019050919050565b6000602082019050818103600083015261477281614736565b9050919050565b7f45524332303a20496e76616c69642066726f6d20616464726573730000000000600082015250565b60006147af601b836138e8565b91506147ba82614779565b602082019050919050565b600060208201905081810360008301526147de816147a2565b9050919050565b7f45524332303a20496e76616c696420746f206164647265737300000000000000600082015250565b600061481b6019836138e8565b9150614826826147e5565b602082019050919050565b6000602082019050818103600083015261484a8161480e565b9050919050565b7f45524332303a2066726f6d20697320626c61636b206c69737400000000000000600082015250565b60006148876019836138e8565b915061489282614851565b602082019050919050565b600060208201905081810360008301526148b68161487a565b9050919050565b7f45524332303a20746f20697320626c61636b206c697374000000000000000000600082015250565b60006148f36017836138e8565b91506148fe826148bd565b602082019050919050565b60006020820190508181036000830152614922816148e6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061495f6016836138e8565b915061496a82614929565b602082019050919050565b6000602082019050818103600083015261498e81614952565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178546f6b656e416d6f756e7450657254786e2e0000000000000000000000602082015250565b60006149f16035836138e8565b91506149fc82614995565b604082019050919050565b60006020820190508181036000830152614a20816149e4565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614a5d6013836138e8565b9150614a6882614a27565b602082019050919050565b60006020820190508181036000830152614a8c81614a50565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178546f6b656e416d6f756e7450657254786e2e00000000000000000000602082015250565b6000614aef6036836138e8565b9150614afa82614a93565b604082019050919050565b60006020820190508181036000830152614b1e81614ae2565b9050919050565b6000614b30826139f2565b9150614b3b836139f2565b9250828203905081811115614b5357614b52613f94565b5b92915050565b7f45524332303a204e6f742066726f6d20213d2061646472657373283029000000600082015250565b6000614b8f601d836138e8565b9150614b9a82614b59565b602082019050919050565b60006020820190508181036000830152614bbe81614b82565b9050919050565b7f45524332303a204e6f7420746f20213d20616464726573732830290000000000600082015250565b6000614bfb601b836138e8565b9150614c0682614bc5565b602082019050919050565b60006020820190508181036000830152614c2a81614bee565b9050919050565b7f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e74600082015250565b6000614c676020836138e8565b9150614c7282614c31565b602082019050919050565b60006020820190508181036000830152614c9681614c5a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614d0a816139c6565b92915050565b600060208284031215614d2657614d2561398f565b5b6000614d3484828501614cfb565b91505092915050565b6000819050919050565b6000614d62614d5d614d5884614d3d565b613caf565b6139f2565b9050919050565b614d7281614d47565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614dad816139b4565b82525050565b6000614dbf8383614da4565b60208301905092915050565b6000602082019050919050565b6000614de382614d78565b614ded8185614d83565b9350614df883614d94565b8060005b83811015614e29578151614e108882614db3565b9750614e1b83614dcb565b925050600181019050614dfc565b5085935050505092915050565b600060a082019050614e4b6000830188613a9e565b614e586020830187614d69565b8181036040830152614e6a8186614dd8565b9050614e796060830185613b48565b614e866080830184613a9e565b969550505050505056fea2646970667358221220fa0e48d7bf9dccfbb574bc7acd89eaba0c033241f21a61a1dcf9e6e4027f810c64736f6c63430008110033000000000000000000000000d373e7a25908ae94b42076a7efaca32366065ba10000000000000000000000008506f29db7d25d89522fdf94cc622efd65d5f2d30000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106103035760003560e01c806370a0823111610190578063af8f26e7116100dc578063c42c3f8811610095578063dd62ed3e1161006f578063dd62ed3e14610b43578063e27a55fe14610b80578063e96db1ef14610bab578063f2fde38b14610bd65761030a565b8063c42c3f8814610ac4578063c6a3064714610aef578063d929a08314610b185761030a565b8063af8f26e7146109b4578063b38d5ef4146109df578063b62496f514610a08578063b79c188614610a45578063be69188314610a6e578063c31c9c0714610a995761030a565b80638da5cb5b1161014957806395d89b411161012357806395d89b41146108e6578063a457c2d714610911578063a9059cbb1461094e578063aacebbe31461098b5761030a565b80638da5cb5b146108675780638ea5220f14610892578063924de9b7146108bd5761030a565b806370a082311461078f578063715018a6146107cc578063751039fc146107e357806375f0a874146107fa5780637d673170146108255780638a8c523c146108505761030a565b8063313ce5671161024f578063544d1ec91161020857806368092bd9116101e257806368092bd9146106d5578063685fbc6b146106fe5780636f498e21146107295780637070678b146107665761030a565b8063544d1ec9146106585780635df6e68e1461068157806367b740e9146106ac5761030a565b8063313ce567146105465780633301241114610571578063372b44b81461059c57806339509351146105c757806345167f26146106045780634a62bb651461062d5761030a565b80631816467f116102bc57806322f598351161029657806322f598351461047857806323b872dd146104b557806326991cc8146104f25780632c81355e1461051d5761030a565b80631816467f146103fb57806318c34be1146104245780631af032031461044f5761030a565b806306fdde031461030f578063095ea7b31461033a5780630bd05b69146103775780630e3d57eb1461038e578063151d8039146103a557806318160ddd146103d05761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610bff565b604051610331919061396d565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613a28565b610c91565b60405161036e9190613a83565b60405180910390f35b34801561038357600080fd5b5061038c610caf565b005b34801561039a57600080fd5b506103a3610d63565b005b3480156103b157600080fd5b506103ba610e50565b6040516103c79190613a83565b60405180910390f35b3480156103dc57600080fd5b506103e5610e63565b6040516103f29190613aad565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d9190613ac8565b610e6d565b005b34801561043057600080fd5b50610439610f2d565b6040516104469190613aad565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190613ac8565b610f33565b005b34801561048457600080fd5b5061049f600480360381019061049a9190613ac8565b6110b6565b6040516104ac9190613a83565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190613af5565b6110d6565b6040516104e99190613a83565b60405180910390f35b3480156104fe57600080fd5b506105076111ce565b6040516105149190613b57565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f9190613b72565b6111f4565b005b34801561055257600080fd5b5061055b611341565b6040516105689190613bbb565b60405180910390f35b34801561057d57600080fd5b5061058661134a565b6040516105939190613aad565b60405180910390f35b3480156105a857600080fd5b506105b1611350565b6040516105be9190613aad565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e99190613a28565b611356565b6040516105fb9190613a83565b60405180910390f35b34801561061057600080fd5b5061062b60048036038101906106269190613c02565b611402565b005b34801561063957600080fd5b50610642611569565b60405161064f9190613a83565b60405180910390f35b34801561066457600080fd5b5061067f600480360381019061067a9190613b72565b61157c565b005b34801561068d57600080fd5b506106966116a1565b6040516106a39190613aad565b60405180910390f35b3480156106b857600080fd5b506106d360048036038101906106ce9190613b72565b6116a7565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190613c02565b6117cc565b005b34801561070a57600080fd5b506107136118a3565b6040516107209190613aad565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190613ac8565b6118a9565b60405161075d9190613a83565b60405180910390f35b34801561077257600080fd5b5061078d60048036038101906107889190613c02565b6118c9565b005b34801561079b57600080fd5b506107b660048036038101906107b19190613ac8565b6119a0565b6040516107c39190613aad565b60405180910390f35b3480156107d857600080fd5b506107e16119e9565b005b3480156107ef57600080fd5b506107f8611a71565b005b34801561080657600080fd5b5061080f611b0a565b60405161081c9190613b57565b60405180910390f35b34801561083157600080fd5b5061083a611b30565b6040516108479190613aad565b60405180910390f35b34801561085c57600080fd5b50610865611b36565b005b34801561087357600080fd5b5061087c611be3565b6040516108899190613b57565b60405180910390f35b34801561089e57600080fd5b506108a7611c0d565b6040516108b49190613b57565b60405180910390f35b3480156108c957600080fd5b506108e460048036038101906108df9190613c42565b611c33565b005b3480156108f257600080fd5b506108fb611ccc565b604051610908919061396d565b60405180910390f35b34801561091d57600080fd5b5061093860048036038101906109339190613a28565b611d5e565b6040516109459190613a83565b60405180910390f35b34801561095a57600080fd5b5061097560048036038101906109709190613a28565b611e49565b6040516109829190613a83565b60405180910390f35b34801561099757600080fd5b506109b260048036038101906109ad9190613ac8565b611e67565b005b3480156109c057600080fd5b506109c9611f27565b6040516109d69190613aad565b60405180910390f35b3480156109eb57600080fd5b50610a066004803603810190610a019190613c6f565b611f2d565b005b348015610a1457600080fd5b50610a2f6004803603810190610a2a9190613ac8565b612017565b604051610a3c9190613a83565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a679190613c6f565b612037565b005b348015610a7a57600080fd5b50610a83612121565b604051610a909190613aad565b60405180910390f35b348015610aa557600080fd5b50610aae612127565b604051610abb9190613d0e565b60405180910390f35b348015610ad057600080fd5b50610ad961214d565b604051610ae69190613aad565b60405180910390f35b348015610afb57600080fd5b50610b166004803603810190610b119190613c02565b612153565b005b348015610b2457600080fd5b50610b2d61222a565b604051610b3a9190613a83565b60405180910390f35b348015610b4f57600080fd5b50610b6a6004803603810190610b659190613d29565b61223d565b604051610b779190613aad565b60405180910390f35b348015610b8c57600080fd5b50610b956122c4565b604051610ba29190613aad565b60405180910390f35b348015610bb757600080fd5b50610bc06122ca565b604051610bcd9190613aad565b60405180910390f35b348015610be257600080fd5b50610bfd6004803603810190610bf89190613ac8565b6122d0565b005b606060008054610c0e90613d98565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3a90613d98565b8015610c875780601f10610c5c57610100808354040283529160200191610c87565b820191906000526020600020905b815481529060010190602001808311610c6a57829003601f168201915b5050505050905090565b6000610ca5610c9e6123c7565b84846123cf565b6001905092915050565b610cb76123c7565b73ffffffffffffffffffffffffffffffffffffffff16610cd5611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290613e15565b60405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff021916908315150217905550565b610d6b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16610d89611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690613e15565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610e0590613e66565b60006040518083038185875af1925050503d8060008114610e42576040519150601f19603f3d011682016040523d82523d6000602084013e610e47565b606091505b50508091505050565b600b60019054906101000a900460ff1681565b6000600254905090565b610e756123c7565b73ffffffffffffffffffffffffffffffffffffffff16610e93611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090613e15565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b610f3b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16610f59611be3565b73ffffffffffffffffffffffffffffffffffffffff1614610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690613e15565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fef9190613b57565b602060405180830381865afa15801561100c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110309190613e90565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161106d929190613ebd565b6020604051808303816000875af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190613efb565b50505050565b60106020528060005260406000206000915054906101000a900460ff1681565b60006110e3848484612598565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061112e6123c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590613f74565b60405180910390fd5b6111c2856111ba6123c7565b8584036123cf565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111fc6123c7565b73ffffffffffffffffffffffffffffffffffffffff1661121a611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790613e15565b60405180910390fd5b620186a0600161127e610e63565b6112889190613fc3565b6112929190614034565b8110156112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906140d7565b60405180910390fd5b6103e860056112e1610e63565b6112eb9190613fc3565b6112f59190614034565b811115611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90614169565b60405180910390fd5b8060088190555050565b60006012905090565b60175481565b600e5481565b60006113f86113636123c7565b8484600460006113716123c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f39190614189565b6123cf565b6001905092915050565b61140a6123c7565b73ffffffffffffffffffffffffffffffffffffffff16611428611be3565b73ffffffffffffffffffffffffffffffffffffffff161461147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147590613e15565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115059061422f565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6115846123c7565b73ffffffffffffffffffffffffffffffffffffffff166115a2611be3565b73ffffffffffffffffffffffffffffffffffffffff16146115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90613e15565b60405180910390fd5b611600611341565b600a61160c9190614382565b6103e86001611619610e63565b6116239190613fc3565b61162d9190614034565b6116379190614034565b811015611679576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116709061443f565b60405180910390fd5b611681611341565b600a61168d9190614382565b816116989190613fc3565b600a8190555050565b60165481565b6116af6123c7565b73ffffffffffffffffffffffffffffffffffffffff166116cd611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90613e15565b60405180910390fd5b61172b611341565b600a6117379190614382565b6103e86005611744610e63565b61174e9190613fc3565b6117589190614034565b6117629190614034565b8110156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906144d1565b60405180910390fd5b6117ac611341565b600a6117b89190614382565b816117c39190613fc3565b60098190555050565b6117d46123c7565b73ffffffffffffffffffffffffffffffffffffffff166117f2611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f90613e15565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b600f6020528060005260406000206000915054906101000a900460ff1681565b6118d16123c7565b73ffffffffffffffffffffffffffffffffffffffff166118ef611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c90613e15565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119f16123c7565b73ffffffffffffffffffffffffffffffffffffffff16611a0f611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c90613e15565b60405180910390fd5b611a6f600061311b565b565b611a796123c7565b73ffffffffffffffffffffffffffffffffffffffff16611a97611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae490613e15565b60405180910390fd5b6000601260006101000a81548160ff021916908315150217905550565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b611b3e611be3565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061453d565b60405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c3b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16611c59611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca690613e15565b60405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b606060018054611cdb90613d98565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0790613d98565b8015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b5050505050905090565b60008060046000611d6d6123c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e21906145a9565b60405180910390fd5b611e3e611e356123c7565b858584036123cf565b600191505092915050565b6000611e5d611e566123c7565b8484612598565b6001905092915050565b611e6f6123c7565b73ffffffffffffffffffffffffffffffffffffffff16611e8d611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda90613e15565b60405180910390fd5b80600b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b611f356123c7565b73ffffffffffffffffffffffffffffffffffffffff16611f53611be3565b73ffffffffffffffffffffffffffffffffffffffff1614611fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa090613e15565b60405180910390fd5b8160178190555080601881905550601854601754611fc79190614189565b601681905550605f6016541115612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90614615565b60405180910390fd5b5050565b60116020528060005260406000206000915054906101000a900460ff1681565b61203f6123c7565b73ffffffffffffffffffffffffffffffffffffffff1661205d611be3565b73ffffffffffffffffffffffffffffffffffffffff16146120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613e15565b60405180910390fd5b81601481905550806015819055506015546014546120d19190614189565b601381905550605f601354111561211d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211490614615565b60405180910390fd5b5050565b60155481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b61215b6123c7565b73ffffffffffffffffffffffffffffffffffffffff16612179611be3565b73ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690613e15565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60145481565b6122d86123c7565b73ffffffffffffffffffffffffffffffffffffffff166122f6611be3565b73ffffffffffffffffffffffffffffffffffffffff161461234c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234390613e15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b290614681565b60405180910390fd5b6123c48161311b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906146ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a490614759565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161258b9190613aad565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fe906147c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266d90614831565b60405180910390fd5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fa9061489d565b60405180910390fd5b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790614909565b60405180910390fd5b600081036127a9576127a4838360006131e1565b613116565b601260009054906101000a900460ff1615612ca4576127c6611be3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128345750612804611be3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561286d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128a7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128c05750601960009054906101000a900460ff16155b15612ca357600b60009054906101000a900460ff166129ba57601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061297a5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6129b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b090614975565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a5d5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b0457600a54811115612aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9e90614a07565b60405180910390fd5b600954612ab3836119a0565b82612abe9190614189565b1115612aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af690614a73565b60405180910390fd5b612ca2565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ba75750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bf657600a54811115612bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be890614b05565b60405180910390fd5b612ca1565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ca057600954612c53836119a0565b82612c5e9190614189565b1115612c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9690614a73565b60405180910390fd5b5b5b5b5b5b6000612caf306119a0565b905060006008548210159050600b60019054906101000a900460ff168015612cd45750805b8015612ced5750601960009054906101000a900460ff16155b8015612d435750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d995750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612def5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e33576001601960006101000a81548160ff021916908315150217905550612e17613463565b6000601960006101000a81548160ff0219169083151502179055505b6000601960009054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ee95750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ef357600090505b6000811561310657601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f5657506000601354115b15612ff057612f836064612f756013548861364e90919063ffffffff16565b61366490919063ffffffff16565b905060135460155482612f969190613fc3565b612fa09190614034565b600e6000828254612fb19190614189565b9250508190555060135460145482612fc99190613fc3565b612fd39190614034565b600d6000828254612fe49190614189565b925050819055506130e2565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561304b57506000601654115b156130e157613078606461306a6016548861364e90919063ffffffff16565b61366490919063ffffffff16565b90506016546018548261308b9190613fc3565b6130959190614034565b600e60008282546130a69190614189565b92505081905550601654601754826130be9190613fc3565b6130c89190614034565b600d60008282546130d99190614189565b925050819055505b5b60008111156130f7576130f68730836131e1565b5b80856131039190614b25565b94505b6131118787876131e1565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324790614ba5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036132bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132b690614c11565b60405180910390fd5b6132ca83838361367a565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334890614c7d565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133e69190614189565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161344a9190613aad565b60405180910390a361345d84848461367f565b50505050565b600080600e54600d546134769190614189565b90506000613483306119a0565b905060008214806134945750600081145b156134a15750505061364c565b60146008546134b09190613fc3565b8111156134c95760146008546134c69190613fc3565b90505b60004790506134d782613684565b60006134ec82476138c790919063ffffffff16565b9050600061351785613509600e548561364e90919063ffffffff16565b61366490919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161355f90613e66565b60006040518083038185875af1925050503d806000811461359c576040519150601f19603f3d011682016040523d82523d6000602084013e6135a1565b606091505b505080965050600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516135ed90613e66565b60006040518083038185875af1925050503d806000811461362a576040519150601f19603f3d011682016040523d82523d6000602084013e61362f565b606091505b5050809650506000600d819055506000600e819055505050505050505b565b6000818361365c9190613fc3565b905092915050565b600081836136729190614034565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156136a1576136a0614c9d565b5b6040519080825280602002602001820160405280156136cf5781602001602082028036833780820191505090505b50905030816000815181106136e7576136e6614ccc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561378e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b29190614d10565b816001815181106137c6576137c5614ccc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061382d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123cf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613891959493929190614e36565b600060405180830381600087803b1580156138ab57600080fd5b505af11580156138bf573d6000803e3d6000fd5b505050505050565b600081836138d59190614b25565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139175780820151818401526020810190506138fc565b60008484015250505050565b6000601f19601f8301169050919050565b600061393f826138dd565b61394981856138e8565b93506139598185602086016138f9565b61396281613923565b840191505092915050565b600060208201905081810360008301526139878184613934565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006139bf82613994565b9050919050565b6139cf816139b4565b81146139da57600080fd5b50565b6000813590506139ec816139c6565b92915050565b6000819050919050565b613a05816139f2565b8114613a1057600080fd5b50565b600081359050613a22816139fc565b92915050565b60008060408385031215613a3f57613a3e61398f565b5b6000613a4d858286016139dd565b9250506020613a5e85828601613a13565b9150509250929050565b60008115159050919050565b613a7d81613a68565b82525050565b6000602082019050613a986000830184613a74565b92915050565b613aa7816139f2565b82525050565b6000602082019050613ac26000830184613a9e565b92915050565b600060208284031215613ade57613add61398f565b5b6000613aec848285016139dd565b91505092915050565b600080600060608486031215613b0e57613b0d61398f565b5b6000613b1c868287016139dd565b9350506020613b2d868287016139dd565b9250506040613b3e86828701613a13565b9150509250925092565b613b51816139b4565b82525050565b6000602082019050613b6c6000830184613b48565b92915050565b600060208284031215613b8857613b8761398f565b5b6000613b9684828501613a13565b91505092915050565b600060ff82169050919050565b613bb581613b9f565b82525050565b6000602082019050613bd06000830184613bac565b92915050565b613bdf81613a68565b8114613bea57600080fd5b50565b600081359050613bfc81613bd6565b92915050565b60008060408385031215613c1957613c1861398f565b5b6000613c27858286016139dd565b9250506020613c3885828601613bed565b9150509250929050565b600060208284031215613c5857613c5761398f565b5b6000613c6684828501613bed565b91505092915050565b60008060408385031215613c8657613c8561398f565b5b6000613c9485828601613a13565b9250506020613ca585828601613a13565b9150509250929050565b6000819050919050565b6000613cd4613ccf613cca84613994565b613caf565b613994565b9050919050565b6000613ce682613cb9565b9050919050565b6000613cf882613cdb565b9050919050565b613d0881613ced565b82525050565b6000602082019050613d236000830184613cff565b92915050565b60008060408385031215613d4057613d3f61398f565b5b6000613d4e858286016139dd565b9250506020613d5f858286016139dd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613db057607f821691505b602082108103613dc357613dc2613d69565b5b50919050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000613dff600d836138e8565b9150613e0a82613dc9565b602082019050919050565b60006020820190508181036000830152613e2e81613df2565b9050919050565b600081905092915050565b50565b6000613e50600083613e35565b9150613e5b82613e40565b600082019050919050565b6000613e7182613e43565b9150819050919050565b600081519050613e8a816139fc565b92915050565b600060208284031215613ea657613ea561398f565b5b6000613eb484828501613e7b565b91505092915050565b6000604082019050613ed26000830185613b48565b613edf6020830184613a9e565b9392505050565b600081519050613ef581613bd6565b92915050565b600060208284031215613f1157613f1061398f565b5b6000613f1f84828501613ee6565b91505092915050565b7f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e74000000600082015250565b6000613f5e601d836138e8565b9150613f6982613f28565b602082019050919050565b60006020820190508181036000830152613f8d81613f51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fce826139f2565b9150613fd9836139f2565b9250828202613fe7816139f2565b91508282048414831517613ffe57613ffd613f94565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061403f826139f2565b915061404a836139f2565b92508261405a57614059614005565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006140c16035836138e8565b91506140cc82614065565b604082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006141536034836138e8565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b6000614194826139f2565b915061419f836139f2565b92508282019050808211156141b7576141b6613f94565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006142196039836138e8565b9150614224826141bd565b604082019050919050565b600060208201905081810360008301526142488161420c565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156142a65780860481111561428257614281613f94565b5b60018516156142915780820291505b808102905061429f8561424f565b9450614266565b94509492505050565b6000826142bf576001905061437b565b816142cd576000905061437b565b81600181146142e357600281146142ed5761431c565b600191505061437b565b60ff8411156142ff576142fe613f94565b5b8360020a91508482111561431657614315613f94565b5b5061437b565b5060208310610133831016604e8410600b84101617156143515782820a90508381111561434c5761434b613f94565b5b61437b565b61435e848484600161425c565b9250905081840481111561437557614374613f94565b5b81810290505b9392505050565b600061438d826139f2565b915061439883613b9f565b92506143c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846142af565b905092915050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000614429602f836138e8565b9150614434826143cd565b604082019050919050565b600060208201905081810360008301526144588161441c565b9050919050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c60008201527f6574206c6f776572207468616e20302e35250000000000000000000000000000602082015250565b60006144bb6032836138e8565b91506144c68261445f565b604082019050919050565b600060208201905081810360008301526144ea816144ae565b9050919050565b7f4f6e6c79206f776e65722063616e20656e61626c652074726164696e67000000600082015250565b6000614527601d836138e8565b9150614532826144f1565b602082019050919050565b600060208201905081810360008301526145568161451a565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c756500600082015250565b6000614593601f836138e8565b915061459e8261455d565b602082019050919050565b600060208201905081810360008301526145c281614586565b9050919050565b7f4d757374206b6565702074617820617420393525206f72206c65737300000000600082015250565b60006145ff601c836138e8565b915061460a826145c9565b602082019050919050565b6000602082019050818103600083015261462e816145f2565b9050919050565b7f4e6577206f776e6572206973205a45524f000000000000000000000000000000600082015250565b600061466b6011836138e8565b915061467682614635565b602082019050919050565b6000602082019050818103600083015261469a8161465e565b9050919050565b7f45524332303a204e6f74206f776e657220213d20616464726573732830290000600082015250565b60006146d7601e836138e8565b91506146e2826146a1565b602082019050919050565b60006020820190508181036000830152614706816146ca565b9050919050565b7f45524332303a204e6f74207370656e64657220213d2061646472657373283029600082015250565b60006147436020836138e8565b915061474e8261470d565b602082019050919050565b6000602082019050818103600083015261477281614736565b9050919050565b7f45524332303a20496e76616c69642066726f6d20616464726573730000000000600082015250565b60006147af601b836138e8565b91506147ba82614779565b602082019050919050565b600060208201905081810360008301526147de816147a2565b9050919050565b7f45524332303a20496e76616c696420746f206164647265737300000000000000600082015250565b600061481b6019836138e8565b9150614826826147e5565b602082019050919050565b6000602082019050818103600083015261484a8161480e565b9050919050565b7f45524332303a2066726f6d20697320626c61636b206c69737400000000000000600082015250565b60006148876019836138e8565b915061489282614851565b602082019050919050565b600060208201905081810360008301526148b68161487a565b9050919050565b7f45524332303a20746f20697320626c61636b206c697374000000000000000000600082015250565b60006148f36017836138e8565b91506148fe826148bd565b602082019050919050565b60006020820190508181036000830152614922816148e6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061495f6016836138e8565b915061496a82614929565b602082019050919050565b6000602082019050818103600083015261498e81614952565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178546f6b656e416d6f756e7450657254786e2e0000000000000000000000602082015250565b60006149f16035836138e8565b91506149fc82614995565b604082019050919050565b60006020820190508181036000830152614a20816149e4565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614a5d6013836138e8565b9150614a6882614a27565b602082019050919050565b60006020820190508181036000830152614a8c81614a50565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178546f6b656e416d6f756e7450657254786e2e00000000000000000000602082015250565b6000614aef6036836138e8565b9150614afa82614a93565b604082019050919050565b60006020820190508181036000830152614b1e81614ae2565b9050919050565b6000614b30826139f2565b9150614b3b836139f2565b9250828203905081811115614b5357614b52613f94565b5b92915050565b7f45524332303a204e6f742066726f6d20213d2061646472657373283029000000600082015250565b6000614b8f601d836138e8565b9150614b9a82614b59565b602082019050919050565b60006020820190508181036000830152614bbe81614b82565b9050919050565b7f45524332303a204e6f7420746f20213d20616464726573732830290000000000600082015250565b6000614bfb601b836138e8565b9150614c0682614bc5565b602082019050919050565b60006020820190508181036000830152614c2a81614bee565b9050919050565b7f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e74600082015250565b6000614c676020836138e8565b9150614c7282614c31565b602082019050919050565b60006020820190508181036000830152614c9681614c5a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614d0a816139c6565b92915050565b600060208284031215614d2657614d2561398f565b5b6000614d3484828501614cfb565b91505092915050565b6000819050919050565b6000614d62614d5d614d5884614d3d565b613caf565b6139f2565b9050919050565b614d7281614d47565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614dad816139b4565b82525050565b6000614dbf8383614da4565b60208301905092915050565b6000602082019050919050565b6000614de382614d78565b614ded8185614d83565b9350614df883614d94565b8060005b83811015614e29578151614e108882614db3565b9750614e1b83614dcb565b925050600181019050614dfc565b5085935050505092915050565b600060a082019050614e4b6000830188613a9e565b614e586020830187614d69565b8181036040830152614e6a8186614dd8565b9050614e796060830185613b48565b614e866080830184613a9e565b969550505050505056fea2646970667358221220fa0e48d7bf9dccfbb574bc7acd89eaba0c033241f21a61a1dcf9e6e4027f810c64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d373e7a25908ae94b42076a7efaca32366065ba10000000000000000000000008506f29db7d25d89522fdf94cc622efd65d5f2d30000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : _devWallet (address): 0xd373E7A25908AE94B42076a7eFAcA32366065BA1
Arg [1] : _marketingWallet (address): 0x8506f29Db7D25d89522fDf94cC622eFD65D5f2d3
Arg [2] : _swapRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d373e7a25908ae94b42076a7efaca32366065ba1
Arg [1] : 0000000000000000000000008506f29db7d25d89522fdf94cc622efd65d5f2d3
Arg [2] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
15497:10615:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11182:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11754:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18423:116;;;;;;;;;;;;;:::i;:::-;;25704:161;;;;;;;;;;;;;:::i;:::-;;15824:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11503:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18173:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15935:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25873:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16091:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12434:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15618:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19247:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11402:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16395:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15980:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13008:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20917:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16214:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19895:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16362:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19607:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20179:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15694:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16021:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18732:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11619:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2492:103;;;;;;;;;;;;;:::i;:::-;;19032:90;;;;;;;;;;;;;:::i;:::-;;15865:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15654:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18547:177;;;;;;;;;;;;;:::i;:::-;;2209:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15902:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19132:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11290:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13227:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12839:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18286:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16432:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20307:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16148:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20605:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16328:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15575:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15739:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18894:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15783:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12275:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16256:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16290:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2304:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11182:100;11236:13;11269:5;11262:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11182:100;:::o;11754:169::-;11837:4;11854:39;11863:12;:10;:12::i;:::-;11877:7;11886:6;11854:8;:39::i;:::-;11911:4;11904:11;;11754:169;;;;:::o;18423:116::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18497:4:::1;18480:14;;:21;;;;;;;;;;;;;;;;;;18527:4;18512:12;;:19;;;;;;;;;;;;;;;;;;18423:116::o:0;25704:161::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;25763:12:::1;25807:10;25799:24;;25831:21;25799:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25786:71;;;;;25752:113;25704:161::o:0;15824:32::-;;;;;;;;;;;;;:::o;11503:108::-;11564:7;11591:12;;11584:19;;11503:108;:::o;18173:105::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18260:10:::1;18248:9;;:22;;;;;;;;;;;;;;;;;;18173:105:::0;:::o;15935:38::-;;;;:::o;25873:234::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;25959:12:::1;25981;25959:35;;26005:15;26023:5;:15;;;26047:4;26023:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26005:48;;26064:5;:14;;;26079:10;26091:7;26064:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25948:159;;25873:234:::0;:::o;16091:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;12434:397::-;12531:4;12548:27;12558:4;12564:2;12568:6;12548:9;:27::i;:::-;12586:16;12605:11;:17;12617:4;12605:17;;;;;;;;;;;;;;;:31;12623:12;:10;:12::i;:::-;12605:31;;;;;;;;;;;;;;;;12586:50;;12667:6;12655:8;:18;;12647:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12743:47;12752:4;12758:12;:10;:12::i;:::-;12783:6;12772:8;:17;12743:8;:47::i;:::-;12819:4;12812:11;;;12434:397;;;;;:::o;15618:23::-;;;;;;;;;;;;;:::o;19247:352::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19377:6:::1;19372:1;19356:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19355:28;;;;:::i;:::-;19345:6;:38;;19337:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;19492:4;19487:1;19471:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19470:26;;;;:::i;:::-;19460:6;:36;;19452:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;19585:6;19564:18;:27;;;;19247:352:::0;:::o;11402:93::-;11460:5;11485:2;11478:9;;11402:93;:::o;16395:30::-;;;;:::o;15980:32::-;;;;:::o;13008:211::-;13094:4;13111:78;13120:12;:10;:12::i;:::-;13134:7;13180:8;13143:11;:25;13155:12;:10;:12::i;:::-;13143:25;;;;;;;;;;;;;;;:34;13169:7;13143:34;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;13111:8;:78::i;:::-;13207:4;13200:11;;13008:211;;;;:::o;20917:247::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;21036:8:::1;;;;;;;;;;;21028:16;;:4;:16;;::::0;21020:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21151:5;21117:25;:31;21143:4;21117:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20917:247:::0;;:::o;16214:33::-;;;;;;;;;;;;;:::o;19895:276::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;20039:10:::1;:8;:10::i;:::-;20033:2;:16;;;;:::i;:::-;20024:4;20019:1;20003:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20002:26;;;;:::i;:::-;20001:49;;;;:::i;:::-;19991:6;:59;;19983:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;20152:10;:8;:10::i;:::-;20146:2;:16;;;;:::i;:::-;20136:6;:27;;;;:::i;:::-;20113:20;:50;;;;19895:276:::0;:::o;16362:26::-;;;;:::o;19607:280::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19749:10:::1;:8;:10::i;:::-;19743:2;:16;;;;:::i;:::-;19734:4;19729:1;19713:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19712:26;;;;:::i;:::-;19711:49;;;;:::i;:::-;19701:6;:59;;19693:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;19868:10;:8;:10::i;:::-;19862:2;:16;;;;:::i;:::-;19852:6;:27;;;;:::i;:::-;19826:23;:53;;;;19607:280:::0;:::o;20179:120::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;20285:6:::1;20267:9;:15;20277:4;20267:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20179:120:::0;;:::o;15694:38::-;;;;:::o;16021:61::-;;;;;;;;;;;;;;;;;;;;;;:::o;18732:154::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18873:5:::1;18835:29;:35;18865:4;18835:35;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;18732:154:::0;;:::o;11619:127::-;11693:7;11720:9;:18;11730:7;11720:18;;;;;;;;;;;;;;;;11713:25;;11619:127;;;:::o;2492:103::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2557:30:::1;2584:1;2557:18;:30::i;:::-;2492:103::o:0;19032:90::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19109:5:::1;19092:14;;:22;;;;;;;;;;;;;;;;;;19032:90::o:0;15865:30::-;;;;;;;;;;;;;:::o;15654:33::-;;;;:::o;18547:177::-;18613:7;:5;:7::i;:::-;18600:20;;:9;:20;;;18592:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18682:4;18665:14;;:21;;;;;;;;;;;;;;;;;;18712:4;18697:12;;:19;;;;;;;;;;;;;;;;;;18547:177::o;2209:87::-;2255:7;2282:6;;;;;;;;;;;2275:13;;2209:87;:::o;15902:24::-;;;;;;;;;;;;;:::o;19132:107::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19224:7:::1;19209:12;;:22;;;;;;;;;;;;;;;;;;19132:107:::0;:::o;11290:104::-;11346:13;11379:7;11372:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11290:104;:::o;13227:360::-;13313:4;13330:16;13349:11;:25;13361:12;:10;:12::i;:::-;13349:25;;;;;;;;;;;;;;;:34;13375:7;13349:34;;;;;;;;;;;;;;;;13330:53;;13414:8;13402;:20;;13394:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13494:52;13503:12;:10;:12::i;:::-;13517:7;13537:8;13526;:19;13494:8;:52::i;:::-;13575:4;13568:11;;;13227:360;;;;:::o;12839:161::-;12918:4;12935:35;12945:12;:10;:12::i;:::-;12959:2;12963:6;12935:9;:35::i;:::-;12988:4;12981:11;;12839:161;;;;:::o;18286:129::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18391:16:::1;18373:15;;:34;;;;;;;;;;;;;;;;;;18286:129:::0;:::o;16432:24::-;;;;:::o;20307:290::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;20424:12:::1;20406:15;:30;;;;20459:9;20447;:21;;;;20511:9;;20493:15;;:27;;;;:::i;:::-;20479:11;:41;;;;20554:2;20539:11;;:17;;20531:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20307:290:::0;;:::o;16148:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;20605:300::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;20727:12:::1;20708:16;:31;;;;20763:9;20750:10;:22;;;;20817:10;;20798:16;;:29;;;;:::i;:::-;20783:12;:44;;;;20862:2;20846:12;;:18;;20838:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;20605:300:::0;;:::o;16328:25::-;;;;:::o;15575:36::-;;;;;;;;;;;;;:::o;15739:35::-;;;;:::o;18894:130::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19011:5:::1;18983:16;:25;19000:7;18983:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18894:130:::0;;:::o;15783:34::-;;;;;;;;;;;;;:::o;12275:151::-;12364:7;12391:11;:18;12403:5;12391:18;;;;;;;;;;;;;;;:27;12410:7;12391:27;;;;;;;;;;;;;;;;12384:34;;12275:151;;;;:::o;16256:27::-;;;;:::o;16290:31::-;;;;:::o;2304:180::-;2151:12;:10;:12::i;:::-;2140:23;;:7;:5;:7::i;:::-;:23;;;2132:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2413:1:::1;2393:22;;:8;:22;;::::0;2385:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2448:28;2467:8;2448:18;:28::i;:::-;2304:180:::0;:::o;1646:98::-;1699:7;1726:10;1719:17;;1646:98;:::o;11931:336::-;12050:1;12033:19;;:5;:19;;;12025:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12125:1;12106:21;;:7;:21;;;12098:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12205:6;12175:11;:18;12187:5;12175:18;;;;;;;;;;;;;;;:27;12194:7;12175:27;;;;;;;;;;;;;;;:36;;;;12243:7;12227:32;;12236:5;12227:32;;;12252:6;12227:32;;;;;;:::i;:::-;;;;;;;;11931:336;;;:::o;22064:2913::-;22212:1;22196:18;;:4;:18;;;22188:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;22279:1;22265:16;;:2;:16;;;22257:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;22331:9;:15;22341:4;22331:15;;;;;;;;;;;;;;;;;;;;;;;;;22330:16;22322:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;22396:9;:13;22406:2;22396:13;;;;;;;;;;;;;;;;;;;;;;;;;22395:14;22387:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;22464:1;22454:6;:11;22450:93;;22482:28;22498:4;22504:2;22508:1;22482:15;:28::i;:::-;22525:7;;22450:93;22559:14;;;;;;;;;;;22555:1085;;;22602:7;:5;:7::i;:::-;22594:15;;:4;:15;;;;:32;;;;;22619:7;:5;:7::i;:::-;22613:13;;:2;:13;;;;22594:32;:52;;;;;22644:1;22630:16;;:2;:16;;;;22594:52;:77;;;;;22664:6;22650:21;;:2;:21;;;;22594:77;:91;;;;;22676:9;;;;;;;;;;;22675:10;22594:91;22590:1039;;;22711:14;;;;;;;;;;;22706:145;;22758:16;:22;22775:4;22758:22;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;22784:16;:20;22801:2;22784:20;;;;;;;;;;;;;;;;;;;;;;;;;22758:46;22750:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;22706:145;22875:25;:31;22901:4;22875:31;;;;;;;;;;;;;;;;;;;;;;;;;:69;;;;;22911:29;:33;22941:2;22911:33;;;;;;;;;;;;;;;;;;;;;;;;;22910:34;22875:69;22871:743;;;22987:20;;22977:6;:30;;22969:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;23122:23;;23105:13;23115:2;23105:9;:13::i;:::-;23096:6;:22;;;;:::i;:::-;:49;;23088:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;22871:743;;;23216:25;:29;23242:2;23216:29;;;;;;;;;;;;;;;;;;;;;;;;;:69;;;;;23250:29;:35;23280:4;23250:35;;;;;;;;;;;;;;;;;;;;;;;;;23249:36;23216:69;23212:402;;;23328:20;;23318:6;:30;;23310:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;23212:402;;;23455:29;:33;23485:2;23455:33;;;;;;;;;;;;;;;;;;;;;;;;;23450:164;;23547:23;;23530:13;23540:2;23530:9;:13::i;:::-;23521:6;:22;;;;:::i;:::-;:49;;23513:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;23450:164;23212:402;22871:743;22590:1039;22555:1085;23652:20;23675:24;23693:4;23675:9;:24::i;:::-;23652:47;;23710:12;23741:18;;23725:12;:34;;23710:49;;23774:12;;;;;;;;;;;:23;;;;;23790:7;23774:23;:37;;;;;23802:9;;;;;;;;;;;23801:10;23774:37;:86;;;;;23829:25;:31;23855:4;23829:31;;;;;;;;;;;;;;;;;;;;;;;;;23828:32;23774:86;:113;;;;;23865:16;:22;23882:4;23865:22;;;;;;;;;;;;;;;;;;;;;;;;;23864:23;23774:113;:138;;;;;23892:16;:20;23909:2;23892:20;;;;;;;;;;;;;;;;;;;;;;;;;23891:21;23774:138;23770:244;;;23941:4;23929:9;;:16;;;;;;;;;;;;;;;;;;23960:10;:8;:10::i;:::-;23997:5;23985:9;;:17;;;;;;;;;;;;;;;;;;23770:244;24026:9;24039;;;;;;;;;;;24038:10;24026:22;;24063:16;:22;24080:4;24063:22;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;24089:16;:20;24106:2;24089:20;;;;;;;;;;;;;;;;;;;;;;;;;24063:46;24059:77;;;24131:5;24124:12;;24059:77;24149:12;24180:4;24176:748;;;24205:25;:29;24231:2;24205:29;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;;24253:1;24238:12;;:16;24205:49;24201:595;;;24282:33;24311:3;24282:24;24293:12;;24282:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;24275:40;;24377:12;;24363:10;;24356:4;:17;;;;:::i;:::-;24355:34;;;;:::i;:::-;24334:17;;:55;;;;;;;:::i;:::-;;;;;;;;24463:12;;24443:16;;24436:4;:23;;;;:::i;:::-;24435:40;;;;:::i;:::-;24408:23;;:67;;;;;;;:::i;:::-;;;;;;;;24201:595;;;24514:25;:31;24540:4;24514:31;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;24563:1;24549:11;;:15;24514:50;24510:286;;;24592:32;24620:3;24592:23;24603:11;;24592:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;24585:39;;24685:11;;24672:9;;24665:4;:16;;;;:::i;:::-;24664:32;;;;:::i;:::-;24643:17;;:53;;;;;;;:::i;:::-;;;;;;;;24769:11;;24750:15;;24743:4;:22;;;;:::i;:::-;24742:38;;;;:::i;:::-;24715:23;;:65;;;;;;;:::i;:::-;;;;;;;;24510:286;24201:595;24821:1;24814:4;:8;24810:73;;;24841:42;24857:4;24871;24878;24841:15;:42::i;:::-;24810:73;24908:4;24898:14;;;;;:::i;:::-;;;24176:748;24936:33;24952:4;24958:2;24962:6;24936:15;:33::i;:::-;22177:2800;;;;22064:2913;;;;:::o;2603:191::-;2677:16;2696:6;;;;;;;;;;;2677:25;;2722:8;2713:6;;:17;;;;;;;;;;;;;;;;;;2777:8;2746:40;;2767:8;2746:40;;;;;;;;;;;;2666:128;2603:191;:::o;14731:607::-;14844:1;14828:18;;:4;:18;;;14820:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14913:1;14899:16;;:2;:16;;;14891:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;14958:38;14979:4;14985:2;14989:6;14958:20;:38::i;:::-;15007:19;15029:9;:15;15039:4;15029:15;;;;;;;;;;;;;;;;15007:37;;15078:6;15063:11;:21;;15055:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15189:6;15175:11;:20;15157:9;:15;15167:4;15157:15;;;;;;;;;;;;;;;:38;;;;15234:6;15217:9;:13;15227:2;15217:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;15271:2;15256:26;;15265:4;15256:26;;;15275:6;15256:26;;;;;;:::i;:::-;;;;;;;;15293:37;15313:4;15319:2;15323:6;15293:19;:37::i;:::-;14809:529;14731:607;;;:::o;21172:884::-;21211:12;21234:25;21288:17;;21262:23;;:43;;;;:::i;:::-;21234:71;;21316:20;21339:24;21357:4;21339:9;:24::i;:::-;21316:47;;21401:1;21380:17;:22;:43;;;;21422:1;21406:12;:17;21380:43;21376:69;;;21438:7;;;;;21376:69;21497:2;21476:18;;:23;;;;:::i;:::-;21461:12;:38;21457:95;;;21550:2;21529:18;;:23;;;;:::i;:::-;21514:38;;21457:95;21565:22;21590:21;21565:46;;21622:30;21639:12;21622:16;:30::i;:::-;21665:18;21686:41;21712:14;21686:21;:25;;:41;;;;:::i;:::-;21665:62;;21738:17;21758:56;21796:17;21758:33;21773:17;;21758:10;:14;;:33;;;;:::i;:::-;:37;;:56;;;;:::i;:::-;21738:76;;21849:9;;;;;;;;;;;21841:23;;21872:9;21841:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21827:59;;;;;21919:15;;;;;;;;;;;21911:29;;21949:21;21911:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21897:79;;;;;22015:1;21989:23;:27;;;;22047:1;22027:17;:21;;;;21200:856;;;;;;21172:884;:::o;2825:98::-;2883:7;2914:1;2910;:5;;;;:::i;:::-;2903:12;;2825:98;;;;:::o;3209:::-;3267:7;3298:1;3294;:5;;;;:::i;:::-;3287:12;;3209:98;;;;:::o;14598:125::-;;;;:::o;15346:144::-;;;;:::o;25137:559::-;25258:21;25296:1;25282:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25258:40;;25327:4;25309;25314:1;25309:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25353:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25343:4;25348:1;25343:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;;;25383:52;25400:4;25415:10;;;;;;;;;;;25428:6;25383:8;:52::i;:::-;25474:10;;;;;;;;;;;:61;;;25550:6;25571:1;25615:4;25642;25662:15;25474:214;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25187:509;25137:559;:::o;3854:98::-;3912:7;3943:1;3939;:5;;;;:::i;:::-;3932:12;;3854:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:118::-;4845:24;4863:5;4845:24;:::i;:::-;4840:3;4833:37;4758:118;;:::o;4882:222::-;4975:4;5013:2;5002:9;4998:18;4990:26;;5026:71;5094:1;5083:9;5079:17;5070:6;5026:71;:::i;:::-;4882:222;;;;:::o;5110:329::-;5169:6;5218:2;5206:9;5197:7;5193:23;5189:32;5186:119;;;5224:79;;:::i;:::-;5186:119;5344:1;5369:53;5414:7;5405:6;5394:9;5390:22;5369:53;:::i;:::-;5359:63;;5315:117;5110:329;;;;:::o;5445:86::-;5480:7;5520:4;5513:5;5509:16;5498:27;;5445:86;;;:::o;5537:112::-;5620:22;5636:5;5620:22;:::i;:::-;5615:3;5608:35;5537:112;;:::o;5655:214::-;5744:4;5782:2;5771:9;5767:18;5759:26;;5795:67;5859:1;5848:9;5844:17;5835:6;5795:67;:::i;:::-;5655:214;;;;:::o;5875:116::-;5945:21;5960:5;5945:21;:::i;:::-;5938:5;5935:32;5925:60;;5981:1;5978;5971:12;5925:60;5875:116;:::o;5997:133::-;6040:5;6078:6;6065:20;6056:29;;6094:30;6118:5;6094:30;:::i;:::-;5997:133;;;;:::o;6136:468::-;6201:6;6209;6258:2;6246:9;6237:7;6233:23;6229:32;6226:119;;;6264:79;;:::i;:::-;6226:119;6384:1;6409:53;6454:7;6445:6;6434:9;6430:22;6409:53;:::i;:::-;6399:63;;6355:117;6511:2;6537:50;6579:7;6570:6;6559:9;6555:22;6537:50;:::i;:::-;6527:60;;6482:115;6136:468;;;;;:::o;6610:323::-;6666:6;6715:2;6703:9;6694:7;6690:23;6686:32;6683:119;;;6721:79;;:::i;:::-;6683:119;6841:1;6866:50;6908:7;6899:6;6888:9;6884:22;6866:50;:::i;:::-;6856:60;;6812:114;6610:323;;;;:::o;6939:474::-;7007:6;7015;7064:2;7052:9;7043:7;7039:23;7035:32;7032:119;;;7070:79;;:::i;:::-;7032:119;7190:1;7215:53;7260:7;7251:6;7240:9;7236:22;7215:53;:::i;:::-;7205:63;;7161:117;7317:2;7343:53;7388:7;7379:6;7368:9;7364:22;7343:53;:::i;:::-;7333:63;;7288:118;6939:474;;;;;:::o;7419:60::-;7447:3;7468:5;7461:12;;7419:60;;;:::o;7485:142::-;7535:9;7568:53;7586:34;7595:24;7613:5;7595:24;:::i;:::-;7586:34;:::i;:::-;7568:53;:::i;:::-;7555:66;;7485:142;;;:::o;7633:126::-;7683:9;7716:37;7747:5;7716:37;:::i;:::-;7703:50;;7633:126;;;:::o;7765:152::-;7841:9;7874:37;7905:5;7874:37;:::i;:::-;7861:50;;7765:152;;;:::o;7923:183::-;8036:63;8093:5;8036:63;:::i;:::-;8031:3;8024:76;7923:183;;:::o;8112:274::-;8231:4;8269:2;8258:9;8254:18;8246:26;;8282:97;8376:1;8365:9;8361:17;8352:6;8282:97;:::i;:::-;8112:274;;;;:::o;8392:474::-;8460:6;8468;8517:2;8505:9;8496:7;8492:23;8488:32;8485:119;;;8523:79;;:::i;:::-;8485:119;8643:1;8668:53;8713:7;8704:6;8693:9;8689:22;8668:53;:::i;:::-;8658:63;;8614:117;8770:2;8796:53;8841:7;8832:6;8821:9;8817:22;8796:53;:::i;:::-;8786:63;;8741:118;8392:474;;;;;:::o;8872:180::-;8920:77;8917:1;8910:88;9017:4;9014:1;9007:15;9041:4;9038:1;9031:15;9058:320;9102:6;9139:1;9133:4;9129:12;9119:22;;9186:1;9180:4;9176:12;9207:18;9197:81;;9263:4;9255:6;9251:17;9241:27;;9197:81;9325:2;9317:6;9314:14;9294:18;9291:38;9288:84;;9344:18;;:::i;:::-;9288:84;9109:269;9058:320;;;:::o;9384:163::-;9524:15;9520:1;9512:6;9508:14;9501:39;9384:163;:::o;9553:366::-;9695:3;9716:67;9780:2;9775:3;9716:67;:::i;:::-;9709:74;;9792:93;9881:3;9792:93;:::i;:::-;9910:2;9905:3;9901:12;9894:19;;9553:366;;;:::o;9925:419::-;10091:4;10129:2;10118:9;10114:18;10106:26;;10178:9;10172:4;10168:20;10164:1;10153:9;10149:17;10142:47;10206:131;10332:4;10206:131;:::i;:::-;10198:139;;9925:419;;;:::o;10350:147::-;10451:11;10488:3;10473:18;;10350:147;;;;:::o;10503:114::-;;:::o;10623:398::-;10782:3;10803:83;10884:1;10879:3;10803:83;:::i;:::-;10796:90;;10895:93;10984:3;10895:93;:::i;:::-;11013:1;11008:3;11004:11;10997:18;;10623:398;;;:::o;11027:379::-;11211:3;11233:147;11376:3;11233:147;:::i;:::-;11226:154;;11397:3;11390:10;;11027:379;;;:::o;11412:143::-;11469:5;11500:6;11494:13;11485:22;;11516:33;11543:5;11516:33;:::i;:::-;11412:143;;;;:::o;11561:351::-;11631:6;11680:2;11668:9;11659:7;11655:23;11651:32;11648:119;;;11686:79;;:::i;:::-;11648:119;11806:1;11831:64;11887:7;11878:6;11867:9;11863:22;11831:64;:::i;:::-;11821:74;;11777:128;11561:351;;;;:::o;11918:332::-;12039:4;12077:2;12066:9;12062:18;12054:26;;12090:71;12158:1;12147:9;12143:17;12134:6;12090:71;:::i;:::-;12171:72;12239:2;12228:9;12224:18;12215:6;12171:72;:::i;:::-;11918:332;;;;;:::o;12256:137::-;12310:5;12341:6;12335:13;12326:22;;12357:30;12381:5;12357:30;:::i;:::-;12256:137;;;;:::o;12399:345::-;12466:6;12515:2;12503:9;12494:7;12490:23;12486:32;12483:119;;;12521:79;;:::i;:::-;12483:119;12641:1;12666:61;12719:7;12710:6;12699:9;12695:22;12666:61;:::i;:::-;12656:71;;12612:125;12399:345;;;;:::o;12750:179::-;12890:31;12886:1;12878:6;12874:14;12867:55;12750:179;:::o;12935:366::-;13077:3;13098:67;13162:2;13157:3;13098:67;:::i;:::-;13091:74;;13174:93;13263:3;13174:93;:::i;:::-;13292:2;13287:3;13283:12;13276:19;;12935:366;;;:::o;13307:419::-;13473:4;13511:2;13500:9;13496:18;13488:26;;13560:9;13554:4;13550:20;13546:1;13535:9;13531:17;13524:47;13588:131;13714:4;13588:131;:::i;:::-;13580:139;;13307:419;;;:::o;13732:180::-;13780:77;13777:1;13770:88;13877:4;13874:1;13867:15;13901:4;13898:1;13891:15;13918:410;13958:7;13981:20;13999:1;13981:20;:::i;:::-;13976:25;;14015:20;14033:1;14015:20;:::i;:::-;14010:25;;14070:1;14067;14063:9;14092:30;14110:11;14092:30;:::i;:::-;14081:41;;14271:1;14262:7;14258:15;14255:1;14252:22;14232:1;14225:9;14205:83;14182:139;;14301:18;;:::i;:::-;14182:139;13966:362;13918:410;;;;:::o;14334:180::-;14382:77;14379:1;14372:88;14479:4;14476:1;14469:15;14503:4;14500:1;14493:15;14520:185;14560:1;14577:20;14595:1;14577:20;:::i;:::-;14572:25;;14611:20;14629:1;14611:20;:::i;:::-;14606:25;;14650:1;14640:35;;14655:18;;:::i;:::-;14640:35;14697:1;14694;14690:9;14685:14;;14520:185;;;;:::o;14711:240::-;14851:34;14847:1;14839:6;14835:14;14828:58;14920:23;14915:2;14907:6;14903:15;14896:48;14711:240;:::o;14957:366::-;15099:3;15120:67;15184:2;15179:3;15120:67;:::i;:::-;15113:74;;15196:93;15285:3;15196:93;:::i;:::-;15314:2;15309:3;15305:12;15298:19;;14957:366;;;:::o;15329:419::-;15495:4;15533:2;15522:9;15518:18;15510:26;;15582:9;15576:4;15572:20;15568:1;15557:9;15553:17;15546:47;15610:131;15736:4;15610:131;:::i;:::-;15602:139;;15329:419;;;:::o;15754:239::-;15894:34;15890:1;15882:6;15878:14;15871:58;15963:22;15958:2;15950:6;15946:15;15939:47;15754:239;:::o;15999:366::-;16141:3;16162:67;16226:2;16221:3;16162:67;:::i;:::-;16155:74;;16238:93;16327:3;16238:93;:::i;:::-;16356:2;16351:3;16347:12;16340:19;;15999:366;;;:::o;16371:419::-;16537:4;16575:2;16564:9;16560:18;16552:26;;16624:9;16618:4;16614:20;16610:1;16599:9;16595:17;16588:47;16652:131;16778:4;16652:131;:::i;:::-;16644:139;;16371:419;;;:::o;16796:191::-;16836:3;16855:20;16873:1;16855:20;:::i;:::-;16850:25;;16889:20;16907:1;16889:20;:::i;:::-;16884:25;;16932:1;16929;16925:9;16918:16;;16953:3;16950:1;16947:10;16944:36;;;16960:18;;:::i;:::-;16944:36;16796:191;;;;:::o;16993:244::-;17133:34;17129:1;17121:6;17117:14;17110:58;17202:27;17197:2;17189:6;17185:15;17178:52;16993:244;:::o;17243:366::-;17385:3;17406:67;17470:2;17465:3;17406:67;:::i;:::-;17399:74;;17482:93;17571:3;17482:93;:::i;:::-;17600:2;17595:3;17591:12;17584:19;;17243:366;;;:::o;17615:419::-;17781:4;17819:2;17808:9;17804:18;17796:26;;17868:9;17862:4;17858:20;17854:1;17843:9;17839:17;17832:47;17896:131;18022:4;17896:131;:::i;:::-;17888:139;;17615:419;;;:::o;18040:102::-;18082:8;18129:5;18126:1;18122:13;18101:34;;18040:102;;;:::o;18148:848::-;18209:5;18216:4;18240:6;18231:15;;18264:5;18255:14;;18278:712;18299:1;18289:8;18286:15;18278:712;;;18394:4;18389:3;18385:14;18379:4;18376:24;18373:50;;;18403:18;;:::i;:::-;18373:50;18453:1;18443:8;18439:16;18436:451;;;18868:4;18861:5;18857:16;18848:25;;18436:451;18918:4;18912;18908:15;18900:23;;18948:32;18971:8;18948:32;:::i;:::-;18936:44;;18278:712;;;18148:848;;;;;;;:::o;19002:1073::-;19056:5;19247:8;19237:40;;19268:1;19259:10;;19270:5;;19237:40;19296:4;19286:36;;19313:1;19304:10;;19315:5;;19286:36;19382:4;19430:1;19425:27;;;;19466:1;19461:191;;;;19375:277;;19425:27;19443:1;19434:10;;19445:5;;;19461:191;19506:3;19496:8;19493:17;19490:43;;;19513:18;;:::i;:::-;19490:43;19562:8;19559:1;19555:16;19546:25;;19597:3;19590:5;19587:14;19584:40;;;19604:18;;:::i;:::-;19584:40;19637:5;;;19375:277;;19761:2;19751:8;19748:16;19742:3;19736:4;19733:13;19729:36;19711:2;19701:8;19698:16;19693:2;19687:4;19684:12;19680:35;19664:111;19661:246;;;19817:8;19811:4;19807:19;19798:28;;19852:3;19845:5;19842:14;19839:40;;;19859:18;;:::i;:::-;19839:40;19892:5;;19661:246;19932:42;19970:3;19960:8;19954:4;19951:1;19932:42;:::i;:::-;19917:57;;;;20006:4;20001:3;19997:14;19990:5;19987:25;19984:51;;;20015:18;;:::i;:::-;19984:51;20064:4;20057:5;20053:16;20044:25;;19002:1073;;;;;;:::o;20081:281::-;20139:5;20163:23;20181:4;20163:23;:::i;:::-;20155:31;;20207:25;20223:8;20207:25;:::i;:::-;20195:37;;20251:104;20288:66;20278:8;20272:4;20251:104;:::i;:::-;20242:113;;20081:281;;;;:::o;20368:234::-;20508:34;20504:1;20496:6;20492:14;20485:58;20577:17;20572:2;20564:6;20560:15;20553:42;20368:234;:::o;20608:366::-;20750:3;20771:67;20835:2;20830:3;20771:67;:::i;:::-;20764:74;;20847:93;20936:3;20847:93;:::i;:::-;20965:2;20960:3;20956:12;20949:19;;20608:366;;;:::o;20980:419::-;21146:4;21184:2;21173:9;21169:18;21161:26;;21233:9;21227:4;21223:20;21219:1;21208:9;21204:17;21197:47;21261:131;21387:4;21261:131;:::i;:::-;21253:139;;20980:419;;;:::o;21405:237::-;21545:34;21541:1;21533:6;21529:14;21522:58;21614:20;21609:2;21601:6;21597:15;21590:45;21405:237;:::o;21648:366::-;21790:3;21811:67;21875:2;21870:3;21811:67;:::i;:::-;21804:74;;21887:93;21976:3;21887:93;:::i;:::-;22005:2;22000:3;21996:12;21989:19;;21648:366;;;:::o;22020:419::-;22186:4;22224:2;22213:9;22209:18;22201:26;;22273:9;22267:4;22263:20;22259:1;22248:9;22244:17;22237:47;22301:131;22427:4;22301:131;:::i;:::-;22293:139;;22020:419;;;:::o;22445:179::-;22585:31;22581:1;22573:6;22569:14;22562:55;22445:179;:::o;22630:366::-;22772:3;22793:67;22857:2;22852:3;22793:67;:::i;:::-;22786:74;;22869:93;22958:3;22869:93;:::i;:::-;22987:2;22982:3;22978:12;22971:19;;22630:366;;;:::o;23002:419::-;23168:4;23206:2;23195:9;23191:18;23183:26;;23255:9;23249:4;23245:20;23241:1;23230:9;23226:17;23219:47;23283:131;23409:4;23283:131;:::i;:::-;23275:139;;23002:419;;;:::o;23427:181::-;23567:33;23563:1;23555:6;23551:14;23544:57;23427:181;:::o;23614:366::-;23756:3;23777:67;23841:2;23836:3;23777:67;:::i;:::-;23770:74;;23853:93;23942:3;23853:93;:::i;:::-;23971:2;23966:3;23962:12;23955:19;;23614:366;;;:::o;23986:419::-;24152:4;24190:2;24179:9;24175:18;24167:26;;24239:9;24233:4;24229:20;24225:1;24214:9;24210:17;24203:47;24267:131;24393:4;24267:131;:::i;:::-;24259:139;;23986:419;;;:::o;24411:178::-;24551:30;24547:1;24539:6;24535:14;24528:54;24411:178;:::o;24595:366::-;24737:3;24758:67;24822:2;24817:3;24758:67;:::i;:::-;24751:74;;24834:93;24923:3;24834:93;:::i;:::-;24952:2;24947:3;24943:12;24936:19;;24595:366;;;:::o;24967:419::-;25133:4;25171:2;25160:9;25156:18;25148:26;;25220:9;25214:4;25210:20;25206:1;25195:9;25191:17;25184:47;25248:131;25374:4;25248:131;:::i;:::-;25240:139;;24967:419;;;:::o;25392:167::-;25532:19;25528:1;25520:6;25516:14;25509:43;25392:167;:::o;25565:366::-;25707:3;25728:67;25792:2;25787:3;25728:67;:::i;:::-;25721:74;;25804:93;25893:3;25804:93;:::i;:::-;25922:2;25917:3;25913:12;25906:19;;25565:366;;;:::o;25937:419::-;26103:4;26141:2;26130:9;26126:18;26118:26;;26190:9;26184:4;26180:20;26176:1;26165:9;26161:17;26154:47;26218:131;26344:4;26218:131;:::i;:::-;26210:139;;25937:419;;;:::o;26362:180::-;26502:32;26498:1;26490:6;26486:14;26479:56;26362:180;:::o;26548:366::-;26690:3;26711:67;26775:2;26770:3;26711:67;:::i;:::-;26704:74;;26787:93;26876:3;26787:93;:::i;:::-;26905:2;26900:3;26896:12;26889:19;;26548:366;;;:::o;26920:419::-;27086:4;27124:2;27113:9;27109:18;27101:26;;27173:9;27167:4;27163:20;27159:1;27148:9;27144:17;27137:47;27201:131;27327:4;27201:131;:::i;:::-;27193:139;;26920:419;;;:::o;27345:182::-;27485:34;27481:1;27473:6;27469:14;27462:58;27345:182;:::o;27533:366::-;27675:3;27696:67;27760:2;27755:3;27696:67;:::i;:::-;27689:74;;27772:93;27861:3;27772:93;:::i;:::-;27890:2;27885:3;27881:12;27874:19;;27533:366;;;:::o;27905:419::-;28071:4;28109:2;28098:9;28094:18;28086:26;;28158:9;28152:4;28148:20;28144:1;28133:9;28129:17;28122:47;28186:131;28312:4;28186:131;:::i;:::-;28178:139;;27905:419;;;:::o;28330:177::-;28470:29;28466:1;28458:6;28454:14;28447:53;28330:177;:::o;28513:366::-;28655:3;28676:67;28740:2;28735:3;28676:67;:::i;:::-;28669:74;;28752:93;28841:3;28752:93;:::i;:::-;28870:2;28865:3;28861:12;28854:19;;28513:366;;;:::o;28885:419::-;29051:4;29089:2;29078:9;29074:18;29066:26;;29138:9;29132:4;29128:20;29124:1;29113:9;29109:17;29102:47;29166:131;29292:4;29166:131;:::i;:::-;29158:139;;28885:419;;;:::o;29310:175::-;29450:27;29446:1;29438:6;29434:14;29427:51;29310:175;:::o;29491:366::-;29633:3;29654:67;29718:2;29713:3;29654:67;:::i;:::-;29647:74;;29730:93;29819:3;29730:93;:::i;:::-;29848:2;29843:3;29839:12;29832:19;;29491:366;;;:::o;29863:419::-;30029:4;30067:2;30056:9;30052:18;30044:26;;30116:9;30110:4;30106:20;30102:1;30091:9;30087:17;30080:47;30144:131;30270:4;30144:131;:::i;:::-;30136:139;;29863:419;;;:::o;30288:175::-;30428:27;30424:1;30416:6;30412:14;30405:51;30288:175;:::o;30469:366::-;30611:3;30632:67;30696:2;30691:3;30632:67;:::i;:::-;30625:74;;30708:93;30797:3;30708:93;:::i;:::-;30826:2;30821:3;30817:12;30810:19;;30469:366;;;:::o;30841:419::-;31007:4;31045:2;31034:9;31030:18;31022:26;;31094:9;31088:4;31084:20;31080:1;31069:9;31065:17;31058:47;31122:131;31248:4;31122:131;:::i;:::-;31114:139;;30841:419;;;:::o;31266:173::-;31406:25;31402:1;31394:6;31390:14;31383:49;31266:173;:::o;31445:366::-;31587:3;31608:67;31672:2;31667:3;31608:67;:::i;:::-;31601:74;;31684:93;31773:3;31684:93;:::i;:::-;31802:2;31797:3;31793:12;31786:19;;31445:366;;;:::o;31817:419::-;31983:4;32021:2;32010:9;32006:18;31998:26;;32070:9;32064:4;32060:20;32056:1;32045:9;32041:17;32034:47;32098:131;32224:4;32098:131;:::i;:::-;32090:139;;31817:419;;;:::o;32242:172::-;32382:24;32378:1;32370:6;32366:14;32359:48;32242:172;:::o;32420:366::-;32562:3;32583:67;32647:2;32642:3;32583:67;:::i;:::-;32576:74;;32659:93;32748:3;32659:93;:::i;:::-;32777:2;32772:3;32768:12;32761:19;;32420:366;;;:::o;32792:419::-;32958:4;32996:2;32985:9;32981:18;32973:26;;33045:9;33039:4;33035:20;33031:1;33020:9;33016:17;33009:47;33073:131;33199:4;33073:131;:::i;:::-;33065:139;;32792:419;;;:::o;33217:240::-;33357:34;33353:1;33345:6;33341:14;33334:58;33426:23;33421:2;33413:6;33409:15;33402:48;33217:240;:::o;33463:366::-;33605:3;33626:67;33690:2;33685:3;33626:67;:::i;:::-;33619:74;;33702:93;33791:3;33702:93;:::i;:::-;33820:2;33815:3;33811:12;33804:19;;33463:366;;;:::o;33835:419::-;34001:4;34039:2;34028:9;34024:18;34016:26;;34088:9;34082:4;34078:20;34074:1;34063:9;34059:17;34052:47;34116:131;34242:4;34116:131;:::i;:::-;34108:139;;33835:419;;;:::o;34260:169::-;34400:21;34396:1;34388:6;34384:14;34377:45;34260:169;:::o;34435:366::-;34577:3;34598:67;34662:2;34657:3;34598:67;:::i;:::-;34591:74;;34674:93;34763:3;34674:93;:::i;:::-;34792:2;34787:3;34783:12;34776:19;;34435:366;;;:::o;34807:419::-;34973:4;35011:2;35000:9;34996:18;34988:26;;35060:9;35054:4;35050:20;35046:1;35035:9;35031:17;35024:47;35088:131;35214:4;35088:131;:::i;:::-;35080:139;;34807:419;;;:::o;35232:241::-;35372:34;35368:1;35360:6;35356:14;35349:58;35441:24;35436:2;35428:6;35424:15;35417:49;35232:241;:::o;35479:366::-;35621:3;35642:67;35706:2;35701:3;35642:67;:::i;:::-;35635:74;;35718:93;35807:3;35718:93;:::i;:::-;35836:2;35831:3;35827:12;35820:19;;35479:366;;;:::o;35851:419::-;36017:4;36055:2;36044:9;36040:18;36032:26;;36104:9;36098:4;36094:20;36090:1;36079:9;36075:17;36068:47;36132:131;36258:4;36132:131;:::i;:::-;36124:139;;35851:419;;;:::o;36276:194::-;36316:4;36336:20;36354:1;36336:20;:::i;:::-;36331:25;;36370:20;36388:1;36370:20;:::i;:::-;36365:25;;36414:1;36411;36407:9;36399:17;;36438:1;36432:4;36429:11;36426:37;;;36443:18;;:::i;:::-;36426:37;36276:194;;;;:::o;36476:179::-;36616:31;36612:1;36604:6;36600:14;36593:55;36476:179;:::o;36661:366::-;36803:3;36824:67;36888:2;36883:3;36824:67;:::i;:::-;36817:74;;36900:93;36989:3;36900:93;:::i;:::-;37018:2;37013:3;37009:12;37002:19;;36661:366;;;:::o;37033:419::-;37199:4;37237:2;37226:9;37222:18;37214:26;;37286:9;37280:4;37276:20;37272:1;37261:9;37257:17;37250:47;37314:131;37440:4;37314:131;:::i;:::-;37306:139;;37033:419;;;:::o;37458:177::-;37598:29;37594:1;37586:6;37582:14;37575:53;37458:177;:::o;37641:366::-;37783:3;37804:67;37868:2;37863:3;37804:67;:::i;:::-;37797:74;;37880:93;37969:3;37880:93;:::i;:::-;37998:2;37993:3;37989:12;37982:19;;37641:366;;;:::o;38013:419::-;38179:4;38217:2;38206:9;38202:18;38194:26;;38266:9;38260:4;38256:20;38252:1;38241:9;38237:17;38230:47;38294:131;38420:4;38294:131;:::i;:::-;38286:139;;38013:419;;;:::o;38438:182::-;38578:34;38574:1;38566:6;38562:14;38555:58;38438:182;:::o;38626:366::-;38768:3;38789:67;38853:2;38848:3;38789:67;:::i;:::-;38782:74;;38865:93;38954:3;38865:93;:::i;:::-;38983:2;38978:3;38974:12;38967:19;;38626:366;;;:::o;38998:419::-;39164:4;39202:2;39191:9;39187:18;39179:26;;39251:9;39245:4;39241:20;39237:1;39226:9;39222:17;39215:47;39279:131;39405:4;39279:131;:::i;:::-;39271:139;;38998:419;;;:::o;39423:180::-;39471:77;39468:1;39461:88;39568:4;39565:1;39558:15;39592:4;39589:1;39582:15;39609:180;39657:77;39654:1;39647:88;39754:4;39751:1;39744:15;39778:4;39775:1;39768:15;39795:143;39852:5;39883:6;39877:13;39868:22;;39899:33;39926:5;39899:33;:::i;:::-;39795:143;;;;:::o;39944:351::-;40014:6;40063:2;40051:9;40042:7;40038:23;40034:32;40031:119;;;40069:79;;:::i;:::-;40031:119;40189:1;40214:64;40270:7;40261:6;40250:9;40246:22;40214:64;:::i;:::-;40204:74;;40160:128;39944:351;;;;:::o;40301:85::-;40346:7;40375:5;40364:16;;40301:85;;;:::o;40392:158::-;40450:9;40483:61;40501:42;40510:32;40536:5;40510:32;:::i;:::-;40501:42;:::i;:::-;40483:61;:::i;:::-;40470:74;;40392:158;;;:::o;40556:147::-;40651:45;40690:5;40651:45;:::i;:::-;40646:3;40639:58;40556:147;;:::o;40709:114::-;40776:6;40810:5;40804:12;40794:22;;40709:114;;;:::o;40829:184::-;40928:11;40962:6;40957:3;40950:19;41002:4;40997:3;40993:14;40978:29;;40829:184;;;;:::o;41019:132::-;41086:4;41109:3;41101:11;;41139:4;41134:3;41130:14;41122:22;;41019:132;;;:::o;41157:108::-;41234:24;41252:5;41234:24;:::i;:::-;41229:3;41222:37;41157:108;;:::o;41271:179::-;41340:10;41361:46;41403:3;41395:6;41361:46;:::i;:::-;41439:4;41434:3;41430:14;41416:28;;41271:179;;;;:::o;41456:113::-;41526:4;41558;41553:3;41549:14;41541:22;;41456:113;;;:::o;41605:732::-;41724:3;41753:54;41801:5;41753:54;:::i;:::-;41823:86;41902:6;41897:3;41823:86;:::i;:::-;41816:93;;41933:56;41983:5;41933:56;:::i;:::-;42012:7;42043:1;42028:284;42053:6;42050:1;42047:13;42028:284;;;42129:6;42123:13;42156:63;42215:3;42200:13;42156:63;:::i;:::-;42149:70;;42242:60;42295:6;42242:60;:::i;:::-;42232:70;;42088:224;42075:1;42072;42068:9;42063:14;;42028:284;;;42032:14;42328:3;42321:10;;41729:608;;;41605:732;;;;:::o;42343:831::-;42606:4;42644:3;42633:9;42629:19;42621:27;;42658:71;42726:1;42715:9;42711:17;42702:6;42658:71;:::i;:::-;42739:80;42815:2;42804:9;42800:18;42791:6;42739:80;:::i;:::-;42866:9;42860:4;42856:20;42851:2;42840:9;42836:18;42829:48;42894:108;42997:4;42988:6;42894:108;:::i;:::-;42886:116;;43012:72;43080:2;43069:9;43065:18;43056:6;43012:72;:::i;:::-;43094:73;43162:3;43151:9;43147:19;43138:6;43094:73;:::i;:::-;42343:831;;;;;;;;:::o
Swarm Source
ipfs://fa0e48d7bf9dccfbb574bc7acd89eaba0c033241f21a61a1dcf9e6e4027f810c
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.