Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18005837 | 405 days ago | IN | 0 ETH | 0.00061745 | ||||
Approve | 18005786 | 405 days ago | IN | 0 ETH | 0.00060452 | ||||
Enable Anti Bot ... | 18005767 | 405 days ago | IN | 0 ETH | 0.00054655 | ||||
Set Revenue Wall... | 18005761 | 405 days ago | IN | 0 ETH | 0.00061288 | ||||
Set My Wallet | 18005755 | 405 days ago | IN | 0 ETH | 0.00060418 | ||||
Approve | 18005748 | 405 days ago | IN | 0 ETH | 0.00067039 | ||||
0x60e06040 | 18005735 | 405 days ago | IN | 0 ETH | 0.08112177 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
HIPvPGame
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-27 */ pragma solidity 0.8.19; /// @notice Modern and gas efficient ERC20 + EIP-2612 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol) /// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol) /// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it. abstract contract ERC20 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); /*////////////////////////////////////////////////////////////// METADATA STORAGE //////////////////////////////////////////////////////////////*/ string public name; string public symbol; uint8 public immutable decimals; /*////////////////////////////////////////////////////////////// ERC20 STORAGE //////////////////////////////////////////////////////////////*/ uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; /*////////////////////////////////////////////////////////////// EIP-2612 STORAGE //////////////////////////////////////////////////////////////*/ uint256 internal immutable INITIAL_CHAIN_ID; bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR; mapping(address => uint256) public nonces; /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor( string memory _name, string memory _symbol, uint8 _decimals ) { name = _name; symbol = _symbol; decimals = _decimals; INITIAL_CHAIN_ID = block.chainid; INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator(); } /*////////////////////////////////////////////////////////////// ERC20 LOGIC //////////////////////////////////////////////////////////////*/ function approve(address spender, uint256 amount) public virtual returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) public virtual returns (bool) { balanceOf[msg.sender] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual returns (bool) { uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals. if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount; balanceOf[from] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(from, to, amount); return true; } /*////////////////////////////////////////////////////////////// EIP-2612 LOGIC //////////////////////////////////////////////////////////////*/ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) public virtual { require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED"); // Unchecked because the only math done is incrementing // the owner's nonce which cannot realistically overflow. unchecked { address recoveredAddress = ecrecover( keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR(), keccak256( abi.encode( keccak256( "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)" ), owner, spender, value, nonces[owner]++, deadline ) ) ) ), v, r, s ); require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER"); allowance[recoveredAddress][spender] = value; } emit Approval(owner, spender, value); } function DOMAIN_SEPARATOR() public view virtual returns (bytes32) { return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator(); } function computeDomainSeparator() internal view virtual returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256("1"), block.chainid, address(this) ) ); } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint(address to, uint256 amount) internal virtual { totalSupply += amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(address(0), to, amount); } function _burn(address from, uint256 amount) internal virtual { balanceOf[from] -= amount; // Cannot underflow because a user's balance // will never be larger than the total supply. unchecked { totalSupply -= amount; } emit Transfer(from, address(0), amount); } } // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } 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; } /** * @title HIPvPGame * @dev Betting token for HIPvPGame */ contract HIPvPGame is Ownable, ERC20 { IUniswapV2Router02 public router; IUniswapV2Factory public factory; IUniswapV2Pair public pair; uint private constant INITIAL_SUPPLY = 10_000_000 * 10**16; // Percent of the initial supply that will go to the LP uint constant LP_BPS = 9000; // Percent of the initial supply that will go to marketing uint constant MARKETING_BPS = 10_000 - LP_BPS; // // The tax to deduct, in basis points // uint public buyTaxBps = 500; uint public sellTaxBps = 500; // bool isSellingCollectedTaxes; event AntiBotEngaged(); event AntiBotDisengaged(); event StealthLaunchEngaged(); address public hiloContract; bool public isLaunched; address public myWallet; address public marketingWallet; address public revenueWallet; bool public engagedOnce; bool public disengagedOnce; constructor() ERC20("HIPvPGame", "HIPVP", 16) { if (isGoerli()) { router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } else if (isSepolia()) { router = IUniswapV2Router02(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008); } else { require(block.chainid == 1, "expected mainnet"); router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } factory = IUniswapV2Factory(router.factory()); _mint(msg.sender, INITIAL_SUPPLY); // Approve infinite spending by DEX, to sell tokens collected via tax. allowance[address(this)][address(router)] = type(uint).max; emit Approval(address(this), address(router), type(uint).max); pair = IUniswapV2Pair(factory.createPair(address(this), router.WETH())); isLaunched = false; } modifier lockTheSwap() { isSellingCollectedTaxes = true; _; isSellingCollectedTaxes = false; } modifier onlyTestnet() { require(isTestnet(), "not testnet"); _; } receive() external payable {} fallback() external payable {} function burn(uint amount) external { _burn(msg.sender, amount); } /** * @dev Allow minting on testnet so I don't have to deal with * buying from Uniswap. * @param amount the number of tokens to mint */ function mint(uint amount) external onlyTestnet { _mint(address(msg.sender), amount); } function getMinSwapAmount() internal view returns (uint) { return (totalSupply * 2) / 10000; // 0.02% } function isGoerli() public view returns (bool) { return block.chainid == 5; } function isSepolia() public view returns (bool) { return block.chainid == 11155111; } function isTestnet() public view returns (bool) { return isGoerli() || isSepolia(); } function enableAntiBotMode() public onlyOwner { require(!engagedOnce, "this is a one shot function"); engagedOnce = true; buyTaxBps = 1500; sellTaxBps = 1500; emit AntiBotEngaged(); } function disableAntiBotMode() public onlyOwner { require(!disengagedOnce, "this is a one shot function"); disengagedOnce = true; buyTaxBps = 500; sellTaxBps = 500; emit AntiBotDisengaged(); } /** * @dev Approves and connects tg user * contract, but takes as input a secret that the bot uses to * verify ownership by a Telegram user. * @param secret The secret that the bot has generated. * @return true */ function connectAndApprove(uint32 secret) external returns (bool) { address pwner = _msgSender(); allowance[pwner][hiloContract] = type(uint).max; emit Approval(pwner, hiloContract, type(uint).max); return true; } function sethiloContract(address a) public onlyOwner { require(a != address(0), "null address"); hiloContract = a; } function setMyWallet(address wallet) public onlyOwner { require(wallet != address(0), "null address"); myWallet = wallet; } function setMarketingWallet(address wallet) public onlyOwner { require(wallet != address(0), "null address"); marketingWallet = wallet; } function setRevenueWallet(address wallet) public onlyOwner { require(wallet != address(0), "null address"); revenueWallet = wallet; } function stealthLaunch() external payable onlyOwner { require(!isLaunched, "already launched"); require(myWallet != address(0), "null address"); require(marketingWallet != address(0), "null address"); require(revenueWallet != address(0), "null address"); require(hiloContract != address(0), "null address"); isLaunched = true; emit StealthLaunchEngaged(); } /** * @dev Calculate the amount of tax to apply to a transaction. * @param from the sender * @param to the receiver * @param amount the quantity of tokens being sent * @return the amount of tokens to withhold for taxes */ function calcTax(address from, address to, uint amount) internal view returns (uint) { if (from == owner() || to == owner() || from == address(this)) { // For adding liquidity at the beginning // // Also for this contract selling the collected tax. return 0; } else if (from == address(pair)) { // Buy from DEX, or adding liquidity. return amount * buyTaxBps / 10_000; } else if (to == address(pair)) { // Sell from DEX, or removing liquidity. return amount * sellTaxBps / 10_000; } else { // Sending to other wallets (e.g. OTC) is tax-free. return 0; } } /** * @dev Sell the balance accumulated from taxes. */ function sellCollectedTaxes() internal lockTheSwap { uint tokensToSwap = balanceOf[address(this)]; // Sell address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokensToSwap, 0, path, address(this), block.timestamp ); revenueWallet.call{value: (address(this).balance) / 5}(""); myWallet.call{value: address(this).balance}(""); } /** * @dev Transfer tokens from the caller to another address. * @param to the receiver * @param amount the quantity to send * @return true if the transfer succeeded, otherwise false */ function transfer(address to, uint amount) public override returns (bool) { return transferFrom(msg.sender, to, amount); } /** * @dev Transfer tokens from one address to another. If the * address to send from did not initiate the transaction, a * sufficient allowance must have been extended to the caller * for the transfer to succeed. * @param from the sender * @param to the receiver * @param amount the quantity to send * @return true if the transfer succeeded, otherwise false */ function transferFrom( address from, address to, uint amount ) public override returns (bool) { if (from != msg.sender) { // This is a typical transferFrom uint allowed = allowance[from][msg.sender]; // Saves gas for limited approvals. if (allowed != type(uint).max) allowance[from][msg.sender] = allowed - amount; } if(!disengagedOnce){ if(to != owner() && from != owner() && to != address(router) && to != address(pair)){ uint256 maxHolding = (totalSupply * 150) / 10000; // 1.5% in basis points require(balanceOf[to] + amount <= maxHolding, "Recipient holding exceeds maximum allowed"); } } // Only on sells because DEX has a LOCKED (reentrancy) // error if done during buys. // // isSellingCollectedTaxes prevents an infinite loop. if (balanceOf[address(this)] > getMinSwapAmount() && !isSellingCollectedTaxes && from != address(pair) && from != address(this)) { sellCollectedTaxes(); } uint tax = calcTax(from, to, amount); uint afterTaxAmount = amount - tax; balanceOf[from] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint value. unchecked { balanceOf[to] += afterTaxAmount; } emit Transfer(from, to, afterTaxAmount); if (tax > 0) { unchecked { balanceOf[address(this)] += tax; } // Any transfer to the contract can be viewed as tax emit Transfer(from, address(this), tax); } return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"AntiBotDisengaged","type":"event"},{"anonymous":false,"inputs":[],"name":"AntiBotEngaged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","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":[],"name":"StealthLaunchEngaged","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTaxBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"secret","type":"uint32"}],"name":"connectAndApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableAntiBotMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disengagedOnce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableAntiBotMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"engagedOnce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hiloContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isGoerli","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSepolia","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTestnet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"myWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revenueWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setMyWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setRevenueWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"sethiloContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stealthLaunch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e06040526101f4600a556101f4600b553480156200001d57600080fd5b506040518060400160405280600981526020017f484950765047616d6500000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f48495056500000000000000000000000000000000000000000000000000000008152506010620000ac620000a06200067460201b60201c565b6200067c60201b60201c565b8260019081620000bd919062000b36565b508160029081620000cf919062000b36565b508060ff1660808160ff16815250504660a08181525050620000f66200074060201b60201c565b60c0818152505050505062000110620007d060201b60201c565b156200017157737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200027f565b62000181620007db60201b60201c565b15620001e25773c532a74256d3db42d0bf7a0400fefdbad7694008600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200027e565b6001461462000228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021f9062000c7e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000313919062000d0a565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036f3369152d02c7e14af6800000620007e860201b60201c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051620004d3919062000d4d565b60405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000588573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ae919062000d0a565b6040518363ffffffff1660e01b8152600401620005cd92919062000d7b565b6020604051808303816000875af1158015620005ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000613919062000d0a565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60156101000a81548160ff02191690831515021790555062000f52565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600160405162000774919062000e57565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620007b595949392919062000e8b565b60405160208183030381529060405280519060200120905090565b600060054614905090565b600062aa36a74614905090565b8060036000828254620007fc919062000f17565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b0919062000d4d565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200093e57607f821691505b602082108103620009545762000953620008f6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200097f565b620009ca86836200097f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a1762000a1162000a0b84620009e2565b620009ec565b620009e2565b9050919050565b6000819050919050565b62000a3383620009f6565b62000a4b62000a428262000a1e565b8484546200098c565b825550505050565b600090565b62000a6262000a53565b62000a6f81848462000a28565b505050565b5b8181101562000a975762000a8b60008262000a58565b60018101905062000a75565b5050565b601f82111562000ae65762000ab0816200095a565b62000abb846200096f565b8101602085101562000acb578190505b62000ae362000ada856200096f565b83018262000a74565b50505b505050565b600082821c905092915050565b600062000b0b6000198460080262000aeb565b1980831691505092915050565b600062000b26838362000af8565b9150826002028217905092915050565b62000b4182620008bc565b67ffffffffffffffff81111562000b5d5762000b5c620008c7565b5b62000b69825462000925565b62000b7682828562000a9b565b600060209050601f83116001811462000bae576000841562000b99578287015190505b62000ba5858262000b18565b86555062000c15565b601f19841662000bbe866200095a565b60005b8281101562000be85784890151825560018201915060208501945060208101905062000bc1565b8683101562000c08578489015162000c04601f89168262000af8565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f6578706563746564206d61696e6e657400000000000000000000000000000000600082015250565b600062000c6660108362000c1d565b915062000c738262000c2e565b602082019050919050565b6000602082019050818103600083015262000c998162000c57565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cd28262000ca5565b9050919050565b62000ce48162000cc5565b811462000cf057600080fd5b50565b60008151905062000d048162000cd9565b92915050565b60006020828403121562000d235762000d2262000ca0565b5b600062000d338482850162000cf3565b91505092915050565b62000d4781620009e2565b82525050565b600060208201905062000d64600083018462000d3c565b92915050565b62000d758162000cc5565b82525050565b600060408201905062000d92600083018562000d6a565b62000da1602083018462000d6a565b9392505050565b600081905092915050565b60008190508160005260206000209050919050565b6000815462000dd78162000925565b62000de3818662000da8565b9450600182166000811462000e01576001811462000e175762000e4e565b60ff198316865281151582028601935062000e4e565b62000e228562000db3565b60005b8381101562000e465781548189015260018201915060208101905062000e25565b838801955050505b50505092915050565b600062000e65828462000dc8565b915081905092915050565b6000819050919050565b62000e858162000e70565b82525050565b600060a08201905062000ea2600083018862000e7a565b62000eb1602083018762000e7a565b62000ec0604083018662000e7a565b62000ecf606083018562000d3c565b62000ede608083018462000d6a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f2482620009e2565b915062000f3183620009e2565b925082820190508082111562000f4c5762000f4b62000ee8565b5b92915050565b60805160a05160c0516139ef62000f826000396000611502015260006114ce015260006114a801526139ef6000f3fe60806040526004361061023f5760003560e01c806392108c861161012e578063cffd129c116100ab578063f2fde38b1161006f578063f2fde38b14610854578063f887ea401461087d578063f98eb6e1146108a8578063fb235f34146108bf578063fea9e942146108e857610246565b8063cffd129c1461075b578063d505accf14610786578063dd62ed3e146107af578063eec1c69f146107ec578063f2c5d9df1461082957610246565b8063b3e5cb45116100f2578063b3e5cb4514610686578063b880b69a146106b1578063c45a0155146106dc578063c473413a14610707578063cd5f35801461073257610246565b806392108c861461059f57806395d89b41146105ca578063a0712d68146105f5578063a8aa1b311461061e578063a9059cbb1461064957610246565b806342966c68116101bc57806375f0a8741161018057806375f0a874146104b65780637d5ea21b146104e15780637ecebe001461050c5780637f50ce17146105495780638da5cb5b1461057457610246565b806342966c68146103e5578063444784251461040e5780635d098b381461043957806370a0823114610462578063715018a61461049f57610246565b8063270fd20a11610203578063270fd20a146103225780632ca1b45d1461034d578063307aebc914610364578063313ce5671461038f5780633644e515146103ba57610246565b806306fdde031461024857806307df7a0d14610273578063095ea7b31461027d57806318160ddd146102ba57806323b872dd146102e557610246565b3661024657005b005b34801561025457600080fd5b5061025d610911565b60405161026a9190612a46565b60405180910390f35b61027b61099f565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612b01565b610c84565b6040516102b19190612b5c565b60405180910390f35b3480156102c657600080fd5b506102cf610d76565b6040516102dc9190612b86565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612ba1565b610d7c565b6040516103199190612b5c565b60405180910390f35b34801561032e57600080fd5b506103376113cd565b6040516103449190612b5c565b60405180910390f35b34801561035957600080fd5b506103626113e0565b005b34801561037057600080fd5b50610379611493565b6040516103869190612b5c565b60405180910390f35b34801561039b57600080fd5b506103a46114a6565b6040516103b19190612c10565b60405180910390f35b3480156103c657600080fd5b506103cf6114ca565b6040516103dc9190612c44565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190612c5f565b611527565b005b34801561041a57600080fd5b50610423611534565b6040516104309190612c9b565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190612cb6565b61155a565b005b34801561046e57600080fd5b5061048960048036038101906104849190612cb6565b611615565b6040516104969190612b86565b60405180910390f35b3480156104ab57600080fd5b506104b461162d565b005b3480156104c257600080fd5b506104cb611641565b6040516104d89190612c9b565b60405180910390f35b3480156104ed57600080fd5b506104f6611667565b6040516105039190612b5c565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e9190612cb6565b61167a565b6040516105409190612b86565b60405180910390f35b34801561055557600080fd5b5061055e611692565b60405161056b9190612b5c565b60405180910390f35b34801561058057600080fd5b5061058961169f565b6040516105969190612c9b565b60405180910390f35b3480156105ab57600080fd5b506105b46116c8565b6040516105c19190612b5c565b60405180910390f35b3480156105d657600080fd5b506105df6116e6565b6040516105ec9190612a46565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612c5f565b611774565b005b34801561062a57600080fd5b506106336117c8565b6040516106409190612d42565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190612b01565b6117ee565b60405161067d9190612b5c565b60405180910390f35b34801561069257600080fd5b5061069b611803565b6040516106a89190612b5c565b60405180910390f35b3480156106bd57600080fd5b506106c661180e565b6040516106d39190612c9b565b60405180910390f35b3480156106e857600080fd5b506106f1611834565b6040516106fe9190612d7e565b60405180910390f35b34801561071357600080fd5b5061071c61185a565b6040516107299190612b86565b60405180910390f35b34801561073e57600080fd5b5061075960048036038101906107549190612cb6565b611860565b005b34801561076757600080fd5b5061077061191b565b60405161077d9190612b86565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a89190612df1565b611921565b005b3480156107bb57600080fd5b506107d660048036038101906107d19190612e93565b611c1a565b6040516107e39190612b86565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612f0f565b611c3f565b6040516108209190612b5c565b60405180910390f35b34801561083557600080fd5b5061083e611dc0565b60405161084b9190612c9b565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190612cb6565b611de6565b005b34801561088957600080fd5b50610892611e69565b60405161089f9190612f5d565b60405180910390f35b3480156108b457600080fd5b506108bd611e8f565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190612cb6565b611f42565b005b3480156108f457600080fd5b5061090f600480360381019061090a9190612cb6565b611ffd565b005b6001805461091e90612fa7565b80601f016020809104026020016040519081016040528092919081815260200182805461094a90612fa7565b80156109975780601f1061096c57610100808354040283529160200191610997565b820191906000526020600020905b81548152906001019060200180831161097a57829003601f168201915b505050505081565b6109a76120b8565b600c60159054906101000a900460ff16156109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee90613024565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90613090565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1090613090565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190613090565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3290613090565b60405180910390fd5b6001600c60156101000a81548160ff0219169083151502179055507f0887e4063f397b46bca5f33853dd1a946a3b32547bf9cb3b3063bd9db9d8bdfe60405160405180910390a1565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d649190612b86565b60405180910390a36001905092915050565b60035481565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610ee8576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ee6578281610e6591906130df565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b600f60159054906101000a900460ff166110db57610f0461169f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f725750610f4261169f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610fcc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156110265750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110da576000612710609660035461103f9190613113565b6110499190613184565b90508083600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109791906131b5565b11156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf9061325b565b60405180910390fd5b505b5b6110e3612136565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411801561113d5750600c60009054906101000a900460ff16155b80156111975750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156111cf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156111dd576111dc612159565b5b60006111ea85858561250b565b9050600081846111fa91906130df565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461124b91906130df565b9250508190555080600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112fc9190612b86565b60405180910390a360008211156113c05781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113b79190612b86565b60405180910390a35b6001925050509392505050565b600f60159054906101000a900460ff1681565b6113e86120b8565b600f60149054906101000a900460ff1615611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f906132c7565b60405180910390fd5b6001600f60146101000a81548160ff0219169083151502179055506105dc600a819055506105dc600b819055507fa1f3078ed9e1e966576844270dda3bb31267ba7d982fc64933d94552630a436860405160405180910390a1565b600c60159054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000004614611500576114fb6126be565b611522565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b611531338261274a565b50565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115626120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c890613090565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b6116356120b8565b61163f600061281a565b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60149054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b600062aa36a74614905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006116d2611803565b806116e157506116e0611692565b5b905090565b600280546116f390612fa7565b80601f016020809104026020016040519081016040528092919081815260200182805461171f90612fa7565b801561176c5780601f106117415761010080835404028352916020019161176c565b820191906000526020600020905b81548152906001019060200180831161174f57829003601f168201915b505050505081565b61177c6116c8565b6117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b290613333565b60405180910390fd5b6117c533826128de565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117fb338484610d7c565b905092915050565b600060054614905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6118686120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90613090565b60405180910390fd5b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b42841015611964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195b9061339f565b60405180910390fd5b600060016119706114ca565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020016119f8969594939291906133bf565b60405160208183030381529060405280519060200120604051602001611a1f929190613498565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051611a5594939291906134cf565b6020604051602081039080840390855afa158015611a77573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611aeb57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190613560565b60405180910390fd5b85600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611c099190612b86565b60405180910390a350505050505050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600080611c4a6129ae565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611dae9190612b86565b60405180910390a36001915050919050565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611dee6120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e54906135f2565b60405180910390fd5b611e668161281a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e976120b8565b600f60159054906101000a900460ff1615611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ede906132c7565b60405180910390fd5b6001600f60156101000a81548160ff0219169083151502179055506101f4600a819055506101f4600b819055507fc8c66e37e8b41bcc2deecfa7487ae0d5ed2fd626c0544a58c33ba95d90a47d4a60405160405180910390a1565b611f4a6120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb090613090565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6120056120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206b90613090565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6120c06129ae565b73ffffffffffffffffffffffffffffffffffffffff166120de61169f565b73ffffffffffffffffffffffffffffffffffffffff1614612134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212b9061365e565b60405180910390fd5b565b6000612710600260035461214a9190613113565b6121549190613184565b905090565b6001600c60006101000a81548160ff0219169083151502179055506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156121d5576121d461367e565b5b6040519080825280602002602001820160405280156122035781602001602082028036833780820191505090505b509050308160008151811061221b5761221a6136ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e691906136f1565b816001815181106122fa576122f96136ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612398959493929190613817565b600060405180830381600087803b1580156123b257600080fd5b505af11580156123c6573d6000803e3d6000fd5b50505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166005476124109190613184565b60405161241c906138a2565b60006040518083038185875af1925050503d8060008114612459576040519150601f19603f3d011682016040523d82523d6000602084013e61245e565b606091505b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516124a7906138a2565b60006040518083038185875af1925050503d80600081146124e4576040519150601f19603f3d011682016040523d82523d6000602084013e6124e9565b606091505b50505050506000600c60006101000a81548160ff021916908315150217905550565b600061251561169f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612580575061255161169f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806125b657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156125c457600090506126b7565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361263b57612710600a548361262a9190613113565b6126349190613184565b90506126b7565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126b257612710600b54836126a19190613113565b6126ab9190613184565b90506126b7565b600090505b9392505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60016040516126f0919061394f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161272f959493929190613966565b60405160208183030381529060405280519060200120905090565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461279991906130df565b9250508190555080600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161280e9190612b86565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600360008282546128f091906131b5565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129a29190612b86565b60405180910390a35050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156129f05780820151818401526020810190506129d5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a18826129b6565b612a2281856129c1565b9350612a328185602086016129d2565b612a3b816129fc565b840191505092915050565b60006020820190508181036000830152612a608184612a0d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a9882612a6d565b9050919050565b612aa881612a8d565b8114612ab357600080fd5b50565b600081359050612ac581612a9f565b92915050565b6000819050919050565b612ade81612acb565b8114612ae957600080fd5b50565b600081359050612afb81612ad5565b92915050565b60008060408385031215612b1857612b17612a68565b5b6000612b2685828601612ab6565b9250506020612b3785828601612aec565b9150509250929050565b60008115159050919050565b612b5681612b41565b82525050565b6000602082019050612b716000830184612b4d565b92915050565b612b8081612acb565b82525050565b6000602082019050612b9b6000830184612b77565b92915050565b600080600060608486031215612bba57612bb9612a68565b5b6000612bc886828701612ab6565b9350506020612bd986828701612ab6565b9250506040612bea86828701612aec565b9150509250925092565b600060ff82169050919050565b612c0a81612bf4565b82525050565b6000602082019050612c256000830184612c01565b92915050565b6000819050919050565b612c3e81612c2b565b82525050565b6000602082019050612c596000830184612c35565b92915050565b600060208284031215612c7557612c74612a68565b5b6000612c8384828501612aec565b91505092915050565b612c9581612a8d565b82525050565b6000602082019050612cb06000830184612c8c565b92915050565b600060208284031215612ccc57612ccb612a68565b5b6000612cda84828501612ab6565b91505092915050565b6000819050919050565b6000612d08612d03612cfe84612a6d565b612ce3565b612a6d565b9050919050565b6000612d1a82612ced565b9050919050565b6000612d2c82612d0f565b9050919050565b612d3c81612d21565b82525050565b6000602082019050612d576000830184612d33565b92915050565b6000612d6882612d0f565b9050919050565b612d7881612d5d565b82525050565b6000602082019050612d936000830184612d6f565b92915050565b612da281612bf4565b8114612dad57600080fd5b50565b600081359050612dbf81612d99565b92915050565b612dce81612c2b565b8114612dd957600080fd5b50565b600081359050612deb81612dc5565b92915050565b600080600080600080600060e0888a031215612e1057612e0f612a68565b5b6000612e1e8a828b01612ab6565b9750506020612e2f8a828b01612ab6565b9650506040612e408a828b01612aec565b9550506060612e518a828b01612aec565b9450506080612e628a828b01612db0565b93505060a0612e738a828b01612ddc565b92505060c0612e848a828b01612ddc565b91505092959891949750929550565b60008060408385031215612eaa57612ea9612a68565b5b6000612eb885828601612ab6565b9250506020612ec985828601612ab6565b9150509250929050565b600063ffffffff82169050919050565b612eec81612ed3565b8114612ef757600080fd5b50565b600081359050612f0981612ee3565b92915050565b600060208284031215612f2557612f24612a68565b5b6000612f3384828501612efa565b91505092915050565b6000612f4782612d0f565b9050919050565b612f5781612f3c565b82525050565b6000602082019050612f726000830184612f4e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fbf57607f821691505b602082108103612fd257612fd1612f78565b5b50919050565b7f616c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b600061300e6010836129c1565b915061301982612fd8565b602082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b600061307a600c836129c1565b915061308582613044565b602082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ea82612acb565b91506130f583612acb565b925082820390508181111561310d5761310c6130b0565b5b92915050565b600061311e82612acb565b915061312983612acb565b925082820261313781612acb565b9150828204841483151761314e5761314d6130b0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061318f82612acb565b915061319a83612acb565b9250826131aa576131a9613155565b5b828204905092915050565b60006131c082612acb565b91506131cb83612acb565b92508282019050808211156131e3576131e26130b0565b5b92915050565b7f526563697069656e7420686f6c64696e672065786365656473206d6178696d7560008201527f6d20616c6c6f7765640000000000000000000000000000000000000000000000602082015250565b60006132456029836129c1565b9150613250826131e9565b604082019050919050565b6000602082019050818103600083015261327481613238565b9050919050565b7f746869732069732061206f6e652073686f742066756e6374696f6e0000000000600082015250565b60006132b1601b836129c1565b91506132bc8261327b565b602082019050919050565b600060208201905081810360008301526132e0816132a4565b9050919050565b7f6e6f7420746573746e6574000000000000000000000000000000000000000000600082015250565b600061331d600b836129c1565b9150613328826132e7565b602082019050919050565b6000602082019050818103600083015261334c81613310565b9050919050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b60006133896017836129c1565b915061339482613353565b602082019050919050565b600060208201905081810360008301526133b88161337c565b9050919050565b600060c0820190506133d46000830189612c35565b6133e16020830188612c8c565b6133ee6040830187612c8c565b6133fb6060830186612b77565b6134086080830185612b77565b61341560a0830184612b77565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613461600283613420565b915061346c8261342b565b600282019050919050565b6000819050919050565b61349261348d82612c2b565b613477565b82525050565b60006134a382613454565b91506134af8285613481565b6020820191506134bf8284613481565b6020820191508190509392505050565b60006080820190506134e46000830187612c35565b6134f16020830186612c01565b6134fe6040830185612c35565b61350b6060830184612c35565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b600061354a600e836129c1565b915061355582613514565b602082019050919050565b600060208201905081810360008301526135798161353d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135dc6026836129c1565b91506135e782613580565b604082019050919050565b6000602082019050818103600083015261360b816135cf565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136486020836129c1565b915061365382613612565b602082019050919050565b600060208201905081810360008301526136778161363b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506136eb81612a9f565b92915050565b60006020828403121561370757613706612a68565b5b6000613715848285016136dc565b91505092915050565b6000819050919050565b600061374361373e6137398461371e565b612ce3565b612acb565b9050919050565b61375381613728565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61378e81612a8d565b82525050565b60006137a08383613785565b60208301905092915050565b6000602082019050919050565b60006137c482613759565b6137ce8185613764565b93506137d983613775565b8060005b8381101561380a5781516137f18882613794565b97506137fc836137ac565b9250506001810190506137dd565b5085935050505092915050565b600060a08201905061382c6000830188612b77565b613839602083018761374a565b818103604083015261384b81866137b9565b905061385a6060830185612c8c565b6138676080830184612b77565b9695505050505050565b600081905092915050565b50565b600061388c600083613871565b91506138978261387c565b600082019050919050565b60006138ad8261387f565b9150819050919050565b60008190508160005260206000209050919050565b600081546138d981612fa7565b6138e38186613871565b945060018216600081146138fe576001811461391357613946565b60ff1983168652811515820286019350613946565b61391c856138b7565b60005b8381101561393e5781548189015260018201915060208101905061391f565b838801955050505b50505092915050565b600061395b82846138cc565b915081905092915050565b600060a08201905061397b6000830188612c35565b6139886020830187612c35565b6139956040830186612c35565b6139a26060830185612b77565b6139af6080830184612c8c565b969550505050505056fea2646970667358221220b36378c0fbd02173cc8be55b46ef3bd040ced4ec2960814385d32fff9167056964736f6c63430008130033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c806392108c861161012e578063cffd129c116100ab578063f2fde38b1161006f578063f2fde38b14610854578063f887ea401461087d578063f98eb6e1146108a8578063fb235f34146108bf578063fea9e942146108e857610246565b8063cffd129c1461075b578063d505accf14610786578063dd62ed3e146107af578063eec1c69f146107ec578063f2c5d9df1461082957610246565b8063b3e5cb45116100f2578063b3e5cb4514610686578063b880b69a146106b1578063c45a0155146106dc578063c473413a14610707578063cd5f35801461073257610246565b806392108c861461059f57806395d89b41146105ca578063a0712d68146105f5578063a8aa1b311461061e578063a9059cbb1461064957610246565b806342966c68116101bc57806375f0a8741161018057806375f0a874146104b65780637d5ea21b146104e15780637ecebe001461050c5780637f50ce17146105495780638da5cb5b1461057457610246565b806342966c68146103e5578063444784251461040e5780635d098b381461043957806370a0823114610462578063715018a61461049f57610246565b8063270fd20a11610203578063270fd20a146103225780632ca1b45d1461034d578063307aebc914610364578063313ce5671461038f5780633644e515146103ba57610246565b806306fdde031461024857806307df7a0d14610273578063095ea7b31461027d57806318160ddd146102ba57806323b872dd146102e557610246565b3661024657005b005b34801561025457600080fd5b5061025d610911565b60405161026a9190612a46565b60405180910390f35b61027b61099f565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612b01565b610c84565b6040516102b19190612b5c565b60405180910390f35b3480156102c657600080fd5b506102cf610d76565b6040516102dc9190612b86565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612ba1565b610d7c565b6040516103199190612b5c565b60405180910390f35b34801561032e57600080fd5b506103376113cd565b6040516103449190612b5c565b60405180910390f35b34801561035957600080fd5b506103626113e0565b005b34801561037057600080fd5b50610379611493565b6040516103869190612b5c565b60405180910390f35b34801561039b57600080fd5b506103a46114a6565b6040516103b19190612c10565b60405180910390f35b3480156103c657600080fd5b506103cf6114ca565b6040516103dc9190612c44565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190612c5f565b611527565b005b34801561041a57600080fd5b50610423611534565b6040516104309190612c9b565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190612cb6565b61155a565b005b34801561046e57600080fd5b5061048960048036038101906104849190612cb6565b611615565b6040516104969190612b86565b60405180910390f35b3480156104ab57600080fd5b506104b461162d565b005b3480156104c257600080fd5b506104cb611641565b6040516104d89190612c9b565b60405180910390f35b3480156104ed57600080fd5b506104f6611667565b6040516105039190612b5c565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e9190612cb6565b61167a565b6040516105409190612b86565b60405180910390f35b34801561055557600080fd5b5061055e611692565b60405161056b9190612b5c565b60405180910390f35b34801561058057600080fd5b5061058961169f565b6040516105969190612c9b565b60405180910390f35b3480156105ab57600080fd5b506105b46116c8565b6040516105c19190612b5c565b60405180910390f35b3480156105d657600080fd5b506105df6116e6565b6040516105ec9190612a46565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612c5f565b611774565b005b34801561062a57600080fd5b506106336117c8565b6040516106409190612d42565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190612b01565b6117ee565b60405161067d9190612b5c565b60405180910390f35b34801561069257600080fd5b5061069b611803565b6040516106a89190612b5c565b60405180910390f35b3480156106bd57600080fd5b506106c661180e565b6040516106d39190612c9b565b60405180910390f35b3480156106e857600080fd5b506106f1611834565b6040516106fe9190612d7e565b60405180910390f35b34801561071357600080fd5b5061071c61185a565b6040516107299190612b86565b60405180910390f35b34801561073e57600080fd5b5061075960048036038101906107549190612cb6565b611860565b005b34801561076757600080fd5b5061077061191b565b60405161077d9190612b86565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a89190612df1565b611921565b005b3480156107bb57600080fd5b506107d660048036038101906107d19190612e93565b611c1a565b6040516107e39190612b86565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612f0f565b611c3f565b6040516108209190612b5c565b60405180910390f35b34801561083557600080fd5b5061083e611dc0565b60405161084b9190612c9b565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190612cb6565b611de6565b005b34801561088957600080fd5b50610892611e69565b60405161089f9190612f5d565b60405180910390f35b3480156108b457600080fd5b506108bd611e8f565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190612cb6565b611f42565b005b3480156108f457600080fd5b5061090f600480360381019061090a9190612cb6565b611ffd565b005b6001805461091e90612fa7565b80601f016020809104026020016040519081016040528092919081815260200182805461094a90612fa7565b80156109975780601f1061096c57610100808354040283529160200191610997565b820191906000526020600020905b81548152906001019060200180831161097a57829003601f168201915b505050505081565b6109a76120b8565b600c60159054906101000a900460ff16156109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee90613024565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90613090565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1090613090565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190613090565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3290613090565b60405180910390fd5b6001600c60156101000a81548160ff0219169083151502179055507f0887e4063f397b46bca5f33853dd1a946a3b32547bf9cb3b3063bd9db9d8bdfe60405160405180910390a1565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d649190612b86565b60405180910390a36001905092915050565b60035481565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610ee8576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ee6578281610e6591906130df565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b600f60159054906101000a900460ff166110db57610f0461169f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f725750610f4261169f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610fcc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156110265750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110da576000612710609660035461103f9190613113565b6110499190613184565b90508083600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109791906131b5565b11156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf9061325b565b60405180910390fd5b505b5b6110e3612136565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411801561113d5750600c60009054906101000a900460ff16155b80156111975750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156111cf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156111dd576111dc612159565b5b60006111ea85858561250b565b9050600081846111fa91906130df565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461124b91906130df565b9250508190555080600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112fc9190612b86565b60405180910390a360008211156113c05781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113b79190612b86565b60405180910390a35b6001925050509392505050565b600f60159054906101000a900460ff1681565b6113e86120b8565b600f60149054906101000a900460ff1615611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f906132c7565b60405180910390fd5b6001600f60146101000a81548160ff0219169083151502179055506105dc600a819055506105dc600b819055507fa1f3078ed9e1e966576844270dda3bb31267ba7d982fc64933d94552630a436860405160405180910390a1565b600c60159054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000001081565b60007f00000000000000000000000000000000000000000000000000000000000000014614611500576114fb6126be565b611522565b7f6eca07e4dc8a521040c9990457b5bd8875f5d26076abf8644e9bb6ac45d2b63c5b905090565b611531338261274a565b50565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115626120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c890613090565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b6116356120b8565b61163f600061281a565b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60149054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b600062aa36a74614905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006116d2611803565b806116e157506116e0611692565b5b905090565b600280546116f390612fa7565b80601f016020809104026020016040519081016040528092919081815260200182805461171f90612fa7565b801561176c5780601f106117415761010080835404028352916020019161176c565b820191906000526020600020905b81548152906001019060200180831161174f57829003601f168201915b505050505081565b61177c6116c8565b6117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b290613333565b60405180910390fd5b6117c533826128de565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117fb338484610d7c565b905092915050565b600060054614905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6118686120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90613090565b60405180910390fd5b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b42841015611964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195b9061339f565b60405180910390fd5b600060016119706114ca565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020016119f8969594939291906133bf565b60405160208183030381529060405280519060200120604051602001611a1f929190613498565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051611a5594939291906134cf565b6020604051602081039080840390855afa158015611a77573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611aeb57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190613560565b60405180910390fd5b85600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611c099190612b86565b60405180910390a350505050505050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600080611c4a6129ae565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611dae9190612b86565b60405180910390a36001915050919050565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611dee6120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e54906135f2565b60405180910390fd5b611e668161281a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e976120b8565b600f60159054906101000a900460ff1615611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ede906132c7565b60405180910390fd5b6001600f60156101000a81548160ff0219169083151502179055506101f4600a819055506101f4600b819055507fc8c66e37e8b41bcc2deecfa7487ae0d5ed2fd626c0544a58c33ba95d90a47d4a60405160405180910390a1565b611f4a6120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb090613090565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6120056120b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206b90613090565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6120c06129ae565b73ffffffffffffffffffffffffffffffffffffffff166120de61169f565b73ffffffffffffffffffffffffffffffffffffffff1614612134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212b9061365e565b60405180910390fd5b565b6000612710600260035461214a9190613113565b6121549190613184565b905090565b6001600c60006101000a81548160ff0219169083151502179055506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156121d5576121d461367e565b5b6040519080825280602002602001820160405280156122035781602001602082028036833780820191505090505b509050308160008151811061221b5761221a6136ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e691906136f1565b816001815181106122fa576122f96136ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612398959493929190613817565b600060405180830381600087803b1580156123b257600080fd5b505af11580156123c6573d6000803e3d6000fd5b50505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166005476124109190613184565b60405161241c906138a2565b60006040518083038185875af1925050503d8060008114612459576040519150601f19603f3d011682016040523d82523d6000602084013e61245e565b606091505b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516124a7906138a2565b60006040518083038185875af1925050503d80600081146124e4576040519150601f19603f3d011682016040523d82523d6000602084013e6124e9565b606091505b50505050506000600c60006101000a81548160ff021916908315150217905550565b600061251561169f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612580575061255161169f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806125b657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156125c457600090506126b7565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361263b57612710600a548361262a9190613113565b6126349190613184565b90506126b7565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126b257612710600b54836126a19190613113565b6126ab9190613184565b90506126b7565b600090505b9392505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60016040516126f0919061394f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161272f959493929190613966565b60405160208183030381529060405280519060200120905090565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461279991906130df565b9250508190555080600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161280e9190612b86565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600360008282546128f091906131b5565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129a29190612b86565b60405180910390a35050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156129f05780820151818401526020810190506129d5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a18826129b6565b612a2281856129c1565b9350612a328185602086016129d2565b612a3b816129fc565b840191505092915050565b60006020820190508181036000830152612a608184612a0d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a9882612a6d565b9050919050565b612aa881612a8d565b8114612ab357600080fd5b50565b600081359050612ac581612a9f565b92915050565b6000819050919050565b612ade81612acb565b8114612ae957600080fd5b50565b600081359050612afb81612ad5565b92915050565b60008060408385031215612b1857612b17612a68565b5b6000612b2685828601612ab6565b9250506020612b3785828601612aec565b9150509250929050565b60008115159050919050565b612b5681612b41565b82525050565b6000602082019050612b716000830184612b4d565b92915050565b612b8081612acb565b82525050565b6000602082019050612b9b6000830184612b77565b92915050565b600080600060608486031215612bba57612bb9612a68565b5b6000612bc886828701612ab6565b9350506020612bd986828701612ab6565b9250506040612bea86828701612aec565b9150509250925092565b600060ff82169050919050565b612c0a81612bf4565b82525050565b6000602082019050612c256000830184612c01565b92915050565b6000819050919050565b612c3e81612c2b565b82525050565b6000602082019050612c596000830184612c35565b92915050565b600060208284031215612c7557612c74612a68565b5b6000612c8384828501612aec565b91505092915050565b612c9581612a8d565b82525050565b6000602082019050612cb06000830184612c8c565b92915050565b600060208284031215612ccc57612ccb612a68565b5b6000612cda84828501612ab6565b91505092915050565b6000819050919050565b6000612d08612d03612cfe84612a6d565b612ce3565b612a6d565b9050919050565b6000612d1a82612ced565b9050919050565b6000612d2c82612d0f565b9050919050565b612d3c81612d21565b82525050565b6000602082019050612d576000830184612d33565b92915050565b6000612d6882612d0f565b9050919050565b612d7881612d5d565b82525050565b6000602082019050612d936000830184612d6f565b92915050565b612da281612bf4565b8114612dad57600080fd5b50565b600081359050612dbf81612d99565b92915050565b612dce81612c2b565b8114612dd957600080fd5b50565b600081359050612deb81612dc5565b92915050565b600080600080600080600060e0888a031215612e1057612e0f612a68565b5b6000612e1e8a828b01612ab6565b9750506020612e2f8a828b01612ab6565b9650506040612e408a828b01612aec565b9550506060612e518a828b01612aec565b9450506080612e628a828b01612db0565b93505060a0612e738a828b01612ddc565b92505060c0612e848a828b01612ddc565b91505092959891949750929550565b60008060408385031215612eaa57612ea9612a68565b5b6000612eb885828601612ab6565b9250506020612ec985828601612ab6565b9150509250929050565b600063ffffffff82169050919050565b612eec81612ed3565b8114612ef757600080fd5b50565b600081359050612f0981612ee3565b92915050565b600060208284031215612f2557612f24612a68565b5b6000612f3384828501612efa565b91505092915050565b6000612f4782612d0f565b9050919050565b612f5781612f3c565b82525050565b6000602082019050612f726000830184612f4e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fbf57607f821691505b602082108103612fd257612fd1612f78565b5b50919050565b7f616c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b600061300e6010836129c1565b915061301982612fd8565b602082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b600061307a600c836129c1565b915061308582613044565b602082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ea82612acb565b91506130f583612acb565b925082820390508181111561310d5761310c6130b0565b5b92915050565b600061311e82612acb565b915061312983612acb565b925082820261313781612acb565b9150828204841483151761314e5761314d6130b0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061318f82612acb565b915061319a83612acb565b9250826131aa576131a9613155565b5b828204905092915050565b60006131c082612acb565b91506131cb83612acb565b92508282019050808211156131e3576131e26130b0565b5b92915050565b7f526563697069656e7420686f6c64696e672065786365656473206d6178696d7560008201527f6d20616c6c6f7765640000000000000000000000000000000000000000000000602082015250565b60006132456029836129c1565b9150613250826131e9565b604082019050919050565b6000602082019050818103600083015261327481613238565b9050919050565b7f746869732069732061206f6e652073686f742066756e6374696f6e0000000000600082015250565b60006132b1601b836129c1565b91506132bc8261327b565b602082019050919050565b600060208201905081810360008301526132e0816132a4565b9050919050565b7f6e6f7420746573746e6574000000000000000000000000000000000000000000600082015250565b600061331d600b836129c1565b9150613328826132e7565b602082019050919050565b6000602082019050818103600083015261334c81613310565b9050919050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b60006133896017836129c1565b915061339482613353565b602082019050919050565b600060208201905081810360008301526133b88161337c565b9050919050565b600060c0820190506133d46000830189612c35565b6133e16020830188612c8c565b6133ee6040830187612c8c565b6133fb6060830186612b77565b6134086080830185612b77565b61341560a0830184612b77565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613461600283613420565b915061346c8261342b565b600282019050919050565b6000819050919050565b61349261348d82612c2b565b613477565b82525050565b60006134a382613454565b91506134af8285613481565b6020820191506134bf8284613481565b6020820191508190509392505050565b60006080820190506134e46000830187612c35565b6134f16020830186612c01565b6134fe6040830185612c35565b61350b6060830184612c35565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b600061354a600e836129c1565b915061355582613514565b602082019050919050565b600060208201905081810360008301526135798161353d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135dc6026836129c1565b91506135e782613580565b604082019050919050565b6000602082019050818103600083015261360b816135cf565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136486020836129c1565b915061365382613612565b602082019050919050565b600060208201905081810360008301526136778161363b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506136eb81612a9f565b92915050565b60006020828403121561370757613706612a68565b5b6000613715848285016136dc565b91505092915050565b6000819050919050565b600061374361373e6137398461371e565b612ce3565b612acb565b9050919050565b61375381613728565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61378e81612a8d565b82525050565b60006137a08383613785565b60208301905092915050565b6000602082019050919050565b60006137c482613759565b6137ce8185613764565b93506137d983613775565b8060005b8381101561380a5781516137f18882613794565b97506137fc836137ac565b9250506001810190506137dd565b5085935050505092915050565b600060a08201905061382c6000830188612b77565b613839602083018761374a565b818103604083015261384b81866137b9565b905061385a6060830185612c8c565b6138676080830184612b77565b9695505050505050565b600081905092915050565b50565b600061388c600083613871565b91506138978261387c565b600082019050919050565b60006138ad8261387f565b9150819050919050565b60008190508160005260206000209050919050565b600081546138d981612fa7565b6138e38186613871565b945060018216600081146138fe576001811461391357613946565b60ff1983168652811515820286019350613946565b61391c856138b7565b60005b8381101561393e5781548189015260018201915060208101905061391f565b838801955050505b50505092915050565b600061395b82846138cc565b915081905092915050565b600060a08201905061397b6000830188612c35565b6139886020830187612c35565b6139956040830186612c35565b6139a26060830185612b77565b6139af6080830184612c8c565b969550505050505056fea2646970667358221220b36378c0fbd02173cc8be55b46ef3bd040ced4ec2960814385d32fff9167056964736f6c63430008130033
Deployed Bytecode Sourcemap
18431:9331:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23047:427;;;:::i;:::-;;2484:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1290:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25955:1804;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19344:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21402:233;;;;;;;;;;;;;:::i;:::-;;19179:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1063:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5444:179;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20602:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19277:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22715:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1325:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9583:103;;;;;;;;;;;;;:::i;:::-;;19240:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19314:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1751:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21188:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8935:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21295:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1034:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20855:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18555:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25375:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21089:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19210:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18516:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18931:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22414:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18965:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3909:1527;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1378:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22148:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19143:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9841:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18477:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21643:241;;;;;;;;;;;;;:::i;:::-;;22883:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22561:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1007:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23047:427::-;8821:13;:11;:13::i;:::-;23119:10:::1;;;;;;;;;;;23118:11;23110:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;23189:1;23169:22;;:8;;;;;;;;;;;:22;;::::0;23161:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23254:1;23227:29;;:15;;;;;;;;;;;:29;;::::0;23219:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23317:1;23292:27;;:13;;;;;;;;;;;:27;;::::0;23284:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23379:1;23355:26;;:12;;;;;;;;;;;:26;;::::0;23347:51:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23422:4;23409:10;;:17;;;;;;;;;;;;;;;;;;23444:22;;;;;;;;;;23047:427::o:0;2484:217::-;2558:4;2608:6;2575:9;:21;2585:10;2575:21;;;;;;;;;;;;;;;:30;2597:7;2575:30;;;;;;;;;;;;;;;:39;;;;2653:7;2632:37;;2641:10;2632:37;;;2662:6;2632:37;;;;;;:::i;:::-;;;;;;;;2689:4;2682:11;;2484:217;;;;:::o;1290:26::-;;;;:::o;25955:1804::-;26075:4;26104:10;26096:18;;:4;:18;;;26092:272;;26180:12;26195:9;:15;26205:4;26195:15;;;;;;;;;;;;;;;:27;26211:10;26195:27;;;;;;;;;;;;;;;;26180:42;;26290:14;26279:7;:25;26275:77;;26346:6;26336:7;:16;;;;:::i;:::-;26306:9;:15;26316:4;26306:15;;;;;;;;;;;;;;;:27;26322:10;26306:27;;;;;;;;;;;;;;;:46;;;;26275:77;26116:248;26092:272;26384:14;;;;;;;;;;;26380:345;;26423:7;:5;:7::i;:::-;26417:13;;:2;:13;;;;:32;;;;;26442:7;:5;:7::i;:::-;26434:15;;:4;:15;;;;26417:32;:57;;;;;26467:6;;;;;;;;;;;26453:21;;:2;:21;;;;26417:57;:80;;;;;26492:4;;;;;;;;;;;26478:19;;:2;:19;;;;26417:80;26414:300;;;26517:18;26560:5;26553:3;26539:11;;:17;;;;:::i;:::-;26538:27;;;;:::i;:::-;26517:48;;26642:10;26632:6;26616:9;:13;26626:2;26616:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:36;;26608:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;26498:216;26414:300;26380:345;26946:18;:16;:18::i;:::-;26919:9;:24;26937:4;26919:24;;;;;;;;;;;;;;;;:45;:73;;;;;26969:23;;;;;;;;;;;26968:24;26919:73;:98;;;;;27012:4;;;;;;;;;;;26996:21;;:4;:21;;;;26919:98;:123;;;;;27037:4;27021:21;;:4;:21;;;;26919:123;26915:176;;;27059:20;:18;:20::i;:::-;26915:176;27103:8;27114:25;27122:4;27128:2;27132:6;27114:7;:25::i;:::-;27103:36;;27150:19;27181:3;27172:6;:12;;;;:::i;:::-;27150:34;;27216:6;27197:9;:15;27207:4;27197:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;27387:14;27370:9;:13;27380:2;27370:13;;;;;;;;;;;;;;;;:31;;;;;;;;;;;27445:2;27430:34;;27439:4;27430:34;;;27449:14;27430:34;;;;;;:::i;:::-;;;;;;;;27487:1;27481:3;:7;27477:251;;;27576:3;27548:9;:24;27566:4;27548:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;27705:4;27682:34;;27691:4;27682:34;;;27712:3;27682:34;;;;;;:::i;:::-;;;;;;;;27477:251;27747:4;27740:11;;;;25955:1804;;;;;:::o;19344:26::-;;;;;;;;;;;;;:::o;21402:233::-;8821:13;:11;:13::i;:::-;21468:11:::1;;;;;;;;;;;21467:12;21459:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21536:4;21522:11;;:18;;;;;;;;;;;;;;;;;;21563:4;21551:9;:16;;;;21591:4;21578:10;:17;;;;21611:16;;;;;;;;;;21402:233::o:0;19179:22::-;;;;;;;;;;;;;:::o;1063:31::-;;;:::o;5444:179::-;5501:7;5545:16;5528:13;:33;:87;;5591:24;:22;:24::i;:::-;5528:87;;;5564:24;5528:87;5521:94;;5444:179;:::o;20602:80::-;20649:25;20655:10;20667:6;20649:5;:25::i;:::-;20602:80;:::o;19277:28::-;;;;;;;;;;;;;:::o;22715:160::-;8821:13;:11;:13::i;:::-;22813:1:::1;22795:20;;:6;:20;;::::0;22787:45:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22861:6;22843:15;;:24;;;;;;;;;;;;;;;;;;22715:160:::0;:::o;1325:44::-;;;;;;;;;;;;;;;;;:::o;9583:103::-;8821:13;:11;:13::i;:::-;9648:30:::1;9675:1;9648:18;:30::i;:::-;9583:103::o:0;19240:30::-;;;;;;;;;;;;;:::o;19314:23::-;;;;;;;;;;;;;:::o;1751:41::-;;;;;;;;;;;;;;;;;:::o;21188:99::-;21230:4;21271:8;21254:13;:25;21247:32;;21188:99;:::o;8935:87::-;8981:7;9008:6;;;;;;;;;;;9001:13;;8935:87;:::o;21295:99::-;21337:4;21361:10;:8;:10::i;:::-;:25;;;;21375:11;:9;:11::i;:::-;21361:25;21354:32;;21295:99;:::o;1034:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20855:101::-;20472:11;:9;:11::i;:::-;20464:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;20914:34:::1;20928:10;20941:6;20914:5;:34::i;:::-;20855:101:::0;:::o;18555:26::-;;;;;;;;;;;;;:::o;25375:136::-;25443:4;25467:36;25480:10;25492:2;25496:6;25467:12;:36::i;:::-;25460:43;;25375:136;;;;:::o;21089:91::-;21130:4;21171:1;21154:13;:18;21147:25;;21089:91;:::o;19210:23::-;;;;;;;;;;;;;:::o;18516:32::-;;;;;;;;;;;;;:::o;18931:27::-;;;;:::o;22414:139::-;8821:13;:11;:13::i;:::-;22499:1:::1;22486:15;;:1;:15;;::::0;22478:40:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22544:1;22529:12;;:16;;;;;;;;;;;;;;;;;;22414:139:::0;:::o;18965:28::-;;;;:::o;3909:1527::-;4137:15;4125:8;:27;;4117:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4350:24;4377:827;4517:18;:16;:18::i;:::-;4647:167;4849:5;4889:7;4931:5;4971:6;:13;4978:5;4971:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;5021:8;4602:458;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4562:525;;;;;;4437:673;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4405:724;;;;;;5148:1;5168;5188;4377:827;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4350:854;;5257:1;5229:30;;:16;:30;;;;:59;;;;;5283:5;5263:25;;:16;:25;;;5229:59;5221:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;5363:5;5324:9;:27;5334:16;5324:27;;;;;;;;;;;;;;;:36;5352:7;5324:36;;;;;;;;;;;;;;;:44;;;;4325:1055;5413:7;5397:31;;5406:5;5397:31;;;5422:5;5397:31;;;;;;:::i;:::-;;;;;;;;3909:1527;;;;;;;:::o;1378:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22148:258::-;22208:4;22225:13;22241:12;:10;:12::i;:::-;22225:28;;22299:14;22266:9;:16;22276:5;22266:16;;;;;;;;;;;;;;;:30;22283:12;;;;;;;;;;;22266:30;;;;;;;;;;;;;;;:47;;;;22345:12;;;;;;;;;;;22329:45;;22338:5;22329:45;;;22359:14;22329:45;;;;;;:::i;:::-;;;;;;;;22394:4;22387:11;;;22148:258;;;:::o;19143:27::-;;;;;;;;;;;;;:::o;9841:201::-;8821:13;:11;:13::i;:::-;9950:1:::1;9930:22;;:8;:22;;::::0;9922:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10006:28;10025:8;10006:18;:28::i;:::-;9841:201:::0;:::o;18477:32::-;;;;;;;;;;;;;:::o;21643:241::-;8821:13;:11;:13::i;:::-;21710:14:::1;;;;;;;;;;;21709:15;21701:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;21784:4;21767:14;;:21;;;;;;;;;;;;;;;;;;21811:3;21799:9;:15;;;;21838:3;21825:10;:16;;;;21857:19;;;;;;;;;;21643:241::o:0;22883:156::-;8821:13;:11;:13::i;:::-;22979:1:::1;22961:20;;:6;:20;;::::0;22953:45:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23025:6;23009:13;;:22;;;;;;;;;;;;;;;;;;22883:156:::0;:::o;22561:146::-;8821:13;:11;:13::i;:::-;22652:1:::1;22634:20;;:6;:20;;::::0;22626:45:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22693:6;22682:8;;:17;;;;;;;;;;;;;;;;;;22561:146:::0;:::o;9100:132::-;9175:12;:10;:12::i;:::-;9164:23;;:7;:5;:7::i;:::-;:23;;;9156:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9100:132::o;20964:117::-;21015:4;21059:5;21054:1;21040:11;;:15;;;;:::i;:::-;21039:25;;;;:::i;:::-;21032:32;;20964:117;:::o;24560:586::-;20356:4;20330:23;;:30;;;;;;;;;;;;;;;;;;24624:17:::1;24644:9;:24;24662:4;24644:24;;;;;;;;;;;;;;;;24624:44;;24698:21;24736:1;24722:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24698:40;;24767:4;24749;24754:1;24749:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;24793:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24783:4;24788:1;24783:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;24819:6;;;;;;;;;;;:57;;;24891:12;24918:1;24934:4;24961;24981:15;24819:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25020:13;;;;;;;;;;;:18;;25072:1;25047:21;25046:27;;;;:::i;:::-;25020:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25091:8;;;;;;;;;;;:13;;25112:21;25091:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24611:535;;20409:5:::0;20383:23;;:31;;;;;;;;;;;;;;;;;;24560:586::o;23745:735::-;23824:4;23853:7;:5;:7::i;:::-;23845:15;;:4;:15;;;:32;;;;23870:7;:5;:7::i;:::-;23864:13;;:2;:13;;;23845:32;:57;;;;23897:4;23881:21;;:4;:21;;;23845:57;23841:632;;;24062:1;24055:8;;;;23841:632;24101:4;;;;;;;;;;;24085:21;;:4;:21;;;24081:392;;24202:6;24190:9;;24181:6;:18;;;;:::i;:::-;:27;;;;:::i;:::-;24174:34;;;;24081:392;24244:4;;;;;;;;;;;24230:19;;:2;:19;;;24226:247;;24349:6;24336:10;;24327:6;:19;;;;:::i;:::-;:28;;;;:::i;:::-;24320:35;;;;24226:247;24460:1;24453:8;;23745:735;;;;;;:::o;5631:457::-;5696:7;5797:95;5931:4;5915:22;;;;;;:::i;:::-;;;;;;;;5960:14;5997:13;6041:4;5764:301;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5736:344;;;;;;5716:364;;5631:457;:::o;6631:338::-;6723:6;6704:9;:15;6714:4;6704:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6892:6;6877:11;;:21;;;;;;;;;;;6950:1;6927:34;;6936:4;6927:34;;;6954:6;6927:34;;;;;;:::i;:::-;;;;;;;;6631:338;;:::o;10202:191::-;10276:16;10295:6;;;;;;;;;;;10276:25;;10321:8;10312:6;;:17;;;;;;;;;;;;;;;;;;10376:8;10345:40;;10366:8;10345:40;;;;;;;;;;;;10265:128;10202:191;:::o;6288:335::-;6374:6;6359:11;;:21;;;;;;;:::i;:::-;;;;;;;;6548:6;6531:9;:13;6541:2;6531:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;6604:2;6583:32;;6600:1;6583:32;;;6608:6;6583:32;;;;;;:::i;:::-;;;;;;;;6288:335;;:::o;7644:98::-;7697:7;7724:10;7717:17;;7644:98;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:77::-;4890:7;4919:5;4908:16;;4853:77;;;:::o;4936:118::-;5023:24;5041:5;5023:24;:::i;:::-;5018:3;5011:37;4936:118;;:::o;5060:222::-;5153:4;5191:2;5180:9;5176:18;5168:26;;5204:71;5272:1;5261:9;5257:17;5248:6;5204:71;:::i;:::-;5060:222;;;;:::o;5288:329::-;5347:6;5396:2;5384:9;5375:7;5371:23;5367:32;5364:119;;;5402:79;;:::i;:::-;5364:119;5522:1;5547:53;5592:7;5583:6;5572:9;5568:22;5547:53;:::i;:::-;5537:63;;5493:117;5288:329;;;;:::o;5623:118::-;5710:24;5728:5;5710:24;:::i;:::-;5705:3;5698:37;5623:118;;:::o;5747:222::-;5840:4;5878:2;5867:9;5863:18;5855:26;;5891:71;5959:1;5948:9;5944:17;5935:6;5891:71;:::i;:::-;5747:222;;;;:::o;5975:329::-;6034:6;6083:2;6071:9;6062:7;6058:23;6054:32;6051:119;;;6089:79;;:::i;:::-;6051:119;6209:1;6234:53;6279:7;6270:6;6259:9;6255:22;6234:53;:::i;:::-;6224:63;;6180:117;5975:329;;;;:::o;6310:60::-;6338:3;6359:5;6352:12;;6310:60;;;:::o;6376:142::-;6426:9;6459:53;6477:34;6486:24;6504:5;6486:24;:::i;:::-;6477:34;:::i;:::-;6459:53;:::i;:::-;6446:66;;6376:142;;;:::o;6524:126::-;6574:9;6607:37;6638:5;6607:37;:::i;:::-;6594:50;;6524:126;;;:::o;6656:148::-;6728:9;6761:37;6792:5;6761:37;:::i;:::-;6748:50;;6656:148;;;:::o;6810:175::-;6919:59;6972:5;6919:59;:::i;:::-;6914:3;6907:72;6810:175;;:::o;6991:266::-;7106:4;7144:2;7133:9;7129:18;7121:26;;7157:93;7247:1;7236:9;7232:17;7223:6;7157:93;:::i;:::-;6991:266;;;;:::o;7263:151::-;7338:9;7371:37;7402:5;7371:37;:::i;:::-;7358:50;;7263:151;;;:::o;7420:181::-;7532:62;7588:5;7532:62;:::i;:::-;7527:3;7520:75;7420:181;;:::o;7607:272::-;7725:4;7763:2;7752:9;7748:18;7740:26;;7776:96;7869:1;7858:9;7854:17;7845:6;7776:96;:::i;:::-;7607:272;;;;:::o;7885:118::-;7956:22;7972:5;7956:22;:::i;:::-;7949:5;7946:33;7936:61;;7993:1;7990;7983:12;7936:61;7885:118;:::o;8009:135::-;8053:5;8091:6;8078:20;8069:29;;8107:31;8132:5;8107:31;:::i;:::-;8009:135;;;;:::o;8150:122::-;8223:24;8241:5;8223:24;:::i;:::-;8216:5;8213:35;8203:63;;8262:1;8259;8252:12;8203:63;8150:122;:::o;8278:139::-;8324:5;8362:6;8349:20;8340:29;;8378:33;8405:5;8378:33;:::i;:::-;8278:139;;;;:::o;8423:1199::-;8534:6;8542;8550;8558;8566;8574;8582;8631:3;8619:9;8610:7;8606:23;8602:33;8599:120;;;8638:79;;:::i;:::-;8599:120;8758:1;8783:53;8828:7;8819:6;8808:9;8804:22;8783:53;:::i;:::-;8773:63;;8729:117;8885:2;8911:53;8956:7;8947:6;8936:9;8932:22;8911:53;:::i;:::-;8901:63;;8856:118;9013:2;9039:53;9084:7;9075:6;9064:9;9060:22;9039:53;:::i;:::-;9029:63;;8984:118;9141:2;9167:53;9212:7;9203:6;9192:9;9188:22;9167:53;:::i;:::-;9157:63;;9112:118;9269:3;9296:51;9339:7;9330:6;9319:9;9315:22;9296:51;:::i;:::-;9286:61;;9240:117;9396:3;9423:53;9468:7;9459:6;9448:9;9444:22;9423:53;:::i;:::-;9413:63;;9367:119;9525:3;9552:53;9597:7;9588:6;9577:9;9573:22;9552:53;:::i;:::-;9542:63;;9496:119;8423:1199;;;;;;;;;;:::o;9628:474::-;9696:6;9704;9753:2;9741:9;9732:7;9728:23;9724:32;9721:119;;;9759:79;;:::i;:::-;9721:119;9879:1;9904:53;9949:7;9940:6;9929:9;9925:22;9904:53;:::i;:::-;9894:63;;9850:117;10006:2;10032:53;10077:7;10068:6;10057:9;10053:22;10032:53;:::i;:::-;10022:63;;9977:118;9628:474;;;;;:::o;10108:93::-;10144:7;10184:10;10177:5;10173:22;10162:33;;10108:93;;;:::o;10207:120::-;10279:23;10296:5;10279:23;:::i;:::-;10272:5;10269:34;10259:62;;10317:1;10314;10307:12;10259:62;10207:120;:::o;10333:137::-;10378:5;10416:6;10403:20;10394:29;;10432:32;10458:5;10432:32;:::i;:::-;10333:137;;;;:::o;10476:327::-;10534:6;10583:2;10571:9;10562:7;10558:23;10554:32;10551:119;;;10589:79;;:::i;:::-;10551:119;10709:1;10734:52;10778:7;10769:6;10758:9;10754:22;10734:52;:::i;:::-;10724:62;;10680:116;10476:327;;;;:::o;10809:153::-;10886:9;10919:37;10950:5;10919:37;:::i;:::-;10906:50;;10809:153;;;:::o;10968:185::-;11082:64;11140:5;11082:64;:::i;:::-;11077:3;11070:77;10968:185;;:::o;11159:276::-;11279:4;11317:2;11306:9;11302:18;11294:26;;11330:98;11425:1;11414:9;11410:17;11401:6;11330:98;:::i;:::-;11159:276;;;;:::o;11441:180::-;11489:77;11486:1;11479:88;11586:4;11583:1;11576:15;11610:4;11607:1;11600:15;11627:320;11671:6;11708:1;11702:4;11698:12;11688:22;;11755:1;11749:4;11745:12;11776:18;11766:81;;11832:4;11824:6;11820:17;11810:27;;11766:81;11894:2;11886:6;11883:14;11863:18;11860:38;11857:84;;11913:18;;:::i;:::-;11857:84;11678:269;11627:320;;;:::o;11953:166::-;12093:18;12089:1;12081:6;12077:14;12070:42;11953:166;:::o;12125:366::-;12267:3;12288:67;12352:2;12347:3;12288:67;:::i;:::-;12281:74;;12364:93;12453:3;12364:93;:::i;:::-;12482:2;12477:3;12473:12;12466:19;;12125:366;;;:::o;12497:419::-;12663:4;12701:2;12690:9;12686:18;12678:26;;12750:9;12744:4;12740:20;12736:1;12725:9;12721:17;12714:47;12778:131;12904:4;12778:131;:::i;:::-;12770:139;;12497:419;;;:::o;12922:162::-;13062:14;13058:1;13050:6;13046:14;13039:38;12922:162;:::o;13090:366::-;13232:3;13253:67;13317:2;13312:3;13253:67;:::i;:::-;13246:74;;13329:93;13418:3;13329:93;:::i;:::-;13447:2;13442:3;13438:12;13431:19;;13090:366;;;:::o;13462:419::-;13628:4;13666:2;13655:9;13651:18;13643:26;;13715:9;13709:4;13705:20;13701:1;13690:9;13686:17;13679:47;13743:131;13869:4;13743:131;:::i;:::-;13735:139;;13462:419;;;:::o;13887:180::-;13935:77;13932:1;13925:88;14032:4;14029:1;14022:15;14056:4;14053:1;14046:15;14073:194;14113:4;14133:20;14151:1;14133:20;:::i;:::-;14128:25;;14167:20;14185:1;14167:20;:::i;:::-;14162:25;;14211:1;14208;14204:9;14196:17;;14235:1;14229:4;14226:11;14223:37;;;14240:18;;:::i;:::-;14223:37;14073:194;;;;:::o;14273:410::-;14313:7;14336:20;14354:1;14336:20;:::i;:::-;14331:25;;14370:20;14388:1;14370:20;:::i;:::-;14365:25;;14425:1;14422;14418:9;14447:30;14465:11;14447:30;:::i;:::-;14436:41;;14626:1;14617:7;14613:15;14610:1;14607:22;14587:1;14580:9;14560:83;14537:139;;14656:18;;:::i;:::-;14537:139;14321:362;14273:410;;;;:::o;14689:180::-;14737:77;14734:1;14727:88;14834:4;14831:1;14824:15;14858:4;14855:1;14848:15;14875:185;14915:1;14932:20;14950:1;14932:20;:::i;:::-;14927:25;;14966:20;14984:1;14966:20;:::i;:::-;14961:25;;15005:1;14995:35;;15010:18;;:::i;:::-;14995:35;15052:1;15049;15045:9;15040:14;;14875:185;;;;:::o;15066:191::-;15106:3;15125:20;15143:1;15125:20;:::i;:::-;15120:25;;15159:20;15177:1;15159:20;:::i;:::-;15154:25;;15202:1;15199;15195:9;15188:16;;15223:3;15220:1;15217:10;15214:36;;;15230:18;;:::i;:::-;15214:36;15066:191;;;;:::o;15263:228::-;15403:34;15399:1;15391:6;15387:14;15380:58;15472:11;15467:2;15459:6;15455:15;15448:36;15263:228;:::o;15497:366::-;15639:3;15660:67;15724:2;15719:3;15660:67;:::i;:::-;15653:74;;15736:93;15825:3;15736:93;:::i;:::-;15854:2;15849:3;15845:12;15838:19;;15497:366;;;:::o;15869:419::-;16035:4;16073:2;16062:9;16058:18;16050:26;;16122:9;16116:4;16112:20;16108:1;16097:9;16093:17;16086:47;16150:131;16276:4;16150:131;:::i;:::-;16142:139;;15869:419;;;:::o;16294:177::-;16434:29;16430:1;16422:6;16418:14;16411:53;16294:177;:::o;16477:366::-;16619:3;16640:67;16704:2;16699:3;16640:67;:::i;:::-;16633:74;;16716:93;16805:3;16716:93;:::i;:::-;16834:2;16829:3;16825:12;16818:19;;16477:366;;;:::o;16849:419::-;17015:4;17053:2;17042:9;17038:18;17030:26;;17102:9;17096:4;17092:20;17088:1;17077:9;17073:17;17066:47;17130:131;17256:4;17130:131;:::i;:::-;17122:139;;16849:419;;;:::o;17274:161::-;17414:13;17410:1;17402:6;17398:14;17391:37;17274:161;:::o;17441:366::-;17583:3;17604:67;17668:2;17663:3;17604:67;:::i;:::-;17597:74;;17680:93;17769:3;17680:93;:::i;:::-;17798:2;17793:3;17789:12;17782:19;;17441:366;;;:::o;17813:419::-;17979:4;18017:2;18006:9;18002:18;17994:26;;18066:9;18060:4;18056:20;18052:1;18041:9;18037:17;18030:47;18094:131;18220:4;18094:131;:::i;:::-;18086:139;;17813:419;;;:::o;18238:173::-;18378:25;18374:1;18366:6;18362:14;18355:49;18238:173;:::o;18417:366::-;18559:3;18580:67;18644:2;18639:3;18580:67;:::i;:::-;18573:74;;18656:93;18745:3;18656:93;:::i;:::-;18774:2;18769:3;18765:12;18758:19;;18417:366;;;:::o;18789:419::-;18955:4;18993:2;18982:9;18978:18;18970:26;;19042:9;19036:4;19032:20;19028:1;19017:9;19013:17;19006:47;19070:131;19196:4;19070:131;:::i;:::-;19062:139;;18789:419;;;:::o;19214:775::-;19447:4;19485:3;19474:9;19470:19;19462:27;;19499:71;19567:1;19556:9;19552:17;19543:6;19499:71;:::i;:::-;19580:72;19648:2;19637:9;19633:18;19624:6;19580:72;:::i;:::-;19662;19730:2;19719:9;19715:18;19706:6;19662:72;:::i;:::-;19744;19812:2;19801:9;19797:18;19788:6;19744:72;:::i;:::-;19826:73;19894:3;19883:9;19879:19;19870:6;19826:73;:::i;:::-;19909;19977:3;19966:9;19962:19;19953:6;19909:73;:::i;:::-;19214:775;;;;;;;;;:::o;19995:148::-;20097:11;20134:3;20119:18;;19995:148;;;;:::o;20149:214::-;20289:66;20285:1;20277:6;20273:14;20266:90;20149:214;:::o;20369:400::-;20529:3;20550:84;20632:1;20627:3;20550:84;:::i;:::-;20543:91;;20643:93;20732:3;20643:93;:::i;:::-;20761:1;20756:3;20752:11;20745:18;;20369:400;;;:::o;20775:79::-;20814:7;20843:5;20832:16;;20775:79;;;:::o;20860:157::-;20965:45;20985:24;21003:5;20985:24;:::i;:::-;20965:45;:::i;:::-;20960:3;20953:58;20860:157;;:::o;21023:663::-;21264:3;21286:148;21430:3;21286:148;:::i;:::-;21279:155;;21444:75;21515:3;21506:6;21444:75;:::i;:::-;21544:2;21539:3;21535:12;21528:19;;21557:75;21628:3;21619:6;21557:75;:::i;:::-;21657:2;21652:3;21648:12;21641:19;;21677:3;21670:10;;21023:663;;;;;:::o;21692:545::-;21865:4;21903:3;21892:9;21888:19;21880:27;;21917:71;21985:1;21974:9;21970:17;21961:6;21917:71;:::i;:::-;21998:68;22062:2;22051:9;22047:18;22038:6;21998:68;:::i;:::-;22076:72;22144:2;22133:9;22129:18;22120:6;22076:72;:::i;:::-;22158;22226:2;22215:9;22211:18;22202:6;22158:72;:::i;:::-;21692:545;;;;;;;:::o;22243:164::-;22383:16;22379:1;22371:6;22367:14;22360:40;22243:164;:::o;22413:366::-;22555:3;22576:67;22640:2;22635:3;22576:67;:::i;:::-;22569:74;;22652:93;22741:3;22652:93;:::i;:::-;22770:2;22765:3;22761:12;22754:19;;22413:366;;;:::o;22785:419::-;22951:4;22989:2;22978:9;22974:18;22966:26;;23038:9;23032:4;23028:20;23024:1;23013:9;23009:17;23002:47;23066:131;23192:4;23066:131;:::i;:::-;23058:139;;22785:419;;;:::o;23210:225::-;23350:34;23346:1;23338:6;23334:14;23327:58;23419:8;23414:2;23406:6;23402:15;23395:33;23210:225;:::o;23441:366::-;23583:3;23604:67;23668:2;23663:3;23604:67;:::i;:::-;23597:74;;23680:93;23769:3;23680:93;:::i;:::-;23798:2;23793:3;23789:12;23782:19;;23441:366;;;:::o;23813:419::-;23979:4;24017:2;24006:9;24002:18;23994:26;;24066:9;24060:4;24056:20;24052:1;24041:9;24037:17;24030:47;24094:131;24220:4;24094:131;:::i;:::-;24086:139;;23813:419;;;:::o;24238:182::-;24378:34;24374:1;24366:6;24362:14;24355:58;24238:182;:::o;24426:366::-;24568:3;24589:67;24653:2;24648:3;24589:67;:::i;:::-;24582:74;;24665:93;24754:3;24665:93;:::i;:::-;24783:2;24778:3;24774:12;24767:19;;24426:366;;;:::o;24798:419::-;24964:4;25002:2;24991:9;24987:18;24979:26;;25051:9;25045:4;25041:20;25037:1;25026:9;25022:17;25015:47;25079:131;25205:4;25079:131;:::i;:::-;25071:139;;24798:419;;;:::o;25223:180::-;25271:77;25268:1;25261:88;25368:4;25365:1;25358:15;25392:4;25389:1;25382:15;25409:180;25457:77;25454:1;25447:88;25554:4;25551:1;25544:15;25578:4;25575:1;25568:15;25595:143;25652:5;25683:6;25677:13;25668:22;;25699:33;25726:5;25699:33;:::i;:::-;25595:143;;;;:::o;25744:351::-;25814:6;25863:2;25851:9;25842:7;25838:23;25834:32;25831:119;;;25869:79;;:::i;:::-;25831:119;25989:1;26014:64;26070:7;26061:6;26050:9;26046:22;26014:64;:::i;:::-;26004:74;;25960:128;25744:351;;;;:::o;26101:85::-;26146:7;26175:5;26164:16;;26101:85;;;:::o;26192:158::-;26250:9;26283:61;26301:42;26310:32;26336:5;26310:32;:::i;:::-;26301:42;:::i;:::-;26283:61;:::i;:::-;26270:74;;26192:158;;;:::o;26356:147::-;26451:45;26490:5;26451:45;:::i;:::-;26446:3;26439:58;26356:147;;:::o;26509:114::-;26576:6;26610:5;26604:12;26594:22;;26509:114;;;:::o;26629:184::-;26728:11;26762:6;26757:3;26750:19;26802:4;26797:3;26793:14;26778:29;;26629:184;;;;:::o;26819:132::-;26886:4;26909:3;26901:11;;26939:4;26934:3;26930:14;26922:22;;26819:132;;;:::o;26957:108::-;27034:24;27052:5;27034:24;:::i;:::-;27029:3;27022:37;26957:108;;:::o;27071:179::-;27140:10;27161:46;27203:3;27195:6;27161:46;:::i;:::-;27239:4;27234:3;27230:14;27216:28;;27071:179;;;;:::o;27256:113::-;27326:4;27358;27353:3;27349:14;27341:22;;27256:113;;;:::o;27405:732::-;27524:3;27553:54;27601:5;27553:54;:::i;:::-;27623:86;27702:6;27697:3;27623:86;:::i;:::-;27616:93;;27733:56;27783:5;27733:56;:::i;:::-;27812:7;27843:1;27828:284;27853:6;27850:1;27847:13;27828:284;;;27929:6;27923:13;27956:63;28015:3;28000:13;27956:63;:::i;:::-;27949:70;;28042:60;28095:6;28042:60;:::i;:::-;28032:70;;27888:224;27875:1;27872;27868:9;27863:14;;27828:284;;;27832:14;28128:3;28121:10;;27529:608;;;27405:732;;;;:::o;28143:831::-;28406:4;28444:3;28433:9;28429:19;28421:27;;28458:71;28526:1;28515:9;28511:17;28502:6;28458:71;:::i;:::-;28539:80;28615:2;28604:9;28600:18;28591:6;28539:80;:::i;:::-;28666:9;28660:4;28656:20;28651:2;28640:9;28636:18;28629:48;28694:108;28797:4;28788:6;28694:108;:::i;:::-;28686:116;;28812:72;28880:2;28869:9;28865:18;28856:6;28812:72;:::i;:::-;28894:73;28962:3;28951:9;28947:19;28938:6;28894:73;:::i;:::-;28143:831;;;;;;;;:::o;28980:147::-;29081:11;29118:3;29103:18;;28980:147;;;;:::o;29133:114::-;;:::o;29253:398::-;29412:3;29433:83;29514:1;29509:3;29433:83;:::i;:::-;29426:90;;29525:93;29614:3;29525:93;:::i;:::-;29643:1;29638:3;29634:11;29627:18;;29253:398;;;:::o;29657:379::-;29841:3;29863:147;30006:3;29863:147;:::i;:::-;29856:154;;30027:3;30020:10;;29657:379;;;:::o;30042:144::-;30094:4;30117:3;30109:11;;30140:3;30137:1;30130:14;30174:4;30171:1;30161:18;30153:26;;30042:144;;;:::o;30214:878::-;30319:3;30356:5;30350:12;30385:36;30411:9;30385:36;:::i;:::-;30437:88;30518:6;30513:3;30437:88;:::i;:::-;30430:95;;30556:1;30545:9;30541:17;30572:1;30567:166;;;;30747:1;30742:344;;;;30534:552;;30567:166;30651:4;30647:9;30636;30632:25;30627:3;30620:38;30713:6;30706:14;30699:22;30691:6;30687:35;30682:3;30678:45;30671:52;;30567:166;;30742:344;30809:41;30844:5;30809:41;:::i;:::-;30872:1;30886:154;30900:6;30897:1;30894:13;30886:154;;;30974:7;30968:14;30964:1;30959:3;30955:11;30948:35;31024:1;31015:7;31011:15;31000:26;;30922:4;30919:1;30915:12;30910:17;;30886:154;;;31069:6;31064:3;31060:16;31053:23;;30749:337;;30534:552;;30323:769;;30214:878;;;;:::o;31098:273::-;31229:3;31251:94;31341:3;31332:6;31251:94;:::i;:::-;31244:101;;31362:3;31355:10;;31098:273;;;;:::o;31377:664::-;31582:4;31620:3;31609:9;31605:19;31597:27;;31634:71;31702:1;31691:9;31687:17;31678:6;31634:71;:::i;:::-;31715:72;31783:2;31772:9;31768:18;31759:6;31715:72;:::i;:::-;31797;31865:2;31854:9;31850:18;31841:6;31797:72;:::i;:::-;31879;31947:2;31936:9;31932:18;31923:6;31879:72;:::i;:::-;31961:73;32029:3;32018:9;32014:19;32005:6;31961:73;:::i;:::-;31377:664;;;;;;;;:::o
Swarm Source
ipfs://b36378c0fbd02173cc8be55b46ef3bd040ced4ec2960814385d32fff91670569
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.