ERC-20
Overview
Max Total Supply
200,000,000 Infi
Holders
128
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
334,870.394260114790644553 InfiValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
InfiniaAI
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-23 */ // SPDX-License-Identifier: MIT /** Infinia AI Website: infiniaai.org Telegram: t.me/infiniaai Twitter: twitter.com/infiniaaioneth */ pragma solidity ^0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract InfiniaAI is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private _balances; mapping (address => bool) private isExcludedFromTax; address private _taxWallet; uint256 private _initialBuyTax=20; uint256 private _initialSellTax=25; string private constant _name = "Infinia AI"; string private constant _symbol = "Infi"; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 200000000 * 10**_decimals; uint256 public _maxWalletAmount = 1000000 * 10**_decimals; uint256 public _maxTxAmount = 1000000 * 10**_decimals; uint256 public _maxSwapAmount = 1000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private swapLimitOn = true; bool private tradingOpen; bool private inSwap = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } event MaxTxAmountUpdated(uint256 _maxTxAmount); /** * @notice Constructor function * @param taxWalletAddress The address of the wallet to receive tax amounts */ constructor (address taxWalletAddress) { _taxWallet = taxWalletAddress; uint256 tokenAmount = _tTotal.mul(16).div(100); isExcludedFromTax[taxWalletAddress] = true; _balances[_msgSender()] = _tTotal.sub(tokenAmount); _balances[address(this)] = tokenAmount; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0), _msgSender(), _tTotal); } /** * @notice Returns the name of the token * @return The name of the token */ function name() public pure returns (string memory) { return _name; } /** * @notice Returns the symbol of the token * @return The symbol of the token */ function symbol() public pure returns (string memory) { return _symbol; } /** * @notice Approves `spender` to spend `amount` tokens on behalf of the caller * @param spender The address of the spender * @param amount The amount of tokens to approve * @return A boolean indicating whether the approval succeeded */ function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @notice Returns the number of decimal places used by the token * @return The number of decimal places */ function decimals() public pure returns (uint8) { return _decimals; } /** * @notice Transfers `amount` tokens from `sender` to `recipient` if the caller has sufficient allowance * @param sender The address of the sender * @param recipient The address of the recipient * @param amount The amount of tokens to transfer * @return A boolean indicating whether the transfer succeeded */ function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } /** * @notice Returns the total supply of tokens * @return The total supply of tokens */ function totalSupply() public pure override returns (uint256) { return _tTotal; } /** * @notice Returns the token balance of `account` * @param account The address to query the balance of * @return The token balance of `account` */ function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } /** * @notice Transfers `amount` tokens from the caller to `recipient` * @param recipient The address of the recipient * @param amount The amount of tokens to transfer * @return A boolean indicating whether the transfer succeeded */ function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @notice Returns the amount of tokens that `spender` is allowed to spend on behalf of `owner` * @param owner The address of the token owner * @param spender The address of the spender * @return The amount of tokens `spender` is allowed to spend on behalf of `owner` */ function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } /** * @notice Approves `spender` to spend `amount` tokens on behalf of `owner` * @param owner The address of the token owner * @param spender The address of the spender * @param amount The amount of tokens to approve */ function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @notice Transfers `amount` tokens from `from` to `to`, applying buy or sell taxes if applicable * @param from The address of the sender * @param to The address of the recipient * @param amount The amount of tokens to transfer */ function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(tradingOpen,"Trading is not started"); require(amount <= _maxTxAmount, "Transfer amount exceeds maxTxSize"); if (from == uniswapV2Pair && to != address(uniswapV2Router)) { require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds the maxWalletSize."); taxAmount = amount.mul(_initialBuyTax).div(100); } else if (to == uniswapV2Pair){ taxAmount = amount.mul(_initialSellTax).div(100); uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair) { if (swapLimitOn) { uint256 getMinValue = (contractTokenBalance > _maxSwapAmount)?_maxSwapAmount:contractTokenBalance; swapTokensForEth((amount > getMinValue)?getMinValue:amount); } else { swapTokensForEth(contractTokenBalance); } } } else { taxAmount = 0; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } /** * @notice Swaps `tokenAmount` tokens for ETH on Uniswap * @param tokenAmount The amount of tokens to swap */ function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} if(tokenAmount>_maxTxAmount) { tokenAmount = _maxTxAmount; } address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, _taxWallet, block.timestamp ); } /** * @notice Sends `amount` of ETH to the tax wallet * @param amount The amount of ETH to send */ function sendETHToFee(uint256 amount) private { payable(_taxWallet).transfer(amount); } /** * @notice Sets a new buy tax percentage * @param taxPercent The new buy tax percentage */ function setNewBuyTaxAmount(uint256 taxPercent) external onlyOwner { _initialBuyTax = taxPercent; } /** * @notice Sets a new sell tax percentage * @param taxPercent The new sell tax percentage */ function setNewSellTaxAmount(uint256 taxPercent) external onlyOwner { _initialSellTax = taxPercent; } /** * @notice Sets a new maximum wallet amount * @param amount The new maximum wallet amount */ function setNewMaxWalletAmount(uint256 amount) external onlyOwner { _maxWalletAmount = amount * 10**_decimals; } /** * @notice Sets a new maximum transaction amount * @param amount The new maximum transaction amount */ function setNewMaxTransactionAmount(uint256 amount) external onlyOwner { _maxTxAmount = amount * 10**_decimals; } /** * @notice Sets a new maximum swap amount * @param amount The new maximum swap amount */ function setNewMaxSwapAmount(uint256 amount) external onlyOwner { _maxSwapAmount = amount * 10**_decimals; } /** * @notice Opens trading */ function openTrading() external onlyOwner { require(!tradingOpen,"trading is already open"); tradingOpen = true; } /** * @notice Rescues any ETH stuck in the contract */ function rescueEth() external { require(_msgSender() == _taxWallet); uint256 ethBalance = address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } /** * @notice Rescues any ERC20 tokens stuck in the contract * @param tokenContractAddress The address of the token contract * @param toRescueAddress The address to send the rescued tokens to * @param amount The amount of tokens to rescue */ function rescueTokens(address tokenContractAddress, address toRescueAddress, uint256 amount) external { require(_msgSender()==_taxWallet); require(tokenContractAddress != address(this), "Not allowed to rescue self"); IERC20(tokenContractAddress).transfer(toRescueAddress, amount); } /** * @notice Removes all limits */ function removeAllLimit() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletAmount=_tTotal; swapLimitOn = false; emit MaxTxAmountUpdated(_tTotal); } /** * @notice Forces a swap of all tokens in the contract */ function forceSwap() external { require(_msgSender()==_taxWallet); uint256 tokenAmount=balanceOf(address(this)); if(tokenAmount>0){ swapTokensForEth(tokenAmount); } } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"taxWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"forceSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContractAddress","type":"address"},{"internalType":"address","name":"toRescueAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxPercent","type":"uint256"}],"name":"setNewBuyTaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNewMaxSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNewMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNewMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxPercent","type":"uint256"}],"name":"setNewSellTaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601460055560196006556012600a61001c9190610b30565b620f424061002a9190610b7a565b6007556012600a61003b9190610b30565b620f42406100499190610b7a565b6008556012600a61005a9190610b30565b620f42406100689190610b7a565b6009556001600b60146101000a81548160ff0219169083151502179055505f600b60166101000a81548160ff0219169083151502179055503480156100ab575f80fd5b50604051613dc0380380613dc083398181016040528101906100cd9190610c19565b5f6100dc61061d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6101fc60646101ee60106012600a6101d19190610b30565b630bebc2006101e09190610b7a565b61062460201b90919060201c565b61069b60201b90919060201c565b9050600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610282816012600a6102659190610b30565b630bebc2006102749190610b7a565b6106ea60201b90919060201c565b60025f61029361061d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103b430600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61039a9190610b30565b630bebc2006103a99190610b7a565b61073960201b60201c565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104429190610c19565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ec9190610c19565b6040518363ffffffff1660e01b8152600401610509929190610c53565b6020604051808303815f875af1158015610525573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105499190610c19565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061059661061d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6105f29190610b30565b630bebc2006106019190610b7a565b60405161060e9190610c89565b60405180910390a35050610f6c565b5f33905090565b5f808303610634575f9050610695565b5f82846106419190610b7a565b90508284826106509190610ccf565b14610690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068790610d7f565b60405180910390fd5b809150505b92915050565b5f6106e283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506108fc60201b60201c565b905092915050565b5f61073183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061095d60201b60201c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90610e0d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080c90610e9b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108ef9190610c89565b60405180910390a3505050565b5f8083118290610942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109399190610f19565b60405180910390fd5b505f83856109509190610ccf565b9050809150509392505050565b5f8383111582906109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b9190610f19565b60405180910390fd5b505f83856109b29190610f39565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610a4157808604811115610a1d57610a1c6109bf565b5b6001851615610a2c5780820291505b8081029050610a3a856109ec565b9450610a01565b94509492505050565b5f82610a595760019050610b14565b81610a66575f9050610b14565b8160018114610a7c5760028114610a8657610ab5565b6001915050610b14565b60ff841115610a9857610a976109bf565b5b8360020a915084821115610aaf57610aae6109bf565b5b50610b14565b5060208310610133831016604e8410600b8410161715610aea5782820a905083811115610ae557610ae46109bf565b5b610b14565b610af784848460016109f8565b92509050818404811115610b0e57610b0d6109bf565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610b3a82610b1b565b9150610b4583610b24565b9250610b727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610a4a565b905092915050565b5f610b8482610b1b565b9150610b8f83610b1b565b9250828202610b9d81610b1b565b91508282048414831517610bb457610bb36109bf565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610be882610bbf565b9050919050565b610bf881610bde565b8114610c02575f80fd5b50565b5f81519050610c1381610bef565b92915050565b5f60208284031215610c2e57610c2d610bbb565b5b5f610c3b84828501610c05565b91505092915050565b610c4d81610bde565b82525050565b5f604082019050610c665f830185610c44565b610c736020830184610c44565b9392505050565b610c8381610b1b565b82525050565b5f602082019050610c9c5f830184610c7a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610cd982610b1b565b9150610ce483610b1b565b925082610cf457610cf3610ca2565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f610d69602183610cff565b9150610d7482610d0f565b604082019050919050565b5f6020820190508181035f830152610d9681610d5d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610df7602483610cff565b9150610e0282610d9d565b604082019050919050565b5f6020820190508181035f830152610e2481610deb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610e85602283610cff565b9150610e9082610e2b565b604082019050919050565b5f6020820190508181035f830152610eb281610e79565b9050919050565b5f81519050919050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eeb82610eb9565b610ef58185610cff565b9350610f05818560208601610ec3565b610f0e81610ed1565b840191505092915050565b5f6020820190508181035f830152610f318184610ee1565b905092915050565b5f610f4382610b1b565b9150610f4e83610b1b565b9250828203905081811115610f6657610f656109bf565b5b92915050565b612e4780610f795f395ff3fe60806040526004361061014e575f3560e01c8063a9059cbb116100b5578063d5e1cbff1161006e578063d5e1cbff14610451578063dd62ed3e14610467578063df778d26146104a3578063dfa416ed146104b9578063e06bd4a5146104e1578063e402fcc61461050b57610155565b8063a9059cbb14610371578063c9567bf9146103ad578063cce8e7e5146103c3578063ce31a06b146103eb578063cea9d26f14610401578063d38a61711461042957610155565b806370a082311161010757806370a0823114610279578063715018a6146102b55780637d1db4a5146102cb5780638da5cb5b146102f557806395d89b411461031f578063a0ff16671461034957610155565b806306fdde0314610159578063095ea7b31461018357806318160ddd146101bf57806323b872dd146101e9578063313ce567146102255780636c0a24eb1461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610533565b60405161017a9190611ffd565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a491906120ae565b610570565b6040516101b69190612106565b60405180910390f35b3480156101ca575f80fd5b506101d361058d565b6040516101e0919061212e565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a9190612147565b6105b0565b60405161021c9190612106565b60405180910390f35b348015610230575f80fd5b50610239610684565b60405161024691906121b2565b60405180910390f35b34801561025a575f80fd5b5061026361068c565b604051610270919061212e565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a91906121cb565b610692565b6040516102ac919061212e565b60405180910390f35b3480156102c0575f80fd5b506102c96106d8565b005b3480156102d6575f80fd5b506102df610826565b6040516102ec919061212e565b60405180910390f35b348015610300575f80fd5b5061030961082c565b6040516103169190612205565b60405180910390f35b34801561032a575f80fd5b50610333610853565b6040516103409190611ffd565b60405180910390f35b348015610354575f80fd5b5061036f600480360381019061036a919061221e565b610890565b005b34801561037c575f80fd5b50610397600480360381019061039291906120ae565b610946565b6040516103a49190612106565b60405180910390f35b3480156103b8575f80fd5b506103c1610963565b005b3480156103ce575f80fd5b506103e960048036038101906103e4919061221e565b610a64565b005b3480156103f6575f80fd5b506103ff610b02565b005b34801561040c575f80fd5b5061042760048036038101906104229190612147565b610b7a565b005b348015610434575f80fd5b5061044f600480360381019061044a919061221e565b610cc8565b005b34801561045c575f80fd5b50610465610d7e565b005b348015610472575f80fd5b5061048d60048036038101906104889190612249565b610ec7565b60405161049a919061212e565b60405180910390f35b3480156104ae575f80fd5b506104b7610f49565b005b3480156104c4575f80fd5b506104df60048036038101906104da919061221e565b610fc9565b005b3480156104ec575f80fd5b506104f5611067565b604051610502919061212e565b60405180910390f35b348015610516575f80fd5b50610531600480360381019061052c919061221e565b61106d565b005b60606040518060400160405280600a81526020017f496e66696e696120414900000000000000000000000000000000000000000000815250905090565b5f61058361057c611123565b848461112a565b6001905092915050565b5f6012600a61059c91906123e3565b630bebc2006105ab919061242d565b905090565b5f6105bc8484846112ed565b610679846105c8611123565b61067485604051806060016040528060288152602001612dea6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062b611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a579092919063ffffffff16565b61112a565b600190509392505050565b5f6012905090565b60075481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106e0611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610763906124b8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f496e666900000000000000000000000000000000000000000000000000000000815250905090565b610898611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b906124b8565b60405180910390fd5b6012600a61093291906123e3565b8161093d919061242d565b60088190555050565b5f610959610952611123565b84846112ed565b6001905092915050565b61096b611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee906124b8565b60405180910390fd5b600b60159054906101000a900460ff1615610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e90612520565b60405180910390fd5b6001600b60156101000a81548160ff021916908315150217905550565b610a6c611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef906124b8565b60405180910390fd5b8060058190555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b42611123565b73ffffffffffffffffffffffffffffffffffffffff1614610b61575f80fd5b5f4790505f811115610b7757610b7681611ab9565b5b50565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bba611123565b73ffffffffffffffffffffffffffffffffffffffff1614610bd9575f80fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90612588565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610c829291906125a6565b6020604051808303815f875af1158015610c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc291906125f7565b50505050565b610cd0611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906124b8565b60405180910390fd5b6012600a610d6a91906123e3565b81610d75919061242d565b60078190555050565b610d86611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e09906124b8565b60405180910390fd5b6012600a610e2091906123e3565b630bebc200610e2f919061242d565b6008819055506012600a610e4391906123e3565b630bebc200610e52919061242d565b6007819055505f600b60146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ea191906123e3565b630bebc200610eb0919061242d565b604051610ebd919061212e565b60405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f89611123565b73ffffffffffffffffffffffffffffffffffffffff1614610fa8575f80fd5b5f610fb230610692565b90505f811115610fc657610fc581611b21565b5b50565b610fd1611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906124b8565b60405180910390fd5b8060068190555050565b60095481565b611075611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f8906124b8565b60405180910390fd5b6012600a61110f91906123e3565b8161111a919061242d565b60098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612692565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612720565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e0919061212e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361135b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611352906127ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c09061283c565b60405180910390fd5b5f811161140b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611402906128ca565b60405180910390fd5b5f61141461082c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611482575061145261082c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117a757600b60159054906101000a900460ff166114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612932565b60405180910390fd5b60085482111561151b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611512906129c0565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115c45750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561165057600754826115d685610692565b6115e091906129de565b1115611621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161890612a5b565b60405180910390fd5b611649606461163b60055485611dc690919063ffffffff16565b611e3d90919063ffffffff16565b90506117a6565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a1576116cc60646116be60065485611dc690919063ffffffff16565b611e3d90919063ffffffff16565b90505f6116d830610692565b9050600b60169054906101000a900460ff161580156117435750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561179b57600b60149054906101000a900460ff1615611790575f600954821161176d5781611771565b6009545b905061178a8185116117835784611785565b815b611b21565b5061179a565b61179981611b21565b5b5b506117a5565b5f90505b5b5b5f8111156118a6576117ff8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8690919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161189d919061212e565b60405180910390a35b6118f68260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee390919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061199961194d8284611ee390919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8690919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a3c8486611ee390919063ffffffff16565b604051611a49919061212e565b60405180910390a350505050565b5f838311158290611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a959190611ffd565b60405180910390fd5b505f8385611aac9190612a79565b9050809150509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b1d573d5f803e3d5ffd5b5050565b6001600b60166101000a81548160ff0219169083151502179055505f810315611da957600854811115611b545760085490505b5f600267ffffffffffffffff811115611b7057611b6f612aac565b5b604051908082528060200260200182016040528015611b9e5781602001602082028036833780820191505090505b50905030815f81518110611bb557611bb4612ad9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7d9190612b1a565b81600181518110611c9157611c90612ad9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cf730600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112a565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611d7a959493929190612c3e565b5f604051808303815f87803b158015611d91575f80fd5b505af1158015611da3573d5f803e3d5ffd5b50505050505b5f600b60166101000a81548160ff02191690831515021790555050565b5f808303611dd6575f9050611e37565b5f8284611de3919061242d565b9050828482611df29190612cc3565b14611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2990612d63565b60405180910390fd5b809150505b92915050565b5f611e7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2c565b905092915050565b5f808284611e9491906129de565b905083811015611ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed090612dcb565b60405180910390fd5b8091505092915050565b5f611f2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a57565b905092915050565b5f8083118290611f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f699190611ffd565b60405180910390fd5b505f8385611f809190612cc3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fcf82611f8d565b611fd98185611f97565b9350611fe9818560208601611fa7565b611ff281611fb5565b840191505092915050565b5f6020820190508181035f8301526120158184611fc5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61204a82612021565b9050919050565b61205a81612040565b8114612064575f80fd5b50565b5f8135905061207581612051565b92915050565b5f819050919050565b61208d8161207b565b8114612097575f80fd5b50565b5f813590506120a881612084565b92915050565b5f80604083850312156120c4576120c361201d565b5b5f6120d185828601612067565b92505060206120e28582860161209a565b9150509250929050565b5f8115159050919050565b612100816120ec565b82525050565b5f6020820190506121195f8301846120f7565b92915050565b6121288161207b565b82525050565b5f6020820190506121415f83018461211f565b92915050565b5f805f6060848603121561215e5761215d61201d565b5b5f61216b86828701612067565b935050602061217c86828701612067565b925050604061218d8682870161209a565b9150509250925092565b5f60ff82169050919050565b6121ac81612197565b82525050565b5f6020820190506121c55f8301846121a3565b92915050565b5f602082840312156121e0576121df61201d565b5b5f6121ed84828501612067565b91505092915050565b6121ff81612040565b82525050565b5f6020820190506122185f8301846121f6565b92915050565b5f602082840312156122335761223261201d565b5b5f6122408482850161209a565b91505092915050565b5f806040838503121561225f5761225e61201d565b5b5f61226c85828601612067565b925050602061227d85828601612067565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612309578086048111156122e5576122e4612287565b5b60018516156122f45780820291505b8081029050612302856122b4565b94506122c9565b94509492505050565b5f8261232157600190506123dc565b8161232e575f90506123dc565b8160018114612344576002811461234e5761237d565b60019150506123dc565b60ff8411156123605761235f612287565b5b8360020a91508482111561237757612376612287565b5b506123dc565b5060208310610133831016604e8410600b84101617156123b25782820a9050838111156123ad576123ac612287565b5b6123dc565b6123bf84848460016122c0565b925090508184048111156123d6576123d5612287565b5b81810290505b9392505050565b5f6123ed8261207b565b91506123f883612197565b92506124257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612312565b905092915050565b5f6124378261207b565b91506124428361207b565b92508282026124508161207b565b9150828204841483151761246757612466612287565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124a2602083611f97565b91506124ad8261246e565b602082019050919050565b5f6020820190508181035f8301526124cf81612496565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61250a601783611f97565b9150612515826124d6565b602082019050919050565b5f6020820190508181035f830152612537816124fe565b9050919050565b7f4e6f7420616c6c6f77656420746f207265736375652073656c660000000000005f82015250565b5f612572601a83611f97565b915061257d8261253e565b602082019050919050565b5f6020820190508181035f83015261259f81612566565b9050919050565b5f6040820190506125b95f8301856121f6565b6125c6602083018461211f565b9392505050565b6125d6816120ec565b81146125e0575f80fd5b50565b5f815190506125f1816125cd565b92915050565b5f6020828403121561260c5761260b61201d565b5b5f612619848285016125e3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61267c602483611f97565b915061268782612622565b604082019050919050565b5f6020820190508181035f8301526126a981612670565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61270a602283611f97565b9150612715826126b0565b604082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612798602583611f97565b91506127a38261273e565b604082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612826602383611f97565b9150612831826127cc565b604082019050919050565b5f6020820190508181035f8301526128538161281a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128b4602983611f97565b91506128bf8261285a565b604082019050919050565b5f6020820190508181035f8301526128e1816128a8565b9050919050565b7f54726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f61291c601683611f97565b9150612927826128e8565b602082019050919050565b5f6020820190508181035f83015261294981612910565b9050919050565b7f5472616e7366657220616d6f756e742065786365656473206d6178547853697a5f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129aa602183611f97565b91506129b582612950565b604082019050919050565b5f6020820190508181035f8301526129d78161299e565b9050919050565b5f6129e88261207b565b91506129f38361207b565b9250828201905080821115612a0b57612a0a612287565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612a45601a83611f97565b9150612a5082612a11565b602082019050919050565b5f6020820190508181035f830152612a7281612a39565b9050919050565b5f612a838261207b565b9150612a8e8361207b565b9250828203905081811115612aa657612aa5612287565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b1481612051565b92915050565b5f60208284031215612b2f57612b2e61201d565b5b5f612b3c84828501612b06565b91505092915050565b5f819050919050565b5f819050919050565b5f612b71612b6c612b6784612b45565b612b4e565b61207b565b9050919050565b612b8181612b57565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bb981612040565b82525050565b5f612bca8383612bb0565b60208301905092915050565b5f602082019050919050565b5f612bec82612b87565b612bf68185612b91565b9350612c0183612ba1565b805f5b83811015612c31578151612c188882612bbf565b9750612c2383612bd6565b925050600181019050612c04565b5085935050505092915050565b5f60a082019050612c515f83018861211f565b612c5e6020830187612b78565b8181036040830152612c708186612be2565b9050612c7f60608301856121f6565b612c8c608083018461211f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ccd8261207b565b9150612cd88361207b565b925082612ce857612ce7612c96565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4d602183611f97565b9150612d5882612cf3565b604082019050919050565b5f6020820190508181035f830152612d7a81612d41565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612db5601b83611f97565b9150612dc082612d81565b602082019050919050565b5f6020820190508181035f830152612de281612da9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b66cac83cf845a8e86186e025b4c99e3ea38829311de97f38ee57b3130cb841264736f6c634300081a0033000000000000000000000000c9ffb2056e5c8f58f6a3325dd27bc42211f0c884
Deployed Bytecode
0x60806040526004361061014e575f3560e01c8063a9059cbb116100b5578063d5e1cbff1161006e578063d5e1cbff14610451578063dd62ed3e14610467578063df778d26146104a3578063dfa416ed146104b9578063e06bd4a5146104e1578063e402fcc61461050b57610155565b8063a9059cbb14610371578063c9567bf9146103ad578063cce8e7e5146103c3578063ce31a06b146103eb578063cea9d26f14610401578063d38a61711461042957610155565b806370a082311161010757806370a0823114610279578063715018a6146102b55780637d1db4a5146102cb5780638da5cb5b146102f557806395d89b411461031f578063a0ff16671461034957610155565b806306fdde0314610159578063095ea7b31461018357806318160ddd146101bf57806323b872dd146101e9578063313ce567146102255780636c0a24eb1461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610533565b60405161017a9190611ffd565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a491906120ae565b610570565b6040516101b69190612106565b60405180910390f35b3480156101ca575f80fd5b506101d361058d565b6040516101e0919061212e565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a9190612147565b6105b0565b60405161021c9190612106565b60405180910390f35b348015610230575f80fd5b50610239610684565b60405161024691906121b2565b60405180910390f35b34801561025a575f80fd5b5061026361068c565b604051610270919061212e565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a91906121cb565b610692565b6040516102ac919061212e565b60405180910390f35b3480156102c0575f80fd5b506102c96106d8565b005b3480156102d6575f80fd5b506102df610826565b6040516102ec919061212e565b60405180910390f35b348015610300575f80fd5b5061030961082c565b6040516103169190612205565b60405180910390f35b34801561032a575f80fd5b50610333610853565b6040516103409190611ffd565b60405180910390f35b348015610354575f80fd5b5061036f600480360381019061036a919061221e565b610890565b005b34801561037c575f80fd5b50610397600480360381019061039291906120ae565b610946565b6040516103a49190612106565b60405180910390f35b3480156103b8575f80fd5b506103c1610963565b005b3480156103ce575f80fd5b506103e960048036038101906103e4919061221e565b610a64565b005b3480156103f6575f80fd5b506103ff610b02565b005b34801561040c575f80fd5b5061042760048036038101906104229190612147565b610b7a565b005b348015610434575f80fd5b5061044f600480360381019061044a919061221e565b610cc8565b005b34801561045c575f80fd5b50610465610d7e565b005b348015610472575f80fd5b5061048d60048036038101906104889190612249565b610ec7565b60405161049a919061212e565b60405180910390f35b3480156104ae575f80fd5b506104b7610f49565b005b3480156104c4575f80fd5b506104df60048036038101906104da919061221e565b610fc9565b005b3480156104ec575f80fd5b506104f5611067565b604051610502919061212e565b60405180910390f35b348015610516575f80fd5b50610531600480360381019061052c919061221e565b61106d565b005b60606040518060400160405280600a81526020017f496e66696e696120414900000000000000000000000000000000000000000000815250905090565b5f61058361057c611123565b848461112a565b6001905092915050565b5f6012600a61059c91906123e3565b630bebc2006105ab919061242d565b905090565b5f6105bc8484846112ed565b610679846105c8611123565b61067485604051806060016040528060288152602001612dea6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062b611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a579092919063ffffffff16565b61112a565b600190509392505050565b5f6012905090565b60075481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106e0611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610763906124b8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f496e666900000000000000000000000000000000000000000000000000000000815250905090565b610898611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b906124b8565b60405180910390fd5b6012600a61093291906123e3565b8161093d919061242d565b60088190555050565b5f610959610952611123565b84846112ed565b6001905092915050565b61096b611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee906124b8565b60405180910390fd5b600b60159054906101000a900460ff1615610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e90612520565b60405180910390fd5b6001600b60156101000a81548160ff021916908315150217905550565b610a6c611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef906124b8565b60405180910390fd5b8060058190555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b42611123565b73ffffffffffffffffffffffffffffffffffffffff1614610b61575f80fd5b5f4790505f811115610b7757610b7681611ab9565b5b50565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bba611123565b73ffffffffffffffffffffffffffffffffffffffff1614610bd9575f80fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90612588565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610c829291906125a6565b6020604051808303815f875af1158015610c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc291906125f7565b50505050565b610cd0611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906124b8565b60405180910390fd5b6012600a610d6a91906123e3565b81610d75919061242d565b60078190555050565b610d86611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e09906124b8565b60405180910390fd5b6012600a610e2091906123e3565b630bebc200610e2f919061242d565b6008819055506012600a610e4391906123e3565b630bebc200610e52919061242d565b6007819055505f600b60146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ea191906123e3565b630bebc200610eb0919061242d565b604051610ebd919061212e565b60405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f89611123565b73ffffffffffffffffffffffffffffffffffffffff1614610fa8575f80fd5b5f610fb230610692565b90505f811115610fc657610fc581611b21565b5b50565b610fd1611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906124b8565b60405180910390fd5b8060068190555050565b60095481565b611075611123565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f8906124b8565b60405180910390fd5b6012600a61110f91906123e3565b8161111a919061242d565b60098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612692565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612720565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e0919061212e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361135b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611352906127ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c09061283c565b60405180910390fd5b5f811161140b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611402906128ca565b60405180910390fd5b5f61141461082c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611482575061145261082c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117a757600b60159054906101000a900460ff166114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612932565b60405180910390fd5b60085482111561151b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611512906129c0565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115c45750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561165057600754826115d685610692565b6115e091906129de565b1115611621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161890612a5b565b60405180910390fd5b611649606461163b60055485611dc690919063ffffffff16565b611e3d90919063ffffffff16565b90506117a6565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a1576116cc60646116be60065485611dc690919063ffffffff16565b611e3d90919063ffffffff16565b90505f6116d830610692565b9050600b60169054906101000a900460ff161580156117435750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561179b57600b60149054906101000a900460ff1615611790575f600954821161176d5781611771565b6009545b905061178a8185116117835784611785565b815b611b21565b5061179a565b61179981611b21565b5b5b506117a5565b5f90505b5b5b5f8111156118a6576117ff8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8690919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161189d919061212e565b60405180910390a35b6118f68260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee390919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061199961194d8284611ee390919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8690919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a3c8486611ee390919063ffffffff16565b604051611a49919061212e565b60405180910390a350505050565b5f838311158290611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a959190611ffd565b60405180910390fd5b505f8385611aac9190612a79565b9050809150509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b1d573d5f803e3d5ffd5b5050565b6001600b60166101000a81548160ff0219169083151502179055505f810315611da957600854811115611b545760085490505b5f600267ffffffffffffffff811115611b7057611b6f612aac565b5b604051908082528060200260200182016040528015611b9e5781602001602082028036833780820191505090505b50905030815f81518110611bb557611bb4612ad9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7d9190612b1a565b81600181518110611c9157611c90612ad9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cf730600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112a565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611d7a959493929190612c3e565b5f604051808303815f87803b158015611d91575f80fd5b505af1158015611da3573d5f803e3d5ffd5b50505050505b5f600b60166101000a81548160ff02191690831515021790555050565b5f808303611dd6575f9050611e37565b5f8284611de3919061242d565b9050828482611df29190612cc3565b14611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2990612d63565b60405180910390fd5b809150505b92915050565b5f611e7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2c565b905092915050565b5f808284611e9491906129de565b905083811015611ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed090612dcb565b60405180910390fd5b8091505092915050565b5f611f2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a57565b905092915050565b5f8083118290611f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f699190611ffd565b60405180910390fd5b505f8385611f809190612cc3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fcf82611f8d565b611fd98185611f97565b9350611fe9818560208601611fa7565b611ff281611fb5565b840191505092915050565b5f6020820190508181035f8301526120158184611fc5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61204a82612021565b9050919050565b61205a81612040565b8114612064575f80fd5b50565b5f8135905061207581612051565b92915050565b5f819050919050565b61208d8161207b565b8114612097575f80fd5b50565b5f813590506120a881612084565b92915050565b5f80604083850312156120c4576120c361201d565b5b5f6120d185828601612067565b92505060206120e28582860161209a565b9150509250929050565b5f8115159050919050565b612100816120ec565b82525050565b5f6020820190506121195f8301846120f7565b92915050565b6121288161207b565b82525050565b5f6020820190506121415f83018461211f565b92915050565b5f805f6060848603121561215e5761215d61201d565b5b5f61216b86828701612067565b935050602061217c86828701612067565b925050604061218d8682870161209a565b9150509250925092565b5f60ff82169050919050565b6121ac81612197565b82525050565b5f6020820190506121c55f8301846121a3565b92915050565b5f602082840312156121e0576121df61201d565b5b5f6121ed84828501612067565b91505092915050565b6121ff81612040565b82525050565b5f6020820190506122185f8301846121f6565b92915050565b5f602082840312156122335761223261201d565b5b5f6122408482850161209a565b91505092915050565b5f806040838503121561225f5761225e61201d565b5b5f61226c85828601612067565b925050602061227d85828601612067565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612309578086048111156122e5576122e4612287565b5b60018516156122f45780820291505b8081029050612302856122b4565b94506122c9565b94509492505050565b5f8261232157600190506123dc565b8161232e575f90506123dc565b8160018114612344576002811461234e5761237d565b60019150506123dc565b60ff8411156123605761235f612287565b5b8360020a91508482111561237757612376612287565b5b506123dc565b5060208310610133831016604e8410600b84101617156123b25782820a9050838111156123ad576123ac612287565b5b6123dc565b6123bf84848460016122c0565b925090508184048111156123d6576123d5612287565b5b81810290505b9392505050565b5f6123ed8261207b565b91506123f883612197565b92506124257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612312565b905092915050565b5f6124378261207b565b91506124428361207b565b92508282026124508161207b565b9150828204841483151761246757612466612287565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124a2602083611f97565b91506124ad8261246e565b602082019050919050565b5f6020820190508181035f8301526124cf81612496565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61250a601783611f97565b9150612515826124d6565b602082019050919050565b5f6020820190508181035f830152612537816124fe565b9050919050565b7f4e6f7420616c6c6f77656420746f207265736375652073656c660000000000005f82015250565b5f612572601a83611f97565b915061257d8261253e565b602082019050919050565b5f6020820190508181035f83015261259f81612566565b9050919050565b5f6040820190506125b95f8301856121f6565b6125c6602083018461211f565b9392505050565b6125d6816120ec565b81146125e0575f80fd5b50565b5f815190506125f1816125cd565b92915050565b5f6020828403121561260c5761260b61201d565b5b5f612619848285016125e3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61267c602483611f97565b915061268782612622565b604082019050919050565b5f6020820190508181035f8301526126a981612670565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61270a602283611f97565b9150612715826126b0565b604082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612798602583611f97565b91506127a38261273e565b604082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612826602383611f97565b9150612831826127cc565b604082019050919050565b5f6020820190508181035f8301526128538161281a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128b4602983611f97565b91506128bf8261285a565b604082019050919050565b5f6020820190508181035f8301526128e1816128a8565b9050919050565b7f54726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f61291c601683611f97565b9150612927826128e8565b602082019050919050565b5f6020820190508181035f83015261294981612910565b9050919050565b7f5472616e7366657220616d6f756e742065786365656473206d6178547853697a5f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129aa602183611f97565b91506129b582612950565b604082019050919050565b5f6020820190508181035f8301526129d78161299e565b9050919050565b5f6129e88261207b565b91506129f38361207b565b9250828201905080821115612a0b57612a0a612287565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612a45601a83611f97565b9150612a5082612a11565b602082019050919050565b5f6020820190508181035f830152612a7281612a39565b9050919050565b5f612a838261207b565b9150612a8e8361207b565b9250828203905081811115612aa657612aa5612287565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b1481612051565b92915050565b5f60208284031215612b2f57612b2e61201d565b5b5f612b3c84828501612b06565b91505092915050565b5f819050919050565b5f819050919050565b5f612b71612b6c612b6784612b45565b612b4e565b61207b565b9050919050565b612b8181612b57565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bb981612040565b82525050565b5f612bca8383612bb0565b60208301905092915050565b5f602082019050919050565b5f612bec82612b87565b612bf68185612b91565b9350612c0183612ba1565b805f5b83811015612c31578151612c188882612bbf565b9750612c2383612bd6565b925050600181019050612c04565b5085935050505092915050565b5f60a082019050612c515f83018861211f565b612c5e6020830187612b78565b8181036040830152612c708186612be2565b9050612c7f60608301856121f6565b612c8c608083018461211f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ccd8261207b565b9150612cd88361207b565b925082612ce857612ce7612c96565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4d602183611f97565b9150612d5882612cf3565b604082019050919050565b5f6020820190508181035f830152612d7a81612d41565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612db5601b83611f97565b9150612dc082612d81565b602082019050919050565b5f6020820190508181035f830152612de281612da9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b66cac83cf845a8e86186e025b4c99e3ea38829311de97f38ee57b3130cb841264736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c9ffb2056e5c8f58f6a3325dd27bc42211f0c884
-----Decoded View---------------
Arg [0] : taxWalletAddress (address): 0xC9ffB2056e5c8F58F6A3325dd27Bc42211F0C884
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c9ffb2056e5c8f58f6a3325dd27bc42211f0c884
Deployed Bytecode Sourcemap
3584:11706:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5627:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6193:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7373:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6940:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6496:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4200:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7655:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2665:148;;;;;;;;;;;;;:::i;:::-;;4265:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2451:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5824:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13233:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8050:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13661:137;;;;;;;;;;;;;:::i;:::-;;12488:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13878:212;;;;;;;;;;;;;:::i;:::-;;14375:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12970:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14750:194;;;;;;;;;;;;;:::i;:::-;;8534:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15030:218;;;;;;;;;;;;;:::i;:::-;;12728:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4326:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13483:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5627:83;5664:13;5697:5;;;;;;;;;;;;;;;;;5690:12;;5627:83;:::o;6193:161::-;6268:4;6285:39;6294:12;:10;:12::i;:::-;6308:7;6317:6;6285:8;:39::i;:::-;6342:4;6335:11;;6193:161;;;;:::o;7373:95::-;7426:7;4117:2;4174;:13;;;;:::i;:::-;4161:9;:26;;;;:::i;:::-;7446:14;;7373:95;:::o;6940:313::-;7038:4;7055:36;7065:6;7073:9;7084:6;7055:9;:36::i;:::-;7102:121;7111:6;7119:12;:10;:12::i;:::-;7133:89;7171:6;7133:89;;;;;;;;;;;;;;;;;:11;:19;7145:6;7133:19;;;;;;;;;;;;;;;:33;7153:12;:10;:12::i;:::-;7133:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7102:8;:121::i;:::-;7241:4;7234:11;;6940:313;;;;;:::o;6496:83::-;6537:5;4117:2;6555:16;;6496:83;:::o;4200:58::-;;;;:::o;7655:119::-;7721:7;7748:9;:18;7758:7;7748:18;;;;;;;;;;;;;;;;7741:25;;7655:119;;;:::o;2665:148::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2772:1:::1;2735:40;;2756:6;::::0;::::1;;;;;;;;2735:40;;;;;;;;;;;;2803:1;2786:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2665:148::o:0;4265:54::-;;;;:::o;2451:79::-;2489:7;2516:6;;;;;;;;;;;2509:13;;2451:79;:::o;5824:87::-;5863:13;5896:7;;;;;;;;;;;;;;;;;5889:14;;5824:87;:::o;13233:127::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:2:::1;13339;:13;;;;:::i;:::-;13330:6;:22;;;;:::i;:::-;13315:12;:37;;;;13233:127:::0;:::o;8050:167::-;8128:4;8145:42;8155:12;:10;:12::i;:::-;8169:9;8180:6;8145:9;:42::i;:::-;8205:4;8198:11;;8050:167;;;;:::o;13661:137::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13723:11:::1;;;;;;;;;;;13722:12;13714:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13786:4;13772:11;;:18;;;;;;;;;;;;;;;;;;13661:137::o:0;12488:113::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12583:10:::1;12566:14;:27;;;;12488:113:::0;:::o;13878:212::-;13943:10;;;;;;;;;;;13927:26;;:12;:10;:12::i;:::-;:26;;;13919:35;;;;;;13965:18;13986:21;13965:42;;14032:1;14021:10;:12;14018:65;;;14047:24;14060:10;14047:12;:24::i;:::-;14018:65;13908:182;13878:212::o;14375:314::-;14510:10;;;;;;;;;;;14496:24;;:12;:10;:12::i;:::-;:24;;;14488:33;;;;;;14572:4;14540:37;;:20;:37;;;14532:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;14626:20;14619:37;;;14657:15;14674:6;14619:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14375:314;;;:::o;12970:126::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:2:::1;13075;:13;;;;:::i;:::-;13066:6;:22;;;;:::i;:::-;13047:16;:41;;;;12970:126:::0;:::o;14750:194::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:2:::1;4174;:13;;;;:::i;:::-;4161:9;:26;;;;:::i;:::-;14806:12;:22;;;;4117:2;4174;:13;;;;:::i;:::-;4161:9;:26;;;;:::i;:::-;14839:16;:24;;;;14888:5;14874:11;;:19;;;;;;;;;;;;;;;;;;14909:27;4117:2;4174;:13;;;;:::i;:::-;4161:9;:26;;;;:::i;:::-;14909:27;;;;;;:::i;:::-;;;;;;;;14750:194::o:0;8534:143::-;8615:7;8642:11;:18;8654:5;8642:18;;;;;;;;;;;;;;;:27;8661:7;8642:27;;;;;;;;;;;;;;;;8635:34;;8534:143;;;;:::o;15030:218::-;15093:10;;;;;;;;;;;15079:24;;:12;:10;:12::i;:::-;:24;;;15071:33;;;;;;15115:19;15135:24;15153:4;15135:9;:24::i;:::-;15115:44;;15185:1;15173:11;:13;15170:71;;;15200:29;15217:11;15200:16;:29::i;:::-;15170:71;15060:188;15030:218::o;12728:115::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12825:10:::1;12807:15;:28;;;;12728:115:::0;:::o;4326:56::-;;;;:::o;13483:122::-;2588:12;:10;:12::i;:::-;2578:22;;:6;;;;;;;;;;:22;;;2570:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:2:::1;13584;:13;;;;:::i;:::-;13575:6;:22;;;;:::i;:::-;13558:14;:39;;;;13483:122:::0;:::o;206:98::-;259:7;286:10;279:17;;206:98;:::o;8940:335::-;9050:1;9033:19;;:5;:19;;;9025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9131:1;9112:21;;:7;:21;;;9104:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9213:6;9183:11;:18;9195:5;9183:18;;;;;;;;;;;;;;;:27;9202:7;9183:27;;;;;;;;;;;;;;;:36;;;;9251:7;9235:32;;9244:5;9235:32;;;9260:6;9235:32;;;;;;:::i;:::-;;;;;;;;8940:335;;;:::o;9553:1826::-;9657:1;9641:18;;:4;:18;;;9633:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9734:1;9720:16;;:2;:16;;;9712:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9804:1;9795:6;:10;9787:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9862:17;9904:7;:5;:7::i;:::-;9896:15;;:4;:15;;;;:32;;;;;9921:7;:5;:7::i;:::-;9915:13;;:2;:13;;;;9896:32;9892:1133;;;9953:11;;;;;;;;;;;9945:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;10023:12;;10013:6;:22;;10005:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10100:13;;;;;;;;;;;10092:21;;:4;:21;;;:55;;;;;10131:15;;;;;;;;;;;10117:30;;:2;:30;;;;10092:55;10088:926;;;10202:16;;10192:6;10176:13;10186:2;10176:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;10168:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10280:35;10311:3;10280:26;10291:14;;10280:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;10268:47;;10088:926;;;10347:13;;;;;;;;;;;10341:19;;:2;:19;;;10337:677;;10392:36;10424:3;10392:27;10403:15;;10392:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;10380:48;;10447:28;10478:24;10496:4;10478:9;:24::i;:::-;10447:55;;10526:6;;;;;;;;;;;10525:7;:30;;;;;10542:13;;;;;;;;;;;10536:19;;:2;:19;;;10525:30;10521:424;;;10584:11;;;;;;;;;;;10580:346;;;10624:19;10670:14;;10647:20;:37;10646:75;;10701:20;10646:75;;;10686:14;;10646:75;10624:97;;10748:59;10775:11;10766:6;:20;10765:41;;10800:6;10765:41;;;10788:11;10765:41;10748:16;:59::i;:::-;10597:234;10580:346;;;10864:38;10881:20;10864:16;:38::i;:::-;10580:346;10521:424;10361:599;10337:677;;;10997:1;10985:13;;10337:677;10088:926;9892:1133;11048:1;11038:9;:11;11035:161;;;11088:39;11117:9;11088;:24;11106:4;11088:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11063:9;:24;11081:4;11063:24;;;;;;;;;;;;;;;:64;;;;11168:4;11145:39;;11154:4;11145:39;;;11174:9;11145:39;;;;;;:::i;:::-;;;;;;;;11035:161;11222:27;11242:6;11222:9;:15;11232:4;11222:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11206:9;:15;11216:4;11206:15;;;;;;;;;;;;;;;:43;;;;11274:40;11292:21;11303:9;11292:6;:10;;:21;;;;:::i;:::-;11274:9;:13;11284:2;11274:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11260:9;:13;11270:2;11260:13;;;;;;;;;;;;;;;:54;;;;11345:2;11330:41;;11339:4;11330:41;;;11349:21;11360:9;11349:6;:10;;:21;;;;:::i;:::-;11330:41;;;;;;:::i;:::-;;;;;;;;9622:1757;9553:1826;;;:::o;1343:190::-;1429:7;1462:1;1457;:6;;1465:12;1449:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1489:9;1505:1;1501;:5;;;;:::i;:::-;1489:17;;1524:1;1517:8;;;1343:190;;;;;:::o;12262:101::-;12327:10;;;;;;;;;;;12319:28;;:36;12348:6;12319:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12262:101;:::o;11523:609::-;4622:4;4613:6;;:13;;;;;;;;;;;;;;;;;;11617:1:::1;11604:11;:14:::0;11601:27;11620:7:::1;11601:27;11653:12;;11641:11;:24;11638:82;;;11696:12;;11682:26;;11638:82;11730:21;11768:1;11754:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11730:40;;11799:4;11781;11786:1;11781:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11825:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11815:4;11820:1;11815:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11858:62;11875:4;11890:15;;;;;;;;;;;11908:11;11858:8;:62::i;:::-;11931:15;;;;;;;;;;;:66;;;12012:11;12038:1;12054:4;12073:10;;;;;;;;;;;12098:15;11931:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11590:542;4637:1;4658:5:::0;4649:6;;:14;;;;;;;;;;;;;;;;;;11523:609;:::o;1541:246::-;1599:7;1628:1;1623;:6;1619:47;;1653:1;1646:8;;;;1619:47;1676:9;1692:1;1688;:5;;;;:::i;:::-;1676:17;;1721:1;1716;1712;:5;;;;:::i;:::-;:10;1704:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1778:1;1771:8;;;1541:246;;;;;:::o;1795:132::-;1853:7;1880:39;1884:1;1887;1880:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1873:46;;1795:132;;;;:::o;1012:179::-;1070:7;1090:9;1106:1;1102;:5;;;;:::i;:::-;1090:17;;1131:1;1126;:6;;1118:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1182:1;1175:8;;;1012:179;;;;:::o;1199:136::-;1257:7;1284:43;1288:1;1291;1284:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1277:50;;1199:136;;;;:::o;1935:189::-;2021:7;2053:1;2049;:5;2056:12;2041:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2080:9;2096:1;2092;:5;;;;:::i;:::-;2080:17;;2115:1;2108:8;;;1935:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:180::-;6296:77;6293:1;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:102;6476:8;6523:5;6520:1;6516:13;6495:34;;6434:102;;;:::o;6542:848::-;6603:5;6610:4;6634:6;6625:15;;6658:5;6649:14;;6672:712;6693:1;6683:8;6680:15;6672:712;;;6788:4;6783:3;6779:14;6773:4;6770:24;6767:50;;;6797:18;;:::i;:::-;6767:50;6847:1;6837:8;6833:16;6830:451;;;7262:4;7255:5;7251:16;7242:25;;6830:451;7312:4;7306;7302:15;7294:23;;7342:32;7365:8;7342:32;:::i;:::-;7330:44;;6672:712;;;6542:848;;;;;;;:::o;7396:1073::-;7450:5;7641:8;7631:40;;7662:1;7653:10;;7664:5;;7631:40;7690:4;7680:36;;7707:1;7698:10;;7709:5;;7680:36;7776:4;7824:1;7819:27;;;;7860:1;7855:191;;;;7769:277;;7819:27;7837:1;7828:10;;7839:5;;;7855:191;7900:3;7890:8;7887:17;7884:43;;;7907:18;;:::i;:::-;7884:43;7956:8;7953:1;7949:16;7940:25;;7991:3;7984:5;7981:14;7978:40;;;7998:18;;:::i;:::-;7978:40;8031:5;;;7769:277;;8155:2;8145:8;8142:16;8136:3;8130:4;8127:13;8123:36;8105:2;8095:8;8092:16;8087:2;8081:4;8078:12;8074:35;8058:111;8055:246;;;8211:8;8205:4;8201:19;8192:28;;8246:3;8239:5;8236:14;8233:40;;;8253:18;;:::i;:::-;8233:40;8286:5;;8055:246;8326:42;8364:3;8354:8;8348:4;8345:1;8326:42;:::i;:::-;8311:57;;;;8400:4;8395:3;8391:14;8384:5;8381:25;8378:51;;;8409:18;;:::i;:::-;8378:51;8458:4;8451:5;8447:16;8438:25;;7396:1073;;;;;;:::o;8475:281::-;8533:5;8557:23;8575:4;8557:23;:::i;:::-;8549:31;;8601:25;8617:8;8601:25;:::i;:::-;8589:37;;8645:104;8682:66;8672:8;8666:4;8645:104;:::i;:::-;8636:113;;8475:281;;;;:::o;8762:410::-;8802:7;8825:20;8843:1;8825:20;:::i;:::-;8820:25;;8859:20;8877:1;8859:20;:::i;:::-;8854:25;;8914:1;8911;8907:9;8936:30;8954:11;8936:30;:::i;:::-;8925:41;;9115:1;9106:7;9102:15;9099:1;9096:22;9076:1;9069:9;9049:83;9026:139;;9145:18;;:::i;:::-;9026:139;8810:362;8762:410;;;;:::o;9178:182::-;9318:34;9314:1;9306:6;9302:14;9295:58;9178:182;:::o;9366:366::-;9508:3;9529:67;9593:2;9588:3;9529:67;:::i;:::-;9522:74;;9605:93;9694:3;9605:93;:::i;:::-;9723:2;9718:3;9714:12;9707:19;;9366:366;;;:::o;9738:419::-;9904:4;9942:2;9931:9;9927:18;9919:26;;9991:9;9985:4;9981:20;9977:1;9966:9;9962:17;9955:47;10019:131;10145:4;10019:131;:::i;:::-;10011:139;;9738:419;;;:::o;10163:173::-;10303:25;10299:1;10291:6;10287:14;10280:49;10163:173;:::o;10342:366::-;10484:3;10505:67;10569:2;10564:3;10505:67;:::i;:::-;10498:74;;10581:93;10670:3;10581:93;:::i;:::-;10699:2;10694:3;10690:12;10683:19;;10342:366;;;:::o;10714:419::-;10880:4;10918:2;10907:9;10903:18;10895:26;;10967:9;10961:4;10957:20;10953:1;10942:9;10938:17;10931:47;10995:131;11121:4;10995:131;:::i;:::-;10987:139;;10714:419;;;:::o;11139:176::-;11279:28;11275:1;11267:6;11263:14;11256:52;11139:176;:::o;11321:366::-;11463:3;11484:67;11548:2;11543:3;11484:67;:::i;:::-;11477:74;;11560:93;11649:3;11560:93;:::i;:::-;11678:2;11673:3;11669:12;11662:19;;11321:366;;;:::o;11693:419::-;11859:4;11897:2;11886:9;11882:18;11874:26;;11946:9;11940:4;11936:20;11932:1;11921:9;11917:17;11910:47;11974:131;12100:4;11974:131;:::i;:::-;11966:139;;11693:419;;;:::o;12118:332::-;12239:4;12277:2;12266:9;12262:18;12254:26;;12290:71;12358:1;12347:9;12343:17;12334:6;12290:71;:::i;:::-;12371:72;12439:2;12428:9;12424:18;12415:6;12371:72;:::i;:::-;12118:332;;;;;:::o;12456:116::-;12526:21;12541:5;12526:21;:::i;:::-;12519:5;12516:32;12506:60;;12562:1;12559;12552:12;12506:60;12456:116;:::o;12578:137::-;12632:5;12663:6;12657:13;12648:22;;12679:30;12703:5;12679:30;:::i;:::-;12578:137;;;;:::o;12721:345::-;12788:6;12837:2;12825:9;12816:7;12812:23;12808:32;12805:119;;;12843:79;;:::i;:::-;12805:119;12963:1;12988:61;13041:7;13032:6;13021:9;13017:22;12988:61;:::i;:::-;12978:71;;12934:125;12721:345;;;;:::o;13072:223::-;13212:34;13208:1;13200:6;13196:14;13189:58;13281:6;13276:2;13268:6;13264:15;13257:31;13072:223;:::o;13301:366::-;13443:3;13464:67;13528:2;13523:3;13464:67;:::i;:::-;13457:74;;13540:93;13629:3;13540:93;:::i;:::-;13658:2;13653:3;13649:12;13642:19;;13301:366;;;:::o;13673:419::-;13839:4;13877:2;13866:9;13862:18;13854:26;;13926:9;13920:4;13916:20;13912:1;13901:9;13897:17;13890:47;13954:131;14080:4;13954:131;:::i;:::-;13946:139;;13673:419;;;:::o;14098:221::-;14238:34;14234:1;14226:6;14222:14;14215:58;14307:4;14302:2;14294:6;14290:15;14283:29;14098:221;:::o;14325:366::-;14467:3;14488:67;14552:2;14547:3;14488:67;:::i;:::-;14481:74;;14564:93;14653:3;14564:93;:::i;:::-;14682:2;14677:3;14673:12;14666:19;;14325:366;;;:::o;14697:419::-;14863:4;14901:2;14890:9;14886:18;14878:26;;14950:9;14944:4;14940:20;14936:1;14925:9;14921:17;14914:47;14978:131;15104:4;14978:131;:::i;:::-;14970:139;;14697:419;;;:::o;15122:224::-;15262:34;15258:1;15250:6;15246:14;15239:58;15331:7;15326:2;15318:6;15314:15;15307:32;15122:224;:::o;15352:366::-;15494:3;15515:67;15579:2;15574:3;15515:67;:::i;:::-;15508:74;;15591:93;15680:3;15591:93;:::i;:::-;15709:2;15704:3;15700:12;15693:19;;15352:366;;;:::o;15724:419::-;15890:4;15928:2;15917:9;15913:18;15905:26;;15977:9;15971:4;15967:20;15963:1;15952:9;15948:17;15941:47;16005:131;16131:4;16005:131;:::i;:::-;15997:139;;15724:419;;;:::o;16149:222::-;16289:34;16285:1;16277:6;16273:14;16266:58;16358:5;16353:2;16345:6;16341:15;16334:30;16149:222;:::o;16377:366::-;16519:3;16540:67;16604:2;16599:3;16540:67;:::i;:::-;16533:74;;16616:93;16705:3;16616:93;:::i;:::-;16734:2;16729:3;16725:12;16718:19;;16377:366;;;:::o;16749:419::-;16915:4;16953:2;16942:9;16938:18;16930:26;;17002:9;16996:4;16992:20;16988:1;16977:9;16973:17;16966:47;17030:131;17156:4;17030:131;:::i;:::-;17022:139;;16749:419;;;:::o;17174:228::-;17314:34;17310:1;17302:6;17298:14;17291:58;17383:11;17378:2;17370:6;17366:15;17359:36;17174:228;:::o;17408:366::-;17550:3;17571:67;17635:2;17630:3;17571:67;:::i;:::-;17564:74;;17647:93;17736:3;17647:93;:::i;:::-;17765:2;17760:3;17756:12;17749:19;;17408:366;;;:::o;17780:419::-;17946:4;17984:2;17973:9;17969:18;17961:26;;18033:9;18027:4;18023:20;18019:1;18008:9;18004:17;17997:47;18061:131;18187:4;18061:131;:::i;:::-;18053:139;;17780:419;;;:::o;18205:172::-;18345:24;18341:1;18333:6;18329:14;18322:48;18205:172;:::o;18383:366::-;18525:3;18546:67;18610:2;18605:3;18546:67;:::i;:::-;18539:74;;18622:93;18711:3;18622:93;:::i;:::-;18740:2;18735:3;18731:12;18724:19;;18383:366;;;:::o;18755:419::-;18921:4;18959:2;18948:9;18944:18;18936:26;;19008:9;19002:4;18998:20;18994:1;18983:9;18979:17;18972:47;19036:131;19162:4;19036:131;:::i;:::-;19028:139;;18755:419;;;:::o;19180:220::-;19320:34;19316:1;19308:6;19304:14;19297:58;19389:3;19384:2;19376:6;19372:15;19365:28;19180:220;:::o;19406:366::-;19548:3;19569:67;19633:2;19628:3;19569:67;:::i;:::-;19562:74;;19645:93;19734:3;19645:93;:::i;:::-;19763:2;19758:3;19754:12;19747:19;;19406:366;;;:::o;19778:419::-;19944:4;19982:2;19971:9;19967:18;19959:26;;20031:9;20025:4;20021:20;20017:1;20006:9;20002:17;19995:47;20059:131;20185:4;20059:131;:::i;:::-;20051:139;;19778:419;;;:::o;20203:191::-;20243:3;20262:20;20280:1;20262:20;:::i;:::-;20257:25;;20296:20;20314:1;20296:20;:::i;:::-;20291:25;;20339:1;20336;20332:9;20325:16;;20360:3;20357:1;20354:10;20351:36;;;20367:18;;:::i;:::-;20351:36;20203:191;;;;:::o;20400:176::-;20540:28;20536:1;20528:6;20524:14;20517:52;20400:176;:::o;20582:366::-;20724:3;20745:67;20809:2;20804:3;20745:67;:::i;:::-;20738:74;;20821:93;20910:3;20821:93;:::i;:::-;20939:2;20934:3;20930:12;20923:19;;20582:366;;;:::o;20954:419::-;21120:4;21158:2;21147:9;21143:18;21135:26;;21207:9;21201:4;21197:20;21193:1;21182:9;21178:17;21171:47;21235:131;21361:4;21235:131;:::i;:::-;21227:139;;20954:419;;;:::o;21379:194::-;21419:4;21439:20;21457:1;21439:20;:::i;:::-;21434:25;;21473:20;21491:1;21473:20;:::i;:::-;21468:25;;21517:1;21514;21510:9;21502:17;;21541:1;21535:4;21532:11;21529:37;;;21546:18;;:::i;:::-;21529:37;21379:194;;;;:::o;21579:180::-;21627:77;21624:1;21617:88;21724:4;21721:1;21714:15;21748:4;21745:1;21738:15;21765:180;21813:77;21810:1;21803:88;21910:4;21907:1;21900:15;21934:4;21931:1;21924:15;21951:143;22008:5;22039:6;22033:13;22024:22;;22055:33;22082:5;22055:33;:::i;:::-;21951:143;;;;:::o;22100:351::-;22170:6;22219:2;22207:9;22198:7;22194:23;22190:32;22187:119;;;22225:79;;:::i;:::-;22187:119;22345:1;22370:64;22426:7;22417:6;22406:9;22402:22;22370:64;:::i;:::-;22360:74;;22316:128;22100:351;;;;:::o;22457:85::-;22502:7;22531:5;22520:16;;22457:85;;;:::o;22548:60::-;22576:3;22597:5;22590:12;;22548:60;;;:::o;22614:158::-;22672:9;22705:61;22723:42;22732:32;22758:5;22732:32;:::i;:::-;22723:42;:::i;:::-;22705:61;:::i;:::-;22692:74;;22614:158;;;:::o;22778:147::-;22873:45;22912:5;22873:45;:::i;:::-;22868:3;22861:58;22778:147;;:::o;22931:114::-;22998:6;23032:5;23026:12;23016:22;;22931:114;;;:::o;23051:184::-;23150:11;23184:6;23179:3;23172:19;23224:4;23219:3;23215:14;23200:29;;23051:184;;;;:::o;23241:132::-;23308:4;23331:3;23323:11;;23361:4;23356:3;23352:14;23344:22;;23241:132;;;:::o;23379:108::-;23456:24;23474:5;23456:24;:::i;:::-;23451:3;23444:37;23379:108;;:::o;23493:179::-;23562:10;23583:46;23625:3;23617:6;23583:46;:::i;:::-;23661:4;23656:3;23652:14;23638:28;;23493:179;;;;:::o;23678:113::-;23748:4;23780;23775:3;23771:14;23763:22;;23678:113;;;:::o;23827:732::-;23946:3;23975:54;24023:5;23975:54;:::i;:::-;24045:86;24124:6;24119:3;24045:86;:::i;:::-;24038:93;;24155:56;24205:5;24155:56;:::i;:::-;24234:7;24265:1;24250:284;24275:6;24272:1;24269:13;24250:284;;;24351:6;24345:13;24378:63;24437:3;24422:13;24378:63;:::i;:::-;24371:70;;24464:60;24517:6;24464:60;:::i;:::-;24454:70;;24310:224;24297:1;24294;24290:9;24285:14;;24250:284;;;24254:14;24550:3;24543:10;;23951:608;;;23827:732;;;;:::o;24565:831::-;24828:4;24866:3;24855:9;24851:19;24843:27;;24880:71;24948:1;24937:9;24933:17;24924:6;24880:71;:::i;:::-;24961:80;25037:2;25026:9;25022:18;25013:6;24961:80;:::i;:::-;25088:9;25082:4;25078:20;25073:2;25062:9;25058:18;25051:48;25116:108;25219:4;25210:6;25116:108;:::i;:::-;25108:116;;25234:72;25302:2;25291:9;25287:18;25278:6;25234:72;:::i;:::-;25316:73;25384:3;25373:9;25369:19;25360:6;25316:73;:::i;:::-;24565:831;;;;;;;;:::o;25402:180::-;25450:77;25447:1;25440:88;25547:4;25544:1;25537:15;25571:4;25568:1;25561:15;25588:185;25628:1;25645:20;25663:1;25645:20;:::i;:::-;25640:25;;25679:20;25697:1;25679:20;:::i;:::-;25674:25;;25718:1;25708:35;;25723:18;;:::i;:::-;25708:35;25765:1;25762;25758:9;25753:14;;25588:185;;;;:::o;25779:220::-;25919:34;25915:1;25907:6;25903:14;25896:58;25988:3;25983:2;25975:6;25971:15;25964:28;25779:220;:::o;26005:366::-;26147:3;26168:67;26232:2;26227:3;26168:67;:::i;:::-;26161:74;;26244:93;26333:3;26244:93;:::i;:::-;26362:2;26357:3;26353:12;26346:19;;26005:366;;;:::o;26377:419::-;26543:4;26581:2;26570:9;26566:18;26558:26;;26630:9;26624:4;26620:20;26616:1;26605:9;26601:17;26594:47;26658:131;26784:4;26658:131;:::i;:::-;26650:139;;26377:419;;;:::o;26802:177::-;26942:29;26938:1;26930:6;26926:14;26919:53;26802:177;:::o;26985:366::-;27127:3;27148:67;27212:2;27207:3;27148:67;:::i;:::-;27141:74;;27224:93;27313:3;27224:93;:::i;:::-;27342:2;27337:3;27333:12;27326:19;;26985:366;;;:::o;27357:419::-;27523:4;27561:2;27550:9;27546:18;27538:26;;27610:9;27604:4;27600:20;27596:1;27585:9;27581:17;27574:47;27638:131;27764:4;27638:131;:::i;:::-;27630:139;;27357:419;;;:::o
Swarm Source
ipfs://b66cac83cf845a8e86186e025b4c99e3ea38829311de97f38ee57b3130cb8412
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.