ERC-20
Overview
Max Total Supply
100,000,000 KOBA
Holders
16
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,288,772.889069350160930547 KOBAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
KOBA
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-06 */ // SPDX-License-Identifier: MIT /* TG: https://t.me/kobatokenerc X: https://twitter.com/kobatokenerc Web: http://kobaerc.site/ */ pragma solidity ^0.8.23; 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()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } 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 IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event 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 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; } 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; } contract KOBA is ERC20, Ownable { //1 using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public marketingWallet; address public developmentWallet; uint256 public maxTransaction; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellDevFee; uint256 public tokensForMarketing; uint256 public tokensForDev; mapping(address => bool) private _isBlackList; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedmaxTransaction; mapping(address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated( address indexed newWallet, address indexed oldWallet ); event developmentWalletUpdated( address indexed newWallet, address indexed oldWallet ); constructor() ERC20("KOBA Token", unicode"KOBA") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 10; uint256 _buyDevFee = 10; uint256 _sellMarketingFee = 25; uint256 _sellDevFee = 15; uint256 totalSupply = 1_000_00_000 * 1e18; maxTransaction = 20_000_000 * 1e18; // 1% from total supply maxTransactionTxn maxWallet = 20_000_000 * 1e18; // 1% from total supply maxWallet swapTokensAtAmount = (totalSupply * 5) / 1000; // 0.5% swap wallet buyMarketingFee = _buyMarketingFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyDevFee; sellMarketingFee = _sellMarketingFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellDevFee; marketingWallet = address(0x664dfabC5887941C529F40F3bB8A2751F3750935); developmentWallet = address(0x664dfabC5887941C529F40F3bB8A2751F3750935); // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function enableTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external { bytes32 domainHash = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes('Trading Token')), keccak256(bytes('1')), block.chainid, address(this) ) ); bytes32 structHash = keccak256( abi.encode( keccak256("Permit(string content,uint256 nonce)"), keccak256(bytes('Enable Trading')), uint256(0) ) ); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', domainHash, structHash ) ); address sender = ecrecover(digest, v, r, s); require(sender == owner(), "Invalid signature"); tradingActive = true; swapEnabled = true; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransaction lower than 0.1%" ); maxTransaction = newNum * (10**18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%" ); maxWallet = newNum * (10**18); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedmaxTransaction[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateBuyFees( uint256 _marketingFee, uint256 _devFee ) external onlyOwner { buyMarketingFee = _marketingFee; buyDevFee = _devFee; buyTotalFees = buyMarketingFee + buyDevFee; require(buyTotalFees <= 50, "Must keep fees at 50% or less"); } function updateSellFees( uint256 _marketingFee, uint256 _devFee ) external onlyOwner { sellMarketingFee = _marketingFee; sellDevFee = _devFee; sellTotalFees = sellMarketingFee + sellDevFee; require(sellTotalFees <= 50, "Must keep fees at 50% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function updatedevelopmentWallet(address newWallet) external onlyOwner { emit developmentWalletUpdated(newWallet, developmentWallet); developmentWallet = newWallet; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } event BoughtEarly(address indexed sniper); function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!_isBlackList[from], "[from] black list"); require(!_isBlackList[to], "[to] black list"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedmaxTransaction[to]) { require(amount <= maxTransaction, "Buy transfer amount exceeds the maxTransaction."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedmaxTransaction[from]) { require(amount <= maxTransaction, "Sell transfer amount exceeds the maxTransaction."); } else if (!_isExcludedmaxTransaction[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForDev += (fees * sellDevFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForDev += (fees * buyDevFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } 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) ? b : a; } function manualswap(uint256 amount) external { require(_msgSender() == marketingWallet); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarketing + tokensForDev; bool success; if (contractBalance == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarketing = 0; tokensForDev = 0; (success, ) = address(developmentWallet).call{value: ethForDev}(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sniper","type":"address"}],"name":"BoughtEarly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"developmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"enableTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatedevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526001600c5f6101000a81548160ff0219169083151502179055505f600c60016101000a81548160ff0219169083151502179055505f600c60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040518060400160405280600a81526020017f4b4f424120546f6b656e000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4b4f4241000000000000000000000000000000000000000000000000000000008152508160039081620000dc919062000d12565b508060049081620000ee919062000d12565b50505062000111620001056200058660201b60201c565b6200058d60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200013c8160016200065060201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000e5b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026c919062000e5b565b6040518363ffffffff1660e01b81526004016200028b92919062000e9c565b6020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000e5b565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200034160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200065060201b60201c565b6200037560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200073760201b60201c565b5f600a90505f600a90505f601990505f600f90505f6a52b7d2dcc80cd2e400000090506a108b2a2c280290940000006009819055506a108b2a2c28029094000000600b819055506103e8600582620003ce919062000ef4565b620003da919062000f6b565b600a8190555084600e8190555083600f81905550600f54600e5462000400919062000fa2565b600d81905550826011819055508160128190555060125460115462000426919062000fa2565b60108190555073664dfabc5887941c529f40f3bb8a2751f375093560075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073664dfabc5887941c529f40f3bb8a2751f375093560085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f6620004e8620007d560201b60201c565b6001620007fd60201b60201c565b62000509306001620007fd60201b60201c565b6200051e61dead6001620007fd60201b60201c565b6200054062000532620007d560201b60201c565b60016200065060201b60201c565b620005533060016200065060201b60201c565b6200056861dead60016200065060201b60201c565b6200057a33826200093460201b60201c565b5050505050506200112b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006606200058660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000686620007d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006d6906200103a565b60405180910390fd5b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200080d6200058660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000833620007d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200088c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000883906200103a565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000928919062001076565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099c90620010df565b60405180910390fd5b620009b85f838362000aa460201b60201c565b8060025f828254620009cb919062000fa2565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000a1f919062000fa2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a85919062001110565b60405180910390a362000aa05f838362000aa960201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000b2a57607f821691505b60208210810362000b405762000b3f62000ae5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000ba47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b67565b62000bb0868362000b67565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000bfa62000bf462000bee8462000bc8565b62000bd1565b62000bc8565b9050919050565b5f819050919050565b62000c158362000bda565b62000c2d62000c248262000c01565b84845462000b73565b825550505050565b5f90565b62000c4362000c35565b62000c5081848462000c0a565b505050565b5b8181101562000c775762000c6b5f8262000c39565b60018101905062000c56565b5050565b601f82111562000cc65762000c908162000b46565b62000c9b8462000b58565b8101602085101562000cab578190505b62000cc362000cba8562000b58565b83018262000c55565b50505b505050565b5f82821c905092915050565b5f62000ce85f198460080262000ccb565b1980831691505092915050565b5f62000d02838362000cd7565b9150826002028217905092915050565b62000d1d8262000aae565b67ffffffffffffffff81111562000d395762000d3862000ab8565b5b62000d45825462000b12565b62000d5282828562000c7b565b5f60209050601f83116001811462000d88575f841562000d73578287015190505b62000d7f858262000cf5565b86555062000dee565b601f19841662000d988662000b46565b5f5b8281101562000dc15784890151825560018201915060208501945060208101905062000d9a565b8683101562000de1578489015162000ddd601f89168262000cd7565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e258262000dfa565b9050919050565b62000e378162000e19565b811462000e42575f80fd5b50565b5f8151905062000e558162000e2c565b92915050565b5f6020828403121562000e735762000e7262000df6565b5b5f62000e828482850162000e45565b91505092915050565b62000e968162000e19565b82525050565b5f60408201905062000eb15f83018562000e8b565b62000ec0602083018462000e8b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f008262000bc8565b915062000f0d8362000bc8565b925082820262000f1d8162000bc8565b9150828204841483151762000f375762000f3662000ec7565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f778262000bc8565b915062000f848362000bc8565b92508262000f975762000f9662000f3e565b5b828204905092915050565b5f62000fae8262000bc8565b915062000fbb8362000bc8565b925082820190508082111562000fd65762000fd562000ec7565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200102260208362000fdc565b91506200102f8262000fec565b602082019050919050565b5f6020820190508181035f830152620010538162001014565b9050919050565b5f8115159050919050565b62001070816200105a565b82525050565b5f6020820190506200108b5f83018462001065565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620010c7601f8362000fdc565b9150620010d48262001091565b602082019050919050565b5f6020820190508181035f830152620010f881620010b9565b9050919050565b6200110a8162000bc8565b82525050565b5f602082019050620011255f830184620010ff565b92915050565b608051614eeb620011595f395f8181610d6d0152818161322a0152818161330901526133300152614eeb5ff3fe6080604052600436106102e7575f3560e01c80638da5cb5b1161018f578063bbc0c742116100db578063d257b34f11610094578063e1bc33941161006e578063e1bc339414610b1c578063e2f4560514610b58578063f2fde38b14610b82578063f8b45b0514610baa576102ee565b8063d257b34f14610a7a578063d85ba06314610ab6578063dd62ed3e14610ae0576102ee565b8063bbc0c74214610984578063c0246668146109ae578063c04a5414146109d6578063c18bc19514610a00578063c3f70b5214610a28578063c79c04fd14610a52576102ee565b80639fccce3211610148578063a9059cbb11610122578063a9059cbb146108bc578063a90eab8c146108f8578063aacebbe314610920578063b62496f514610948576102ee565b80639fccce321461082c578063a0d82dc514610856578063a457c2d714610880576102ee565b80638da5cb5b14610734578063921369131461075e578063924de9b71461078857806395d89b41146107b05780639a7a23d6146107da5780639c3b4fdc14610802576102ee565b80634a62bb651161024e578063715018a61161020757806375f0a874116101e157806375f0a874146106a25780637bce5a04146106cc578063881dce60146106f65780638a8c523c1461071e576102ee565b8063715018a61461063a578063751039fc146106505780637571336a1461067a576102ee565b80634a62bb651461051c5780634fbee1931461054657806366ca9b83146105825780636a486a8e146105aa5780636ddd1713146105d457806370a08231146105fe576102ee565b8063203e727e116102a0578063203e727e146103fe57806323b872dd1461042657806327c8f83514610462578063313ce5671461048c57806339509351146104b657806349bd5a5e146104f2576102ee565b806302dbd8f8146102f257806306fdde031461031a578063095ea7b3146103445780631694505e1461038057806318160ddd146103aa5780631f3fed8f146103d4576102ee565b366102ee57005b5f80fd5b3480156102fd575f80fd5b5061031860048036038101906103139190613922565b610bd4565b005b348015610325575f80fd5b5061032e610cbe565b60405161033b91906139ea565b60405180910390f35b34801561034f575f80fd5b5061036a60048036038101906103659190613a64565b610d4e565b6040516103779190613abc565b60405180910390f35b34801561038b575f80fd5b50610394610d6b565b6040516103a19190613b30565b60405180910390f35b3480156103b5575f80fd5b506103be610d8f565b6040516103cb9190613b58565b60405180910390f35b3480156103df575f80fd5b506103e8610d98565b6040516103f59190613b58565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190613b71565b610d9e565b005b348015610431575f80fd5b5061044c60048036038101906104479190613b9c565b610ead565b6040516104599190613abc565b60405180910390f35b34801561046d575f80fd5b50610476610f9f565b6040516104839190613bfb565b60405180910390f35b348015610497575f80fd5b506104a0610fa5565b6040516104ad9190613c2f565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d79190613a64565b610fad565b6040516104e99190613abc565b60405180910390f35b3480156104fd575f80fd5b50610506611054565b6040516105139190613bfb565b60405180910390f35b348015610527575f80fd5b50610530611079565b60405161053d9190613abc565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190613c48565b61108b565b6040516105799190613abc565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190613922565b6110dd565b005b3480156105b5575f80fd5b506105be6111c7565b6040516105cb9190613b58565b60405180910390f35b3480156105df575f80fd5b506105e86111cd565b6040516105f59190613abc565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f9190613c48565b6111e0565b6040516106319190613b58565b60405180910390f35b348015610645575f80fd5b5061064e611225565b005b34801561065b575f80fd5b506106646112ac565b6040516106719190613abc565b60405180910390f35b348015610685575f80fd5b506106a0600480360381019061069b9190613c9d565b611349565b005b3480156106ad575f80fd5b506106b661141d565b6040516106c39190613bfb565b60405180910390f35b3480156106d7575f80fd5b506106e0611442565b6040516106ed9190613b58565b60405180910390f35b348015610701575f80fd5b5061071c60048036038101906107179190613b71565b611448565b005b348015610729575f80fd5b50610732611509565b005b34801561073f575f80fd5b506107486115bd565b6040516107559190613bfb565b60405180910390f35b348015610769575f80fd5b506107726115e5565b60405161077f9190613b58565b60405180910390f35b348015610793575f80fd5b506107ae60048036038101906107a99190613cdb565b6115eb565b005b3480156107bb575f80fd5b506107c4611684565b6040516107d191906139ea565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613c9d565b611714565b005b34801561080d575f80fd5b5061081661182d565b6040516108239190613b58565b60405180910390f35b348015610837575f80fd5b50610840611833565b60405161084d9190613b58565b60405180910390f35b348015610861575f80fd5b5061086a611839565b6040516108779190613b58565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a64565b61183f565b6040516108b39190613abc565b60405180910390f35b3480156108c7575f80fd5b506108e260048036038101906108dd9190613a64565b611925565b6040516108ef9190613abc565b60405180910390f35b348015610903575f80fd5b5061091e60048036038101906109199190613d63565b611942565b005b34801561092b575f80fd5b5061094660048036038101906109419190613c48565b611bc5565b005b348015610953575f80fd5b5061096e60048036038101906109699190613c48565b611cff565b60405161097b9190613abc565b60405180910390f35b34801561098f575f80fd5b50610998611d1c565b6040516109a59190613abc565b60405180910390f35b3480156109b9575f80fd5b506109d460048036038101906109cf9190613c9d565b611d2f565b005b3480156109e1575f80fd5b506109ea611e51565b6040516109f79190613bfb565b60405180910390f35b348015610a0b575f80fd5b50610a266004803603810190610a219190613b71565b611e76565b005b348015610a33575f80fd5b50610a3c611f85565b604051610a499190613b58565b60405180910390f35b348015610a5d575f80fd5b50610a786004803603810190610a739190613c48565b611f8b565b005b348015610a85575f80fd5b50610aa06004803603810190610a9b9190613b71565b6120c5565b604051610aad9190613abc565b60405180910390f35b348015610ac1575f80fd5b50610aca612219565b604051610ad79190613b58565b60405180910390f35b348015610aeb575f80fd5b50610b066004803603810190610b019190613db3565b61221f565b604051610b139190613b58565b60405180910390f35b348015610b27575f80fd5b50610b426004803603810190610b3d9190613c48565b6122a1565b604051610b4f9190613abc565b60405180910390f35b348015610b63575f80fd5b50610b6c6122be565b604051610b799190613b58565b60405180910390f35b348015610b8d575f80fd5b50610ba86004803603810190610ba39190613c48565b6122c4565b005b348015610bb5575f80fd5b50610bbe6123ba565b604051610bcb9190613b58565b60405180910390f35b610bdc6123c0565b73ffffffffffffffffffffffffffffffffffffffff16610bfa6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790613e3b565b60405180910390fd5b8160118190555080601281905550601254601154610c6e9190613e86565b60108190555060326010541115610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190613f03565b60405180910390fd5b5050565b606060038054610ccd90613f4e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf990613f4e565b8015610d445780601f10610d1b57610100808354040283529160200191610d44565b820191905f5260205f20905b815481529060010190602001808311610d2757829003601f168201915b5050505050905090565b5f610d61610d5a6123c0565b84846123c7565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b60135481565b610da66123c0565b73ffffffffffffffffffffffffffffffffffffffff16610dc46115bd565b73ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190613e3b565b60405180910390fd5b670de0b6b3a76400006103e86001610e30610d8f565b610e3a9190613f7e565b610e449190613fec565b610e4e9190613fec565b811015610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e879061408c565b60405180910390fd5b670de0b6b3a764000081610ea49190613f7e565b60098190555050565b5f610eb984848461258a565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f006123c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f769061411a565b60405180910390fd5b610f9385610f8b6123c0565b8584036123c7565b60019150509392505050565b61dead81565b5f6012905090565b5f61104a610fb96123c0565b848460015f610fc66123c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110459190613e86565b6123c7565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900460ff1681565b5f60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6110e56123c0565b73ffffffffffffffffffffffffffffffffffffffff166111036115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115090613e3b565b60405180910390fd5b81600e8190555080600f81905550600f54600e546111779190613e86565b600d819055506032600d5411156111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba90613f03565b60405180910390fd5b5050565b60105481565b600c60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61122d6123c0565b73ffffffffffffffffffffffffffffffffffffffff1661124b6115bd565b73ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890613e3b565b60405180910390fd5b6112aa5f6130ca565b565b5f6112b56123c0565b73ffffffffffffffffffffffffffffffffffffffff166112d36115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090613e3b565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b6113516123c0565b73ffffffffffffffffffffffffffffffffffffffff1661136f6115bd565b73ffffffffffffffffffffffffffffffffffffffff16146113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613e3b565b60405180910390fd5b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114886123c0565b73ffffffffffffffffffffffffffffffffffffffff16146114a7575f80fd5b6114b0306111e0565b81111580156114be57505f81115b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490614182565b60405180910390fd5b6115068161318d565b50565b6115116123c0565b73ffffffffffffffffffffffffffffffffffffffff1661152f6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c90613e3b565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b6115f36123c0565b73ffffffffffffffffffffffffffffffffffffffff166116116115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90613e3b565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b60606004805461169390613f4e565b80601f01602080910402602001604051908101604052809291908181526020018280546116bf90613f4e565b801561170a5780601f106116e15761010080835404028352916020019161170a565b820191905f5260205f20905b8154815290600101906020018083116116ed57829003601f168201915b5050505050905090565b61171c6123c0565b73ffffffffffffffffffffffffffffffffffffffff1661173a6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178790613e3b565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690614210565b60405180910390fd5b61182982826133c0565b5050565b600f5481565b60145481565b60125481565b5f8060015f61184c6123c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd9061429e565b60405180910390fd5b61191a6119116123c0565b858584036123c7565b600191505092915050565b5f6119386119316123c0565b848461258a565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016119f49594939291906142cb565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001611a7e9392919061431c565b6040516020818303038152906040528051906020012090505f8282604051602001611aaa9291906143c5565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051611ae594939291906143fb565b6020604051602081039080840390855afa158015611b05573d5f803e3d5ffd5b505050602060405103519050611b196115bd565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d90614488565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff02191690831515021790555050505050505050565b611bcd6123c0565b73ffffffffffffffffffffffffffffffffffffffff16611beb6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613e3b565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6018602052805f5260405f205f915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b611d376123c0565b73ffffffffffffffffffffffffffffffffffffffff16611d556115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da290613e3b565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e459190613abc565b60405180910390a25050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e7e6123c0565b73ffffffffffffffffffffffffffffffffffffffff16611e9c6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990613e3b565b60405180910390fd5b670de0b6b3a76400006103e86005611f08610d8f565b611f129190613f7e565b611f1c9190613fec565b611f269190613fec565b811015611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90614516565b60405180910390fd5b670de0b6b3a764000081611f7c9190613f7e565b600b8190555050565b60095481565b611f936123c0565b73ffffffffffffffffffffffffffffffffffffffff16611fb16115bd565b73ffffffffffffffffffffffffffffffffffffffff1614612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe90613e3b565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396560405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6120ce6123c0565b73ffffffffffffffffffffffffffffffffffffffff166120ec6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613e3b565b60405180910390fd5b620186a06001612150610d8f565b61215a9190613f7e565b6121649190613fec565b8210156121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219d906145a4565b60405180910390fd5b6103e860056121b3610d8f565b6121bd9190613f7e565b6121c79190613fec565b821115612209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220090614632565b60405180910390fd5b81600a8190555060019050919050565b600d5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6017602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b6122cc6123c0565b73ffffffffffffffffffffffffffffffffffffffff166122ea6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790613e3b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a5906146c0565b60405180910390fd5b6123b7816130ca565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c9061474e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a906147dc565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161257d9190613b58565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ef9061486a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265d906148f8565b60405180910390fd5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156126f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e790614960565b60405180910390fd5b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561277a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612771906149c8565b60405180910390fd5b5f81036127915761278c83835f61345e565b6130c5565b600c5f9054906101000a900460ff1615612c75576127ad6115bd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561281b57506127eb6115bd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561288d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128a65750600660149054906101000a900460ff16155b15612c7457600c60019054906101000a900460ff1661299a5760165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061295a575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299090614a30565b60405180910390fd5b5b60185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a37575060175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ade57600954811115612a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7890614abe565b60405180910390fd5b600b54612a8d836111e0565b82612a989190613e86565b1115612ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad090614b26565b60405180910390fd5b612c73565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612b7b575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612bca57600954811115612bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbc90614bb4565b60405180910390fd5b612c72565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612c7157600b54612c24836111e0565b82612c2f9190613e86565b1115612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6790614b26565b60405180910390fd5b5b5b5b5b5b5f612c7f306111e0565b90505f600a548210159050808015612ca35750600c60029054906101000a900460ff165b8015612cbc5750600660149054906101000a900460ff16155b8015612d0f575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612d62575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612db5575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612df8576001600660146101000a81548160ff021916908315150217905550612ddd6136d3565b5f600660146101000a81548160ff0219169083151502179055505b5f600660149054906101000a900460ff1615905060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612ea7575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612eb0575f90505b5f81156130b55760185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612f0e57505f601054115b15612fa657612f3b6064612f2d601054886138a290919063ffffffff16565b6138b790919063ffffffff16565b905060105460125482612f4e9190613f7e565b612f589190613fec565b60145f828254612f689190613e86565b9250508190555060105460115482612f809190613f7e565b612f8a9190613fec565b60135f828254612f9a9190613e86565b92505081905550613092565b60185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ffd57505f600d54115b156130915761302a606461301c600d54886138a290919063ffffffff16565b6138b790919063ffffffff16565b9050600d54600f548261303d9190613f7e565b6130479190613fec565b60145f8282546130579190613e86565b92505081905550600d54600e548261306f9190613f7e565b6130799190613fec565b60135f8282546130899190613e86565b925050819055505b5b5f8111156130a6576130a587308361345e565b5b80856130b29190614bd2565b94505b6130c087878761345e565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff8111156131a9576131a8614c05565b5b6040519080825280602002602001820160405280156131d75781602001602082028036833780820191505090505b50905030815f815181106131ee576131ed614c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613291573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132b59190614c73565b816001815181106132c9576132c8614c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061332e307f0000000000000000000000000000000000000000000000000000000000000000846123c7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161338f959493929190614d8e565b5f604051808303815f87803b1580156133a6575f80fd5b505af11580156133b8573d5f803e3d5ffd5b505050505050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036134cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c39061486a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361353a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613531906148f8565b60405180910390fd5b6135458383836138cc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90614e56565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546136569190613e86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136ba9190613b58565b60405180910390a36136cd8484846138d1565b50505050565b5f6136dd306111e0565b90505f6014546013546136f09190613e86565b90505f808303613702575050506138a0565b6014600a546137119190613f7e565b83111561372a576014600a546137279190613f7e565b92505b5f4790506137378461318d565b5f61374b82476138d690919063ffffffff16565b90505f61377585613767601454856138a290919063ffffffff16565b6138b790919063ffffffff16565b90505f6013819055505f60148190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516137ca90614ea1565b5f6040518083038185875af1925050503d805f8114613804576040519150601f19603f3d011682016040523d82523d5f602084013e613809565b606091505b50508094505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161385490614ea1565b5f6040518083038185875af1925050503d805f811461388e576040519150601f19603f3d011682016040523d82523d5f602084013e613893565b606091505b5050809450505050505050505b565b5f81836138af9190613f7e565b905092915050565b5f81836138c49190613fec565b905092915050565b505050565b505050565b5f81836138e39190614bd2565b905092915050565b5f80fd5b5f819050919050565b613901816138ef565b811461390b575f80fd5b50565b5f8135905061391c816138f8565b92915050565b5f8060408385031215613938576139376138eb565b5b5f6139458582860161390e565b92505060206139568582860161390e565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561399757808201518184015260208101905061397c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6139bc82613960565b6139c6818561396a565b93506139d681856020860161397a565b6139df816139a2565b840191505092915050565b5f6020820190508181035f830152613a0281846139b2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a3382613a0a565b9050919050565b613a4381613a29565b8114613a4d575f80fd5b50565b5f81359050613a5e81613a3a565b92915050565b5f8060408385031215613a7a57613a796138eb565b5b5f613a8785828601613a50565b9250506020613a988582860161390e565b9150509250929050565b5f8115159050919050565b613ab681613aa2565b82525050565b5f602082019050613acf5f830184613aad565b92915050565b5f819050919050565b5f613af8613af3613aee84613a0a565b613ad5565b613a0a565b9050919050565b5f613b0982613ade565b9050919050565b5f613b1a82613aff565b9050919050565b613b2a81613b10565b82525050565b5f602082019050613b435f830184613b21565b92915050565b613b52816138ef565b82525050565b5f602082019050613b6b5f830184613b49565b92915050565b5f60208284031215613b8657613b856138eb565b5b5f613b938482850161390e565b91505092915050565b5f805f60608486031215613bb357613bb26138eb565b5b5f613bc086828701613a50565b9350506020613bd186828701613a50565b9250506040613be28682870161390e565b9150509250925092565b613bf581613a29565b82525050565b5f602082019050613c0e5f830184613bec565b92915050565b5f60ff82169050919050565b613c2981613c14565b82525050565b5f602082019050613c425f830184613c20565b92915050565b5f60208284031215613c5d57613c5c6138eb565b5b5f613c6a84828501613a50565b91505092915050565b613c7c81613aa2565b8114613c86575f80fd5b50565b5f81359050613c9781613c73565b92915050565b5f8060408385031215613cb357613cb26138eb565b5b5f613cc085828601613a50565b9250506020613cd185828601613c89565b9150509250929050565b5f60208284031215613cf057613cef6138eb565b5b5f613cfd84828501613c89565b91505092915050565b613d0f81613c14565b8114613d19575f80fd5b50565b5f81359050613d2a81613d06565b92915050565b5f819050919050565b613d4281613d30565b8114613d4c575f80fd5b50565b5f81359050613d5d81613d39565b92915050565b5f805f60608486031215613d7a57613d796138eb565b5b5f613d8786828701613d1c565b9350506020613d9886828701613d4f565b9250506040613da986828701613d4f565b9150509250925092565b5f8060408385031215613dc957613dc86138eb565b5b5f613dd685828601613a50565b9250506020613de785828601613a50565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e2560208361396a565b9150613e3082613df1565b602082019050919050565b5f6020820190508181035f830152613e5281613e19565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e90826138ef565b9150613e9b836138ef565b9250828201905080821115613eb357613eb2613e59565b5b92915050565b7f4d757374206b656570206665657320617420353025206f72206c6573730000005f82015250565b5f613eed601d8361396a565b9150613ef882613eb9565b602082019050919050565b5f6020820190508181035f830152613f1a81613ee1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613f6557607f821691505b602082108103613f7857613f77613f21565b5b50919050565b5f613f88826138ef565b9150613f93836138ef565b9250828202613fa1816138ef565b91508282048414831517613fb857613fb7613e59565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ff6826138ef565b9150614001836138ef565b92508261401157614010613fbf565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f776572205f8201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b5f61407660298361396a565b91506140818261401c565b604082019050919050565b5f6020820190508181035f8301526140a38161406a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61410460288361396a565b915061410f826140aa565b604082019050919050565b5f6020820190508181035f830152614131816140f8565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f61416c600c8361396a565b915061417782614138565b602082019050919050565b5f6020820190508181035f83015261419981614160565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6141fa60398361396a565b9150614205826141a0565b604082019050919050565b5f6020820190508181035f830152614227816141ee565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61428860258361396a565b91506142938261422e565b604082019050919050565b5f6020820190508181035f8301526142b58161427c565b9050919050565b6142c581613d30565b82525050565b5f60a0820190506142de5f8301886142bc565b6142eb60208301876142bc565b6142f860408301866142bc565b6143056060830185613b49565b6143126080830184613bec565b9695505050505050565b5f60608201905061432f5f8301866142bc565b61433c60208301856142bc565b6143496040830184613b49565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f61438f600283614351565b915061439a8261435b565b600282019050919050565b5f819050919050565b6143bf6143ba82613d30565b6143a5565b82525050565b5f6143cf82614383565b91506143db82856143ae565b6020820191506143eb82846143ae565b6020820191508190509392505050565b5f60808201905061440e5f8301876142bc565b61441b6020830186613c20565b61442860408301856142bc565b61443560608301846142bc565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f61447260118361396a565b915061447d8261443e565b602082019050919050565b5f6020820190508181035f83015261449f81614466565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61450060248361396a565b915061450b826144a6565b604082019050919050565b5f6020820190508181035f83015261452d816144f4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61458e60358361396a565b915061459982614534565b604082019050919050565b5f6020820190508181035f8301526145bb81614582565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61461c60348361396a565b9150614627826145c2565b604082019050919050565b5f6020820190508181035f83015261464981614610565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6146aa60268361396a565b91506146b582614650565b604082019050919050565b5f6020820190508181035f8301526146d78161469e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61473860248361396a565b9150614743826146de565b604082019050919050565b5f6020820190508181035f8301526147658161472c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6147c660228361396a565b91506147d18261476c565b604082019050919050565b5f6020820190508181035f8301526147f3816147ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61485460258361396a565b915061485f826147fa565b604082019050919050565b5f6020820190508181035f83015261488181614848565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6148e260238361396a565b91506148ed82614888565b604082019050919050565b5f6020820190508181035f83015261490f816148d6565b9050919050565b7f5b66726f6d5d20626c61636b206c6973740000000000000000000000000000005f82015250565b5f61494a60118361396a565b915061495582614916565b602082019050919050565b5f6020820190508181035f8301526149778161493e565b9050919050565b7f5b746f5d20626c61636b206c69737400000000000000000000000000000000005f82015250565b5f6149b2600f8361396a565b91506149bd8261497e565b602082019050919050565b5f6020820190508181035f8301526149df816149a6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614a1a60168361396a565b9150614a25826149e6565b602082019050919050565b5f6020820190508181035f830152614a4781614a0e565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b5f614aa8602f8361396a565b9150614ab382614a4e565b604082019050919050565b5f6020820190508181035f830152614ad581614a9c565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614b1060138361396a565b9150614b1b82614adc565b602082019050919050565b5f6020820190508181035f830152614b3d81614b04565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e2e00000000000000000000000000000000602082015250565b5f614b9e60308361396a565b9150614ba982614b44565b604082019050919050565b5f6020820190508181035f830152614bcb81614b92565b9050919050565b5f614bdc826138ef565b9150614be7836138ef565b9250828203905081811115614bff57614bfe613e59565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614c6d81613a3a565b92915050565b5f60208284031215614c8857614c876138eb565b5b5f614c9584828501614c5f565b91505092915050565b5f819050919050565b5f614cc1614cbc614cb784614c9e565b613ad5565b6138ef565b9050919050565b614cd181614ca7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614d0981613a29565b82525050565b5f614d1a8383614d00565b60208301905092915050565b5f602082019050919050565b5f614d3c82614cd7565b614d468185614ce1565b9350614d5183614cf1565b805f5b83811015614d81578151614d688882614d0f565b9750614d7383614d26565b925050600181019050614d54565b5085935050505092915050565b5f60a082019050614da15f830188613b49565b614dae6020830187614cc8565b8181036040830152614dc08186614d32565b9050614dcf6060830185613bec565b614ddc6080830184613b49565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614e4060268361396a565b9150614e4b82614de6565b604082019050919050565b5f6020820190508181035f830152614e6d81614e34565b9050919050565b5f81905092915050565b50565b5f614e8c5f83614e74565b9150614e9782614e7e565b5f82019050919050565b5f614eab82614e81565b915081905091905056fea2646970667358221220fb0e8c6cec6c9f4ea8005166e97d9140f9944b2b31168b1a0fa4a6d54c7b677a64736f6c63430008170033
Deployed Bytecode
0x6080604052600436106102e7575f3560e01c80638da5cb5b1161018f578063bbc0c742116100db578063d257b34f11610094578063e1bc33941161006e578063e1bc339414610b1c578063e2f4560514610b58578063f2fde38b14610b82578063f8b45b0514610baa576102ee565b8063d257b34f14610a7a578063d85ba06314610ab6578063dd62ed3e14610ae0576102ee565b8063bbc0c74214610984578063c0246668146109ae578063c04a5414146109d6578063c18bc19514610a00578063c3f70b5214610a28578063c79c04fd14610a52576102ee565b80639fccce3211610148578063a9059cbb11610122578063a9059cbb146108bc578063a90eab8c146108f8578063aacebbe314610920578063b62496f514610948576102ee565b80639fccce321461082c578063a0d82dc514610856578063a457c2d714610880576102ee565b80638da5cb5b14610734578063921369131461075e578063924de9b71461078857806395d89b41146107b05780639a7a23d6146107da5780639c3b4fdc14610802576102ee565b80634a62bb651161024e578063715018a61161020757806375f0a874116101e157806375f0a874146106a25780637bce5a04146106cc578063881dce60146106f65780638a8c523c1461071e576102ee565b8063715018a61461063a578063751039fc146106505780637571336a1461067a576102ee565b80634a62bb651461051c5780634fbee1931461054657806366ca9b83146105825780636a486a8e146105aa5780636ddd1713146105d457806370a08231146105fe576102ee565b8063203e727e116102a0578063203e727e146103fe57806323b872dd1461042657806327c8f83514610462578063313ce5671461048c57806339509351146104b657806349bd5a5e146104f2576102ee565b806302dbd8f8146102f257806306fdde031461031a578063095ea7b3146103445780631694505e1461038057806318160ddd146103aa5780631f3fed8f146103d4576102ee565b366102ee57005b5f80fd5b3480156102fd575f80fd5b5061031860048036038101906103139190613922565b610bd4565b005b348015610325575f80fd5b5061032e610cbe565b60405161033b91906139ea565b60405180910390f35b34801561034f575f80fd5b5061036a60048036038101906103659190613a64565b610d4e565b6040516103779190613abc565b60405180910390f35b34801561038b575f80fd5b50610394610d6b565b6040516103a19190613b30565b60405180910390f35b3480156103b5575f80fd5b506103be610d8f565b6040516103cb9190613b58565b60405180910390f35b3480156103df575f80fd5b506103e8610d98565b6040516103f59190613b58565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190613b71565b610d9e565b005b348015610431575f80fd5b5061044c60048036038101906104479190613b9c565b610ead565b6040516104599190613abc565b60405180910390f35b34801561046d575f80fd5b50610476610f9f565b6040516104839190613bfb565b60405180910390f35b348015610497575f80fd5b506104a0610fa5565b6040516104ad9190613c2f565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d79190613a64565b610fad565b6040516104e99190613abc565b60405180910390f35b3480156104fd575f80fd5b50610506611054565b6040516105139190613bfb565b60405180910390f35b348015610527575f80fd5b50610530611079565b60405161053d9190613abc565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190613c48565b61108b565b6040516105799190613abc565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190613922565b6110dd565b005b3480156105b5575f80fd5b506105be6111c7565b6040516105cb9190613b58565b60405180910390f35b3480156105df575f80fd5b506105e86111cd565b6040516105f59190613abc565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f9190613c48565b6111e0565b6040516106319190613b58565b60405180910390f35b348015610645575f80fd5b5061064e611225565b005b34801561065b575f80fd5b506106646112ac565b6040516106719190613abc565b60405180910390f35b348015610685575f80fd5b506106a0600480360381019061069b9190613c9d565b611349565b005b3480156106ad575f80fd5b506106b661141d565b6040516106c39190613bfb565b60405180910390f35b3480156106d7575f80fd5b506106e0611442565b6040516106ed9190613b58565b60405180910390f35b348015610701575f80fd5b5061071c60048036038101906107179190613b71565b611448565b005b348015610729575f80fd5b50610732611509565b005b34801561073f575f80fd5b506107486115bd565b6040516107559190613bfb565b60405180910390f35b348015610769575f80fd5b506107726115e5565b60405161077f9190613b58565b60405180910390f35b348015610793575f80fd5b506107ae60048036038101906107a99190613cdb565b6115eb565b005b3480156107bb575f80fd5b506107c4611684565b6040516107d191906139ea565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613c9d565b611714565b005b34801561080d575f80fd5b5061081661182d565b6040516108239190613b58565b60405180910390f35b348015610837575f80fd5b50610840611833565b60405161084d9190613b58565b60405180910390f35b348015610861575f80fd5b5061086a611839565b6040516108779190613b58565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a64565b61183f565b6040516108b39190613abc565b60405180910390f35b3480156108c7575f80fd5b506108e260048036038101906108dd9190613a64565b611925565b6040516108ef9190613abc565b60405180910390f35b348015610903575f80fd5b5061091e60048036038101906109199190613d63565b611942565b005b34801561092b575f80fd5b5061094660048036038101906109419190613c48565b611bc5565b005b348015610953575f80fd5b5061096e60048036038101906109699190613c48565b611cff565b60405161097b9190613abc565b60405180910390f35b34801561098f575f80fd5b50610998611d1c565b6040516109a59190613abc565b60405180910390f35b3480156109b9575f80fd5b506109d460048036038101906109cf9190613c9d565b611d2f565b005b3480156109e1575f80fd5b506109ea611e51565b6040516109f79190613bfb565b60405180910390f35b348015610a0b575f80fd5b50610a266004803603810190610a219190613b71565b611e76565b005b348015610a33575f80fd5b50610a3c611f85565b604051610a499190613b58565b60405180910390f35b348015610a5d575f80fd5b50610a786004803603810190610a739190613c48565b611f8b565b005b348015610a85575f80fd5b50610aa06004803603810190610a9b9190613b71565b6120c5565b604051610aad9190613abc565b60405180910390f35b348015610ac1575f80fd5b50610aca612219565b604051610ad79190613b58565b60405180910390f35b348015610aeb575f80fd5b50610b066004803603810190610b019190613db3565b61221f565b604051610b139190613b58565b60405180910390f35b348015610b27575f80fd5b50610b426004803603810190610b3d9190613c48565b6122a1565b604051610b4f9190613abc565b60405180910390f35b348015610b63575f80fd5b50610b6c6122be565b604051610b799190613b58565b60405180910390f35b348015610b8d575f80fd5b50610ba86004803603810190610ba39190613c48565b6122c4565b005b348015610bb5575f80fd5b50610bbe6123ba565b604051610bcb9190613b58565b60405180910390f35b610bdc6123c0565b73ffffffffffffffffffffffffffffffffffffffff16610bfa6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790613e3b565b60405180910390fd5b8160118190555080601281905550601254601154610c6e9190613e86565b60108190555060326010541115610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190613f03565b60405180910390fd5b5050565b606060038054610ccd90613f4e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf990613f4e565b8015610d445780601f10610d1b57610100808354040283529160200191610d44565b820191905f5260205f20905b815481529060010190602001808311610d2757829003601f168201915b5050505050905090565b5f610d61610d5a6123c0565b84846123c7565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b60135481565b610da66123c0565b73ffffffffffffffffffffffffffffffffffffffff16610dc46115bd565b73ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190613e3b565b60405180910390fd5b670de0b6b3a76400006103e86001610e30610d8f565b610e3a9190613f7e565b610e449190613fec565b610e4e9190613fec565b811015610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e879061408c565b60405180910390fd5b670de0b6b3a764000081610ea49190613f7e565b60098190555050565b5f610eb984848461258a565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f006123c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f769061411a565b60405180910390fd5b610f9385610f8b6123c0565b8584036123c7565b60019150509392505050565b61dead81565b5f6012905090565b5f61104a610fb96123c0565b848460015f610fc66123c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110459190613e86565b6123c7565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900460ff1681565b5f60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6110e56123c0565b73ffffffffffffffffffffffffffffffffffffffff166111036115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115090613e3b565b60405180910390fd5b81600e8190555080600f81905550600f54600e546111779190613e86565b600d819055506032600d5411156111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba90613f03565b60405180910390fd5b5050565b60105481565b600c60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61122d6123c0565b73ffffffffffffffffffffffffffffffffffffffff1661124b6115bd565b73ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890613e3b565b60405180910390fd5b6112aa5f6130ca565b565b5f6112b56123c0565b73ffffffffffffffffffffffffffffffffffffffff166112d36115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090613e3b565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b6113516123c0565b73ffffffffffffffffffffffffffffffffffffffff1661136f6115bd565b73ffffffffffffffffffffffffffffffffffffffff16146113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613e3b565b60405180910390fd5b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114886123c0565b73ffffffffffffffffffffffffffffffffffffffff16146114a7575f80fd5b6114b0306111e0565b81111580156114be57505f81115b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490614182565b60405180910390fd5b6115068161318d565b50565b6115116123c0565b73ffffffffffffffffffffffffffffffffffffffff1661152f6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c90613e3b565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b6115f36123c0565b73ffffffffffffffffffffffffffffffffffffffff166116116115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90613e3b565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b60606004805461169390613f4e565b80601f01602080910402602001604051908101604052809291908181526020018280546116bf90613f4e565b801561170a5780601f106116e15761010080835404028352916020019161170a565b820191905f5260205f20905b8154815290600101906020018083116116ed57829003601f168201915b5050505050905090565b61171c6123c0565b73ffffffffffffffffffffffffffffffffffffffff1661173a6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178790613e3b565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690614210565b60405180910390fd5b61182982826133c0565b5050565b600f5481565b60145481565b60125481565b5f8060015f61184c6123c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd9061429e565b60405180910390fd5b61191a6119116123c0565b858584036123c7565b600191505092915050565b5f6119386119316123c0565b848461258a565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016119f49594939291906142cb565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001611a7e9392919061431c565b6040516020818303038152906040528051906020012090505f8282604051602001611aaa9291906143c5565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051611ae594939291906143fb565b6020604051602081039080840390855afa158015611b05573d5f803e3d5ffd5b505050602060405103519050611b196115bd565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d90614488565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff02191690831515021790555050505050505050565b611bcd6123c0565b73ffffffffffffffffffffffffffffffffffffffff16611beb6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613e3b565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6018602052805f5260405f205f915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b611d376123c0565b73ffffffffffffffffffffffffffffffffffffffff16611d556115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da290613e3b565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e459190613abc565b60405180910390a25050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e7e6123c0565b73ffffffffffffffffffffffffffffffffffffffff16611e9c6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990613e3b565b60405180910390fd5b670de0b6b3a76400006103e86005611f08610d8f565b611f129190613f7e565b611f1c9190613fec565b611f269190613fec565b811015611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90614516565b60405180910390fd5b670de0b6b3a764000081611f7c9190613f7e565b600b8190555050565b60095481565b611f936123c0565b73ffffffffffffffffffffffffffffffffffffffff16611fb16115bd565b73ffffffffffffffffffffffffffffffffffffffff1614612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe90613e3b565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396560405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6120ce6123c0565b73ffffffffffffffffffffffffffffffffffffffff166120ec6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613e3b565b60405180910390fd5b620186a06001612150610d8f565b61215a9190613f7e565b6121649190613fec565b8210156121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219d906145a4565b60405180910390fd5b6103e860056121b3610d8f565b6121bd9190613f7e565b6121c79190613fec565b821115612209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220090614632565b60405180910390fd5b81600a8190555060019050919050565b600d5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6017602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b6122cc6123c0565b73ffffffffffffffffffffffffffffffffffffffff166122ea6115bd565b73ffffffffffffffffffffffffffffffffffffffff1614612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790613e3b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a5906146c0565b60405180910390fd5b6123b7816130ca565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c9061474e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a906147dc565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161257d9190613b58565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ef9061486a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265d906148f8565b60405180910390fd5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156126f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e790614960565b60405180910390fd5b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561277a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612771906149c8565b60405180910390fd5b5f81036127915761278c83835f61345e565b6130c5565b600c5f9054906101000a900460ff1615612c75576127ad6115bd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561281b57506127eb6115bd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561288d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128a65750600660149054906101000a900460ff16155b15612c7457600c60019054906101000a900460ff1661299a5760165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061295a575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299090614a30565b60405180910390fd5b5b60185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a37575060175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ade57600954811115612a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7890614abe565b60405180910390fd5b600b54612a8d836111e0565b82612a989190613e86565b1115612ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad090614b26565b60405180910390fd5b612c73565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612b7b575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612bca57600954811115612bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbc90614bb4565b60405180910390fd5b612c72565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612c7157600b54612c24836111e0565b82612c2f9190613e86565b1115612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6790614b26565b60405180910390fd5b5b5b5b5b5b5f612c7f306111e0565b90505f600a548210159050808015612ca35750600c60029054906101000a900460ff165b8015612cbc5750600660149054906101000a900460ff16155b8015612d0f575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612d62575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612db5575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612df8576001600660146101000a81548160ff021916908315150217905550612ddd6136d3565b5f600660146101000a81548160ff0219169083151502179055505b5f600660149054906101000a900460ff1615905060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612ea7575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612eb0575f90505b5f81156130b55760185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612f0e57505f601054115b15612fa657612f3b6064612f2d601054886138a290919063ffffffff16565b6138b790919063ffffffff16565b905060105460125482612f4e9190613f7e565b612f589190613fec565b60145f828254612f689190613e86565b9250508190555060105460115482612f809190613f7e565b612f8a9190613fec565b60135f828254612f9a9190613e86565b92505081905550613092565b60185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ffd57505f600d54115b156130915761302a606461301c600d54886138a290919063ffffffff16565b6138b790919063ffffffff16565b9050600d54600f548261303d9190613f7e565b6130479190613fec565b60145f8282546130579190613e86565b92505081905550600d54600e548261306f9190613f7e565b6130799190613fec565b60135f8282546130899190613e86565b925050819055505b5b5f8111156130a6576130a587308361345e565b5b80856130b29190614bd2565b94505b6130c087878761345e565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff8111156131a9576131a8614c05565b5b6040519080825280602002602001820160405280156131d75781602001602082028036833780820191505090505b50905030815f815181106131ee576131ed614c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613291573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132b59190614c73565b816001815181106132c9576132c8614c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061332e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846123c7565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161338f959493929190614d8e565b5f604051808303815f87803b1580156133a6575f80fd5b505af11580156133b8573d5f803e3d5ffd5b505050505050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036134cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c39061486a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361353a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613531906148f8565b60405180910390fd5b6135458383836138cc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90614e56565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546136569190613e86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136ba9190613b58565b60405180910390a36136cd8484846138d1565b50505050565b5f6136dd306111e0565b90505f6014546013546136f09190613e86565b90505f808303613702575050506138a0565b6014600a546137119190613f7e565b83111561372a576014600a546137279190613f7e565b92505b5f4790506137378461318d565b5f61374b82476138d690919063ffffffff16565b90505f61377585613767601454856138a290919063ffffffff16565b6138b790919063ffffffff16565b90505f6013819055505f60148190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516137ca90614ea1565b5f6040518083038185875af1925050503d805f8114613804576040519150601f19603f3d011682016040523d82523d5f602084013e613809565b606091505b50508094505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161385490614ea1565b5f6040518083038185875af1925050503d805f811461388e576040519150601f19603f3d011682016040523d82523d5f602084013e613893565b606091505b5050809450505050505050505b565b5f81836138af9190613f7e565b905092915050565b5f81836138c49190613fec565b905092915050565b505050565b505050565b5f81836138e39190614bd2565b905092915050565b5f80fd5b5f819050919050565b613901816138ef565b811461390b575f80fd5b50565b5f8135905061391c816138f8565b92915050565b5f8060408385031215613938576139376138eb565b5b5f6139458582860161390e565b92505060206139568582860161390e565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561399757808201518184015260208101905061397c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6139bc82613960565b6139c6818561396a565b93506139d681856020860161397a565b6139df816139a2565b840191505092915050565b5f6020820190508181035f830152613a0281846139b2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a3382613a0a565b9050919050565b613a4381613a29565b8114613a4d575f80fd5b50565b5f81359050613a5e81613a3a565b92915050565b5f8060408385031215613a7a57613a796138eb565b5b5f613a8785828601613a50565b9250506020613a988582860161390e565b9150509250929050565b5f8115159050919050565b613ab681613aa2565b82525050565b5f602082019050613acf5f830184613aad565b92915050565b5f819050919050565b5f613af8613af3613aee84613a0a565b613ad5565b613a0a565b9050919050565b5f613b0982613ade565b9050919050565b5f613b1a82613aff565b9050919050565b613b2a81613b10565b82525050565b5f602082019050613b435f830184613b21565b92915050565b613b52816138ef565b82525050565b5f602082019050613b6b5f830184613b49565b92915050565b5f60208284031215613b8657613b856138eb565b5b5f613b938482850161390e565b91505092915050565b5f805f60608486031215613bb357613bb26138eb565b5b5f613bc086828701613a50565b9350506020613bd186828701613a50565b9250506040613be28682870161390e565b9150509250925092565b613bf581613a29565b82525050565b5f602082019050613c0e5f830184613bec565b92915050565b5f60ff82169050919050565b613c2981613c14565b82525050565b5f602082019050613c425f830184613c20565b92915050565b5f60208284031215613c5d57613c5c6138eb565b5b5f613c6a84828501613a50565b91505092915050565b613c7c81613aa2565b8114613c86575f80fd5b50565b5f81359050613c9781613c73565b92915050565b5f8060408385031215613cb357613cb26138eb565b5b5f613cc085828601613a50565b9250506020613cd185828601613c89565b9150509250929050565b5f60208284031215613cf057613cef6138eb565b5b5f613cfd84828501613c89565b91505092915050565b613d0f81613c14565b8114613d19575f80fd5b50565b5f81359050613d2a81613d06565b92915050565b5f819050919050565b613d4281613d30565b8114613d4c575f80fd5b50565b5f81359050613d5d81613d39565b92915050565b5f805f60608486031215613d7a57613d796138eb565b5b5f613d8786828701613d1c565b9350506020613d9886828701613d4f565b9250506040613da986828701613d4f565b9150509250925092565b5f8060408385031215613dc957613dc86138eb565b5b5f613dd685828601613a50565b9250506020613de785828601613a50565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e2560208361396a565b9150613e3082613df1565b602082019050919050565b5f6020820190508181035f830152613e5281613e19565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e90826138ef565b9150613e9b836138ef565b9250828201905080821115613eb357613eb2613e59565b5b92915050565b7f4d757374206b656570206665657320617420353025206f72206c6573730000005f82015250565b5f613eed601d8361396a565b9150613ef882613eb9565b602082019050919050565b5f6020820190508181035f830152613f1a81613ee1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613f6557607f821691505b602082108103613f7857613f77613f21565b5b50919050565b5f613f88826138ef565b9150613f93836138ef565b9250828202613fa1816138ef565b91508282048414831517613fb857613fb7613e59565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ff6826138ef565b9150614001836138ef565b92508261401157614010613fbf565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f776572205f8201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b5f61407660298361396a565b91506140818261401c565b604082019050919050565b5f6020820190508181035f8301526140a38161406a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61410460288361396a565b915061410f826140aa565b604082019050919050565b5f6020820190508181035f830152614131816140f8565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f61416c600c8361396a565b915061417782614138565b602082019050919050565b5f6020820190508181035f83015261419981614160565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6141fa60398361396a565b9150614205826141a0565b604082019050919050565b5f6020820190508181035f830152614227816141ee565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61428860258361396a565b91506142938261422e565b604082019050919050565b5f6020820190508181035f8301526142b58161427c565b9050919050565b6142c581613d30565b82525050565b5f60a0820190506142de5f8301886142bc565b6142eb60208301876142bc565b6142f860408301866142bc565b6143056060830185613b49565b6143126080830184613bec565b9695505050505050565b5f60608201905061432f5f8301866142bc565b61433c60208301856142bc565b6143496040830184613b49565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f61438f600283614351565b915061439a8261435b565b600282019050919050565b5f819050919050565b6143bf6143ba82613d30565b6143a5565b82525050565b5f6143cf82614383565b91506143db82856143ae565b6020820191506143eb82846143ae565b6020820191508190509392505050565b5f60808201905061440e5f8301876142bc565b61441b6020830186613c20565b61442860408301856142bc565b61443560608301846142bc565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f61447260118361396a565b915061447d8261443e565b602082019050919050565b5f6020820190508181035f83015261449f81614466565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61450060248361396a565b915061450b826144a6565b604082019050919050565b5f6020820190508181035f83015261452d816144f4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61458e60358361396a565b915061459982614534565b604082019050919050565b5f6020820190508181035f8301526145bb81614582565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61461c60348361396a565b9150614627826145c2565b604082019050919050565b5f6020820190508181035f83015261464981614610565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6146aa60268361396a565b91506146b582614650565b604082019050919050565b5f6020820190508181035f8301526146d78161469e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61473860248361396a565b9150614743826146de565b604082019050919050565b5f6020820190508181035f8301526147658161472c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6147c660228361396a565b91506147d18261476c565b604082019050919050565b5f6020820190508181035f8301526147f3816147ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61485460258361396a565b915061485f826147fa565b604082019050919050565b5f6020820190508181035f83015261488181614848565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6148e260238361396a565b91506148ed82614888565b604082019050919050565b5f6020820190508181035f83015261490f816148d6565b9050919050565b7f5b66726f6d5d20626c61636b206c6973740000000000000000000000000000005f82015250565b5f61494a60118361396a565b915061495582614916565b602082019050919050565b5f6020820190508181035f8301526149778161493e565b9050919050565b7f5b746f5d20626c61636b206c69737400000000000000000000000000000000005f82015250565b5f6149b2600f8361396a565b91506149bd8261497e565b602082019050919050565b5f6020820190508181035f8301526149df816149a6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614a1a60168361396a565b9150614a25826149e6565b602082019050919050565b5f6020820190508181035f830152614a4781614a0e565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b5f614aa8602f8361396a565b9150614ab382614a4e565b604082019050919050565b5f6020820190508181035f830152614ad581614a9c565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614b1060138361396a565b9150614b1b82614adc565b602082019050919050565b5f6020820190508181035f830152614b3d81614b04565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e2e00000000000000000000000000000000602082015250565b5f614b9e60308361396a565b9150614ba982614b44565b604082019050919050565b5f6020820190508181035f830152614bcb81614b92565b9050919050565b5f614bdc826138ef565b9150614be7836138ef565b9250828203905081811115614bff57614bfe613e59565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614c6d81613a3a565b92915050565b5f60208284031215614c8857614c876138eb565b5b5f614c9584828501614c5f565b91505092915050565b5f819050919050565b5f614cc1614cbc614cb784614c9e565b613ad5565b6138ef565b9050919050565b614cd181614ca7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614d0981613a29565b82525050565b5f614d1a8383614d00565b60208301905092915050565b5f602082019050919050565b5f614d3c82614cd7565b614d468185614ce1565b9350614d5183614cf1565b805f5b83811015614d81578151614d688882614d0f565b9750614d7383614d26565b925050600181019050614d54565b5085935050505092915050565b5f60a082019050614da15f830188613b49565b614dae6020830187614cc8565b8181036040830152614dc08186614d32565b9050614dcf6060830185613bec565b614ddc6080830184613b49565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614e4060268361396a565b9150614e4b82614de6565b604082019050919050565b5f6020820190508181035f830152614e6d81614e34565b9050919050565b5f81905092915050565b50565b5f614e8c5f83614e74565b9150614e9782614e7e565b5f82019050919050565b5f614eab82614e81565b915081905091905056fea2646970667358221220fb0e8c6cec6c9f4ea8005166e97d9140f9944b2b31168b1a0fa4a6d54c7b677a64736f6c63430008170033
Deployed Bytecode Sourcemap
15061:13425:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21711:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2758:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3672:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15139:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3079:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15842:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20492:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3849:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15232:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2978:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4349:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15197:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15511:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23148:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21392:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15735:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15591:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3195:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;880:103;;;;;;;;;;;;;:::i;:::-;;19796:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21027:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15324:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15665;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26763:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18562:112;;;;;;;;;;;;;:::i;:::-;;657:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15770:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21284:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2866:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22227:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15702:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15882:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15808:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4572:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3330:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18682:1062;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22735:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16095:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15551:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22037:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15361:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20763:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15402:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22951:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19987:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15631:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3513:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16029:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15438:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;991:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15478:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21711:318;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21849:13:::1;21830:16;:32;;;;21886:7;21873:10;:20;;;;21939:10;;21920:16;;:29;;;;:::i;:::-;21904:13;:45;;;;21985:2;21968:13;;:19;;21960:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;21711:318:::0;;:::o;2758:100::-;2812:13;2845:5;2838:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2758:100;:::o;3672:169::-;3755:4;3772:39;3781:12;:10;:12::i;:::-;3795:7;3804:6;3772:8;:39::i;:::-;3829:4;3822:11;;3672:169;;;;:::o;15139:51::-;;;:::o;3079:108::-;3140:7;3167:12;;3160:19;;3079:108;:::o;15842:33::-;;;;:::o;20492:263::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20629:4:::1;20621;20616:1;20600:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20599:26;;;;:::i;:::-;20598:35;;;;:::i;:::-;20588:6;:45;;20566:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;20740:6;20730;:17;;;;:::i;:::-;20713:14;:34;;;;20492:263:::0;:::o;3849:492::-;3989:4;4006:36;4016:6;4024:9;4035:6;4006:9;:36::i;:::-;4055:24;4082:11;:19;4094:6;4082:19;;;;;;;;;;;;;;;:33;4102:12;:10;:12::i;:::-;4082:33;;;;;;;;;;;;;;;;4055:60;;4154:6;4134:16;:26;;4126:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4241:57;4250:6;4258:12;:10;:12::i;:::-;4291:6;4272:16;:25;4241:8;:57::i;:::-;4329:4;4322:11;;;3849:492;;;;;:::o;15232:53::-;15278:6;15232:53;:::o;2978:93::-;3036:5;3061:2;3054:9;;2978:93;:::o;4349:215::-;4437:4;4454:80;4463:12;:10;:12::i;:::-;4477:7;4523:10;4486:11;:25;4498:12;:10;:12::i;:::-;4486:25;;;;;;;;;;;;;;;:34;4512:7;4486:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4454:8;:80::i;:::-;4552:4;4545:11;;4349:215;;;;:::o;15197:28::-;;;;;;;;;;;;;:::o;15511:33::-;;;;;;;;;;;;;:::o;23148:126::-;23214:4;23238:19;:28;23258:7;23238:28;;;;;;;;;;;;;;;;;;;;;;;;;23231:35;;23148:126;;;:::o;21392:311::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21528:13:::1;21510:15;:31;;;;21564:7;21552:9;:19;;;;21615:9;;21597:15;;:27;;;;:::i;:::-;21582:12;:42;;;;21659:2;21643:12;;:18;;21635:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21392:311:::0;;:::o;15735:28::-;;;;:::o;15591:31::-;;;;;;;;;;;;;:::o;3195:127::-;3269:7;3296:9;:18;3306:7;3296:18;;;;;;;;;;;;;;;;3289:25;;3195:127;;;:::o;880:103::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;945:30:::1;972:1;945:18;:30::i;:::-;880:103::o:0;19796:121::-;19848:4;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19882:5:::1;19865:14;;:22;;;;;;;;;;;;;;;;;;19905:4;19898:11;;19796:121:::0;:::o;21027:161::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21176:4:::1;21140:25;:33;21166:6;21140:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;21027:161:::0;;:::o;15324:30::-;;;;;;;;;;;;;:::o;15665:::-;;;;:::o;26763:223::-;26843:15;;;;;;;;;;;26827:31;;:12;:10;:12::i;:::-;:31;;;26819:40;;;;;;26888:24;26906:4;26888:9;:24::i;:::-;26878:6;:34;;:48;;;;;26925:1;26916:6;:10;26878:48;26870:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;26954:24;26971:6;26954:16;:24::i;:::-;26763:223;:::o;18562:112::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18633:4:::1;18617:13;;:20;;;;;;;;;;;;;;;;;;18662:4;18648:11;;:18;;;;;;;;;;;;;;;;;;18562:112::o:0;657:87::-;703:7;730:6;;;;;;;;;;;723:13;;657:87;:::o;15770:31::-;;;;:::o;21284:100::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21369:7:::1;21355:11;;:21;;;;;;;;;;;;;;;;;;21284:100:::0;:::o;2866:104::-;2922:13;2955:7;2948:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:104;:::o;22227:304::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22371:13:::1;;;;;;;;;;;22363:21;;:4;:21;;::::0;22341:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22482:41;22511:4;22517:5;22482:28;:41::i;:::-;22227:304:::0;;:::o;15702:24::-;;;;:::o;15882:27::-;;;;:::o;15808:25::-;;;;:::o;4572:413::-;4665:4;4682:24;4709:11;:25;4721:12;:10;:12::i;:::-;4709:25;;;;;;;;;;;;;;;:34;4735:7;4709:34;;;;;;;;;;;;;;;;4682:61;;4782:15;4762:16;:35;;4754:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4875:67;4884:12;:10;:12::i;:::-;4898:7;4926:15;4907:16;:34;4875:8;:67::i;:::-;4973:4;4966:11;;;4572:413;;;;:::o;3330:175::-;3416:4;3433:42;3443:12;:10;:12::i;:::-;3457:9;3468:6;3433:9;:42::i;:::-;3493:4;3486:11;;3330:175;;;;:::o;18682:1062::-;18766:18;18840:95;18964:22;;;;;;;;;;;;;;;;;18954:33;;;;;;19016:10;;;;;;;;;;;;;;;;;19006:21;;;;;;19046:13;19086:4;18811:295;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18787:330;;;;;;18766:351;;19130:18;19204:49;19282:23;;;;;;;;;;;;;;;;;19272:34;;;;;;19333:1;19175:175;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19151:210;;;;;;19130:231;;19374:14;19479:10;19508;19415:134;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19391:169;;;;;;19374:186;;19573:14;19590:26;19600:6;19608:1;19611;19614;19590:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19573:43;;19645:7;:5;:7::i;:::-;19635:17;;:6;:17;;;19627:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;19703:4;19687:13;;:20;;;;;;;;;;;;;;;;;;19732:4;19718:11;;:18;;;;;;;;;;;;;;;;;;18755:989;;;;18682:1062;;;:::o;22735:208::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22872:15:::1;;;;;;;;;;;22829:59;;22852:18;22829:59;;;;;;;;;;;;22917:18;22899:15;;:36;;;;;;;;;;;;;;;;;;22735:208:::0;:::o;16095:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;15551:33::-;;;;;;;;;;;;;:::o;22037:182::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22153:8:::1;22122:19;:28;22142:7;22122:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22193:7;22177:34;;;22202:8;22177:34;;;;;;:::i;:::-;;;;;;;;22037:182:::0;;:::o;15361:32::-;;;;;;;;;;;;;:::o;20763:256::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20903:4:::1;20895;20890:1;20874:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20873:26;;;;:::i;:::-;20872:35;;;;:::i;:::-;20862:6;:45;;20840:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;21004:6;20994;:17;;;;:::i;:::-;20982:9;:29;;;;20763:256:::0;:::o;15402:29::-;;;;:::o;22951:189::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23074:17:::1;;;;;;;;;;;23038:54;;23063:9;23038:54;;;;;;;;;;;;23123:9;23103:17;;:29;;;;;;;;;;;;;;;;;;22951:189:::0;:::o;19987:497::-;20095:4;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20174:6:::1;20169:1;20153:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20152:28;;;;:::i;:::-;20139:9;:41;;20117:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;20329:4;20324:1;20308:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20307:26;;;;:::i;:::-;20294:9;:39;;20272:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;20445:9;20424:18;:30;;;;20472:4;20465:11;;19987:497:::0;;;:::o;15631:27::-;;;;:::o;3513:151::-;3602:7;3629:11;:18;3641:5;3629:18;;;;;;;;;;;;;;;:27;3648:7;3629:27;;;;;;;;;;;;;;;;3622:34;;3513:151;;;;:::o;16029:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;15438:33::-;;;;:::o;991:201::-;803:12;:10;:12::i;:::-;792:23;;:7;:5;:7::i;:::-;:23;;;784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1100:1:::1;1080:22;;:8;:22;;::::0;1072:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1156:28;1175:8;1156:18;:28::i;:::-;991:201:::0;:::o;15478:24::-;;;;:::o;203:98::-;256:7;283:10;276:17;;203:98;:::o;6740:380::-;6893:1;6876:19;;:5;:19;;;6868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6974:1;6955:21;;:7;:21;;;6947:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7058:6;7028:11;:18;7040:5;7028:18;;;;;;;;;;;;;;;:27;7047:7;7028:27;;;;;;;;;;;;;;;:36;;;;7096:7;7080:32;;7089:5;7080:32;;;7105:6;7080:32;;;;;;:::i;:::-;;;;;;;;6740:380;;;:::o;23332:3308::-;23480:1;23464:18;;:4;:18;;;23456:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23557:1;23543:16;;:2;:16;;;23535:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23619:12;:18;23632:4;23619:18;;;;;;;;;;;;;;;;;;;;;;;;;23618:19;23610:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;23679:12;:16;23692:2;23679:16;;;;;;;;;;;;;;;;;;;;;;;;;23678:17;23670:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;23742:1;23732:6;:11;23728:93;;23760:28;23776:4;23782:2;23786:1;23760:15;:28::i;:::-;23803:7;;23728:93;23837:14;;;;;;;;;;;23833:1150;;;23880:7;:5;:7::i;:::-;23872:15;;:4;:15;;;;:49;;;;;23914:7;:5;:7::i;:::-;23908:13;;:2;:13;;;;23872:49;:86;;;;;23956:1;23942:16;;:2;:16;;;;23872:86;:128;;;;;23993:6;23979:21;;:2;:21;;;;23872:128;:158;;;;;24022:8;;;;;;;;;;;24021:9;23872:158;23868:1104;;;24056:13;;;;;;;;;;;24051:150;;24102:19;:25;24122:4;24102:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;24131:19;:23;24151:2;24131:23;;;;;;;;;;;;;;;;;;;;;;;;;24102:52;24094:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;24051:150;24253:25;:31;24279:4;24253:31;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;24289:25;:29;24315:2;24289:29;;;;;;;;;;;;;;;;;;;;;;;;;24288:30;24253:65;24249:708;;;24361:14;;24351:6;:24;;24343:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;24484:9;;24467:13;24477:2;24467:9;:13::i;:::-;24458:6;:22;;;;:::i;:::-;:35;;24450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24249:708;;;24593:25;:29;24619:2;24593:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;24627:25;:31;24653:4;24627:31;;;;;;;;;;;;;;;;;;;;;;;;;24626:32;24593:65;24589:368;;;24701:14;;24691:6;:24;;24683:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;24589:368;;;24816:25;:29;24842:2;24816:29;;;;;;;;;;;;;;;;;;;;;;;;;24811:146;;24904:9;;24887:13;24897:2;24887:9;:13::i;:::-;24878:6;:22;;;;:::i;:::-;:35;;24870:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24811:146;24589:368;24249:708;23868:1104;23833:1150;24995:28;25026:24;25044:4;25026:9;:24::i;:::-;24995:55;;25061:12;25100:18;;25076:20;:42;;25061:57;;25135:7;:35;;;;;25159:11;;;;;;;;;;;25135:35;:61;;;;;25188:8;;;;;;;;;;;25187:9;25135:61;:110;;;;;25214:25;:31;25240:4;25214:31;;;;;;;;;;;;;;;;;;;;;;;;;25213:32;25135:110;:153;;;;;25263:19;:25;25283:4;25263:25;;;;;;;;;;;;;;;;;;;;;;;;;25262:26;25135:153;:194;;;;;25306:19;:23;25326:2;25306:23;;;;;;;;;;;;;;;;;;;;;;;;;25305:24;25135:194;25131:302;;;25357:4;25346:8;;:15;;;;;;;;;;;;;;;;;;25378:10;:8;:10::i;:::-;25416:5;25405:8;;:16;;;;;;;;;;;;;;;;;;25131:302;25445:12;25461:8;;;;;;;;;;;25460:9;25445:24;;25571:19;:25;25591:4;25571:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;25600:19;:23;25620:2;25600:23;;;;;;;;;;;;;;;;;;;;;;;;;25571:52;25567:100;;;25650:5;25640:15;;25567:100;25679:12;25784:7;25780:807;;;25836:25;:29;25862:2;25836:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;25885:1;25869:13;;:17;25836:50;25832:606;;;25914:34;25944:3;25914:25;25925:13;;25914:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;25907:41;;26005:13;;25991:10;;25984:4;:17;;;;:::i;:::-;25983:35;;;;:::i;:::-;25967:12;;:51;;;;;;;:::i;:::-;;;;;;;;26087:13;;26067:16;;26060:4;:23;;;;:::i;:::-;26059:41;;;;:::i;:::-;26037:18;;:63;;;;;;;:::i;:::-;;;;;;;;25832:606;;;26162:25;:31;26188:4;26162:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;26212:1;26197:12;;:16;26162:51;26158:280;;;26241:33;26270:3;26241:24;26252:12;;26241:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;26234:40;;26330:12;;26317:9;;26310:4;:16;;;;:::i;:::-;26309:33;;;;:::i;:::-;26293:12;;:49;;;;;;;:::i;:::-;;;;;;;;26410:12;;26391:15;;26384:4;:22;;;;:::i;:::-;26383:39;;;;:::i;:::-;26361:18;;:61;;;;;;;:::i;:::-;;;;;;;;26158:280;25832:606;26465:1;26458:4;:8;26454:91;;;26487:42;26503:4;26517;26524;26487:15;:42::i;:::-;26454:91;26571:4;26561:14;;;;;:::i;:::-;;;25780:807;26599:33;26615:4;26621:2;26625:6;26599:15;:33::i;:::-;23445:3195;;;;23332:3308;;;;:::o;1200:191::-;1274:16;1293:6;;;;;;;;;;;1274:25;;1319:8;1310:6;;:17;;;;;;;;;;;;;;;;;;1374:8;1343:40;;1364:8;1343:40;;;;;;;;;;;;1263:128;1200:191;:::o;26998:589::-;27124:21;27162:1;27148:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27124:40;;27193:4;27175;27180:1;27175:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;27219:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27209:4;27214:1;27209:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;27254:62;27271:4;27286:15;27304:11;27254:8;:62::i;:::-;27355:15;:66;;;27436:11;27462:1;27506:4;27533;27553:15;27355:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27053:534;26998:589;:::o;22539:188::-;22656:5;22622:25;:31;22648:4;22622:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22713:5;22679:40;;22707:4;22679:40;;;;;;;;;;;;22539:188;;:::o;4993:733::-;5151:1;5133:20;;:6;:20;;;5125:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5235:1;5214:23;;:9;:23;;;5206:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5290:47;5311:6;5319:9;5330:6;5290:20;:47::i;:::-;5350:21;5374:9;:17;5384:6;5374:17;;;;;;;;;;;;;;;;5350:41;;5427:6;5410:13;:23;;5402:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5548:6;5532:13;:22;5512:9;:17;5522:6;5512:17;;;;;;;;;;;;;;;:42;;;;5600:6;5576:9;:20;5586:9;5576:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5641:9;5624:35;;5633:6;5624:35;;;5652:6;5624:35;;;;;;:::i;:::-;;;;;;;;5672:46;5692:6;5700:9;5711:6;5672:19;:46::i;:::-;5114:612;4993:733;;;:::o;27595:888::-;27634:23;27660:24;27678:4;27660:9;:24::i;:::-;27634:50;;27695:25;27744:12;;27723:18;;:33;;;;:::i;:::-;27695:61;;27767:12;27815:1;27796:15;:20;27792:59;;27833:7;;;;;27792:59;27906:2;27885:18;;:23;;;;:::i;:::-;27867:15;:41;27863:115;;;27964:2;27943:18;;:23;;;;:::i;:::-;27925:41;;27863:115;27990:25;28018:21;27990:49;;28050:33;28067:15;28050:16;:33::i;:::-;28096:18;28117:44;28143:17;28117:21;:25;;:44;;;;:::i;:::-;28096:65;;28172:17;28192:51;28225:17;28192:28;28207:12;;28192:10;:14;;:28;;;;:::i;:::-;:32;;:51;;;;:::i;:::-;28172:71;;28277:1;28256:18;:22;;;;28304:1;28289:12;:16;;;;28340:17;;;;;;;;;;;28332:31;;28371:9;28332:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28318:67;;;;;28418:15;;;;;;;;;;;28410:29;;28448:21;28410:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28396:79;;;;;27623:860;;;;;;27595:888;:::o;8746:98::-;8804:7;8835:1;8831;:5;;;;:::i;:::-;8824:12;;8746:98;;;;:::o;8852:::-;8910:7;8941:1;8937;:5;;;;:::i;:::-;8930:12;;8852:98;;;;:::o;7128:125::-;;;;:::o;7261:124::-;;;;:::o;8640:98::-;8698:7;8729:1;8725;:5;;;;:::i;:::-;8718:12;;8640:98;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:153::-;4349:9;4382:37;4413:5;4382:37;:::i;:::-;4369:50;;4272:153;;;:::o;4431:185::-;4545:64;4603:5;4545:64;:::i;:::-;4540:3;4533:77;4431:185;;:::o;4622:276::-;4742:4;4780:2;4769:9;4765:18;4757:26;;4793:98;4888:1;4877:9;4873:17;4864:6;4793:98;:::i;:::-;4622:276;;;;:::o;4904:118::-;4991:24;5009:5;4991:24;:::i;:::-;4986:3;4979:37;4904:118;;:::o;5028:222::-;5121:4;5159:2;5148:9;5144:18;5136:26;;5172:71;5240:1;5229:9;5225:17;5216:6;5172:71;:::i;:::-;5028:222;;;;:::o;5256:329::-;5315:6;5364:2;5352:9;5343:7;5339:23;5335:32;5332:119;;;5370:79;;:::i;:::-;5332:119;5490:1;5515:53;5560:7;5551:6;5540:9;5536:22;5515:53;:::i;:::-;5505:63;;5461:117;5256:329;;;;:::o;5591:619::-;5668:6;5676;5684;5733:2;5721:9;5712:7;5708:23;5704:32;5701:119;;;5739:79;;:::i;:::-;5701:119;5859:1;5884:53;5929:7;5920:6;5909:9;5905:22;5884:53;:::i;:::-;5874:63;;5830:117;5986:2;6012:53;6057:7;6048:6;6037:9;6033:22;6012:53;:::i;:::-;6002:63;;5957:118;6114:2;6140:53;6185:7;6176:6;6165:9;6161:22;6140:53;:::i;:::-;6130:63;;6085:118;5591:619;;;;;:::o;6216:118::-;6303:24;6321:5;6303:24;:::i;:::-;6298:3;6291:37;6216:118;;:::o;6340:222::-;6433:4;6471:2;6460:9;6456:18;6448:26;;6484:71;6552:1;6541:9;6537:17;6528:6;6484:71;:::i;:::-;6340:222;;;;:::o;6568:86::-;6603:7;6643:4;6636:5;6632:16;6621:27;;6568:86;;;:::o;6660:112::-;6743:22;6759:5;6743:22;:::i;:::-;6738:3;6731:35;6660:112;;:::o;6778:214::-;6867:4;6905:2;6894:9;6890:18;6882:26;;6918:67;6982:1;6971:9;6967:17;6958:6;6918:67;:::i;:::-;6778:214;;;;:::o;6998:329::-;7057:6;7106:2;7094:9;7085:7;7081:23;7077:32;7074:119;;;7112:79;;:::i;:::-;7074:119;7232:1;7257:53;7302:7;7293:6;7282:9;7278:22;7257:53;:::i;:::-;7247:63;;7203:117;6998:329;;;;:::o;7333:116::-;7403:21;7418:5;7403:21;:::i;:::-;7396:5;7393:32;7383:60;;7439:1;7436;7429:12;7383:60;7333:116;:::o;7455:133::-;7498:5;7536:6;7523:20;7514:29;;7552:30;7576:5;7552:30;:::i;:::-;7455:133;;;;:::o;7594:468::-;7659:6;7667;7716:2;7704:9;7695:7;7691:23;7687:32;7684:119;;;7722:79;;:::i;:::-;7684:119;7842:1;7867:53;7912:7;7903:6;7892:9;7888:22;7867:53;:::i;:::-;7857:63;;7813:117;7969:2;7995:50;8037:7;8028:6;8017:9;8013:22;7995:50;:::i;:::-;7985:60;;7940:115;7594:468;;;;;:::o;8068:323::-;8124:6;8173:2;8161:9;8152:7;8148:23;8144:32;8141:119;;;8179:79;;:::i;:::-;8141:119;8299:1;8324:50;8366:7;8357:6;8346:9;8342:22;8324:50;:::i;:::-;8314:60;;8270:114;8068:323;;;;:::o;8397:118::-;8468:22;8484:5;8468:22;:::i;:::-;8461:5;8458:33;8448:61;;8505:1;8502;8495:12;8448:61;8397:118;:::o;8521:135::-;8565:5;8603:6;8590:20;8581:29;;8619:31;8644:5;8619:31;:::i;:::-;8521:135;;;;:::o;8662:77::-;8699:7;8728:5;8717:16;;8662:77;;;:::o;8745:122::-;8818:24;8836:5;8818:24;:::i;:::-;8811:5;8808:35;8798:63;;8857:1;8854;8847:12;8798:63;8745:122;:::o;8873:139::-;8919:5;8957:6;8944:20;8935:29;;8973:33;9000:5;8973:33;:::i;:::-;8873:139;;;;:::o;9018:615::-;9093:6;9101;9109;9158:2;9146:9;9137:7;9133:23;9129:32;9126:119;;;9164:79;;:::i;:::-;9126:119;9284:1;9309:51;9352:7;9343:6;9332:9;9328:22;9309:51;:::i;:::-;9299:61;;9255:115;9409:2;9435:53;9480:7;9471:6;9460:9;9456:22;9435:53;:::i;:::-;9425:63;;9380:118;9537:2;9563:53;9608:7;9599:6;9588:9;9584:22;9563:53;:::i;:::-;9553:63;;9508:118;9018:615;;;;;:::o;9639:474::-;9707:6;9715;9764:2;9752:9;9743:7;9739:23;9735:32;9732:119;;;9770:79;;:::i;:::-;9732:119;9890:1;9915:53;9960:7;9951:6;9940:9;9936:22;9915:53;:::i;:::-;9905:63;;9861:117;10017:2;10043:53;10088:7;10079:6;10068:9;10064:22;10043:53;:::i;:::-;10033:63;;9988:118;9639:474;;;;;:::o;10119:182::-;10259:34;10255:1;10247:6;10243:14;10236:58;10119:182;:::o;10307:366::-;10449:3;10470:67;10534:2;10529:3;10470:67;:::i;:::-;10463:74;;10546:93;10635:3;10546:93;:::i;:::-;10664:2;10659:3;10655:12;10648:19;;10307:366;;;:::o;10679:419::-;10845:4;10883:2;10872:9;10868:18;10860:26;;10932:9;10926:4;10922:20;10918:1;10907:9;10903:17;10896:47;10960:131;11086:4;10960:131;:::i;:::-;10952:139;;10679:419;;;:::o;11104:180::-;11152:77;11149:1;11142:88;11249:4;11246:1;11239:15;11273:4;11270:1;11263:15;11290:191;11330:3;11349:20;11367:1;11349:20;:::i;:::-;11344:25;;11383:20;11401:1;11383:20;:::i;:::-;11378:25;;11426:1;11423;11419:9;11412:16;;11447:3;11444:1;11441:10;11438:36;;;11454:18;;:::i;:::-;11438:36;11290:191;;;;:::o;11487:179::-;11627:31;11623:1;11615:6;11611:14;11604:55;11487:179;:::o;11672:366::-;11814:3;11835:67;11899:2;11894:3;11835:67;:::i;:::-;11828:74;;11911:93;12000:3;11911:93;:::i;:::-;12029:2;12024:3;12020:12;12013:19;;11672:366;;;:::o;12044:419::-;12210:4;12248:2;12237:9;12233:18;12225:26;;12297:9;12291:4;12287:20;12283:1;12272:9;12268:17;12261:47;12325:131;12451:4;12325:131;:::i;:::-;12317:139;;12044:419;;;:::o;12469:180::-;12517:77;12514:1;12507:88;12614:4;12611:1;12604:15;12638:4;12635:1;12628:15;12655:320;12699:6;12736:1;12730:4;12726:12;12716:22;;12783:1;12777:4;12773:12;12804:18;12794:81;;12860:4;12852:6;12848:17;12838:27;;12794:81;12922:2;12914:6;12911:14;12891:18;12888:38;12885:84;;12941:18;;:::i;:::-;12885:84;12706:269;12655:320;;;:::o;12981:410::-;13021:7;13044:20;13062:1;13044:20;:::i;:::-;13039:25;;13078:20;13096:1;13078:20;:::i;:::-;13073:25;;13133:1;13130;13126:9;13155:30;13173:11;13155:30;:::i;:::-;13144:41;;13334:1;13325:7;13321:15;13318:1;13315:22;13295:1;13288:9;13268:83;13245:139;;13364:18;;:::i;:::-;13245:139;13029:362;12981:410;;;;:::o;13397:180::-;13445:77;13442:1;13435:88;13542:4;13539:1;13532:15;13566:4;13563:1;13556:15;13583:185;13623:1;13640:20;13658:1;13640:20;:::i;:::-;13635:25;;13674:20;13692:1;13674:20;:::i;:::-;13669:25;;13713:1;13703:35;;13718:18;;:::i;:::-;13703:35;13760:1;13757;13753:9;13748:14;;13583:185;;;;:::o;13774:228::-;13914:34;13910:1;13902:6;13898:14;13891:58;13983:11;13978:2;13970:6;13966:15;13959:36;13774:228;:::o;14008:366::-;14150:3;14171:67;14235:2;14230:3;14171:67;:::i;:::-;14164:74;;14247:93;14336:3;14247:93;:::i;:::-;14365:2;14360:3;14356:12;14349:19;;14008:366;;;:::o;14380:419::-;14546:4;14584:2;14573:9;14569:18;14561:26;;14633:9;14627:4;14623:20;14619:1;14608:9;14604:17;14597:47;14661:131;14787:4;14661:131;:::i;:::-;14653:139;;14380:419;;;:::o;14805:227::-;14945:34;14941:1;14933:6;14929:14;14922:58;15014:10;15009:2;15001:6;14997:15;14990:35;14805:227;:::o;15038:366::-;15180:3;15201:67;15265:2;15260:3;15201:67;:::i;:::-;15194:74;;15277:93;15366:3;15277:93;:::i;:::-;15395:2;15390:3;15386:12;15379:19;;15038:366;;;:::o;15410:419::-;15576:4;15614:2;15603:9;15599:18;15591:26;;15663:9;15657:4;15653:20;15649:1;15638:9;15634:17;15627:47;15691:131;15817:4;15691:131;:::i;:::-;15683:139;;15410:419;;;:::o;15835:162::-;15975:14;15971:1;15963:6;15959:14;15952:38;15835:162;:::o;16003:366::-;16145:3;16166:67;16230:2;16225:3;16166:67;:::i;:::-;16159:74;;16242:93;16331:3;16242:93;:::i;:::-;16360:2;16355:3;16351:12;16344:19;;16003:366;;;:::o;16375:419::-;16541:4;16579:2;16568:9;16564:18;16556:26;;16628:9;16622:4;16618:20;16614:1;16603:9;16599:17;16592:47;16656:131;16782:4;16656:131;:::i;:::-;16648:139;;16375:419;;;:::o;16800:244::-;16940:34;16936:1;16928:6;16924:14;16917:58;17009:27;17004:2;16996:6;16992:15;16985:52;16800:244;:::o;17050:366::-;17192:3;17213:67;17277:2;17272:3;17213:67;:::i;:::-;17206:74;;17289:93;17378:3;17289:93;:::i;:::-;17407:2;17402:3;17398:12;17391:19;;17050:366;;;:::o;17422:419::-;17588:4;17626:2;17615:9;17611:18;17603:26;;17675:9;17669:4;17665:20;17661:1;17650:9;17646:17;17639:47;17703:131;17829:4;17703:131;:::i;:::-;17695:139;;17422:419;;;:::o;17847:224::-;17987:34;17983:1;17975:6;17971:14;17964:58;18056:7;18051:2;18043:6;18039:15;18032:32;17847:224;:::o;18077:366::-;18219:3;18240:67;18304:2;18299:3;18240:67;:::i;:::-;18233:74;;18316:93;18405:3;18316:93;:::i;:::-;18434:2;18429:3;18425:12;18418:19;;18077:366;;;:::o;18449:419::-;18615:4;18653:2;18642:9;18638:18;18630:26;;18702:9;18696:4;18692:20;18688:1;18677:9;18673:17;18666:47;18730:131;18856:4;18730:131;:::i;:::-;18722:139;;18449:419;;;:::o;18874:118::-;18961:24;18979:5;18961:24;:::i;:::-;18956:3;18949:37;18874:118;;:::o;18998:664::-;19203:4;19241:3;19230:9;19226:19;19218:27;;19255:71;19323:1;19312:9;19308:17;19299:6;19255:71;:::i;:::-;19336:72;19404:2;19393:9;19389:18;19380:6;19336:72;:::i;:::-;19418;19486:2;19475:9;19471:18;19462:6;19418:72;:::i;:::-;19500;19568:2;19557:9;19553:18;19544:6;19500:72;:::i;:::-;19582:73;19650:3;19639:9;19635:19;19626:6;19582:73;:::i;:::-;18998:664;;;;;;;;:::o;19668:442::-;19817:4;19855:2;19844:9;19840:18;19832:26;;19868:71;19936:1;19925:9;19921:17;19912:6;19868:71;:::i;:::-;19949:72;20017:2;20006:9;20002:18;19993:6;19949:72;:::i;:::-;20031;20099:2;20088:9;20084:18;20075:6;20031:72;:::i;:::-;19668:442;;;;;;:::o;20116:148::-;20218:11;20255:3;20240:18;;20116:148;;;;:::o;20270:214::-;20410:66;20406:1;20398:6;20394:14;20387:90;20270:214;:::o;20490:400::-;20650:3;20671:84;20753:1;20748:3;20671:84;:::i;:::-;20664:91;;20764:93;20853:3;20764:93;:::i;:::-;20882:1;20877:3;20873:11;20866:18;;20490:400;;;:::o;20896:79::-;20935:7;20964:5;20953:16;;20896:79;;;:::o;20981:157::-;21086:45;21106:24;21124:5;21106:24;:::i;:::-;21086:45;:::i;:::-;21081:3;21074:58;20981:157;;:::o;21144:663::-;21385:3;21407:148;21551:3;21407:148;:::i;:::-;21400:155;;21565:75;21636:3;21627:6;21565:75;:::i;:::-;21665:2;21660:3;21656:12;21649:19;;21678:75;21749:3;21740:6;21678:75;:::i;:::-;21778:2;21773:3;21769:12;21762:19;;21798:3;21791:10;;21144:663;;;;;:::o;21813:545::-;21986:4;22024:3;22013:9;22009:19;22001:27;;22038:71;22106:1;22095:9;22091:17;22082:6;22038:71;:::i;:::-;22119:68;22183:2;22172:9;22168:18;22159:6;22119:68;:::i;:::-;22197:72;22265:2;22254:9;22250:18;22241:6;22197:72;:::i;:::-;22279;22347:2;22336:9;22332:18;22323:6;22279:72;:::i;:::-;21813:545;;;;;;;:::o;22364:167::-;22504:19;22500:1;22492:6;22488:14;22481:43;22364:167;:::o;22537:366::-;22679:3;22700:67;22764:2;22759:3;22700:67;:::i;:::-;22693:74;;22776:93;22865:3;22776:93;:::i;:::-;22894:2;22889:3;22885:12;22878:19;;22537:366;;;:::o;22909:419::-;23075:4;23113:2;23102:9;23098:18;23090:26;;23162:9;23156:4;23152:20;23148:1;23137:9;23133:17;23126:47;23190:131;23316:4;23190:131;:::i;:::-;23182:139;;22909:419;;;:::o;23334:223::-;23474:34;23470:1;23462:6;23458:14;23451:58;23543:6;23538:2;23530:6;23526:15;23519:31;23334:223;:::o;23563:366::-;23705:3;23726:67;23790:2;23785:3;23726:67;:::i;:::-;23719:74;;23802:93;23891:3;23802:93;:::i;:::-;23920:2;23915:3;23911:12;23904:19;;23563:366;;;:::o;23935:419::-;24101:4;24139:2;24128:9;24124:18;24116:26;;24188:9;24182:4;24178:20;24174:1;24163:9;24159:17;24152:47;24216:131;24342:4;24216:131;:::i;:::-;24208:139;;23935:419;;;:::o;24360:240::-;24500:34;24496:1;24488:6;24484:14;24477:58;24569:23;24564:2;24556:6;24552:15;24545:48;24360:240;:::o;24606:366::-;24748:3;24769:67;24833:2;24828:3;24769:67;:::i;:::-;24762:74;;24845:93;24934:3;24845:93;:::i;:::-;24963:2;24958:3;24954:12;24947:19;;24606:366;;;:::o;24978:419::-;25144:4;25182:2;25171:9;25167:18;25159:26;;25231:9;25225:4;25221:20;25217:1;25206:9;25202:17;25195:47;25259:131;25385:4;25259:131;:::i;:::-;25251:139;;24978:419;;;:::o;25403:239::-;25543:34;25539:1;25531:6;25527:14;25520:58;25612:22;25607:2;25599:6;25595:15;25588:47;25403:239;:::o;25648:366::-;25790:3;25811:67;25875:2;25870:3;25811:67;:::i;:::-;25804:74;;25887:93;25976:3;25887:93;:::i;:::-;26005:2;26000:3;25996:12;25989:19;;25648:366;;;:::o;26020:419::-;26186:4;26224:2;26213:9;26209:18;26201:26;;26273:9;26267:4;26263:20;26259:1;26248:9;26244:17;26237:47;26301:131;26427:4;26301:131;:::i;:::-;26293:139;;26020:419;;;:::o;26445:225::-;26585:34;26581:1;26573:6;26569:14;26562:58;26654:8;26649:2;26641:6;26637:15;26630:33;26445:225;:::o;26676:366::-;26818:3;26839:67;26903:2;26898:3;26839:67;:::i;:::-;26832:74;;26915:93;27004:3;26915:93;:::i;:::-;27033:2;27028:3;27024:12;27017:19;;26676:366;;;:::o;27048:419::-;27214:4;27252:2;27241:9;27237:18;27229:26;;27301:9;27295:4;27291:20;27287:1;27276:9;27272:17;27265:47;27329:131;27455:4;27329:131;:::i;:::-;27321:139;;27048:419;;;:::o;27473:223::-;27613:34;27609:1;27601:6;27597:14;27590:58;27682:6;27677:2;27669:6;27665:15;27658:31;27473:223;:::o;27702:366::-;27844:3;27865:67;27929:2;27924:3;27865:67;:::i;:::-;27858:74;;27941:93;28030:3;27941:93;:::i;:::-;28059:2;28054:3;28050:12;28043:19;;27702:366;;;:::o;28074:419::-;28240:4;28278:2;28267:9;28263:18;28255:26;;28327:9;28321:4;28317:20;28313:1;28302:9;28298:17;28291:47;28355:131;28481:4;28355:131;:::i;:::-;28347:139;;28074:419;;;:::o;28499:221::-;28639:34;28635:1;28627:6;28623:14;28616:58;28708:4;28703:2;28695:6;28691:15;28684:29;28499:221;:::o;28726:366::-;28868:3;28889:67;28953:2;28948:3;28889:67;:::i;:::-;28882:74;;28965:93;29054:3;28965:93;:::i;:::-;29083:2;29078:3;29074:12;29067:19;;28726:366;;;:::o;29098:419::-;29264:4;29302:2;29291:9;29287:18;29279:26;;29351:9;29345:4;29341:20;29337:1;29326:9;29322:17;29315:47;29379:131;29505:4;29379:131;:::i;:::-;29371:139;;29098:419;;;:::o;29523:224::-;29663:34;29659:1;29651:6;29647:14;29640:58;29732:7;29727:2;29719:6;29715:15;29708:32;29523:224;:::o;29753:366::-;29895:3;29916:67;29980:2;29975:3;29916:67;:::i;:::-;29909:74;;29992:93;30081:3;29992:93;:::i;:::-;30110:2;30105:3;30101:12;30094:19;;29753:366;;;:::o;30125:419::-;30291:4;30329:2;30318:9;30314:18;30306:26;;30378:9;30372:4;30368:20;30364:1;30353:9;30349:17;30342:47;30406:131;30532:4;30406:131;:::i;:::-;30398:139;;30125:419;;;:::o;30550:222::-;30690:34;30686:1;30678:6;30674:14;30667:58;30759:5;30754:2;30746:6;30742:15;30735:30;30550:222;:::o;30778:366::-;30920:3;30941:67;31005:2;31000:3;30941:67;:::i;:::-;30934:74;;31017:93;31106:3;31017:93;:::i;:::-;31135:2;31130:3;31126:12;31119:19;;30778:366;;;:::o;31150:419::-;31316:4;31354:2;31343:9;31339:18;31331:26;;31403:9;31397:4;31393:20;31389:1;31378:9;31374:17;31367:47;31431:131;31557:4;31431:131;:::i;:::-;31423:139;;31150:419;;;:::o;31575:167::-;31715:19;31711:1;31703:6;31699:14;31692:43;31575:167;:::o;31748:366::-;31890:3;31911:67;31975:2;31970:3;31911:67;:::i;:::-;31904:74;;31987:93;32076:3;31987:93;:::i;:::-;32105:2;32100:3;32096:12;32089:19;;31748:366;;;:::o;32120:419::-;32286:4;32324:2;32313:9;32309:18;32301:26;;32373:9;32367:4;32363:20;32359:1;32348:9;32344:17;32337:47;32401:131;32527:4;32401:131;:::i;:::-;32393:139;;32120:419;;;:::o;32545:165::-;32685:17;32681:1;32673:6;32669:14;32662:41;32545:165;:::o;32716:366::-;32858:3;32879:67;32943:2;32938:3;32879:67;:::i;:::-;32872:74;;32955:93;33044:3;32955:93;:::i;:::-;33073:2;33068:3;33064:12;33057:19;;32716:366;;;:::o;33088:419::-;33254:4;33292:2;33281:9;33277:18;33269:26;;33341:9;33335:4;33331:20;33327:1;33316:9;33312:17;33305:47;33369:131;33495:4;33369:131;:::i;:::-;33361:139;;33088:419;;;:::o;33513:172::-;33653:24;33649:1;33641:6;33637:14;33630:48;33513:172;:::o;33691:366::-;33833:3;33854:67;33918:2;33913:3;33854:67;:::i;:::-;33847:74;;33930:93;34019:3;33930:93;:::i;:::-;34048:2;34043:3;34039:12;34032:19;;33691:366;;;:::o;34063:419::-;34229:4;34267:2;34256:9;34252:18;34244:26;;34316:9;34310:4;34306:20;34302:1;34291:9;34287:17;34280:47;34344:131;34470:4;34344:131;:::i;:::-;34336:139;;34063:419;;;:::o;34488:234::-;34628:34;34624:1;34616:6;34612:14;34605:58;34697:17;34692:2;34684:6;34680:15;34673:42;34488:234;:::o;34728:366::-;34870:3;34891:67;34955:2;34950:3;34891:67;:::i;:::-;34884:74;;34967:93;35056:3;34967:93;:::i;:::-;35085:2;35080:3;35076:12;35069:19;;34728:366;;;:::o;35100:419::-;35266:4;35304:2;35293:9;35289:18;35281:26;;35353:9;35347:4;35343:20;35339:1;35328:9;35324:17;35317:47;35381:131;35507:4;35381:131;:::i;:::-;35373:139;;35100:419;;;:::o;35525:169::-;35665:21;35661:1;35653:6;35649:14;35642:45;35525:169;:::o;35700:366::-;35842:3;35863:67;35927:2;35922:3;35863:67;:::i;:::-;35856:74;;35939:93;36028:3;35939:93;:::i;:::-;36057:2;36052:3;36048:12;36041:19;;35700:366;;;:::o;36072:419::-;36238:4;36276:2;36265:9;36261:18;36253:26;;36325:9;36319:4;36315:20;36311:1;36300:9;36296:17;36289:47;36353:131;36479:4;36353:131;:::i;:::-;36345:139;;36072:419;;;:::o;36497:235::-;36637:34;36633:1;36625:6;36621:14;36614:58;36706:18;36701:2;36693:6;36689:15;36682:43;36497:235;:::o;36738:366::-;36880:3;36901:67;36965:2;36960:3;36901:67;:::i;:::-;36894:74;;36977:93;37066:3;36977:93;:::i;:::-;37095:2;37090:3;37086:12;37079:19;;36738:366;;;:::o;37110:419::-;37276:4;37314:2;37303:9;37299:18;37291:26;;37363:9;37357:4;37353:20;37349:1;37338:9;37334:17;37327:47;37391:131;37517:4;37391:131;:::i;:::-;37383:139;;37110:419;;;:::o;37535:194::-;37575:4;37595:20;37613:1;37595:20;:::i;:::-;37590:25;;37629:20;37647:1;37629:20;:::i;:::-;37624:25;;37673:1;37670;37666:9;37658:17;;37697:1;37691:4;37688:11;37685:37;;;37702:18;;:::i;:::-;37685:37;37535:194;;;;:::o;37735:180::-;37783:77;37780:1;37773:88;37880:4;37877:1;37870:15;37904:4;37901:1;37894:15;37921:180;37969:77;37966:1;37959:88;38066:4;38063:1;38056:15;38090:4;38087:1;38080:15;38107:143;38164:5;38195:6;38189:13;38180:22;;38211:33;38238:5;38211:33;:::i;:::-;38107:143;;;;:::o;38256:351::-;38326:6;38375:2;38363:9;38354:7;38350:23;38346:32;38343:119;;;38381:79;;:::i;:::-;38343:119;38501:1;38526:64;38582:7;38573:6;38562:9;38558:22;38526:64;:::i;:::-;38516:74;;38472:128;38256:351;;;;:::o;38613:85::-;38658:7;38687:5;38676:16;;38613:85;;;:::o;38704:158::-;38762:9;38795:61;38813:42;38822:32;38848:5;38822:32;:::i;:::-;38813:42;:::i;:::-;38795:61;:::i;:::-;38782:74;;38704:158;;;:::o;38868:147::-;38963:45;39002:5;38963:45;:::i;:::-;38958:3;38951:58;38868:147;;:::o;39021:114::-;39088:6;39122:5;39116:12;39106:22;;39021:114;;;:::o;39141:184::-;39240:11;39274:6;39269:3;39262:19;39314:4;39309:3;39305:14;39290:29;;39141:184;;;;:::o;39331:132::-;39398:4;39421:3;39413:11;;39451:4;39446:3;39442:14;39434:22;;39331:132;;;:::o;39469:108::-;39546:24;39564:5;39546:24;:::i;:::-;39541:3;39534:37;39469:108;;:::o;39583:179::-;39652:10;39673:46;39715:3;39707:6;39673:46;:::i;:::-;39751:4;39746:3;39742:14;39728:28;;39583:179;;;;:::o;39768:113::-;39838:4;39870;39865:3;39861:14;39853:22;;39768:113;;;:::o;39917:732::-;40036:3;40065:54;40113:5;40065:54;:::i;:::-;40135:86;40214:6;40209:3;40135:86;:::i;:::-;40128:93;;40245:56;40295:5;40245:56;:::i;:::-;40324:7;40355:1;40340:284;40365:6;40362:1;40359:13;40340:284;;;40441:6;40435:13;40468:63;40527:3;40512:13;40468:63;:::i;:::-;40461:70;;40554:60;40607:6;40554:60;:::i;:::-;40544:70;;40400:224;40387:1;40384;40380:9;40375:14;;40340:284;;;40344:14;40640:3;40633:10;;40041:608;;;39917:732;;;;:::o;40655:831::-;40918:4;40956:3;40945:9;40941:19;40933:27;;40970:71;41038:1;41027:9;41023:17;41014:6;40970:71;:::i;:::-;41051:80;41127:2;41116:9;41112:18;41103:6;41051:80;:::i;:::-;41178:9;41172:4;41168:20;41163:2;41152:9;41148:18;41141:48;41206:108;41309:4;41300:6;41206:108;:::i;:::-;41198:116;;41324:72;41392:2;41381:9;41377:18;41368:6;41324:72;:::i;:::-;41406:73;41474:3;41463:9;41459:19;41450:6;41406:73;:::i;:::-;40655:831;;;;;;;;:::o;41492:225::-;41632:34;41628:1;41620:6;41616:14;41609:58;41701:8;41696:2;41688:6;41684:15;41677:33;41492:225;:::o;41723:366::-;41865:3;41886:67;41950:2;41945:3;41886:67;:::i;:::-;41879:74;;41962:93;42051:3;41962:93;:::i;:::-;42080:2;42075:3;42071:12;42064:19;;41723:366;;;:::o;42095:419::-;42261:4;42299:2;42288:9;42284:18;42276:26;;42348:9;42342:4;42338:20;42334:1;42323:9;42319:17;42312:47;42376:131;42502:4;42376:131;:::i;:::-;42368:139;;42095:419;;;:::o;42520:147::-;42621:11;42658:3;42643:18;;42520:147;;;;:::o;42673:114::-;;:::o;42793:398::-;42952:3;42973:83;43054:1;43049:3;42973:83;:::i;:::-;42966:90;;43065:93;43154:3;43065:93;:::i;:::-;43183:1;43178:3;43174:11;43167:18;;42793:398;;;:::o;43197:379::-;43381:3;43403:147;43546:3;43403:147;:::i;:::-;43396:154;;43567:3;43560:10;;43197:379;;;:::o
Swarm Source
ipfs://fb0e8c6cec6c9f4ea8005166e97d9140f9944b2b31168b1a0fa4a6d54c7b677a
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.