ERC-20
Overview
Max Total Supply
1,000,000 GBlox
Holders
4
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
97.738293719 GBloxValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
GambleBlox
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-24 */ /** GambleBlox is a token that blends the fun of gaming with decentralization. In its Roblox game, players can try their luck through various in-game gambling activities, like roulette, jackpot and coinflip. What sets it apart is the rev-share leaderboard – top players share profits from in-game transactions will earn a substantial part of our rev-share. Using $GBlox (in-game currency), players can bet, play, and benefit from leaderboard success and eventually earn $GBlox. It's a unique way to enjoy gaming and earn real-world value from your skills Bet more. Website: https://www.gambleblox.xyz X: https://x.com/gambleblox_erc */ // SPDX-License-Identifier: MIT pragma solidity 0.8.9; interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns(address pair); } interface IERC20 { function totalSupply() external view returns(uint256); function balanceOf(address account) external view returns(uint256); function transfer(address recipient, uint256 amount) external returns(bool); function allowance(address owner, address spender) external view returns(uint256); function approve(address spender, uint256 amount) external returns(bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns(bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns(string memory); function symbol() external view returns(string memory); function decimals() external view returns(uint8); } abstract contract Context { function _msgSender() internal view virtual returns(address) { return msg.sender; } } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; 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 9; } function totalSupply() public view virtual override returns(uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns(uint256) { return _balances[account]; } function transfer(address 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); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased cannot be below zero")); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns(uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns(uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns(uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns(uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns(address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns(int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns(int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns(int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns(int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns(int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns(uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns(int256) { int256 b = int256(a); require(b >= 0); return b; } } interface IUniswapV2Router01 { function factory() external pure returns(address); function WETH() external pure returns(address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns(uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns(uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns(uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns(uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns(uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns(uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns(uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns(uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns(uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns(uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns(uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns(uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns(uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns(uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns(uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns(uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract GambleBlox is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable router; address public immutable uniswapV2Pair; // addresses address public devWallet; address private marketingWallet; // limits uint256 private maxWalletAmount; uint256 private maxBuyAmount; uint256 private maxSellAmount; uint256 private thresholdSwapAmount; // status flags bool private isTrading = false; bool public swapEnabled = false; bool public isSwapping; struct Fees { uint8 buyTotalFees; uint8 buyMarketingFee; uint8 buyDevFee; uint8 buyLiquidityFee; uint8 sellTotalFees; uint8 sellMarketingFee; uint8 sellDevFee; uint8 sellLiquidityFee; } Fees public _fees = Fees({ sellTotalFees: 2, sellMarketingFee: 1, sellDevFee: 1, sellLiquidityFee: 0, buyTotalFees: 2, buyMarketingFee: 1, buyDevFee:1, buyLiquidityFee: 0 }); mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public _isExcludedMaxWalletAmount; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForDev; uint256 private taxTill; mapping(address => bool) public marketPair; mapping(address => bool) public _isBlacklisted; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived ); constructor() ERC20("GambleBlox", "GBlox") { router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH()); //Wallets devWallet = address(0x863C4d113d9874c9b9c38084bfc8CCFe24eC4119); marketingWallet = address(0x863C4d113d9874c9b9c38084bfc8CCFe24eC4119); //Fees _fees.buyMarketingFee = 1; _fees.buyLiquidityFee = 0; _fees.buyDevFee = 0; _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee; _fees.sellMarketingFee = 1; _fees.sellLiquidityFee = 1; _fees.sellDevFee = 1; _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee; // Lists _isExcludedMaxWalletAmount[owner()] = true; _isExcludedMaxWalletAmount[address(this)] = true; _isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true; _isExcludedMaxTransactionAmount[address(router)] = true; _isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true; _isExcludedMaxTransactionAmount[owner()] = true; _isExcludedMaxTransactionAmount[address(this)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; marketPair[address(uniswapV2Pair)] = true; approve(address(router), type(uint256).max); //Supply uint256 totalSupply = 1000000 * 10**9; //Limits maxBuyAmount = totalSupply * 2 / 100; maxSellAmount = totalSupply * 2 / 100; maxWalletAmount = totalSupply * 2 / 100; thresholdSwapAmount = totalSupply * 2 / 1000; _mint(msg.sender, totalSupply); } receive() external payable { } function openTrading() external onlyOwner { isTrading = true; swapEnabled = true; taxTill = block.number + 2; } function updateThresholdSwapAmount(uint256 newAmount) external onlyOwner returns(bool){ thresholdSwapAmount = newAmount; return true; } function toggleSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function updatewalletAmount(uint256 newPercentage) external onlyOwner { require(((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 100), "Cannot set maxWallet lower than 1%"); maxWalletAmount = (totalSupply() * newPercentage) / 1000; } function ReduceTax(uint8 _marketingFeeBuy, uint8 _liquidityFeeBuy,uint8 _devFeeBuy,uint8 _marketingFeeSell, uint8 _liquidityFeeSell,uint8 _devFeeSell) external onlyOwner{ _fees.buyMarketingFee = _marketingFeeBuy; _fees.buyLiquidityFee = _liquidityFeeBuy; _fees.buyDevFee = _devFeeBuy; _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee; _fees.sellMarketingFee = _marketingFeeSell; _fees.sellLiquidityFee = _liquidityFeeSell; _fees.sellDevFee = _devFeeSell; _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function excludeFromWalletLimit(address account, bool excluded) public onlyOwner { _isExcludedMaxWalletAmount[account] = excluded; } function addLiquidity(uint256 tAmount, uint256 ethAmount) private { _approve(address(this), address(router), tAmount); router.addLiquidityETH{ value: ethAmount } (address(this), tAmount, 0, 0 , address(this), block.timestamp); } function setMarketPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "Must keep uniswapV2Pair"); marketPair[pair] = value; } function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell) external onlyOwner { require(((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 100), "maxBuyAmount must be higher than 1%"); require(((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 100), "maxSellAmount must be higher than 1%"); maxBuyAmount = (totalSupply() * newMaxBuy) / 1000; maxSellAmount = (totalSupply() * newMaxSell) / 1000; } function setWallets(address _marketingWallet,address _devWallet) external onlyOwner{ marketingWallet = _marketingWallet; devWallet = _devWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function _transfer( address sender, address recipient, uint256 amount ) internal override { if (amount == 0) { super._transfer(sender, recipient, 0); return; } if ( sender != owner() && recipient != owner() && !isSwapping ) { if (!isTrading) { require(_isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "Trading is not active."); } if (marketPair[sender] && !_isExcludedMaxTransactionAmount[recipient]) { require(amount <= maxBuyAmount, "buy transfer over max amount"); } else if (marketPair[recipient] && !_isExcludedMaxTransactionAmount[sender]) { require(amount <= maxSellAmount, "Sell transfer over max amount"); } if (!_isExcludedMaxWalletAmount[recipient]) { require(amount + balanceOf(recipient) <= maxWalletAmount, "Max wallet exceeded"); } require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "Blacklisted address"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= thresholdSwapAmount; if ( canSwap && swapEnabled && !isSwapping && marketPair[recipient] && !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient] ) { isSwapping = true; swapBack(); isSwapping = false; } bool takeFee = !isSwapping; if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) { takeFee = false; } if (takeFee) { uint256 fees = 0; if(block.number < taxTill) { fees = amount.mul(99).div(100); tokensForMarketing += (fees * 94) / 99; tokensForDev += (fees * 5) / 99; } else if (marketPair[recipient] && _fees.sellTotalFees > 0) { fees = amount.mul(_fees.sellTotalFees).div(100); tokensForLiquidity += fees * _fees.sellLiquidityFee / _fees.sellTotalFees; tokensForMarketing += fees * _fees.sellMarketingFee / _fees.sellTotalFees; tokensForDev += fees * _fees.sellDevFee / _fees.sellTotalFees; } // on buy else if (marketPair[sender] && _fees.buyTotalFees > 0) { fees = amount.mul(_fees.buyTotalFees).div(100); tokensForLiquidity += fees * _fees.buyLiquidityFee / _fees.buyTotalFees; tokensForMarketing += fees * _fees.buyMarketingFee / _fees.buyTotalFees; tokensForDev += fees * _fees.buyDevFee / _fees.buyTotalFees; } if (fees > 0) { super._transfer(sender, address(this), fees); } amount -= fees; } super._transfer(sender, recipient, amount); } function swapTokensForEth(uint256 tAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tAmount, 0, // accept any amount of ETH! path, address(this), block.timestamp ); } function swapBack() private { uint256 contractTokenBalance = balanceOf(address(this)); uint256 toSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; bool success; if (contractTokenBalance == 0 || toSwap == 0) { return; } if (contractTokenBalance > thresholdSwapAmount * 20) { contractTokenBalance = thresholdSwapAmount * 20; } uint256 liquidityTokens = contractTokenBalance * tokensForLiquidity / toSwap / 2; uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 newBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = newBalance.mul(tokensForMarketing).div(toSwap); uint256 ethForDev = newBalance.mul(tokensForDev).div(toSwap); uint256 ethForLiquidity = newBalance - (ethForMarketing + ethForDev); tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity); } (success,) = address(devWallet).call{ value: (address(this).balance - ethForMarketing) } (""); (success,) = address(marketingWallet).call{ value: address(this).balance } (""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint8","name":"_marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_devFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeSell","type":"uint8"},{"internalType":"uint8","name":"_devFeeSell","type":"uint8"}],"name":"ReduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint8","name":"buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"buyDevFee","type":"uint8"},{"internalType":"uint8","name":"buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"sellTotalFees","type":"uint8"},{"internalType":"uint8","name":"sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"sellDevFee","type":"uint8"},{"internalType":"uint8","name":"sellLiquidityFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","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":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"toggleSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","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":[{"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":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateThresholdSwapAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updatewalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff021916908315150217905550604051806101000160405280600260ff168152602001600160ff168152602001600160ff168152602001600060ff168152602001600260ff168152602001600160ff168152602001600160ff168152602001600060ff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a81548160ff021916908360ff16021790555060c08201518160000160066101000a81548160ff021916908360ff16021790555060e08201518160000160076101000a81548160ff021916908360ff1602179055505050348015620001ad57600080fd5b506040518060400160405280600a81526020017f47616d626c65426c6f78000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f47426c6f7800000000000000000000000000000000000000000000000000000081525081600390805190602001906200023292919062000f2a565b5080600490805190602001906200024b92919062000f2a565b50505060006200026062000bdf60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039057600080fd5b505afa158015620003a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cb919062001044565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043057600080fd5b505afa15801562000445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046b919062001044565b6040518363ffffffff1660e01b81526004016200048a92919062001087565b602060405180830381600087803b158015620004a557600080fd5b505af1158015620004ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e0919062001044565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505073863c4d113d9874c9b9c38084bfc8ccfe24ec4119600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073863c4d113d9874c9b9c38084bfc8ccfe24ec4119600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60000160016101000a81548160ff021916908360ff1602179055506000600d60000160036101000a81548160ff021916908360ff1602179055506000600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff166200065f9190620010f0565b6200066b9190620010f0565b600d60000160006101000a81548160ff021916908360ff1602179055506001600d60000160056101000a81548160ff021916908360ff1602179055506001600d60000160076101000a81548160ff021916908360ff1602179055506001600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff166200072a9190620010f0565b620007369190620010f0565b600d60000160046101000a81548160ff021916908360ff1602179055506001601060006200076962000be760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60006200093662000be760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000620009f562000be760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016015600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000b2c6080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000c1160201b60201c565b50600066038d7ea4c680009050606460028262000b4a919062001138565b62000b569190620011c8565b600981905550606460028262000b6d919062001138565b62000b799190620011c8565b600a81905550606460028262000b90919062001138565b62000b9c9190620011c8565b6008819055506103e860028262000bb4919062001138565b62000bc09190620011c8565b600b8190555062000bd8338262000c3f60201b60201c565b50620013e5565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600062000c3562000c2762000bdf60201b60201c565b848462000dda60201b60201c565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000cb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ca99062001261565b60405180910390fd5b62000cce8160025462000ec760201b620020601790919060201c565b60028190555062000d2c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000ec760201b620020601790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000dce919062001294565b60405180910390a35050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000eba919062001294565b60405180910390a3505050565b600080828462000ed89190620012b1565b90508381101562000f20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f17906200135e565b60405180910390fd5b8091505092915050565b82805462000f3890620013af565b90600052602060002090601f01602090048101928262000f5c576000855562000fa8565b82601f1062000f7757805160ff191683800117855562000fa8565b8280016001018555821562000fa8579182015b8281111562000fa757825182559160200191906001019062000f8a565b5b50905062000fb7919062000fbb565b5090565b5b8082111562000fd657600081600090555060010162000fbc565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200100c8262000fdf565b9050919050565b6200101e8162000fff565b81146200102a57600080fd5b50565b6000815190506200103e8162001013565b92915050565b6000602082840312156200105d576200105c62000fda565b5b60006200106d848285016200102d565b91505092915050565b620010818162000fff565b82525050565b60006040820190506200109e600083018562001076565b620010ad602083018462001076565b9392505050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010fd82620010b4565b91506200110a83620010b4565b92508260ff03821115620011235762001122620010c1565b5b828201905092915050565b6000819050919050565b600062001145826200112e565b915062001152836200112e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200118e576200118d620010c1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011d5826200112e565b9150620011e2836200112e565b925082620011f557620011f462001199565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001249601f8362001200565b9150620012568262001211565b602082019050919050565b600060208201905081810360008301526200127c816200123a565b9050919050565b6200128e816200112e565b82525050565b6000602082019050620012ab600083018462001283565b92915050565b6000620012be826200112e565b9150620012cb836200112e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620013035762001302620010c1565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001346601b8362001200565b915062001353826200130e565b602082019050919050565b60006020820190508181036000830152620013798162001337565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620013c857607f821691505b60208210811415620013df57620013de62001380565b5b50919050565b60805160a0516148f26200143560003960008181610ea4015261182201526000818161203e01528181613414015281816135040152818161352b015281816135c701526135ee01526148f26000f3fe6080604052600436106102345760003560e01c80638da5cb5b1161012e578063c16dd4a4116100ab578063e16830a81161006f578063e16830a81461089f578063f2fde38b146108c8578063f5b3c3bf146108f1578063f62bbf891461092e578063f887ea40146109575761023b565b8063c16dd4a4146107c7578063c9567bf9146107f0578063d212a69a14610807578063d3f6a15714610839578063dd62ed3e146108625761023b565b80639fccce32116100f25780639fccce32146106ce578063a457c2d7146106f9578063a9059cbb14610736578063b886311514610773578063c02466681461079e5761023b565b80638da5cb5b146105e75780638ea5220f1461061257806395d89b411461063d57806396880b17146106685780639b2cd67d146106a55761023b565b806323b872dd116101bc578063555467a111610180578063555467a1146105025780636ddd17131461053f57806370a082311461056a578063715018a6146105a75780637571336a146105be5761023b565b806323b872dd146103f5578063313ce56714610432578063395093511461045d57806349bd5a5e1461049a5780634fbee193146104c55761023b565b806318160ddd1161020357806318160ddd1461030e5780631a8145bb146103395780631c6e8a75146103645780631cdd3be31461038d5780631f3fed8f146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806311a582c3146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610982565b60405161026291906137a6565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190613861565b610a14565b60405161029f91906138bc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906138d7565b610a32565b6040516102dc91906138bc565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613904565b610a52565b005b34801561031a57600080fd5b50610323610c23565b6040516103309190613953565b60405180910390f35b34801561034557600080fd5b5061034e610c2d565b60405161035b9190613953565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061399a565b610c33565b005b34801561039957600080fd5b506103b460048036038101906103af91906138d7565b610ce7565b6040516103c191906138bc565b60405180910390f35b3480156103d657600080fd5b506103df610d07565b6040516103ec9190613953565b60405180910390f35b34801561040157600080fd5b5061041c600480360381019061041791906139c7565b610d0d565b60405161042991906138bc565b60405180910390f35b34801561043e57600080fd5b50610447610de6565b6040516104549190613a36565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613861565b610def565b60405161049191906138bc565b60405180910390f35b3480156104a657600080fd5b506104af610ea2565b6040516104bc9190613a60565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e791906138d7565b610ec6565b6040516104f991906138bc565b60405180910390f35b34801561050e57600080fd5b5061052960048036038101906105249190613a7b565b610f1c565b60405161053691906138bc565b60405180910390f35b34801561054b57600080fd5b50610554610fc5565b60405161056191906138bc565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c91906138d7565b610fd8565b60405161059e9190613953565b60405180910390f35b3480156105b357600080fd5b506105bc611020565b005b3480156105ca57600080fd5b506105e560048036038101906105e09190613aa8565b611178565b005b3480156105f357600080fd5b506105fc61126a565b6040516106099190613a60565b60405180910390f35b34801561061e57600080fd5b50610627611294565b6040516106349190613a60565b60405180910390f35b34801561064957600080fd5b506106526112ba565b60405161065f91906137a6565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a91906138d7565b61134c565b60405161069c91906138bc565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613b14565b61136c565b005b3480156106da57600080fd5b506106e3611593565b6040516106f09190613953565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190613861565b611599565b60405161072d91906138bc565b60405180910390f35b34801561074257600080fd5b5061075d60048036038101906107589190613861565b611666565b60405161076a91906138bc565b60405180910390f35b34801561077f57600080fd5b50610788611684565b60405161079591906138bc565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613aa8565b611697565b005b3480156107d357600080fd5b506107ee60048036038101906107e99190613aa8565b611789565b005b3480156107fc57600080fd5b5061080561190a565b005b34801561081357600080fd5b5061081c6119ec565b604051610830989796959493929190613ba1565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b9190613c1f565b611a8a565b005b34801561086e57600080fd5b5061088960048036038101906108849190613c1f565b611ba7565b6040516108969190613953565b60405180910390f35b3480156108ab57600080fd5b506108c660048036038101906108c19190613aa8565b611c2e565b005b3480156108d457600080fd5b506108ef60048036038101906108ea91906138d7565b611d20565b005b3480156108fd57600080fd5b50610918600480360381019061091391906138d7565b611ee7565b60405161092591906138bc565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613a7b565b611f07565b005b34801561096357600080fd5b5061096c61203c565b6040516109799190613cbe565b60405180910390f35b60606003805461099190613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546109bd90613d08565b8015610a0a5780601f106109df57610100808354040283529160200191610a0a565b820191906000526020600020905b8154815290600101906020018083116109ed57829003601f168201915b5050505050905090565b6000610a28610a216120be565b84846120c6565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b610a5a6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090613d86565b60405180910390fd5b6064610af3610c23565b610afd9190613e04565b6103e883610b09610c23565b610b139190613e35565b610b1d9190613e04565b1015610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590613f01565b60405180910390fd5b6064610b68610c23565b610b729190613e04565b6103e882610b7e610c23565b610b889190613e35565b610b929190613e04565b1015610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90613f93565b60405180910390fd5b6103e882610bdf610c23565b610be99190613e35565b610bf39190613e04565b6009819055506103e881610c05610c23565b610c0f9190613e35565b610c199190613e04565b600a819055505050565b6000600254905090565b60125481565b610c3b6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190613d86565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b60166020528060005260406000206000915054906101000a900460ff1681565b60115481565b6000610d1a8484846121b1565b610ddb84610d266120be565b610dd68560405180606001604052806028815260200161489560289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d8c6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b600190509392505050565b60006009905090565b6000610e98610dfc6120be565b84610e938560016000610e0d6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6120c6565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610f266120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613d86565b60405180910390fd5b81600b8190555060019050919050565b600c60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111806120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690613d86565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546112c990613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546112f590613d08565b80156113425780601f1061131757610100808354040283529160200191611342565b820191906000526020600020905b81548152906001019060200180831161132557829003601f168201915b5050505050905090565b60106020528060005260406000206000915054906101000a900460ff1681565b6113746120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90613d86565b60405180910390fd5b85600d60000160016101000a81548160ff021916908360ff16021790555084600d60000160036101000a81548160ff021916908360ff16021790555083600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff166114a09190613fb3565b6114aa9190613fb3565b600d60000160006101000a81548160ff021916908360ff16021790555082600d60000160056101000a81548160ff021916908360ff16021790555081600d60000160076101000a81548160ff021916908360ff16021790555080600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff166115649190613fb3565b61156e9190613fb3565b600d60000160046101000a81548160ff021916908360ff160217905550505050505050565b60135481565b600061165c6115a66120be565b846116578560405180606001604052806025815260200161484a60259139600160006115d06120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b6001905092915050565b600061167a6116736120be565b84846121b1565b6001905092915050565b600c60029054906101000a900460ff1681565b61169f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613d86565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117916120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181790613d86565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690614036565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119126120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613d86565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506002436119e49190614056565b601481905550565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900460ff16908060000160079054906101000a900460ff16905088565b611a926120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1890613d86565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c366120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613d86565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e9061411e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b611f0f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9590613d86565b60405180910390fd5b6064611fa8610c23565b611fb29190613e04565b6103e882611fbe610c23565b611fc89190613e35565b611fd29190613e04565b1015612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a906141b0565b60405180910390fd5b6103e88161201f610c23565b6120299190613e35565b6120339190613e04565b60088190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080828461206f9190614056565b9050838110156120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab9061421c565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121a49190613953565b60405180910390a3505050565b60008114156121cb576121c683836000612dce565b612d65565b6121d361126a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612241575061221161126a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561225a5750600c60029054906101000a900460ff16155b156126c357600c60009054906101000a900460ff1661235457600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123145750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a90614288565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123f75750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244657600954811115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906142f4565b60405180910390fd5b612535565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124e95750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253457600a54811115612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614360565b60405180910390fd5b5b5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125df5760085461259283610fd8565b8261259d9190614056565b11156125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d5906143cc565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126835750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b990614438565b60405180910390fd5b5b60006126ce30610fd8565b90506000600b5482101590508080156126f35750600c60019054906101000a900460ff165b801561270c5750600c60029054906101000a900460ff16155b80156127615750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127b75750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561280d5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612851576001600c60026101000a81548160ff021916908315150217905550612835612f78565b6000600c60026101000a81548160ff0219169083151502179055505b6000600c60029054906101000a900460ff16159050600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129075750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291157600090505b8015612d565760006014544310156129b35761294a606461293c60638861326690919063ffffffff16565b6132e190919063ffffffff16565b90506063605e8261295b9190613e35565b6129659190613e04565b601160008282546129769190614056565b92505081905550606360058261298c9190613e35565b6129969190613e04565b601360008282546129a79190614056565b92505081905550612d31565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a2157506000600d60000160049054906101000a900460ff1660ff16115b15612b7357612a616064612a53600d60000160049054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160049054906101000a900460ff1660ff16600d60000160079054906101000a900460ff1660ff1682612a9a9190613e35565b612aa49190613e04565b60126000828254612ab59190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160059054906101000a900460ff1660ff1682612af39190613e35565b612afd9190613e04565b60116000828254612b0e9190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160069054906101000a900460ff1660ff1682612b4c9190613e35565b612b569190613e04565b60136000828254612b679190614056565b92505081905550612d30565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612be157506000600d60000160009054906101000a900460ff1660ff16115b15612d2f57612c216064612c13600d60000160009054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160009054906101000a900460ff1660ff16600d60000160039054906101000a900460ff1660ff1682612c5a9190613e35565b612c649190613e04565b60126000828254612c759190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160019054906101000a900460ff1660ff1682612cb39190613e35565b612cbd9190613e04565b60116000828254612cce9190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160029054906101000a900460ff1660ff1682612d0c9190613e35565b612d169190613e04565b60136000828254612d279190614056565b925050819055505b5b5b6000811115612d4657612d45873083612dce565b5b8085612d529190614458565b9450505b612d61868686612dce565b5050505b505050565b6000838311158290612db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da991906137a6565b60405180910390fd5b5060008385612dc19190614458565b9050809150509392505050565b612e398160405180606001604052806026815260200161486f602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ecc816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6b9190613953565b60405180910390a3505050565b6000612f8330610fd8565b90506000601354601154601254612f9a9190614056565b612fa49190614056565b9050600080831480612fb65750600082145b15612fc357505050613264565b6014600b54612fd29190613e35565b831115612feb576014600b54612fe89190613e35565b92505b600060028360125486612ffe9190613e35565b6130089190613e04565b6130129190613e04565b90506000613029828661332b90919063ffffffff16565b9050600047905061303982613375565b600061304e824761332b90919063ffffffff16565b905060006130798761306b6011548561326690919063ffffffff16565b6132e190919063ffffffff16565b905060006130a4886130966013548661326690919063ffffffff16565b6132e190919063ffffffff16565b9050600081836130b49190614056565b846130bf9190614458565b90506000601281905550600060118190555060006013819055506000871180156130e95750600081115b15613132576130f887826135c1565b7f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486868260405161312992919061448c565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683476131779190614458565b604051613183906144e6565b60006040518083038185875af1925050503d80600081146131c0576040519150601f19603f3d011682016040523d82523d6000602084013e6131c5565b606091505b505080985050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613211906144e6565b60006040518083038185875af1925050503d806000811461324e576040519150601f19603f3d011682016040523d82523d6000602084013e613253565b606091505b505080985050505050505050505050505b565b60008083141561327957600090506132db565b600082846132879190613e35565b90508284826132969190613e04565b146132d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132cd9061456d565b60405180910390fd5b809150505b92915050565b600061332383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136aa565b905092915050565b600061336d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d6a565b905092915050565b6000600267ffffffffffffffff8111156133925761339161458d565b5b6040519080825280602002602001820160405280156133c05781602001602082028036833780820191505090505b50905030816000815181106133d8576133d76145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561347857600080fd5b505afa15801561348c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b09190614600565b816001815181106134c4576134c36145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613529307f0000000000000000000000000000000000000000000000000000000000000000846120c6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161358b959493929190614726565b600060405180830381600087803b1580156135a557600080fd5b505af11580156135b9573d6000803e3d6000fd5b505050505050565b6135ec307f0000000000000000000000000000000000000000000000000000000000000000846120c6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161365196959493929190614780565b6060604051808303818588803b15801561366a57600080fd5b505af115801561367e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136a391906147f6565b5050505050565b600080831182906136f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136e891906137a6565b60405180910390fd5b50600083856137009190613e04565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561374757808201518184015260208101905061372c565b83811115613756576000848401525b50505050565b6000601f19601f8301169050919050565b60006137788261370d565b6137828185613718565b9350613792818560208601613729565b61379b8161375c565b840191505092915050565b600060208201905081810360008301526137c0818461376d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137f8826137cd565b9050919050565b613808816137ed565b811461381357600080fd5b50565b600081359050613825816137ff565b92915050565b6000819050919050565b61383e8161382b565b811461384957600080fd5b50565b60008135905061385b81613835565b92915050565b60008060408385031215613878576138776137c8565b5b600061388685828601613816565b92505060206138978582860161384c565b9150509250929050565b60008115159050919050565b6138b6816138a1565b82525050565b60006020820190506138d160008301846138ad565b92915050565b6000602082840312156138ed576138ec6137c8565b5b60006138fb84828501613816565b91505092915050565b6000806040838503121561391b5761391a6137c8565b5b60006139298582860161384c565b925050602061393a8582860161384c565b9150509250929050565b61394d8161382b565b82525050565b60006020820190506139686000830184613944565b92915050565b613977816138a1565b811461398257600080fd5b50565b6000813590506139948161396e565b92915050565b6000602082840312156139b0576139af6137c8565b5b60006139be84828501613985565b91505092915050565b6000806000606084860312156139e0576139df6137c8565b5b60006139ee86828701613816565b93505060206139ff86828701613816565b9250506040613a108682870161384c565b9150509250925092565b600060ff82169050919050565b613a3081613a1a565b82525050565b6000602082019050613a4b6000830184613a27565b92915050565b613a5a816137ed565b82525050565b6000602082019050613a756000830184613a51565b92915050565b600060208284031215613a9157613a906137c8565b5b6000613a9f8482850161384c565b91505092915050565b60008060408385031215613abf57613abe6137c8565b5b6000613acd85828601613816565b9250506020613ade85828601613985565b9150509250929050565b613af181613a1a565b8114613afc57600080fd5b50565b600081359050613b0e81613ae8565b92915050565b60008060008060008060c08789031215613b3157613b306137c8565b5b6000613b3f89828a01613aff565b9650506020613b5089828a01613aff565b9550506040613b6189828a01613aff565b9450506060613b7289828a01613aff565b9350506080613b8389828a01613aff565b92505060a0613b9489828a01613aff565b9150509295509295509295565b600061010082019050613bb7600083018b613a27565b613bc4602083018a613a27565b613bd16040830189613a27565b613bde6060830188613a27565b613beb6080830187613a27565b613bf860a0830186613a27565b613c0560c0830185613a27565b613c1260e0830184613a27565b9998505050505050505050565b60008060408385031215613c3657613c356137c8565b5b6000613c4485828601613816565b9250506020613c5585828601613816565b9150509250929050565b6000819050919050565b6000613c84613c7f613c7a846137cd565b613c5f565b6137cd565b9050919050565b6000613c9682613c69565b9050919050565b6000613ca882613c8b565b9050919050565b613cb881613c9d565b82525050565b6000602082019050613cd36000830184613caf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d2057607f821691505b60208210811415613d3457613d33613cd9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d70602083613718565b9150613d7b82613d3a565b602082019050919050565b60006020820190508181036000830152613d9f81613d63565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0f8261382b565b9150613e1a8361382b565b925082613e2a57613e29613da6565b5b828204905092915050565b6000613e408261382b565b9150613e4b8361382b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8457613e83613dd5565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60008201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b6000613eeb602383613718565b9150613ef682613e8f565b604082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206869676865722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b6000613f7d602483613718565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b6000613fbe82613a1a565b9150613fc983613a1a565b92508260ff03821115613fdf57613fde613dd5565b5b828201905092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000614020601783613718565b915061402b82613fea565b602082019050919050565b6000602082019050818103600083015261404f81614013565b9050919050565b60006140618261382b565b915061406c8361382b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140a1576140a0613dd5565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614108602683613718565b9150614113826140ac565b604082019050919050565b60006020820190508181036000830152614137816140fb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b600061419a602283613718565b91506141a58261413e565b604082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614206601b83613718565b9150614211826141d0565b602082019050919050565b60006020820190508181036000830152614235816141f9565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614272601683613718565b915061427d8261423c565b602082019050919050565b600060208201905081810360008301526142a181614265565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b60006142de601c83613718565b91506142e9826142a8565b602082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b600061434a601d83613718565b915061435582614314565b602082019050919050565b600060208201905081810360008301526143798161433d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006143b6601383613718565b91506143c182614380565b602082019050919050565b600060208201905081810360008301526143e5816143a9565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000614422601383613718565b915061442d826143ec565b602082019050919050565b6000602082019050818103600083015261445181614415565b9050919050565b60006144638261382b565b915061446e8361382b565b92508282101561448157614480613dd5565b5b828203905092915050565b60006040820190506144a16000830185613944565b6144ae6020830184613944565b9392505050565b600081905092915050565b50565b60006144d06000836144b5565b91506144db826144c0565b600082019050919050565b60006144f1826144c3565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614557602183613718565b9150614562826144fb565b604082019050919050565b600060208201905081810360008301526145868161454a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506145fa816137ff565b92915050565b600060208284031215614616576146156137c8565b5b6000614624848285016145eb565b91505092915050565b6000819050919050565b600061465261464d6146488461462d565b613c5f565b61382b565b9050919050565b61466281614637565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469d816137ed565b82525050565b60006146af8383614694565b60208301905092915050565b6000602082019050919050565b60006146d382614668565b6146dd8185614673565b93506146e883614684565b8060005b8381101561471957815161470088826146a3565b975061470b836146bb565b9250506001810190506146ec565b5085935050505092915050565b600060a08201905061473b6000830188613944565b6147486020830187614659565b818103604083015261475a81866146c8565b90506147696060830185613a51565b6147766080830184613944565b9695505050505050565b600060c0820190506147956000830189613a51565b6147a26020830188613944565b6147af6040830187614659565b6147bc6060830186614659565b6147c96080830185613a51565b6147d660a0830184613944565b979650505050505050565b6000815190506147f081613835565b92915050565b60008060006060848603121561480f5761480e6137c8565b5b600061481d868287016147e1565b935050602061482e868287016147e1565b925050604061483f868287016147e1565b915050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cb270f43250036b07766bab28a9507a43368e53d74698ba9bb02f97e85801f5d64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106102345760003560e01c80638da5cb5b1161012e578063c16dd4a4116100ab578063e16830a81161006f578063e16830a81461089f578063f2fde38b146108c8578063f5b3c3bf146108f1578063f62bbf891461092e578063f887ea40146109575761023b565b8063c16dd4a4146107c7578063c9567bf9146107f0578063d212a69a14610807578063d3f6a15714610839578063dd62ed3e146108625761023b565b80639fccce32116100f25780639fccce32146106ce578063a457c2d7146106f9578063a9059cbb14610736578063b886311514610773578063c02466681461079e5761023b565b80638da5cb5b146105e75780638ea5220f1461061257806395d89b411461063d57806396880b17146106685780639b2cd67d146106a55761023b565b806323b872dd116101bc578063555467a111610180578063555467a1146105025780636ddd17131461053f57806370a082311461056a578063715018a6146105a75780637571336a146105be5761023b565b806323b872dd146103f5578063313ce56714610432578063395093511461045d57806349bd5a5e1461049a5780634fbee193146104c55761023b565b806318160ddd1161020357806318160ddd1461030e5780631a8145bb146103395780631c6e8a75146103645780631cdd3be31461038d5780631f3fed8f146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806311a582c3146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610982565b60405161026291906137a6565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190613861565b610a14565b60405161029f91906138bc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906138d7565b610a32565b6040516102dc91906138bc565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613904565b610a52565b005b34801561031a57600080fd5b50610323610c23565b6040516103309190613953565b60405180910390f35b34801561034557600080fd5b5061034e610c2d565b60405161035b9190613953565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061399a565b610c33565b005b34801561039957600080fd5b506103b460048036038101906103af91906138d7565b610ce7565b6040516103c191906138bc565b60405180910390f35b3480156103d657600080fd5b506103df610d07565b6040516103ec9190613953565b60405180910390f35b34801561040157600080fd5b5061041c600480360381019061041791906139c7565b610d0d565b60405161042991906138bc565b60405180910390f35b34801561043e57600080fd5b50610447610de6565b6040516104549190613a36565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613861565b610def565b60405161049191906138bc565b60405180910390f35b3480156104a657600080fd5b506104af610ea2565b6040516104bc9190613a60565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e791906138d7565b610ec6565b6040516104f991906138bc565b60405180910390f35b34801561050e57600080fd5b5061052960048036038101906105249190613a7b565b610f1c565b60405161053691906138bc565b60405180910390f35b34801561054b57600080fd5b50610554610fc5565b60405161056191906138bc565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c91906138d7565b610fd8565b60405161059e9190613953565b60405180910390f35b3480156105b357600080fd5b506105bc611020565b005b3480156105ca57600080fd5b506105e560048036038101906105e09190613aa8565b611178565b005b3480156105f357600080fd5b506105fc61126a565b6040516106099190613a60565b60405180910390f35b34801561061e57600080fd5b50610627611294565b6040516106349190613a60565b60405180910390f35b34801561064957600080fd5b506106526112ba565b60405161065f91906137a6565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a91906138d7565b61134c565b60405161069c91906138bc565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613b14565b61136c565b005b3480156106da57600080fd5b506106e3611593565b6040516106f09190613953565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190613861565b611599565b60405161072d91906138bc565b60405180910390f35b34801561074257600080fd5b5061075d60048036038101906107589190613861565b611666565b60405161076a91906138bc565b60405180910390f35b34801561077f57600080fd5b50610788611684565b60405161079591906138bc565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613aa8565b611697565b005b3480156107d357600080fd5b506107ee60048036038101906107e99190613aa8565b611789565b005b3480156107fc57600080fd5b5061080561190a565b005b34801561081357600080fd5b5061081c6119ec565b604051610830989796959493929190613ba1565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b9190613c1f565b611a8a565b005b34801561086e57600080fd5b5061088960048036038101906108849190613c1f565b611ba7565b6040516108969190613953565b60405180910390f35b3480156108ab57600080fd5b506108c660048036038101906108c19190613aa8565b611c2e565b005b3480156108d457600080fd5b506108ef60048036038101906108ea91906138d7565b611d20565b005b3480156108fd57600080fd5b50610918600480360381019061091391906138d7565b611ee7565b60405161092591906138bc565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613a7b565b611f07565b005b34801561096357600080fd5b5061096c61203c565b6040516109799190613cbe565b60405180910390f35b60606003805461099190613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546109bd90613d08565b8015610a0a5780601f106109df57610100808354040283529160200191610a0a565b820191906000526020600020905b8154815290600101906020018083116109ed57829003601f168201915b5050505050905090565b6000610a28610a216120be565b84846120c6565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b610a5a6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090613d86565b60405180910390fd5b6064610af3610c23565b610afd9190613e04565b6103e883610b09610c23565b610b139190613e35565b610b1d9190613e04565b1015610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590613f01565b60405180910390fd5b6064610b68610c23565b610b729190613e04565b6103e882610b7e610c23565b610b889190613e35565b610b929190613e04565b1015610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90613f93565b60405180910390fd5b6103e882610bdf610c23565b610be99190613e35565b610bf39190613e04565b6009819055506103e881610c05610c23565b610c0f9190613e35565b610c199190613e04565b600a819055505050565b6000600254905090565b60125481565b610c3b6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190613d86565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b60166020528060005260406000206000915054906101000a900460ff1681565b60115481565b6000610d1a8484846121b1565b610ddb84610d266120be565b610dd68560405180606001604052806028815260200161489560289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d8c6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b600190509392505050565b60006009905090565b6000610e98610dfc6120be565b84610e938560016000610e0d6120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6120c6565b6001905092915050565b7f00000000000000000000000017e93ce35b268934700f0e993d9a0e970c4dd7c381565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610f266120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613d86565b60405180910390fd5b81600b8190555060019050919050565b600c60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111806120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690613d86565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546112c990613d08565b80601f01602080910402602001604051908101604052809291908181526020018280546112f590613d08565b80156113425780601f1061131757610100808354040283529160200191611342565b820191906000526020600020905b81548152906001019060200180831161132557829003601f168201915b5050505050905090565b60106020528060005260406000206000915054906101000a900460ff1681565b6113746120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90613d86565b60405180910390fd5b85600d60000160016101000a81548160ff021916908360ff16021790555084600d60000160036101000a81548160ff021916908360ff16021790555083600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff166114a09190613fb3565b6114aa9190613fb3565b600d60000160006101000a81548160ff021916908360ff16021790555082600d60000160056101000a81548160ff021916908360ff16021790555081600d60000160076101000a81548160ff021916908360ff16021790555080600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff166115649190613fb3565b61156e9190613fb3565b600d60000160046101000a81548160ff021916908360ff160217905550505050505050565b60135481565b600061165c6115a66120be565b846116578560405180606001604052806025815260200161484a60259139600160006115d06120be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6120c6565b6001905092915050565b600061167a6116736120be565b84846121b1565b6001905092915050565b600c60029054906101000a900460ff1681565b61169f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613d86565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117916120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181790613d86565b60405180910390fd5b7f00000000000000000000000017e93ce35b268934700f0e993d9a0e970c4dd7c373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690614036565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119126120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613d86565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506002436119e49190614056565b601481905550565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900460ff16908060000160079054906101000a900460ff16905088565b611a926120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1890613d86565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c366120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613d86565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d286120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dae90613d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e9061411e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b611f0f6120be565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9590613d86565b60405180910390fd5b6064611fa8610c23565b611fb29190613e04565b6103e882611fbe610c23565b611fc89190613e35565b611fd29190613e04565b1015612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a906141b0565b60405180910390fd5b6103e88161201f610c23565b6120299190613e35565b6120339190613e04565b60088190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080828461206f9190614056565b9050838110156120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab9061421c565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121a49190613953565b60405180910390a3505050565b60008114156121cb576121c683836000612dce565b612d65565b6121d361126a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612241575061221161126a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561225a5750600c60029054906101000a900460ff16155b156126c357600c60009054906101000a900460ff1661235457600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123145750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a90614288565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123f75750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244657600954811115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906142f4565b60405180910390fd5b612535565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124e95750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253457600a54811115612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614360565b60405180910390fd5b5b5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125df5760085461259283610fd8565b8261259d9190614056565b11156125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d5906143cc565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126835750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b990614438565b60405180910390fd5b5b60006126ce30610fd8565b90506000600b5482101590508080156126f35750600c60019054906101000a900460ff165b801561270c5750600c60029054906101000a900460ff16155b80156127615750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127b75750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561280d5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612851576001600c60026101000a81548160ff021916908315150217905550612835612f78565b6000600c60026101000a81548160ff0219169083151502179055505b6000600c60029054906101000a900460ff16159050600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129075750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291157600090505b8015612d565760006014544310156129b35761294a606461293c60638861326690919063ffffffff16565b6132e190919063ffffffff16565b90506063605e8261295b9190613e35565b6129659190613e04565b601160008282546129769190614056565b92505081905550606360058261298c9190613e35565b6129969190613e04565b601360008282546129a79190614056565b92505081905550612d31565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a2157506000600d60000160049054906101000a900460ff1660ff16115b15612b7357612a616064612a53600d60000160049054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160049054906101000a900460ff1660ff16600d60000160079054906101000a900460ff1660ff1682612a9a9190613e35565b612aa49190613e04565b60126000828254612ab59190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160059054906101000a900460ff1660ff1682612af39190613e35565b612afd9190613e04565b60116000828254612b0e9190614056565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160069054906101000a900460ff1660ff1682612b4c9190613e35565b612b569190613e04565b60136000828254612b679190614056565b92505081905550612d30565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612be157506000600d60000160009054906101000a900460ff1660ff16115b15612d2f57612c216064612c13600d60000160009054906101000a900460ff1660ff168861326690919063ffffffff16565b6132e190919063ffffffff16565b9050600d60000160009054906101000a900460ff1660ff16600d60000160039054906101000a900460ff1660ff1682612c5a9190613e35565b612c649190613e04565b60126000828254612c759190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160019054906101000a900460ff1660ff1682612cb39190613e35565b612cbd9190613e04565b60116000828254612cce9190614056565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160029054906101000a900460ff1660ff1682612d0c9190613e35565b612d169190613e04565b60136000828254612d279190614056565b925050819055505b5b5b6000811115612d4657612d45873083612dce565b5b8085612d529190614458565b9450505b612d61868686612dce565b5050505b505050565b6000838311158290612db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da991906137a6565b60405180910390fd5b5060008385612dc19190614458565b9050809150509392505050565b612e398160405180606001604052806026815260200161486f602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ecc816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6b9190613953565b60405180910390a3505050565b6000612f8330610fd8565b90506000601354601154601254612f9a9190614056565b612fa49190614056565b9050600080831480612fb65750600082145b15612fc357505050613264565b6014600b54612fd29190613e35565b831115612feb576014600b54612fe89190613e35565b92505b600060028360125486612ffe9190613e35565b6130089190613e04565b6130129190613e04565b90506000613029828661332b90919063ffffffff16565b9050600047905061303982613375565b600061304e824761332b90919063ffffffff16565b905060006130798761306b6011548561326690919063ffffffff16565b6132e190919063ffffffff16565b905060006130a4886130966013548661326690919063ffffffff16565b6132e190919063ffffffff16565b9050600081836130b49190614056565b846130bf9190614458565b90506000601281905550600060118190555060006013819055506000871180156130e95750600081115b15613132576130f887826135c1565b7f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486868260405161312992919061448c565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683476131779190614458565b604051613183906144e6565b60006040518083038185875af1925050503d80600081146131c0576040519150601f19603f3d011682016040523d82523d6000602084013e6131c5565b606091505b505080985050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613211906144e6565b60006040518083038185875af1925050503d806000811461324e576040519150601f19603f3d011682016040523d82523d6000602084013e613253565b606091505b505080985050505050505050505050505b565b60008083141561327957600090506132db565b600082846132879190613e35565b90508284826132969190613e04565b146132d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132cd9061456d565b60405180910390fd5b809150505b92915050565b600061332383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136aa565b905092915050565b600061336d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d6a565b905092915050565b6000600267ffffffffffffffff8111156133925761339161458d565b5b6040519080825280602002602001820160405280156133c05781602001602082028036833780820191505090505b50905030816000815181106133d8576133d76145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561347857600080fd5b505afa15801561348c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b09190614600565b816001815181106134c4576134c36145bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613529307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846120c6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161358b959493929190614726565b600060405180830381600087803b1580156135a557600080fd5b505af11580156135b9573d6000803e3d6000fd5b505050505050565b6135ec307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846120c6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161365196959493929190614780565b6060604051808303818588803b15801561366a57600080fd5b505af115801561367e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136a391906147f6565b5050505050565b600080831182906136f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136e891906137a6565b60405180910390fd5b50600083856137009190613e04565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561374757808201518184015260208101905061372c565b83811115613756576000848401525b50505050565b6000601f19601f8301169050919050565b60006137788261370d565b6137828185613718565b9350613792818560208601613729565b61379b8161375c565b840191505092915050565b600060208201905081810360008301526137c0818461376d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137f8826137cd565b9050919050565b613808816137ed565b811461381357600080fd5b50565b600081359050613825816137ff565b92915050565b6000819050919050565b61383e8161382b565b811461384957600080fd5b50565b60008135905061385b81613835565b92915050565b60008060408385031215613878576138776137c8565b5b600061388685828601613816565b92505060206138978582860161384c565b9150509250929050565b60008115159050919050565b6138b6816138a1565b82525050565b60006020820190506138d160008301846138ad565b92915050565b6000602082840312156138ed576138ec6137c8565b5b60006138fb84828501613816565b91505092915050565b6000806040838503121561391b5761391a6137c8565b5b60006139298582860161384c565b925050602061393a8582860161384c565b9150509250929050565b61394d8161382b565b82525050565b60006020820190506139686000830184613944565b92915050565b613977816138a1565b811461398257600080fd5b50565b6000813590506139948161396e565b92915050565b6000602082840312156139b0576139af6137c8565b5b60006139be84828501613985565b91505092915050565b6000806000606084860312156139e0576139df6137c8565b5b60006139ee86828701613816565b93505060206139ff86828701613816565b9250506040613a108682870161384c565b9150509250925092565b600060ff82169050919050565b613a3081613a1a565b82525050565b6000602082019050613a4b6000830184613a27565b92915050565b613a5a816137ed565b82525050565b6000602082019050613a756000830184613a51565b92915050565b600060208284031215613a9157613a906137c8565b5b6000613a9f8482850161384c565b91505092915050565b60008060408385031215613abf57613abe6137c8565b5b6000613acd85828601613816565b9250506020613ade85828601613985565b9150509250929050565b613af181613a1a565b8114613afc57600080fd5b50565b600081359050613b0e81613ae8565b92915050565b60008060008060008060c08789031215613b3157613b306137c8565b5b6000613b3f89828a01613aff565b9650506020613b5089828a01613aff565b9550506040613b6189828a01613aff565b9450506060613b7289828a01613aff565b9350506080613b8389828a01613aff565b92505060a0613b9489828a01613aff565b9150509295509295509295565b600061010082019050613bb7600083018b613a27565b613bc4602083018a613a27565b613bd16040830189613a27565b613bde6060830188613a27565b613beb6080830187613a27565b613bf860a0830186613a27565b613c0560c0830185613a27565b613c1260e0830184613a27565b9998505050505050505050565b60008060408385031215613c3657613c356137c8565b5b6000613c4485828601613816565b9250506020613c5585828601613816565b9150509250929050565b6000819050919050565b6000613c84613c7f613c7a846137cd565b613c5f565b6137cd565b9050919050565b6000613c9682613c69565b9050919050565b6000613ca882613c8b565b9050919050565b613cb881613c9d565b82525050565b6000602082019050613cd36000830184613caf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d2057607f821691505b60208210811415613d3457613d33613cd9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d70602083613718565b9150613d7b82613d3a565b602082019050919050565b60006020820190508181036000830152613d9f81613d63565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0f8261382b565b9150613e1a8361382b565b925082613e2a57613e29613da6565b5b828204905092915050565b6000613e408261382b565b9150613e4b8361382b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8457613e83613dd5565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60008201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b6000613eeb602383613718565b9150613ef682613e8f565b604082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206869676865722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b6000613f7d602483613718565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b6000613fbe82613a1a565b9150613fc983613a1a565b92508260ff03821115613fdf57613fde613dd5565b5b828201905092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000614020601783613718565b915061402b82613fea565b602082019050919050565b6000602082019050818103600083015261404f81614013565b9050919050565b60006140618261382b565b915061406c8361382b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140a1576140a0613dd5565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614108602683613718565b9150614113826140ac565b604082019050919050565b60006020820190508181036000830152614137816140fb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b600061419a602283613718565b91506141a58261413e565b604082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614206601b83613718565b9150614211826141d0565b602082019050919050565b60006020820190508181036000830152614235816141f9565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614272601683613718565b915061427d8261423c565b602082019050919050565b600060208201905081810360008301526142a181614265565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b60006142de601c83613718565b91506142e9826142a8565b602082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b600061434a601d83613718565b915061435582614314565b602082019050919050565b600060208201905081810360008301526143798161433d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006143b6601383613718565b91506143c182614380565b602082019050919050565b600060208201905081810360008301526143e5816143a9565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000614422601383613718565b915061442d826143ec565b602082019050919050565b6000602082019050818103600083015261445181614415565b9050919050565b60006144638261382b565b915061446e8361382b565b92508282101561448157614480613dd5565b5b828203905092915050565b60006040820190506144a16000830185613944565b6144ae6020830184613944565b9392505050565b600081905092915050565b50565b60006144d06000836144b5565b91506144db826144c0565b600082019050919050565b60006144f1826144c3565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614557602183613718565b9150614562826144fb565b604082019050919050565b600060208201905081810360008301526145868161454a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506145fa816137ff565b92915050565b600060208284031215614616576146156137c8565b5b6000614624848285016145eb565b91505092915050565b6000819050919050565b600061465261464d6146488461462d565b613c5f565b61382b565b9050919050565b61466281614637565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469d816137ed565b82525050565b60006146af8383614694565b60208301905092915050565b6000602082019050919050565b60006146d382614668565b6146dd8185614673565b93506146e883614684565b8060005b8381101561471957815161470088826146a3565b975061470b836146bb565b9250506001810190506146ec565b5085935050505092915050565b600060a08201905061473b6000830188613944565b6147486020830187614659565b818103604083015261475a81866146c8565b90506147696060830185613a51565b6147766080830184613944565b9695505050505050565b600060c0820190506147956000830189613a51565b6147a26020830188613944565b6147af6040830187614659565b6147bc6060830186614659565b6147c96080830185613a51565b6147d660a0830184613944565b979650505050505050565b6000815190506147f081613835565b92915050565b60008060006060848603121561480f5761480e6137c8565b5b600061481d868287016147e1565b935050602061482e868287016147e1565b925050604061483f868287016147e1565b915050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cb270f43250036b07766bab28a9507a43368e53d74698ba9bb02f97e85801f5d64736f6c63430008090033
Deployed Bytecode Sourcemap
11896:9921:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2266:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3074:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12874:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17003:427;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2544:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13042:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15225:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13185:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13005:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3230:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2458:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3541:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12016:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17592:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15073:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12346:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2646:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6243:131;;;;;;;;;;;;;:::i;:::-;;16318:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6063:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12075:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2360:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12941:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15583:604;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13079:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3746:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2767:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12381:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16192:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16838:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14949:119;;;;;;;;;;;;;:::i;:::-;;12619:193;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;17435:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2929:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16455:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6379:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13139:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15323:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11970:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2266:89;2319:13;2345:5;2338:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2266:89;:::o;3074:151::-;3156:4;3166:39;3175:12;:10;:12::i;:::-;3189:7;3198:6;3166:8;:39::i;:::-;3216:4;3209:11;;3074:151;;;;:::o;12874:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;17003:427::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17158:3:::1;17142:13;:11;:13::i;:::-;:19;;;;:::i;:::-;17132:4;17119:9;17103:13;:11;:13::i;:::-;:25;;;;:::i;:::-;17102:34;;;;:::i;:::-;17101:61;;17093:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;17272:3;17256:13;:11;:13::i;:::-;:19;;;;:::i;:::-;17246:4;17232:10;17216:13;:11;:13::i;:::-;:26;;;;:::i;:::-;17215:35;;;;:::i;:::-;17214:62;;17206:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;17366:4;17353:9;17337:13;:11;:13::i;:::-;:25;;;;:::i;:::-;17336:34;;;;:::i;:::-;17321:12;:49;;;;17421:4;17407:10;17391:13;:11;:13::i;:::-;:26;;;;:::i;:::-;17390:35;;;;:::i;:::-;17374:13;:51;;;;17003:427:::0;;:::o;2544:97::-;2604:7;2624:12;;2617:19;;2544:97;:::o;13042:33::-;;;;:::o;15225:91::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15304:7:::1;15290:11;;:21;;;;;;;;;;;;;;;;;;15225:91:::0;:::o;13185:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;13005:33::-;;;;:::o;3230:306::-;3345:4;3355:36;3365:6;3373:9;3384:6;3355:9;:36::i;:::-;3395:121;3404:6;3412:12;:10;:12::i;:::-;3426:89;3464:6;3426:89;;;;;;;;;;;;;;;;;:11;:19;3438:6;3426:19;;;;;;;;;;;;;;;:33;3446:12;:10;:12::i;:::-;3426:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3395:8;:121::i;:::-;3527:4;3520:11;;3230:306;;;;;:::o;2458:81::-;2515:5;2533:1;2526:8;;2458:81;:::o;3541:200::-;3628:4;3638:83;3647:12;:10;:12::i;:::-;3661:7;3670:50;3709:10;3670:11;:25;3682:12;:10;:12::i;:::-;3670:25;;;;;;;;;;;;;;;:34;3696:7;3670:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3638:8;:83::i;:::-;3732:4;3725:11;;3541:200;;;;:::o;12016:38::-;;;:::o;17592:115::-;17657:4;17674:19;:28;17694:7;17674:28;;;;;;;;;;;;;;;;;;;;;;;;;17667:35;;17592:115;;;:::o;15073:141::-;15154:4;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15185:9:::1;15163:19;:31;;;;15205:4;15198:11;;15073:141:::0;;;:::o;12346:31::-;;;;;;;;;;;;;:::o;2646:116::-;2719:7;2739:9;:18;2749:7;2739:18;;;;;;;;;;;;;;;;2732:25;;2646:116;;;:::o;6243:131::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6343:1:::1;6306:40;;6327:6;;;;;;;;;;;6306:40;;;;;;;;;;;;6367:1;6350:6;;:19;;;;;;;;;;;;;;;;;;6243:131::o:0;16318:134::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16443:4:::1;16401:31;:39;16433:6;16401:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16318:134:::0;;:::o;6063:68::-;6100:7;6120:6;;;;;;;;;;;6113:13;;6063:68;:::o;12075:24::-;;;;;;;;;;;;;:::o;2360:93::-;2415:13;2441:7;2434:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2360:93;:::o;12941:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;15583:604::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15780:16:::1;15756:5;:21;;;:40;;;;;;;;;;;;;;;;;;15824:16;15800:5;:21;;;:40;;;;;;;;;;;;;;;;;;15862:10;15844:5;:15;;;:28;;;;;;;;;;;;;;;;;;15945:5;:15;;;;;;;;;;;;15921:5;:21;;;;;;;;;;;;15897:5;:21;;;;;;;;;;;;:45;;;;:::i;:::-;:63;;;;:::i;:::-;15876:5;:18;;;:84;;;;;;;;;;;;;;;;;;15991:17;15966:5;:22;;;:42;;;;;;;;;;;;;;;;;;16037:17;16012:5;:22;;;:42;;;;;;;;;;;;;;;;;;16077:11;16058:5;:16;;;:30;;;;;;;;;;;;;;;;;;16164:5;:16;;;;;;;;;;;;16139:5;:22;;;;;;;;;;;;16114:5;:22;;;;;;;;;;;;:47;;;;:::i;:::-;:66;;;;:::i;:::-;16092:5;:19;;;:88;;;;;;;;;;;;;;;;;;15583:604:::0;;;;;;:::o;13079:27::-;;;;:::o;3746:251::-;3838:4;3848:129;3857:12;:10;:12::i;:::-;3871:7;3880:96;3919:15;3880:96;;;;;;;;;;;;;;;;;:11;:25;3892:12;:10;:12::i;:::-;3880:25;;;;;;;;;;;;;;;:34;3906:7;3880:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;3848:8;:129::i;:::-;3988:4;3981:11;;3746:251;;;;:::o;2767:157::-;2852:4;2862:42;2872:12;:10;:12::i;:::-;2886:9;2897:6;2862:9;:42::i;:::-;2915:4;2908:11;;2767:157;;;;:::o;12381:22::-;;;;;;;;;;;;;:::o;16192:122::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16301:8:::1;16270:19;:28;16290:7;16270:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16192:122:::0;;:::o;16838:160::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16924:13:::1;16916:21;;:4;:21;;;;16908:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;16988:5;16969:10;:16;16980:4;16969:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;16838:160:::0;;:::o;14949:119::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15007:4:::1;14995:9;;:16;;;;;;;;;;;;;;;;;;15029:4;15015:11;;:18;;;;;;;;;;;;;;;;;;15062:1;15047:12;:16;;;;:::i;:::-;15037:7;:26;;;;14949:119::o:0;12619:193::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17435:152::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17540:16:::1;17522:15;;:34;;;;;;;;;;;;;;;;;;17572:10;17560:9;;:22;;;;;;;;;;;;;;;;;;17435:152:::0;;:::o;2929:140::-;3017:7;3037:11;:18;3049:5;3037:18;;;;;;;;;;;;;;;:27;3056:7;3037:27;;;;;;;;;;;;;;;;3030:34;;2929:140;;;;:::o;16455:136::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16578:8:::1;16540:26;:35;16567:7;16540:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16455:136:::0;;:::o;6379:220::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6481:1:::1;6461:22;;:8;:22;;;;6453:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6564:8;6535:38;;6556:6;;;;;;;;;;;6535:38;;;;;;;;;;;;6586:8;6577:6;;:17;;;;;;;;;;;;;;;;;;6379:220:::0;:::o;13139:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;15323:251::-;6179:12;:10;:12::i;:::-;6169:22;;:6;;;;;;;;;;;:22;;;6161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15466:3:::1;15450:13;:11;:13::i;:::-;:19;;;;:::i;:::-;15440:4;15423:13;15407;:11;:13::i;:::-;:29;;;;:::i;:::-;15406:38;;;;:::i;:::-;15405:65;;15397:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;15565:4;15548:13;15532;:11;:13::i;:::-;:29;;;;:::i;:::-;15531:38;;;;:::i;:::-;15513:15;:56;;;;15323:251:::0;:::o;11970:42::-;;;:::o;4811:156::-;4868:7;4881:9;4897:1;4893;:5;;;;:::i;:::-;4881:17;;4915:1;4910;:6;;4902:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4961:1;4954:8;;;4811:156;;;;:::o;1776:87::-;1828:7;1848:10;1841:17;;1776:87;:::o;4310:179::-;4437:6;4407:11;:18;4419:5;4407:18;;;;;;;;;;;;;;;:27;4426:7;4407:27;;;;;;;;;;;;;;;:36;;;;4468:7;4452:32;;4461:5;4452:32;;;4477:6;4452:32;;;;;;:::i;:::-;;;;;;;;4310:179;;;:::o;17712:2392::-;17832:1;17822:6;:11;17818:73;;;17839:37;17855:6;17863:9;17874:1;17839:15;:37::i;:::-;17880:7;;17818:73;17913:7;:5;:7::i;:::-;17903:17;;:6;:17;;;;:43;;;;;17939:7;:5;:7::i;:::-;17926:20;;:9;:20;;;;17903:43;:60;;;;;17953:10;;;;;;;;;;;17952:11;17903:60;17896:729;;;17979:9;;;;;;;;;;;17974:121;;18002:19;:27;18022:6;18002:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;18033:19;:30;18053:9;18033:30;;;;;;;;;;;;;;;;;;;;;;;;;18002:61;17994:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;17974:121;18102:10;:18;18113:6;18102:18;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;18125:31;:42;18157:9;18125:42;;;;;;;;;;;;;;;;;;;;;;;;;18124:43;18102:65;18098:296;;;18191:12;;18181:6;:22;;18173:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;18098:296;;;18253:10;:21;18264:9;18253:21;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;18279:31;:39;18311:6;18279:39;;;;;;;;;;;;;;;;;;;;;;;;;18278:40;18253:65;18249:145;;;18342:13;;18332:6;:23;;18324:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18249:145;18098:296;18404:26;:37;18431:9;18404:37;;;;;;;;;;;;;;;;;;;;;;;;;18399:133;;18488:15;;18464:20;18474:9;18464;:20::i;:::-;18455:6;:29;;;;:::i;:::-;:48;;18447:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18399:133;18544:14;:22;18559:6;18544:22;;;;;;;;;;;;;;;;;;;;;;;;;18543:23;:53;;;;;18571:14;:25;18586:9;18571:25;;;;;;;;;;;;;;;;;;;;;;;;;18570:26;18543:53;18535:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17896:729;18630:28;18661:24;18679:4;18661:9;:24::i;:::-;18630:55;;18691:12;18730:19;;18706:20;:43;;18691:58;;18762:7;:24;;;;;18775:11;;;;;;;;;;;18762:24;:41;;;;;18793:10;;;;;;;;;;;18792:11;18762:41;:68;;;;;18809:10;:21;18820:9;18809:21;;;;;;;;;;;;;;;;;;;;;;;;;18762:68;:102;;;;;18837:19;:27;18857:6;18837:27;;;;;;;;;;;;;;;;;;;;;;;;;18836:28;18762:102;:139;;;;;18871:19;:30;18891:9;18871:30;;;;;;;;;;;;;;;;;;;;;;;;;18870:31;18762:139;18755:213;;;18923:4;18910:10;;:17;;;;;;;;;;;;;;;;;;18931:10;:8;:10::i;:::-;18958:5;18945:10;;:18;;;;;;;;;;;;;;;;;;18755:213;18973:12;18989:10;;;;;;;;;;;18988:11;18973:26;;19009:19;:27;19029:6;19009:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;19040:19;:30;19060:9;19040:30;;;;;;;;;;;;;;;;;;;;;;;;;19009:61;19005:91;;;19086:5;19076:15;;19005:91;19105:7;19101:951;;;19118:12;19156:7;;19141:12;:22;19138:816;;;19176:23;19195:3;19176:14;19187:2;19176:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;19169:30;;19239:2;19233;19226:4;:9;;;;:::i;:::-;19225:16;;;;:::i;:::-;19203:18;;:38;;;;;;;:::i;:::-;;;;;;;;19274:2;19269:1;19262:4;:8;;;;:::i;:::-;19261:15;;;;:::i;:::-;19245:12;;:31;;;;;;;:::i;:::-;;;;;;;;19138:816;;;19291:10;:21;19302:9;19291:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;19338:1;19316:5;:19;;;;;;;;;;;;:23;;;19291:48;19287:667;;;19352:40;19388:3;19352:31;19363:5;:19;;;;;;;;;;;;19352:31;;:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;19345:47;;19450:5;:19;;;;;;;;;;;;19418:51;;19425:5;:22;;;;;;;;;;;;19418:29;;:4;:29;;;;:::i;:::-;:51;;;;:::i;:::-;19396:18;;:73;;;;;;;:::i;:::-;;;;;;;;19527:5;:19;;;;;;;;;;;;19495:51;;19502:5;:22;;;;;;;;;;;;19495:29;;:4;:29;;;;:::i;:::-;:51;;;;:::i;:::-;19473:18;;:73;;;;;;;:::i;:::-;;;;;;;;19592:5;:19;;;;;;;;;;;;19566:45;;19573:5;:16;;;;;;;;;;;;19566:23;;:4;:23;;;;:::i;:::-;:45;;;;:::i;:::-;19550:12;;:61;;;;;;;:::i;:::-;;;;;;;;19287:667;;;19640:10;:18;19651:6;19640:18;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;19683:1;19662:5;:18;;;;;;;;;;;;:22;;;19640:44;19636:318;;;19697:39;19732:3;19697:30;19708:5;:18;;;;;;;;;;;;19697:30;;:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19690:46;;19793:5;:18;;;;;;;;;;;;19762:49;;19769:5;:21;;;;;;;;;;;;19762:28;;:4;:28;;;;:::i;:::-;:49;;;;:::i;:::-;19740:18;;:71;;;;;;;:::i;:::-;;;;;;;;19868:5;:18;;;;;;;;;;;;19837:49;;19844:5;:21;;;;;;;;;;;;19837:28;;:4;:28;;;;:::i;:::-;:49;;;;:::i;:::-;19815:18;;:71;;;;;;;:::i;:::-;;;;;;;;19931:5;:18;;;;;;;;;;;;19906:43;;19913:5;:15;;;;;;;;;;;;19906:22;;:4;:22;;;;:::i;:::-;:43;;;;:::i;:::-;19890:12;;:59;;;;;;;:::i;:::-;;;;;;;;19636:318;19287:667;19138:816;19970:1;19963:4;:8;19959:67;;;19977:44;19993:6;20009:4;20016;19977:15;:44::i;:::-;19959:67;20041:4;20031:14;;;;;:::i;:::-;;;19114:938;19101:951;20057:42;20073:6;20081:9;20092:6;20057:15;:42::i;:::-;17812:2292;;;17712:2392;;;;:::o;5102:167::-;5187:7;5213:1;5208;:6;;5216:12;5200:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5233:9;5249:1;5245;:5;;;;:::i;:::-;5233:17;;5263:1;5256:8;;;5102:167;;;;;:::o;4002:302::-;4125:71;4147:6;4125:71;;;;;;;;;;;;;;;;;:9;:17;4135:6;4125:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;4105:9;:17;4115:6;4105:17;;;;;;;;;;;;;;;:91;;;;4223:32;4248:6;4223:9;:20;4233:9;4223:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;4200:9;:20;4210:9;4200:20;;;;;;;;;;;;;;;:55;;;;4281:9;4264:35;;4273:6;4264:35;;;4292:6;4264:35;;;;;;:::i;:::-;;;;;;;;4002:302;;;:::o;20485:1327::-;20517:28;20548:24;20566:4;20548:9;:24::i;:::-;20517:55;;20576:14;20635:12;;20614:18;;20593;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;20576:71;;20651:12;20697:1;20673:20;:25;:40;;;;20712:1;20702:6;:11;20673:40;20669:57;;;20717:7;;;;;20669:57;20780:2;20758:19;;:24;;;;:::i;:::-;20735:20;:47;20731:109;;;20833:2;20811:19;;:24;;;;:::i;:::-;20788:47;;20731:109;20845:23;20924:1;20915:6;20894:18;;20871:20;:41;;;;:::i;:::-;:50;;;;:::i;:::-;:54;;;;:::i;:::-;20845:80;;20929:26;20958:41;20983:15;20958:20;:24;;:41;;;;:::i;:::-;20929:70;;21005:25;21033:21;21005:49;;21060:36;21077:18;21060:16;:36::i;:::-;21102:18;21123:44;21149:17;21123:21;:25;;:44;;;;:::i;:::-;21102:65;;21173:23;21199:46;21238:6;21199:34;21214:18;;21199:10;:14;;:34;;;;:::i;:::-;:38;;:46;;;;:::i;:::-;21173:72;;21249:17;21269:40;21302:6;21269:28;21284:12;;21269:10;:14;;:28;;;;:::i;:::-;:32;;:40;;;;:::i;:::-;21249:60;;21313:23;21371:9;21353:15;:27;;;;:::i;:::-;21339:10;:42;;;;:::i;:::-;21313:68;;21410:1;21389:18;:22;;;;21436:1;21415:18;:22;;;;21456:1;21441:12;:16;;;;21485:1;21467:15;:19;:42;;;;;21508:1;21490:15;:19;21467:42;21463:163;;;21515:46;21528:15;21545;21515:12;:46::i;:::-;21570:51;21585:18;21605:15;21570:51;;;;;;;:::i;:::-;;;;;;;;21463:163;21652:9;;;;;;;;;;;21644:23;;21701:15;21677:21;:39;;;;:::i;:::-;21644:80;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21631:93;;;;;21749:15;;;;;;;;;;;21741:29;;21779:21;21741:66;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21728:79;;;;;20513:1299;;;;;;;;;;20485:1327;:::o;5274:202::-;5331:7;5355:1;5350;:6;5346:29;;;5369:1;5362:8;;;;5346:29;5380:9;5396:1;5392;:5;;;;:::i;:::-;5380:17;;5418:1;5413;5409;:5;;;;:::i;:::-;:10;5401:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5470:1;5463:8;;;5274:202;;;;;:::o;5481:121::-;5538:7;5558:39;5562:1;5565;5558:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5551:46;;5481:121;;;;:::o;4972:125::-;5029:7;5049:43;5053:1;5056;5049:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5042:50;;4972:125;;;;:::o;20109:367::-;20166:21;20204:1;20190:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20166:40;;20228:4;20210;20215:1;20210:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20247:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20237:4;20242:1;20237:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20266:49;20283:4;20298:6;20307:7;20266:8;:49::i;:::-;20321:6;:57;;;20382:7;20393:1;20427:4;20443;20452:15;20321:150;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20160:316;20109:367;:::o;16597:236::-;16667:49;16684:4;16699:6;16708:7;16667:8;:49::i;:::-;16722:6;:22;;;16753:9;16774:4;16781:7;16790:1;16793;16805:4;16812:15;16722:106;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16597:236;;:::o;5607:166::-;5692:7;5717:1;5713;:5;5720:12;5705:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5737:9;5753:1;5749;:5;;;;:::i;:::-;5737:17;;5767:1;5760:8;;;5607:166;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:474::-;3897:6;3905;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;4207:2;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4178:118;3829:474;;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:116::-;4731:21;4746:5;4731:21;:::i;:::-;4724:5;4721:32;4711:60;;4767:1;4764;4757:12;4711:60;4661:116;:::o;4783:133::-;4826:5;4864:6;4851:20;4842:29;;4880:30;4904:5;4880:30;:::i;:::-;4783:133;;;;:::o;4922:323::-;4978:6;5027:2;5015:9;5006:7;5002:23;4998:32;4995:119;;;5033:79;;:::i;:::-;4995:119;5153:1;5178:50;5220:7;5211:6;5200:9;5196:22;5178:50;:::i;:::-;5168:60;;5124:114;4922:323;;;;:::o;5251:619::-;5328:6;5336;5344;5393:2;5381:9;5372:7;5368:23;5364:32;5361:119;;;5399:79;;:::i;:::-;5361:119;5519:1;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5490:117;5646:2;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5617:118;5774:2;5800:53;5845:7;5836:6;5825:9;5821:22;5800:53;:::i;:::-;5790:63;;5745:118;5251:619;;;;;:::o;5876:86::-;5911:7;5951:4;5944:5;5940:16;5929:27;;5876:86;;;:::o;5968:112::-;6051:22;6067:5;6051:22;:::i;:::-;6046:3;6039:35;5968:112;;:::o;6086:214::-;6175:4;6213:2;6202:9;6198:18;6190:26;;6226:67;6290:1;6279:9;6275:17;6266:6;6226:67;:::i;:::-;6086:214;;;;:::o;6306:118::-;6393:24;6411:5;6393:24;:::i;:::-;6388:3;6381:37;6306:118;;:::o;6430:222::-;6523:4;6561:2;6550:9;6546:18;6538:26;;6574:71;6642:1;6631:9;6627:17;6618:6;6574:71;:::i;:::-;6430:222;;;;:::o;6658:329::-;6717:6;6766:2;6754:9;6745:7;6741:23;6737:32;6734:119;;;6772:79;;:::i;:::-;6734:119;6892:1;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6863:117;6658:329;;;;:::o;6993:468::-;7058:6;7066;7115:2;7103:9;7094:7;7090:23;7086:32;7083:119;;;7121:79;;:::i;:::-;7083:119;7241:1;7266:53;7311:7;7302:6;7291:9;7287:22;7266:53;:::i;:::-;7256:63;;7212:117;7368:2;7394:50;7436:7;7427:6;7416:9;7412:22;7394:50;:::i;:::-;7384:60;;7339:115;6993:468;;;;;:::o;7467:118::-;7538:22;7554:5;7538:22;:::i;:::-;7531:5;7528:33;7518:61;;7575:1;7572;7565:12;7518:61;7467:118;:::o;7591:135::-;7635:5;7673:6;7660:20;7651:29;;7689:31;7714:5;7689:31;:::i;:::-;7591:135;;;;:::o;7732:1033::-;7824:6;7832;7840;7848;7856;7864;7913:3;7901:9;7892:7;7888:23;7884:33;7881:120;;;7920:79;;:::i;:::-;7881:120;8040:1;8065:51;8108:7;8099:6;8088:9;8084:22;8065:51;:::i;:::-;8055:61;;8011:115;8165:2;8191:51;8234:7;8225:6;8214:9;8210:22;8191:51;:::i;:::-;8181:61;;8136:116;8291:2;8317:51;8360:7;8351:6;8340:9;8336:22;8317:51;:::i;:::-;8307:61;;8262:116;8417:2;8443:51;8486:7;8477:6;8466:9;8462:22;8443:51;:::i;:::-;8433:61;;8388:116;8543:3;8570:51;8613:7;8604:6;8593:9;8589:22;8570:51;:::i;:::-;8560:61;;8514:117;8670:3;8697:51;8740:7;8731:6;8720:9;8716:22;8697:51;:::i;:::-;8687:61;;8641:117;7732:1033;;;;;;;;:::o;8771:933::-;9028:4;9066:3;9055:9;9051:19;9043:27;;9080:67;9144:1;9133:9;9129:17;9120:6;9080:67;:::i;:::-;9157:68;9221:2;9210:9;9206:18;9197:6;9157:68;:::i;:::-;9235;9299:2;9288:9;9284:18;9275:6;9235:68;:::i;:::-;9313;9377:2;9366:9;9362:18;9353:6;9313:68;:::i;:::-;9391:69;9455:3;9444:9;9440:19;9431:6;9391:69;:::i;:::-;9470;9534:3;9523:9;9519:19;9510:6;9470:69;:::i;:::-;9549;9613:3;9602:9;9598:19;9589:6;9549:69;:::i;:::-;9628;9692:3;9681:9;9677:19;9668:6;9628:69;:::i;:::-;8771:933;;;;;;;;;;;:::o;9710:474::-;9778:6;9786;9835:2;9823:9;9814:7;9810:23;9806:32;9803:119;;;9841:79;;:::i;:::-;9803:119;9961:1;9986:53;10031:7;10022:6;10011:9;10007:22;9986:53;:::i;:::-;9976:63;;9932:117;10088:2;10114:53;10159:7;10150:6;10139:9;10135:22;10114:53;:::i;:::-;10104:63;;10059:118;9710:474;;;;;:::o;10190:60::-;10218:3;10239:5;10232:12;;10190:60;;;:::o;10256:142::-;10306:9;10339:53;10357:34;10366:24;10384:5;10366:24;:::i;:::-;10357:34;:::i;:::-;10339:53;:::i;:::-;10326:66;;10256:142;;;:::o;10404:126::-;10454:9;10487:37;10518:5;10487:37;:::i;:::-;10474:50;;10404:126;;;:::o;10536:153::-;10613:9;10646:37;10677:5;10646:37;:::i;:::-;10633:50;;10536:153;;;:::o;10695:185::-;10809:64;10867:5;10809:64;:::i;:::-;10804:3;10797:77;10695:185;;:::o;10886:276::-;11006:4;11044:2;11033:9;11029:18;11021:26;;11057:98;11152:1;11141:9;11137:17;11128:6;11057:98;:::i;:::-;10886:276;;;;:::o;11168:180::-;11216:77;11213:1;11206:88;11313:4;11310:1;11303:15;11337:4;11334:1;11327:15;11354:320;11398:6;11435:1;11429:4;11425:12;11415:22;;11482:1;11476:4;11472:12;11503:18;11493:81;;11559:4;11551:6;11547:17;11537:27;;11493:81;11621:2;11613:6;11610:14;11590:18;11587:38;11584:84;;;11640:18;;:::i;:::-;11584:84;11405:269;11354:320;;;:::o;11680:182::-;11820:34;11816:1;11808:6;11804:14;11797:58;11680:182;:::o;11868:366::-;12010:3;12031:67;12095:2;12090:3;12031:67;:::i;:::-;12024:74;;12107:93;12196:3;12107:93;:::i;:::-;12225:2;12220:3;12216:12;12209:19;;11868:366;;;:::o;12240:419::-;12406:4;12444:2;12433:9;12429:18;12421:26;;12493:9;12487:4;12483:20;12479:1;12468:9;12464:17;12457:47;12521:131;12647:4;12521:131;:::i;:::-;12513:139;;12240:419;;;:::o;12665:180::-;12713:77;12710:1;12703:88;12810:4;12807:1;12800:15;12834:4;12831:1;12824:15;12851:180;12899:77;12896:1;12889:88;12996:4;12993:1;12986:15;13020:4;13017:1;13010:15;13037:185;13077:1;13094:20;13112:1;13094:20;:::i;:::-;13089:25;;13128:20;13146:1;13128:20;:::i;:::-;13123:25;;13167:1;13157:35;;13172:18;;:::i;:::-;13157:35;13214:1;13211;13207:9;13202:14;;13037:185;;;;:::o;13228:348::-;13268:7;13291:20;13309:1;13291:20;:::i;:::-;13286:25;;13325:20;13343:1;13325:20;:::i;:::-;13320:25;;13513:1;13445:66;13441:74;13438:1;13435:81;13430:1;13423:9;13416:17;13412:105;13409:131;;;13520:18;;:::i;:::-;13409:131;13568:1;13565;13561:9;13550:20;;13228:348;;;;:::o;13582:222::-;13722:34;13718:1;13710:6;13706:14;13699:58;13791:5;13786:2;13778:6;13774:15;13767:30;13582:222;:::o;13810:366::-;13952:3;13973:67;14037:2;14032:3;13973:67;:::i;:::-;13966:74;;14049:93;14138:3;14049:93;:::i;:::-;14167:2;14162:3;14158:12;14151:19;;13810:366;;;:::o;14182:419::-;14348:4;14386:2;14375:9;14371:18;14363:26;;14435:9;14429:4;14425:20;14421:1;14410:9;14406:17;14399:47;14463:131;14589:4;14463:131;:::i;:::-;14455:139;;14182:419;;;:::o;14607:223::-;14747:34;14743:1;14735:6;14731:14;14724:58;14816:6;14811:2;14803:6;14799:15;14792:31;14607:223;:::o;14836:366::-;14978:3;14999:67;15063:2;15058:3;14999:67;:::i;:::-;14992:74;;15075:93;15164:3;15075:93;:::i;:::-;15193:2;15188:3;15184:12;15177:19;;14836:366;;;:::o;15208:419::-;15374:4;15412:2;15401:9;15397:18;15389:26;;15461:9;15455:4;15451:20;15447:1;15436:9;15432:17;15425:47;15489:131;15615:4;15489:131;:::i;:::-;15481:139;;15208:419;;;:::o;15633:237::-;15671:3;15690:18;15706:1;15690:18;:::i;:::-;15685:23;;15722:18;15738:1;15722:18;:::i;:::-;15717:23;;15812:1;15806:4;15802:12;15799:1;15796:19;15793:45;;;15818:18;;:::i;:::-;15793:45;15862:1;15859;15855:9;15848:16;;15633:237;;;;:::o;15876:173::-;16016:25;16012:1;16004:6;16000:14;15993:49;15876:173;:::o;16055:366::-;16197:3;16218:67;16282:2;16277:3;16218:67;:::i;:::-;16211:74;;16294:93;16383:3;16294:93;:::i;:::-;16412:2;16407:3;16403:12;16396:19;;16055:366;;;:::o;16427:419::-;16593:4;16631:2;16620:9;16616:18;16608:26;;16680:9;16674:4;16670:20;16666:1;16655:9;16651:17;16644:47;16708:131;16834:4;16708:131;:::i;:::-;16700:139;;16427:419;;;:::o;16852:305::-;16892:3;16911:20;16929:1;16911:20;:::i;:::-;16906:25;;16945:20;16963:1;16945:20;:::i;:::-;16940:25;;17099:1;17031:66;17027:74;17024:1;17021:81;17018:107;;;17105:18;;:::i;:::-;17018:107;17149:1;17146;17142:9;17135:16;;16852:305;;;;:::o;17163:225::-;17303:34;17299:1;17291:6;17287:14;17280:58;17372:8;17367:2;17359:6;17355:15;17348:33;17163:225;:::o;17394:366::-;17536:3;17557:67;17621:2;17616:3;17557:67;:::i;:::-;17550:74;;17633:93;17722:3;17633:93;:::i;:::-;17751:2;17746:3;17742:12;17735:19;;17394:366;;;:::o;17766:419::-;17932:4;17970:2;17959:9;17955:18;17947:26;;18019:9;18013:4;18009:20;18005:1;17994:9;17990:17;17983:47;18047:131;18173:4;18047:131;:::i;:::-;18039:139;;17766:419;;;:::o;18191:221::-;18331:34;18327:1;18319:6;18315:14;18308:58;18400:4;18395:2;18387:6;18383:15;18376:29;18191:221;:::o;18418:366::-;18560:3;18581:67;18645:2;18640:3;18581:67;:::i;:::-;18574:74;;18657:93;18746:3;18657:93;:::i;:::-;18775:2;18770:3;18766:12;18759:19;;18418:366;;;:::o;18790:419::-;18956:4;18994:2;18983:9;18979:18;18971:26;;19043:9;19037:4;19033:20;19029:1;19018:9;19014:17;19007:47;19071:131;19197:4;19071:131;:::i;:::-;19063:139;;18790:419;;;:::o;19215:177::-;19355:29;19351:1;19343:6;19339:14;19332:53;19215:177;:::o;19398:366::-;19540:3;19561:67;19625:2;19620:3;19561:67;:::i;:::-;19554:74;;19637:93;19726:3;19637:93;:::i;:::-;19755:2;19750:3;19746:12;19739:19;;19398:366;;;:::o;19770:419::-;19936:4;19974:2;19963:9;19959:18;19951:26;;20023:9;20017:4;20013:20;20009:1;19998:9;19994:17;19987:47;20051:131;20177:4;20051:131;:::i;:::-;20043:139;;19770:419;;;:::o;20195:172::-;20335:24;20331:1;20323:6;20319:14;20312:48;20195:172;:::o;20373:366::-;20515:3;20536:67;20600:2;20595:3;20536:67;:::i;:::-;20529:74;;20612:93;20701:3;20612:93;:::i;:::-;20730:2;20725:3;20721:12;20714:19;;20373:366;;;:::o;20745:419::-;20911:4;20949:2;20938:9;20934:18;20926:26;;20998:9;20992:4;20988:20;20984:1;20973:9;20969:17;20962:47;21026:131;21152:4;21026:131;:::i;:::-;21018:139;;20745:419;;;:::o;21170:178::-;21310:30;21306:1;21298:6;21294:14;21287:54;21170:178;:::o;21354:366::-;21496:3;21517:67;21581:2;21576:3;21517:67;:::i;:::-;21510:74;;21593:93;21682:3;21593:93;:::i;:::-;21711:2;21706:3;21702:12;21695:19;;21354:366;;;:::o;21726:419::-;21892:4;21930:2;21919:9;21915:18;21907:26;;21979:9;21973:4;21969:20;21965:1;21954:9;21950:17;21943:47;22007:131;22133:4;22007:131;:::i;:::-;21999:139;;21726:419;;;:::o;22151:179::-;22291:31;22287:1;22279:6;22275:14;22268:55;22151:179;:::o;22336:366::-;22478:3;22499:67;22563:2;22558:3;22499:67;:::i;:::-;22492:74;;22575:93;22664:3;22575:93;:::i;:::-;22693:2;22688:3;22684:12;22677:19;;22336:366;;;:::o;22708:419::-;22874:4;22912:2;22901:9;22897:18;22889:26;;22961:9;22955:4;22951:20;22947:1;22936:9;22932:17;22925:47;22989:131;23115:4;22989:131;:::i;:::-;22981:139;;22708:419;;;:::o;23133:169::-;23273:21;23269:1;23261:6;23257:14;23250:45;23133:169;:::o;23308:366::-;23450:3;23471:67;23535:2;23530:3;23471:67;:::i;:::-;23464:74;;23547:93;23636:3;23547:93;:::i;:::-;23665:2;23660:3;23656:12;23649:19;;23308:366;;;:::o;23680:419::-;23846:4;23884:2;23873:9;23869:18;23861:26;;23933:9;23927:4;23923:20;23919:1;23908:9;23904:17;23897:47;23961:131;24087:4;23961:131;:::i;:::-;23953:139;;23680:419;;;:::o;24105:169::-;24245:21;24241:1;24233:6;24229:14;24222:45;24105:169;:::o;24280:366::-;24422:3;24443:67;24507:2;24502:3;24443:67;:::i;:::-;24436:74;;24519:93;24608:3;24519:93;:::i;:::-;24637:2;24632:3;24628:12;24621:19;;24280:366;;;:::o;24652:419::-;24818:4;24856:2;24845:9;24841:18;24833:26;;24905:9;24899:4;24895:20;24891:1;24880:9;24876:17;24869:47;24933:131;25059:4;24933:131;:::i;:::-;24925:139;;24652:419;;;:::o;25077:191::-;25117:4;25137:20;25155:1;25137:20;:::i;:::-;25132:25;;25171:20;25189:1;25171:20;:::i;:::-;25166:25;;25210:1;25207;25204:8;25201:34;;;25215:18;;:::i;:::-;25201:34;25260:1;25257;25253:9;25245:17;;25077:191;;;;:::o;25274:332::-;25395:4;25433:2;25422:9;25418:18;25410:26;;25446:71;25514:1;25503:9;25499:17;25490:6;25446:71;:::i;:::-;25527:72;25595:2;25584:9;25580:18;25571:6;25527:72;:::i;:::-;25274:332;;;;;:::o;25612:147::-;25713:11;25750:3;25735:18;;25612:147;;;;:::o;25765:114::-;;:::o;25885:398::-;26044:3;26065:83;26146:1;26141:3;26065:83;:::i;:::-;26058:90;;26157:93;26246:3;26157:93;:::i;:::-;26275:1;26270:3;26266:11;26259:18;;25885:398;;;:::o;26289:379::-;26473:3;26495:147;26638:3;26495:147;:::i;:::-;26488:154;;26659:3;26652:10;;26289:379;;;:::o;26674:220::-;26814:34;26810:1;26802:6;26798:14;26791:58;26883:3;26878:2;26870:6;26866:15;26859:28;26674:220;:::o;26900:366::-;27042:3;27063:67;27127:2;27122:3;27063:67;:::i;:::-;27056:74;;27139:93;27228:3;27139:93;:::i;:::-;27257:2;27252:3;27248:12;27241:19;;26900:366;;;:::o;27272:419::-;27438:4;27476:2;27465:9;27461:18;27453:26;;27525:9;27519:4;27515:20;27511:1;27500:9;27496:17;27489:47;27553:131;27679:4;27553:131;:::i;:::-;27545:139;;27272:419;;;:::o;27697:180::-;27745:77;27742:1;27735:88;27842:4;27839:1;27832:15;27866:4;27863:1;27856:15;27883:180;27931:77;27928:1;27921:88;28028:4;28025:1;28018:15;28052:4;28049:1;28042:15;28069:143;28126:5;28157:6;28151:13;28142:22;;28173:33;28200:5;28173:33;:::i;:::-;28069:143;;;;:::o;28218:351::-;28288:6;28337:2;28325:9;28316:7;28312:23;28308:32;28305:119;;;28343:79;;:::i;:::-;28305:119;28463:1;28488:64;28544:7;28535:6;28524:9;28520:22;28488:64;:::i;:::-;28478:74;;28434:128;28218:351;;;;:::o;28575:85::-;28620:7;28649:5;28638:16;;28575:85;;;:::o;28666:158::-;28724:9;28757:61;28775:42;28784:32;28810:5;28784:32;:::i;:::-;28775:42;:::i;:::-;28757:61;:::i;:::-;28744:74;;28666:158;;;:::o;28830:147::-;28925:45;28964:5;28925:45;:::i;:::-;28920:3;28913:58;28830:147;;:::o;28983:114::-;29050:6;29084:5;29078:12;29068:22;;28983:114;;;:::o;29103:184::-;29202:11;29236:6;29231:3;29224:19;29276:4;29271:3;29267:14;29252:29;;29103:184;;;;:::o;29293:132::-;29360:4;29383:3;29375:11;;29413:4;29408:3;29404:14;29396:22;;29293:132;;;:::o;29431:108::-;29508:24;29526:5;29508:24;:::i;:::-;29503:3;29496:37;29431:108;;:::o;29545:179::-;29614:10;29635:46;29677:3;29669:6;29635:46;:::i;:::-;29713:4;29708:3;29704:14;29690:28;;29545:179;;;;:::o;29730:113::-;29800:4;29832;29827:3;29823:14;29815:22;;29730:113;;;:::o;29879:732::-;29998:3;30027:54;30075:5;30027:54;:::i;:::-;30097:86;30176:6;30171:3;30097:86;:::i;:::-;30090:93;;30207:56;30257:5;30207:56;:::i;:::-;30286:7;30317:1;30302:284;30327:6;30324:1;30321:13;30302:284;;;30403:6;30397:13;30430:63;30489:3;30474:13;30430:63;:::i;:::-;30423:70;;30516:60;30569:6;30516:60;:::i;:::-;30506:70;;30362:224;30349:1;30346;30342:9;30337:14;;30302:284;;;30306:14;30602:3;30595:10;;30003:608;;;29879:732;;;;:::o;30617:831::-;30880:4;30918:3;30907:9;30903:19;30895:27;;30932:71;31000:1;30989:9;30985:17;30976:6;30932:71;:::i;:::-;31013:80;31089:2;31078:9;31074:18;31065:6;31013:80;:::i;:::-;31140:9;31134:4;31130:20;31125:2;31114:9;31110:18;31103:48;31168:108;31271:4;31262:6;31168:108;:::i;:::-;31160:116;;31286:72;31354:2;31343:9;31339:18;31330:6;31286:72;:::i;:::-;31368:73;31436:3;31425:9;31421:19;31412:6;31368:73;:::i;:::-;30617:831;;;;;;;;:::o;31454:807::-;31703:4;31741:3;31730:9;31726:19;31718:27;;31755:71;31823:1;31812:9;31808:17;31799:6;31755:71;:::i;:::-;31836:72;31904:2;31893:9;31889:18;31880:6;31836:72;:::i;:::-;31918:80;31994:2;31983:9;31979:18;31970:6;31918:80;:::i;:::-;32008;32084:2;32073:9;32069:18;32060:6;32008:80;:::i;:::-;32098:73;32166:3;32155:9;32151:19;32142:6;32098:73;:::i;:::-;32181;32249:3;32238:9;32234:19;32225:6;32181:73;:::i;:::-;31454:807;;;;;;;;;:::o;32267:143::-;32324:5;32355:6;32349:13;32340:22;;32371:33;32398:5;32371:33;:::i;:::-;32267:143;;;;:::o;32416:663::-;32504:6;32512;32520;32569:2;32557:9;32548:7;32544:23;32540:32;32537:119;;;32575:79;;:::i;:::-;32537:119;32695:1;32720:64;32776:7;32767:6;32756:9;32752:22;32720:64;:::i;:::-;32710:74;;32666:128;32833:2;32859:64;32915:7;32906:6;32895:9;32891:22;32859:64;:::i;:::-;32849:74;;32804:129;32972:2;32998:64;33054:7;33045:6;33034:9;33030:22;32998:64;:::i;:::-;32988:74;;32943:129;32416:663;;;;;:::o
Swarm Source
ipfs://cb270f43250036b07766bab28a9507a43368e53d74698ba9bb02f97e85801f5d
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.