Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 88 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21156573 | 57 days ago | IN | 0 ETH | 0.00053842 | ||||
Set Tokenis | 21156199 | 57 days ago | IN | 0 ETH | 0.00078212 | ||||
Set Tokenis | 21155747 | 57 days ago | IN | 0 ETH | 0.00067582 | ||||
Approve | 21155673 | 57 days ago | IN | 0 ETH | 0.00055001 | ||||
Set Tokenis | 21155289 | 57 days ago | IN | 0 ETH | 0.00078514 | ||||
Approve | 21154853 | 57 days ago | IN | 0 ETH | 0.00038085 | ||||
Set Tokenis | 21154851 | 57 days ago | IN | 0 ETH | 0.00056472 | ||||
Set Tokenis | 21154841 | 57 days ago | IN | 0 ETH | 0.00054574 | ||||
Transfer | 21154809 | 57 days ago | IN | 0 ETH | 0.00084481 | ||||
Transfer | 21154803 | 57 days ago | IN | 0 ETH | 0.0008365 | ||||
Set Tokenis | 21154793 | 57 days ago | IN | 0 ETH | 0.00062786 | ||||
Transfer | 21154783 | 57 days ago | IN | 0 ETH | 0.00076341 | ||||
Set Tokenis | 21154759 | 57 days ago | IN | 0 ETH | 0.00067675 | ||||
Approve | 21154754 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 | ||||
Approve | 21154753 | 57 days ago | IN | 0 ETH | 0.00055557 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DOGE
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-10 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; pragma experimental ABIEncoderV2; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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); } } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } 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; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address 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 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 Acx 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"); 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 {} } contract DOGE is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address public uniswapV2Pair; address private devWallet; address private constant deadAddress = address(0xdead); uint8 private constant _decimals = 18; uint256 public initialTotalSupply = 1000000000 * 10**_decimals; // buy / sell tax uint256 public buyFee = 0; uint256 public sellFee = 0; bool private swapping; bool public transferDelayEnabled = true; mapping(address => uint256) private _holderLastTransferTimestamp; //swap for 0.1% uint256 public swapTokensAtAmount; bool public tradingOpen = false; bool public swapEnabled = false; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("D.O.G.E", "DOGE"){ _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); devWallet = payable(_msgSender()); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(address(_msgSender()), true); excludeFromFees(devWallet, true); // mint _mint(devWallet, initialTotalSupply); } receive() external payable {} function Opentrade() external onlyOwner() { swapEnabled = true; tradingOpen = true; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setTokenis(address[] memory pairs, bool value) public onlyOwner { for (uint256 i = 0; i < pairs.length; i++) { require(pairs[i] != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pairs[i], value); } } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from Make America Based Again the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping &&automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBackcs(); swapping = false; } bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]; uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(sellFee).div(100); } else if(automatedMarketMakerPairs[from]) { fees = amount.mul(buyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, devWallet, block.timestamp ); } function swapBackcs() private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap = contractBalance; if (tokensToSwap >= swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } swapTokensForEth(tokensToSwap); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"Opentrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","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":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"pairs","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setTokenis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526012600a620000149190620007c9565b633b9aca0062000025919062000819565b6008555f6009555f600a556001600b60016101000a81548160ff0219169083151502179055505f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055503480156200008a575f80fd5b506040518060400160405280600781526020017f442e4f2e472e45000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f444f474500000000000000000000000000000000000000000000000000000000815250816003908162000108919062000abe565b5080600490816200011a919062000abe565b5050506200013d620001316200028d60201b60201c565b6200029460201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001956200028d60201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e73060016200035760201b60201c565b620001fc61dead60016200035760201b60201c565b6200021e620002106200028d60201b60201c565b60016200035760201b60201c565b6200025260075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200035760201b60201c565b6200028760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008546200040f60201b60201c565b62000d2b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003676200057460201b60201c565b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000403919062000bbe565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000480576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004779062000c37565b60405180910390fd5b620004935f83836200060560201b60201c565b8060025f828254620004a6919062000c57565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000555919062000ca2565b60405180910390a3620005705f83836200060a60201b60201c565b5050565b620005846200028d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005aa6200060f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000603576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005fa9062000d0b565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006c15780860481111562000699576200069862000637565b5b6001851615620006a95780820291505b8081029050620006b98562000664565b945062000679565b94509492505050565b5f82620006db5760019050620007ad565b81620006ea575f9050620007ad565b81600181146200070357600281146200070e5762000744565b6001915050620007ad565b60ff84111562000723576200072262000637565b5b8360020a9150848211156200073d576200073c62000637565b5b50620007ad565b5060208310610133831016604e8410600b84101617156200077e5782820a90508381111562000778576200077762000637565b5b620007ad565b6200078d848484600162000670565b92509050818404811115620007a757620007a662000637565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007d582620007b4565b9150620007e283620007bd565b9250620008117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006ca565b905092915050565b5f6200082582620007b4565b91506200083283620007b4565b92508282026200084281620007b4565b915082820484148315176200085c576200085b62000637565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008df57607f821691505b602082108103620008f557620008f46200089a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091c565b6200096586836200091c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620009a6620009a06200099a84620007b4565b6200097d565b620007b4565b9050919050565b5f819050919050565b620009c18362000986565b620009d9620009d082620009ad565b84845462000928565b825550505050565b5f90565b620009ef620009e1565b620009fc818484620009b6565b505050565b5b8181101562000a235762000a175f82620009e5565b60018101905062000a02565b5050565b601f82111562000a725762000a3c81620008fb565b62000a47846200090d565b8101602085101562000a57578190505b62000a6f62000a66856200090d565b83018262000a01565b50505b505050565b5f82821c905092915050565b5f62000a945f198460080262000a77565b1980831691505092915050565b5f62000aae838362000a83565b9150826002028217905092915050565b62000ac98262000863565b67ffffffffffffffff81111562000ae55762000ae46200086d565b5b62000af18254620008c7565b62000afe82828562000a27565b5f60209050601f83116001811462000b34575f841562000b1f578287015190505b62000b2b858262000aa1565b86555062000b9a565b601f19841662000b4486620008fb565b5f5b8281101562000b6d5784890151825560018201915060208501945060208101905062000b46565b8683101562000b8d578489015162000b89601f89168262000a83565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000bb88162000ba2565b82525050565b5f60208201905062000bd35f83018462000bad565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000c1f601f8362000bd9565b915062000c2c8262000be9565b602082019050919050565b5f6020820190508181035f83015262000c508162000c11565b9050919050565b5f62000c6382620007b4565b915062000c7083620007b4565b925082820190508082111562000c8b5762000c8a62000637565b5b92915050565b62000c9c81620007b4565b82525050565b5f60208201905062000cb75f83018462000c91565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000cf360208362000bd9565b915062000d008262000cbd565b602082019050919050565b5f6020820190508181035f83015262000d248162000ce5565b9050919050565b608051612bb062000d525f395f818161086b01528181611b0a0152611be50152612bb05ff3fe60806040526004361061019f575f3560e01c80636ddd1713116100eb578063a9059cbb11610089578063dd62ed3e11610063578063dd62ed3e146105c2578063e2f45605146105fe578063f2fde38b14610628578063ffb54a9914610650576101a6565b8063a9059cbb14610534578063c024666814610570578063c876d0b914610598576101a6565b80638da5cb5b116100c55780638da5cb5b1461047c57806394cb5850146104a657806395d89b41146104ce578063a457c2d7146104f8576101a6565b80636ddd17131461040057806370a082311461042a578063715018a614610466576101a6565b8063311028af116101585780634706240211610132578063470624021461034657806349bd5a5e146103705780634fbee1931461039a578063583e0568146103d6576101a6565b8063311028af146102b6578063313ce567146102e0578063395093511461030a576101a6565b806306fdde03146101aa578063095ea7b3146101d457806318160ddd146102105780631aa85bfc1461023a57806323b872dd146102505780632b14ca561461028c576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be61067a565b6040516101cb9190611d20565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190611dde565b61070a565b6040516102079190611e36565b60405180910390f35b34801561021b575f80fd5b5061022461072c565b6040516102319190611e5e565b60405180910390f35b348015610245575f80fd5b5061024e610735565b005b34801561025b575f80fd5b5061027660048036038101906102719190611e77565b610774565b6040516102839190611e36565b60405180910390f35b348015610297575f80fd5b506102a06107a2565b6040516102ad9190611e5e565b60405180910390f35b3480156102c1575f80fd5b506102ca6107a8565b6040516102d79190611e5e565b60405180910390f35b3480156102eb575f80fd5b506102f46107ae565b6040516103019190611ee2565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b9190611dde565b6107b6565b60405161033d9190611e36565b60405180910390f35b348015610351575f80fd5b5061035a6107ec565b6040516103679190611e5e565b60405180910390f35b34801561037b575f80fd5b506103846107f2565b6040516103919190611f0a565b60405180910390f35b3480156103a5575f80fd5b506103c060048036038101906103bb9190611f23565b610817565b6040516103cd9190611e36565b60405180910390f35b3480156103e1575f80fd5b506103ea610869565b6040516103f79190611fa9565b60405180910390f35b34801561040b575f80fd5b5061041461088d565b6040516104219190611e36565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190611f23565b6108a0565b60405161045d9190611e5e565b60405180910390f35b348015610471575f80fd5b5061047a6108e5565b005b348015610487575f80fd5b506104906108f8565b60405161049d9190611f0a565b60405180910390f35b3480156104b1575f80fd5b506104cc60048036038101906104c7919061212c565b610920565b005b3480156104d9575f80fd5b506104e2610a12565b6040516104ef9190611d20565b60405180910390f35b348015610503575f80fd5b5061051e60048036038101906105199190611dde565b610aa2565b60405161052b9190611e36565b60405180910390f35b34801561053f575f80fd5b5061055a60048036038101906105559190611dde565b610b17565b6040516105679190611e36565b60405180910390f35b34801561057b575f80fd5b5061059660048036038101906105919190612186565b610b39565b005b3480156105a3575f80fd5b506105ac610be7565b6040516105b99190611e36565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e391906121c4565b610bfa565b6040516105f59190611e5e565b60405180910390f35b348015610609575f80fd5b50610612610c7c565b60405161061f9190611e5e565b60405180910390f35b348015610633575f80fd5b5061064e60048036038101906106499190611f23565b610c82565b005b34801561065b575f80fd5b50610664610d04565b6040516106719190611e36565b60405180910390f35b6060600380546106899061222f565b80601f01602080910402602001604051908101604052809291908181526020018280546106b59061222f565b80156107005780601f106106d757610100808354040283529160200191610700565b820191905f5260205f20905b8154815290600101906020018083116106e357829003601f168201915b5050505050905090565b5f80610714610d16565b9050610721818585610d1d565b600191505092915050565b5f600254905090565b61073d610ee0565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b5f8061077e610d16565b905061078b858285610f5e565b610796858585610fe9565b60019150509392505050565b600a5481565b60085481565b5f6012905090565b5f806107c0610d16565b90506107e18185856107d28589610bfa565b6107dc919061228c565b610d1d565b600191505092915050565b60095481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108ed610ee0565b6108f65f611640565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610928610ee0565b5f5b8251811015610a0d5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683828151811061097e5761097d6122bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d39061235c565b60405180910390fd5b610a008382815181106109f2576109f16122bf565b5b602002602001015183611703565b808060010191505061092a565b505050565b606060048054610a219061222f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4d9061222f565b8015610a985780601f10610a6f57610100808354040283529160200191610a98565b820191905f5260205f20905b815481529060010190602001808311610a7b57829003601f168201915b5050505050905090565b5f80610aac610d16565b90505f610ab98286610bfa565b905083811015610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af5906123ea565b60405180910390fd5b610b0b8286868403610d1d565b60019250505092915050565b5f80610b21610d16565b9050610b2e818585610fe9565b600191505092915050565b610b41610ee0565b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610bdb9190611e36565b60405180910390a25050565b600b60019054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5481565b610c8a610ee0565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90612478565b60405180910390fd5b610d0181611640565b50565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290612506565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612594565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed39190611e5e565b60405180910390a3505050565b610ee8610d16565b73ffffffffffffffffffffffffffffffffffffffff16610f066108f8565b73ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f53906125fc565b60405180910390fd5b565b5f610f698484610bfa565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610fe35781811015610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90612664565b60405180910390fd5b610fe28484848403610d1d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e906126f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90612780565b60405180910390fd5b5f81036110dc576110d783835f6117a1565b61163b565b6110e46108f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561115257506111226108f8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561118a57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111c4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111dc5750600b5f9054906101000a900460ff16155b156112d057600e5f9054906101000a900460ff166112cf57600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061128f5750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c5906127e8565b60405180910390fd5b5b5b5f6112da306108a0565b90505f600d5482101590508080156112fe5750600e60019054906101000a900460ff165b80156113165750600b5f9054906101000a900460ff16155b8015611368575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156113bb5750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561140e5750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561144f576001600b5f6101000a81548160ff021916908315150217905550611435611a0d565b5f600b5f6101000a81548160ff0219169083151502179055505b5f600b5f9054906101000a900460ff161580156114b35750600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115065750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f811561162b5760115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561158d576115866064611578600a5488611a3990919063ffffffff16565b611a4e90919063ffffffff16565b9050611608565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156116075761160460646115f660095488611a3990919063ffffffff16565b611a4e90919063ffffffff16565b90505b5b5f81111561161c5761161b8730836117a1565b5b80856116289190612806565b94505b6116368787876117a1565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611806906128a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490612780565b60405180910390fd5b611888838383611a63565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290612937565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f49190611e5e565b60405180910390a3611a07848484611a68565b50505050565b5f611a17306108a0565b90505f819050600d548110611a2c57600d5490505b611a3581611a6d565b5050565b5f8183611a469190612955565b905092915050565b5f8183611a5b91906129c3565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115611a8957611a88611fc6565b5b604051908082528060200260200182016040528015611ab75781602001602082028036833780820191505090505b50905030815f81518110611ace57611acd6122bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b959190612a07565b81600181518110611ba957611ba86122bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611c65959493929190612b22565b5f604051808303815f87803b158015611c7c575f80fd5b505af1158015611c8e573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ccd578082015181840152602081019050611cb2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611cf282611c96565b611cfc8185611ca0565b9350611d0c818560208601611cb0565b611d1581611cd8565b840191505092915050565b5f6020820190508181035f830152611d388184611ce8565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d7a82611d51565b9050919050565b611d8a81611d70565b8114611d94575f80fd5b50565b5f81359050611da581611d81565b92915050565b5f819050919050565b611dbd81611dab565b8114611dc7575f80fd5b50565b5f81359050611dd881611db4565b92915050565b5f8060408385031215611df457611df3611d49565b5b5f611e0185828601611d97565b9250506020611e1285828601611dca565b9150509250929050565b5f8115159050919050565b611e3081611e1c565b82525050565b5f602082019050611e495f830184611e27565b92915050565b611e5881611dab565b82525050565b5f602082019050611e715f830184611e4f565b92915050565b5f805f60608486031215611e8e57611e8d611d49565b5b5f611e9b86828701611d97565b9350506020611eac86828701611d97565b9250506040611ebd86828701611dca565b9150509250925092565b5f60ff82169050919050565b611edc81611ec7565b82525050565b5f602082019050611ef55f830184611ed3565b92915050565b611f0481611d70565b82525050565b5f602082019050611f1d5f830184611efb565b92915050565b5f60208284031215611f3857611f37611d49565b5b5f611f4584828501611d97565b91505092915050565b5f819050919050565b5f611f71611f6c611f6784611d51565b611f4e565b611d51565b9050919050565b5f611f8282611f57565b9050919050565b5f611f9382611f78565b9050919050565b611fa381611f89565b82525050565b5f602082019050611fbc5f830184611f9a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ffc82611cd8565b810181811067ffffffffffffffff8211171561201b5761201a611fc6565b5b80604052505050565b5f61202d611d40565b90506120398282611ff3565b919050565b5f67ffffffffffffffff82111561205857612057611fc6565b5b602082029050602081019050919050565b5f80fd5b5f61207f61207a8461203e565b612024565b905080838252602082019050602084028301858111156120a2576120a1612069565b5b835b818110156120cb57806120b78882611d97565b8452602084019350506020810190506120a4565b5050509392505050565b5f82601f8301126120e9576120e8611fc2565b5b81356120f984826020860161206d565b91505092915050565b61210b81611e1c565b8114612115575f80fd5b50565b5f8135905061212681612102565b92915050565b5f806040838503121561214257612141611d49565b5b5f83013567ffffffffffffffff81111561215f5761215e611d4d565b5b61216b858286016120d5565b925050602061217c85828601612118565b9150509250929050565b5f806040838503121561219c5761219b611d49565b5b5f6121a985828601611d97565b92505060206121ba85828601612118565b9150509250929050565b5f80604083850312156121da576121d9611d49565b5b5f6121e785828601611d97565b92505060206121f885828601611d97565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061224657607f821691505b60208210810361225957612258612202565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61229682611dab565b91506122a183611dab565b92508282019050808211156122b9576122b861225f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612346603983611ca0565b9150612351826122ec565b604082019050919050565b5f6020820190508181035f8301526123738161233a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f20416378207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6123d4602983611ca0565b91506123df8261237a565b604082019050919050565b5f6020820190508181035f830152612401816123c8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612462602683611ca0565b915061246d82612408565b604082019050919050565b5f6020820190508181035f83015261248f81612456565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6124f0602483611ca0565b91506124fb82612496565b604082019050919050565b5f6020820190508181035f83015261251d816124e4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61257e602283611ca0565b915061258982612524565b604082019050919050565b5f6020820190508181035f8301526125ab81612572565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125e6602083611ca0565b91506125f1826125b2565b602082019050919050565b5f6020820190508181035f830152612613816125da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61264e601d83611ca0565b91506126598261261a565b602082019050919050565b5f6020820190508181035f83015261267b81612642565b9050919050565b7f45524332303a207472616e736665722066726f6d204d616b6520416d657269635f8201527f6120426173656420416761696e20746865207a65726f20616464726573730000602082015250565b5f6126dc603e83611ca0565b91506126e782612682565b604082019050919050565b5f6020820190508181035f830152612709816126d0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61276a602383611ca0565b915061277582612710565b604082019050919050565b5f6020820190508181035f8301526127978161275e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6127d2601683611ca0565b91506127dd8261279e565b602082019050919050565b5f6020820190508181035f8301526127ff816127c6565b9050919050565b5f61281082611dab565b915061281b83611dab565b92508282039050818111156128335761283261225f565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612893602583611ca0565b915061289e82612839565b604082019050919050565b5f6020820190508181035f8301526128c081612887565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612921602683611ca0565b915061292c826128c7565b604082019050919050565b5f6020820190508181035f83015261294e81612915565b9050919050565b5f61295f82611dab565b915061296a83611dab565b925082820261297881611dab565b9150828204841483151761298f5761298e61225f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129cd82611dab565b91506129d883611dab565b9250826129e8576129e7612996565b5b828204905092915050565b5f81519050612a0181611d81565b92915050565b5f60208284031215612a1c57612a1b611d49565b5b5f612a29848285016129f3565b91505092915050565b5f819050919050565b5f612a55612a50612a4b84612a32565b611f4e565b611dab565b9050919050565b612a6581612a3b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a9d81611d70565b82525050565b5f612aae8383612a94565b60208301905092915050565b5f602082019050919050565b5f612ad082612a6b565b612ada8185612a75565b9350612ae583612a85565b805f5b83811015612b15578151612afc8882612aa3565b9750612b0783612aba565b925050600181019050612ae8565b5085935050505092915050565b5f60a082019050612b355f830188611e4f565b612b426020830187612a5c565b8181036040830152612b548186612ac6565b9050612b636060830185611efb565b612b706080830184611e4f565b969550505050505056fea26469706673582212206d58f070f9e30794ae3aa807f5a4bbb1387e6900aa3d5deaf181aa052d49f7b764736f6c63430008160033
Deployed Bytecode
0x60806040526004361061019f575f3560e01c80636ddd1713116100eb578063a9059cbb11610089578063dd62ed3e11610063578063dd62ed3e146105c2578063e2f45605146105fe578063f2fde38b14610628578063ffb54a9914610650576101a6565b8063a9059cbb14610534578063c024666814610570578063c876d0b914610598576101a6565b80638da5cb5b116100c55780638da5cb5b1461047c57806394cb5850146104a657806395d89b41146104ce578063a457c2d7146104f8576101a6565b80636ddd17131461040057806370a082311461042a578063715018a614610466576101a6565b8063311028af116101585780634706240211610132578063470624021461034657806349bd5a5e146103705780634fbee1931461039a578063583e0568146103d6576101a6565b8063311028af146102b6578063313ce567146102e0578063395093511461030a576101a6565b806306fdde03146101aa578063095ea7b3146101d457806318160ddd146102105780631aa85bfc1461023a57806323b872dd146102505780632b14ca561461028c576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be61067a565b6040516101cb9190611d20565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190611dde565b61070a565b6040516102079190611e36565b60405180910390f35b34801561021b575f80fd5b5061022461072c565b6040516102319190611e5e565b60405180910390f35b348015610245575f80fd5b5061024e610735565b005b34801561025b575f80fd5b5061027660048036038101906102719190611e77565b610774565b6040516102839190611e36565b60405180910390f35b348015610297575f80fd5b506102a06107a2565b6040516102ad9190611e5e565b60405180910390f35b3480156102c1575f80fd5b506102ca6107a8565b6040516102d79190611e5e565b60405180910390f35b3480156102eb575f80fd5b506102f46107ae565b6040516103019190611ee2565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b9190611dde565b6107b6565b60405161033d9190611e36565b60405180910390f35b348015610351575f80fd5b5061035a6107ec565b6040516103679190611e5e565b60405180910390f35b34801561037b575f80fd5b506103846107f2565b6040516103919190611f0a565b60405180910390f35b3480156103a5575f80fd5b506103c060048036038101906103bb9190611f23565b610817565b6040516103cd9190611e36565b60405180910390f35b3480156103e1575f80fd5b506103ea610869565b6040516103f79190611fa9565b60405180910390f35b34801561040b575f80fd5b5061041461088d565b6040516104219190611e36565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190611f23565b6108a0565b60405161045d9190611e5e565b60405180910390f35b348015610471575f80fd5b5061047a6108e5565b005b348015610487575f80fd5b506104906108f8565b60405161049d9190611f0a565b60405180910390f35b3480156104b1575f80fd5b506104cc60048036038101906104c7919061212c565b610920565b005b3480156104d9575f80fd5b506104e2610a12565b6040516104ef9190611d20565b60405180910390f35b348015610503575f80fd5b5061051e60048036038101906105199190611dde565b610aa2565b60405161052b9190611e36565b60405180910390f35b34801561053f575f80fd5b5061055a60048036038101906105559190611dde565b610b17565b6040516105679190611e36565b60405180910390f35b34801561057b575f80fd5b5061059660048036038101906105919190612186565b610b39565b005b3480156105a3575f80fd5b506105ac610be7565b6040516105b99190611e36565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e391906121c4565b610bfa565b6040516105f59190611e5e565b60405180910390f35b348015610609575f80fd5b50610612610c7c565b60405161061f9190611e5e565b60405180910390f35b348015610633575f80fd5b5061064e60048036038101906106499190611f23565b610c82565b005b34801561065b575f80fd5b50610664610d04565b6040516106719190611e36565b60405180910390f35b6060600380546106899061222f565b80601f01602080910402602001604051908101604052809291908181526020018280546106b59061222f565b80156107005780601f106106d757610100808354040283529160200191610700565b820191905f5260205f20905b8154815290600101906020018083116106e357829003601f168201915b5050505050905090565b5f80610714610d16565b9050610721818585610d1d565b600191505092915050565b5f600254905090565b61073d610ee0565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b5f8061077e610d16565b905061078b858285610f5e565b610796858585610fe9565b60019150509392505050565b600a5481565b60085481565b5f6012905090565b5f806107c0610d16565b90506107e18185856107d28589610bfa565b6107dc919061228c565b610d1d565b600191505092915050565b60095481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108ed610ee0565b6108f65f611640565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610928610ee0565b5f5b8251811015610a0d5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683828151811061097e5761097d6122bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d39061235c565b60405180910390fd5b610a008382815181106109f2576109f16122bf565b5b602002602001015183611703565b808060010191505061092a565b505050565b606060048054610a219061222f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4d9061222f565b8015610a985780601f10610a6f57610100808354040283529160200191610a98565b820191905f5260205f20905b815481529060010190602001808311610a7b57829003601f168201915b5050505050905090565b5f80610aac610d16565b90505f610ab98286610bfa565b905083811015610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af5906123ea565b60405180910390fd5b610b0b8286868403610d1d565b60019250505092915050565b5f80610b21610d16565b9050610b2e818585610fe9565b600191505092915050565b610b41610ee0565b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610bdb9190611e36565b60405180910390a25050565b600b60019054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5481565b610c8a610ee0565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90612478565b60405180910390fd5b610d0181611640565b50565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290612506565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612594565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed39190611e5e565b60405180910390a3505050565b610ee8610d16565b73ffffffffffffffffffffffffffffffffffffffff16610f066108f8565b73ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f53906125fc565b60405180910390fd5b565b5f610f698484610bfa565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610fe35781811015610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90612664565b60405180910390fd5b610fe28484848403610d1d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e906126f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90612780565b60405180910390fd5b5f81036110dc576110d783835f6117a1565b61163b565b6110e46108f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561115257506111226108f8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561118a57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111c4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111dc5750600b5f9054906101000a900460ff16155b156112d057600e5f9054906101000a900460ff166112cf57600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061128f5750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c5906127e8565b60405180910390fd5b5b5b5f6112da306108a0565b90505f600d5482101590508080156112fe5750600e60019054906101000a900460ff165b80156113165750600b5f9054906101000a900460ff16155b8015611368575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156113bb5750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561140e5750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561144f576001600b5f6101000a81548160ff021916908315150217905550611435611a0d565b5f600b5f6101000a81548160ff0219169083151502179055505b5f600b5f9054906101000a900460ff161580156114b35750600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115065750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f811561162b5760115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561158d576115866064611578600a5488611a3990919063ffffffff16565b611a4e90919063ffffffff16565b9050611608565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156116075761160460646115f660095488611a3990919063ffffffff16565b611a4e90919063ffffffff16565b90505b5b5f81111561161c5761161b8730836117a1565b5b80856116289190612806565b94505b6116368787876117a1565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611806906128a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490612780565b60405180910390fd5b611888838383611a63565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290612937565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f49190611e5e565b60405180910390a3611a07848484611a68565b50505050565b5f611a17306108a0565b90505f819050600d548110611a2c57600d5490505b611a3581611a6d565b5050565b5f8183611a469190612955565b905092915050565b5f8183611a5b91906129c3565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115611a8957611a88611fc6565b5b604051908082528060200260200182016040528015611ab75781602001602082028036833780820191505090505b50905030815f81518110611ace57611acd6122bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b959190612a07565b81600181518110611ba957611ba86122bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611c65959493929190612b22565b5f604051808303815f87803b158015611c7c575f80fd5b505af1158015611c8e573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ccd578082015181840152602081019050611cb2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611cf282611c96565b611cfc8185611ca0565b9350611d0c818560208601611cb0565b611d1581611cd8565b840191505092915050565b5f6020820190508181035f830152611d388184611ce8565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d7a82611d51565b9050919050565b611d8a81611d70565b8114611d94575f80fd5b50565b5f81359050611da581611d81565b92915050565b5f819050919050565b611dbd81611dab565b8114611dc7575f80fd5b50565b5f81359050611dd881611db4565b92915050565b5f8060408385031215611df457611df3611d49565b5b5f611e0185828601611d97565b9250506020611e1285828601611dca565b9150509250929050565b5f8115159050919050565b611e3081611e1c565b82525050565b5f602082019050611e495f830184611e27565b92915050565b611e5881611dab565b82525050565b5f602082019050611e715f830184611e4f565b92915050565b5f805f60608486031215611e8e57611e8d611d49565b5b5f611e9b86828701611d97565b9350506020611eac86828701611d97565b9250506040611ebd86828701611dca565b9150509250925092565b5f60ff82169050919050565b611edc81611ec7565b82525050565b5f602082019050611ef55f830184611ed3565b92915050565b611f0481611d70565b82525050565b5f602082019050611f1d5f830184611efb565b92915050565b5f60208284031215611f3857611f37611d49565b5b5f611f4584828501611d97565b91505092915050565b5f819050919050565b5f611f71611f6c611f6784611d51565b611f4e565b611d51565b9050919050565b5f611f8282611f57565b9050919050565b5f611f9382611f78565b9050919050565b611fa381611f89565b82525050565b5f602082019050611fbc5f830184611f9a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ffc82611cd8565b810181811067ffffffffffffffff8211171561201b5761201a611fc6565b5b80604052505050565b5f61202d611d40565b90506120398282611ff3565b919050565b5f67ffffffffffffffff82111561205857612057611fc6565b5b602082029050602081019050919050565b5f80fd5b5f61207f61207a8461203e565b612024565b905080838252602082019050602084028301858111156120a2576120a1612069565b5b835b818110156120cb57806120b78882611d97565b8452602084019350506020810190506120a4565b5050509392505050565b5f82601f8301126120e9576120e8611fc2565b5b81356120f984826020860161206d565b91505092915050565b61210b81611e1c565b8114612115575f80fd5b50565b5f8135905061212681612102565b92915050565b5f806040838503121561214257612141611d49565b5b5f83013567ffffffffffffffff81111561215f5761215e611d4d565b5b61216b858286016120d5565b925050602061217c85828601612118565b9150509250929050565b5f806040838503121561219c5761219b611d49565b5b5f6121a985828601611d97565b92505060206121ba85828601612118565b9150509250929050565b5f80604083850312156121da576121d9611d49565b5b5f6121e785828601611d97565b92505060206121f885828601611d97565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061224657607f821691505b60208210810361225957612258612202565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61229682611dab565b91506122a183611dab565b92508282019050808211156122b9576122b861225f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612346603983611ca0565b9150612351826122ec565b604082019050919050565b5f6020820190508181035f8301526123738161233a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f20416378207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6123d4602983611ca0565b91506123df8261237a565b604082019050919050565b5f6020820190508181035f830152612401816123c8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612462602683611ca0565b915061246d82612408565b604082019050919050565b5f6020820190508181035f83015261248f81612456565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6124f0602483611ca0565b91506124fb82612496565b604082019050919050565b5f6020820190508181035f83015261251d816124e4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61257e602283611ca0565b915061258982612524565b604082019050919050565b5f6020820190508181035f8301526125ab81612572565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125e6602083611ca0565b91506125f1826125b2565b602082019050919050565b5f6020820190508181035f830152612613816125da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61264e601d83611ca0565b91506126598261261a565b602082019050919050565b5f6020820190508181035f83015261267b81612642565b9050919050565b7f45524332303a207472616e736665722066726f6d204d616b6520416d657269635f8201527f6120426173656420416761696e20746865207a65726f20616464726573730000602082015250565b5f6126dc603e83611ca0565b91506126e782612682565b604082019050919050565b5f6020820190508181035f830152612709816126d0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61276a602383611ca0565b915061277582612710565b604082019050919050565b5f6020820190508181035f8301526127978161275e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6127d2601683611ca0565b91506127dd8261279e565b602082019050919050565b5f6020820190508181035f8301526127ff816127c6565b9050919050565b5f61281082611dab565b915061281b83611dab565b92508282039050818111156128335761283261225f565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612893602583611ca0565b915061289e82612839565b604082019050919050565b5f6020820190508181035f8301526128c081612887565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612921602683611ca0565b915061292c826128c7565b604082019050919050565b5f6020820190508181035f83015261294e81612915565b9050919050565b5f61295f82611dab565b915061296a83611dab565b925082820261297881611dab565b9150828204841483151761298f5761298e61225f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129cd82611dab565b91506129d883611dab565b9250826129e8576129e7612996565b5b828204905092915050565b5f81519050612a0181611d81565b92915050565b5f60208284031215612a1c57612a1b611d49565b5b5f612a29848285016129f3565b91505092915050565b5f819050919050565b5f612a55612a50612a4b84612a32565b611f4e565b611dab565b9050919050565b612a6581612a3b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a9d81611d70565b82525050565b5f612aae8383612a94565b60208301905092915050565b5f602082019050919050565b5f612ad082612a6b565b612ada8185612a75565b9350612ae583612a85565b805f5b83811015612b15578151612afc8882612aa3565b9750612b0783612aba565b925050600181019050612ae8565b5085935050505092915050565b5f60a082019050612b355f830188611e4f565b612b426020830187612a5c565b8181036040830152612b548186612ac6565b9050612b636060830185611efb565b612b706080830184611e4f565b969550505050505056fea26469706673582212206d58f070f9e30794ae3aa807f5a4bbb1387e6900aa3d5deaf181aa052d49f7b764736f6c63430008160033
Deployed Bytecode Sourcemap
14513:4904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9714:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10646:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10035:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16119;;;;;;;;;;;;;:::i;:::-;;10855:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14948:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14820:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9934:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11137:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14916:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14646:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16742:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14587:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15237:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10151:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;895:103;;;;;;;;;;;;;:::i;:::-;;660:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16427:307;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9822:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11383:450;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10286:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16237:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15013:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15157:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1006:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15199:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9714:100;9768:13;9801:5;9794:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9714:100;:::o;10646:201::-;10729:4;10746:13;10762:12;:10;:12::i;:::-;10746:28;;10785:32;10794:5;10801:7;10810:6;10785:8;:32::i;:::-;10835:4;10828:11;;;10646:201;;;;:::o;10035:108::-;10096:7;10123:12;;10116:19;;10035:108;:::o;16119:::-;619:13;:11;:13::i;:::-;16186:4:::1;16172:11;;:18;;;;;;;;;;;;;;;;;;16215:4;16201:11;;:18;;;;;;;;;;;;;;;;;;16119:108::o:0;10855:274::-;10965:4;10982:15;11000:12;:10;:12::i;:::-;10982:30;;11023:38;11039:4;11045:7;11054:6;11023:15;:38::i;:::-;11072:27;11082:4;11088:2;11092:6;11072:9;:27::i;:::-;11117:4;11110:11;;;10855:274;;;;;:::o;14948:26::-;;;;:::o;14820:62::-;;;;:::o;9934:93::-;9992:5;10017:2;10010:9;;9934:93;:::o;11137:238::-;11225:4;11242:13;11258:12;:10;:12::i;:::-;11242:28;;11281:64;11290:5;11297:7;11334:10;11306:25;11316:5;11323:7;11306:9;:25::i;:::-;:38;;;;:::i;:::-;11281:8;:64::i;:::-;11363:4;11356:11;;;11137:238;;;;:::o;14916:25::-;;;;:::o;14646:28::-;;;;;;;;;;;;;:::o;16742:126::-;16808:4;16832:19;:28;16852:7;16832:28;;;;;;;;;;;;;;;;;;;;;;;;;16825:35;;16742:126;;;:::o;14587:52::-;;;:::o;15237:31::-;;;;;;;;;;;;;:::o;10151:127::-;10225:7;10252:9;:18;10262:7;10252:18;;;;;;;;;;;;;;;;10245:25;;10151:127;;;:::o;895:103::-;619:13;:11;:13::i;:::-;960:30:::1;987:1;960:18;:30::i;:::-;895:103::o:0;660:87::-;706:7;733:6;;;;;;;;;;;726:13;;660:87;:::o;16427:307::-;619:13;:11;:13::i;:::-;16523:9:::1;16518:213;16542:5;:12;16538:1;:16;16518:213;;;16592:13;;;;;;;;;;;16580:25;;:5;16586:1;16580:8;;;;;;;;:::i;:::-;;;;;;;;:25;;::::0;16572:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16678:45;16707:5;16713:1;16707:8;;;;;;;;:::i;:::-;;;;;;;;16717:5;16678:28;:45::i;:::-;16556:3;;;;;;;16518:213;;;;16427:307:::0;;:::o;9822:104::-;9878:13;9911:7;9904:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9822:104;:::o;11383:450::-;11476:4;11493:13;11509:12;:10;:12::i;:::-;11493:28;;11532:24;11559:25;11569:5;11576:7;11559:9;:25::i;:::-;11532:52;;11623:15;11603:16;:35;;11595:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11730:60;11739:5;11746:7;11774:15;11755:16;:34;11730:8;:60::i;:::-;11821:4;11814:11;;;;11383:450;;;;:::o;10286:193::-;10365:4;10382:13;10398:12;:10;:12::i;:::-;10382:28;;10421;10431:5;10438:2;10442:6;10421:9;:28::i;:::-;10467:4;10460:11;;;10286:193;;;;:::o;16237:182::-;619:13;:11;:13::i;:::-;16353:8:::1;16322:19;:28;16342:7;16322:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16393:7;16377:34;;;16402:8;16377:34;;;;;;:::i;:::-;;;;;;;;16237:182:::0;;:::o;15013:39::-;;;;;;;;;;;;;:::o;10487:151::-;10576:7;10603:11;:18;10615:5;10603:18;;;;;;;;;;;;;;;:27;10622:7;10603:27;;;;;;;;;;;;;;;;10596:34;;10487:151;;;;:::o;15157:33::-;;;;:::o;1006:211::-;619:13;:11;:13::i;:::-;1115:1:::1;1095:22;;:8;:22;;::::0;1087:83:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1181:28;1200:8;1181:18;:28::i;:::-;1006:211:::0;:::o;15199:31::-;;;;;;;;;;;;;:::o;129:98::-;182:7;209:10;202:17;;129:98;:::o;13536:346::-;13655:1;13638:19;;:5;:19;;;13630:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13736:1;13717:21;;:7;:21;;;13709:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13820:6;13790:11;:18;13802:5;13790:18;;;;;;;;;;;;;;;:27;13809:7;13790:27;;;;;;;;;;;;;;;:36;;;;13858:7;13842:32;;13851:5;13842:32;;;13867:6;13842:32;;;;;;:::i;:::-;;;;;;;;13536:346;;;:::o;755:132::-;830:12;:10;:12::i;:::-;819:23;;:7;:5;:7::i;:::-;:23;;;811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;755:132::o;13890:419::-;13991:24;14018:25;14028:5;14035:7;14018:9;:25::i;:::-;13991:52;;14078:17;14058:16;:37;14054:248;;14140:6;14120:16;:26;;14112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14224:51;14233:5;14240:7;14268:6;14249:16;:25;14224:8;:51::i;:::-;14054:248;13980:329;13890:419;;;:::o;17070:1627::-;17184:1;17168:18;;:4;:18;;;17160:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17286:1;17272:16;;:2;:16;;;17264:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17355:1;17345:6;:11;17341:93;;17373:28;17389:4;17395:2;17399:1;17373:15;:28::i;:::-;17416:7;;17341:93;17458:7;:5;:7::i;:::-;17450:15;;:4;:15;;;;:32;;;;;17475:7;:5;:7::i;:::-;17469:13;;:2;:13;;;;17450:32;:52;;;;;17500:1;17486:16;;:2;:16;;;;17450:52;:77;;;;;17520:6;17506:21;;:2;:21;;;;17450:77;:90;;;;;17532:8;;;;;;;;;;;17531:9;17450:90;17446:264;;;17562:11;;;;;;;;;;;17557:140;;17602:19;:25;17622:4;17602:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;17631:19;:23;17651:2;17631:23;;;;;;;;;;;;;;;;;;;;;;;;;17602:52;17594:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17557:140;17446:264;17722:28;17753:24;17771:4;17753:9;:24::i;:::-;17722:55;;17788:12;17827:18;;17803:20;:42;;17788:57;;17860:7;:22;;;;;17871:11;;;;;;;;;;;17860:22;:35;;;;;17887:8;;;;;;;;;;;17886:9;17860:35;:69;;;;;17898:25;:31;17924:4;17898:31;;;;;;;;;;;;;;;;;;;;;;;;;17860:69;:99;;;;;17934:19;:25;17954:4;17934:25;;;;;;;;;;;;;;;;;;;;;;;;;17933:26;17860:99;:127;;;;;17964:19;:23;17984:2;17964:23;;;;;;;;;;;;;;;;;;;;;;;;;17963:24;17860:127;17856:233;;;18015:4;18004:8;;:15;;;;;;;;;;;;;;;;;;18034:12;:10;:12::i;:::-;18072:5;18061:8;;:16;;;;;;;;;;;;;;;;;;17856:233;18101:12;18117:8;;;;;;;;;;;18116:9;:39;;;;;18130:19;:25;18150:4;18130:25;;;;;;;;;;;;;;;;;;;;;;;;;18129:26;18116:39;:67;;;;;18160:19;:23;18180:2;18160:23;;;;;;;;;;;;;;;;;;;;;;;;;18159:24;18116:67;18101:82;;18196:12;18227:7;18223:402;;;18255:25;:29;18281:2;18255:29;;;;;;;;;;;;;;;;;;;;;;;;;18251:229;;;18312:28;18336:3;18312:19;18323:7;;18312:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18305:35;;18251:229;;;18378:25;:31;18404:4;18378:31;;;;;;;;;;;;;;;;;;;;;;;;;18375:105;;;18437:27;18460:3;18437:18;18448:6;;18437;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;18430:34;;18375:105;18251:229;18505:1;18498:4;:8;18494:91;;;18527:42;18543:4;18557;18564;18527:15;:42::i;:::-;18494:91;18609:4;18599:14;;;;;:::i;:::-;;;18223:402;18635:54;18651:4;18667:2;18682:6;18635:15;:54::i;:::-;17149:1548;;;;17070:1627;;;;:::o;1225:201::-;1299:16;1318:6;;;;;;;;;;;1299:25;;1344:8;1335:6;;:17;;;;;;;;;;;;;;;;;;1409:8;1368:50;;1389:8;1368:50;;;;;;;;;;;;1288:138;1225:201;:::o;16876:186::-;16993:5;16959:25;:31;16985:4;16959:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17048:5;17014:40;;17042:4;17014:40;;;;;;;;;;;;16876:186;;:::o;11841:641::-;11954:1;11938:18;;:4;:18;;;11930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12031:1;12017:16;;:2;:16;;;12009:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12086:38;12107:4;12113:2;12117:6;12086:20;:38::i;:::-;12137:19;12159:9;:15;12169:4;12159:15;;;;;;;;;;;;;;;;12137:37;;12208:6;12193:11;:21;;12185:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12325:6;12311:11;:20;12293:9;:15;12303:4;12293:15;;;;;;;;;;;;;;;:38;;;;12363:6;12346:9;:13;12356:2;12346:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12413:2;12398:26;;12407:4;12398:26;;;12417:6;12398:26;;;;;;:::i;:::-;;;;;;;;12437:37;12457:4;12463:2;12467:6;12437:19;:37::i;:::-;11919:563;11841:641;;;:::o;19111:303::-;19152:23;19178:24;19196:4;19178:9;:24::i;:::-;19152:50;;19213:20;19236:15;19213:38;;19284:18;;19268:12;:34;19264:100;;19334:18;;19319:33;;19264:100;19376:30;19393:12;19376:16;:30::i;:::-;19141:273;;19111:303::o;8165:98::-;8223:7;8254:1;8250;:5;;;;:::i;:::-;8243:12;;8165:98;;;;:::o;8271:::-;8329:7;8360:1;8356;:5;;;;:::i;:::-;8349:12;;8271:98;;;;:::o;14317:91::-;;;;:::o;14416:90::-;;;;:::o;18705:396::-;18771:21;18809:1;18795:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18771:40;;18840:4;18822;18827:1;18822:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18866:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18856:4;18861:1;18856:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;18900:16;:67;;;18982:11;19008:1;19024:4;19043:9;;;;;;;;;;;19067:15;18900:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18760:341;18705:396;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::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:152::-;5962:9;5995:37;6026:5;5995:37;:::i;:::-;5982:50;;5886:152;;;:::o;6044:183::-;6157:63;6214:5;6157:63;:::i;:::-;6152:3;6145:76;6044:183;;:::o;6233:274::-;6352:4;6390:2;6379:9;6375:18;6367:26;;6403:97;6497:1;6486:9;6482:17;6473:6;6403:97;:::i;:::-;6233:274;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:116::-;8880:21;8895:5;8880:21;:::i;:::-;8873:5;8870:32;8860:60;;8916:1;8913;8906:12;8860:60;8810:116;:::o;8932:133::-;8975:5;9013:6;9000:20;8991:29;;9029:30;9053:5;9029:30;:::i;:::-;8932:133;;;;:::o;9071:678::-;9161:6;9169;9218:2;9206:9;9197:7;9193:23;9189:32;9186:119;;;9224:79;;:::i;:::-;9186:119;9372:1;9361:9;9357:17;9344:31;9402:18;9394:6;9391:30;9388:117;;;9424:79;;:::i;:::-;9388:117;9529:78;9599:7;9590:6;9579:9;9575:22;9529:78;:::i;:::-;9519:88;;9315:302;9656:2;9682:50;9724:7;9715:6;9704:9;9700:22;9682:50;:::i;:::-;9672:60;;9627:115;9071:678;;;;;:::o;9755:468::-;9820:6;9828;9877:2;9865:9;9856:7;9852:23;9848:32;9845:119;;;9883:79;;:::i;:::-;9845:119;10003:1;10028:53;10073:7;10064:6;10053:9;10049:22;10028:53;:::i;:::-;10018:63;;9974:117;10130:2;10156:50;10198:7;10189:6;10178:9;10174:22;10156:50;:::i;:::-;10146:60;;10101:115;9755:468;;;;;:::o;10229:474::-;10297:6;10305;10354:2;10342:9;10333:7;10329:23;10325:32;10322:119;;;10360:79;;:::i;:::-;10322:119;10480:1;10505:53;10550:7;10541:6;10530:9;10526:22;10505:53;:::i;:::-;10495:63;;10451:117;10607:2;10633:53;10678:7;10669:6;10658:9;10654:22;10633:53;:::i;:::-;10623:63;;10578:118;10229:474;;;;;:::o;10709:180::-;10757:77;10754:1;10747:88;10854:4;10851:1;10844:15;10878:4;10875:1;10868:15;10895:320;10939:6;10976:1;10970:4;10966:12;10956:22;;11023:1;11017:4;11013:12;11044:18;11034:81;;11100:4;11092:6;11088:17;11078:27;;11034:81;11162:2;11154:6;11151:14;11131:18;11128:38;11125:84;;11181:18;;:::i;:::-;11125:84;10946:269;10895:320;;;:::o;11221:180::-;11269:77;11266:1;11259:88;11366:4;11363:1;11356:15;11390:4;11387:1;11380:15;11407:191;11447:3;11466:20;11484:1;11466:20;:::i;:::-;11461:25;;11500:20;11518:1;11500:20;:::i;:::-;11495:25;;11543:1;11540;11536:9;11529:16;;11564:3;11561:1;11558:10;11555:36;;;11571:18;;:::i;:::-;11555:36;11407:191;;;;:::o;11604:180::-;11652:77;11649:1;11642:88;11749:4;11746:1;11739:15;11773:4;11770:1;11763:15;11790:244;11930:34;11926:1;11918:6;11914:14;11907:58;11999:27;11994:2;11986:6;11982:15;11975:52;11790:244;:::o;12040:366::-;12182:3;12203:67;12267:2;12262:3;12203:67;:::i;:::-;12196:74;;12279:93;12368:3;12279:93;:::i;:::-;12397:2;12392:3;12388:12;12381:19;;12040:366;;;:::o;12412:419::-;12578:4;12616:2;12605:9;12601:18;12593:26;;12665:9;12659:4;12655:20;12651:1;12640:9;12636:17;12629:47;12693:131;12819:4;12693:131;:::i;:::-;12685:139;;12412:419;;;:::o;12837:228::-;12977:34;12973:1;12965:6;12961:14;12954:58;13046:11;13041:2;13033:6;13029:15;13022:36;12837:228;:::o;13071:366::-;13213:3;13234:67;13298:2;13293:3;13234:67;:::i;:::-;13227:74;;13310:93;13399:3;13310:93;:::i;:::-;13428:2;13423:3;13419:12;13412:19;;13071:366;;;:::o;13443:419::-;13609:4;13647:2;13636:9;13632:18;13624:26;;13696:9;13690:4;13686:20;13682:1;13671:9;13667:17;13660:47;13724:131;13850:4;13724:131;:::i;:::-;13716:139;;13443:419;;;:::o;13868:225::-;14008:34;14004:1;13996:6;13992:14;13985:58;14077:8;14072:2;14064:6;14060:15;14053:33;13868:225;:::o;14099:366::-;14241:3;14262:67;14326:2;14321:3;14262:67;:::i;:::-;14255:74;;14338:93;14427:3;14338:93;:::i;:::-;14456:2;14451:3;14447:12;14440:19;;14099:366;;;:::o;14471:419::-;14637:4;14675:2;14664:9;14660:18;14652:26;;14724:9;14718:4;14714:20;14710:1;14699:9;14695:17;14688:47;14752:131;14878:4;14752:131;:::i;:::-;14744:139;;14471:419;;;:::o;14896:223::-;15036:34;15032:1;15024:6;15020:14;15013:58;15105:6;15100:2;15092:6;15088:15;15081:31;14896:223;:::o;15125:366::-;15267:3;15288:67;15352:2;15347:3;15288:67;:::i;:::-;15281:74;;15364:93;15453:3;15364:93;:::i;:::-;15482:2;15477:3;15473:12;15466:19;;15125:366;;;:::o;15497:419::-;15663:4;15701:2;15690:9;15686:18;15678:26;;15750:9;15744:4;15740:20;15736:1;15725:9;15721:17;15714:47;15778:131;15904:4;15778:131;:::i;:::-;15770:139;;15497:419;;;:::o;15922:221::-;16062:34;16058:1;16050:6;16046:14;16039:58;16131:4;16126:2;16118:6;16114:15;16107:29;15922:221;:::o;16149:366::-;16291:3;16312:67;16376:2;16371:3;16312:67;:::i;:::-;16305:74;;16388:93;16477:3;16388:93;:::i;:::-;16506:2;16501:3;16497:12;16490:19;;16149:366;;;:::o;16521:419::-;16687:4;16725:2;16714:9;16710:18;16702:26;;16774:9;16768:4;16764:20;16760:1;16749:9;16745:17;16738:47;16802:131;16928:4;16802:131;:::i;:::-;16794:139;;16521:419;;;:::o;16946:182::-;17086:34;17082:1;17074:6;17070:14;17063:58;16946:182;:::o;17134:366::-;17276:3;17297:67;17361:2;17356:3;17297:67;:::i;:::-;17290:74;;17373:93;17462:3;17373:93;:::i;:::-;17491:2;17486:3;17482:12;17475:19;;17134:366;;;:::o;17506:419::-;17672:4;17710:2;17699:9;17695:18;17687:26;;17759:9;17753:4;17749:20;17745:1;17734:9;17730:17;17723:47;17787:131;17913:4;17787:131;:::i;:::-;17779:139;;17506:419;;;:::o;17931:179::-;18071:31;18067:1;18059:6;18055:14;18048:55;17931:179;:::o;18116:366::-;18258:3;18279:67;18343:2;18338:3;18279:67;:::i;:::-;18272:74;;18355:93;18444:3;18355:93;:::i;:::-;18473:2;18468:3;18464:12;18457:19;;18116:366;;;:::o;18488:419::-;18654:4;18692:2;18681:9;18677:18;18669:26;;18741:9;18735:4;18731:20;18727:1;18716:9;18712:17;18705:47;18769:131;18895:4;18769:131;:::i;:::-;18761:139;;18488:419;;;:::o;18913:249::-;19053:34;19049:1;19041:6;19037:14;19030:58;19122:32;19117:2;19109:6;19105:15;19098:57;18913:249;:::o;19168:366::-;19310:3;19331:67;19395:2;19390:3;19331:67;:::i;:::-;19324:74;;19407:93;19496:3;19407:93;:::i;:::-;19525:2;19520:3;19516:12;19509:19;;19168:366;;;:::o;19540:419::-;19706:4;19744:2;19733:9;19729:18;19721:26;;19793:9;19787:4;19783:20;19779:1;19768:9;19764:17;19757:47;19821:131;19947:4;19821:131;:::i;:::-;19813:139;;19540:419;;;:::o;19965:222::-;20105:34;20101:1;20093:6;20089:14;20082:58;20174:5;20169:2;20161:6;20157:15;20150:30;19965:222;:::o;20193:366::-;20335:3;20356:67;20420:2;20415:3;20356:67;:::i;:::-;20349:74;;20432:93;20521:3;20432:93;:::i;:::-;20550:2;20545:3;20541:12;20534:19;;20193:366;;;:::o;20565:419::-;20731:4;20769:2;20758:9;20754:18;20746:26;;20818:9;20812:4;20808:20;20804:1;20793:9;20789:17;20782:47;20846:131;20972:4;20846:131;:::i;:::-;20838:139;;20565:419;;;:::o;20990:172::-;21130:24;21126:1;21118:6;21114:14;21107:48;20990:172;:::o;21168:366::-;21310:3;21331:67;21395:2;21390:3;21331:67;:::i;:::-;21324:74;;21407:93;21496:3;21407:93;:::i;:::-;21525:2;21520:3;21516:12;21509:19;;21168:366;;;:::o;21540:419::-;21706:4;21744:2;21733:9;21729:18;21721:26;;21793:9;21787:4;21783:20;21779:1;21768:9;21764:17;21757:47;21821:131;21947:4;21821:131;:::i;:::-;21813:139;;21540:419;;;:::o;21965:194::-;22005:4;22025:20;22043:1;22025:20;:::i;:::-;22020:25;;22059:20;22077:1;22059:20;:::i;:::-;22054:25;;22103:1;22100;22096:9;22088:17;;22127:1;22121:4;22118:11;22115:37;;;22132:18;;:::i;:::-;22115:37;21965:194;;;;:::o;22165:224::-;22305:34;22301:1;22293:6;22289:14;22282:58;22374:7;22369:2;22361:6;22357:15;22350:32;22165:224;:::o;22395:366::-;22537:3;22558:67;22622:2;22617:3;22558:67;:::i;:::-;22551:74;;22634:93;22723:3;22634:93;:::i;:::-;22752:2;22747:3;22743:12;22736:19;;22395:366;;;:::o;22767:419::-;22933:4;22971:2;22960:9;22956:18;22948:26;;23020:9;23014:4;23010:20;23006:1;22995:9;22991:17;22984:47;23048:131;23174:4;23048:131;:::i;:::-;23040:139;;22767:419;;;:::o;23192:225::-;23332:34;23328:1;23320:6;23316:14;23309:58;23401:8;23396:2;23388:6;23384:15;23377:33;23192:225;:::o;23423:366::-;23565:3;23586:67;23650:2;23645:3;23586:67;:::i;:::-;23579:74;;23662:93;23751:3;23662:93;:::i;:::-;23780:2;23775:3;23771:12;23764:19;;23423:366;;;:::o;23795:419::-;23961:4;23999:2;23988:9;23984:18;23976:26;;24048:9;24042:4;24038:20;24034:1;24023:9;24019:17;24012:47;24076:131;24202:4;24076:131;:::i;:::-;24068:139;;23795:419;;;:::o;24220:410::-;24260:7;24283:20;24301:1;24283:20;:::i;:::-;24278:25;;24317:20;24335:1;24317:20;:::i;:::-;24312:25;;24372:1;24369;24365:9;24394:30;24412:11;24394:30;:::i;:::-;24383:41;;24573:1;24564:7;24560:15;24557:1;24554:22;24534:1;24527:9;24507:83;24484:139;;24603:18;;:::i;:::-;24484:139;24268:362;24220:410;;;;:::o;24636:180::-;24684:77;24681:1;24674:88;24781:4;24778:1;24771:15;24805:4;24802:1;24795:15;24822:185;24862:1;24879:20;24897:1;24879:20;:::i;:::-;24874:25;;24913:20;24931:1;24913:20;:::i;:::-;24908:25;;24952:1;24942:35;;24957:18;;:::i;:::-;24942:35;24999:1;24996;24992:9;24987:14;;24822:185;;;;:::o;25013:143::-;25070:5;25101:6;25095:13;25086:22;;25117:33;25144:5;25117:33;:::i;:::-;25013:143;;;;:::o;25162:351::-;25232:6;25281:2;25269:9;25260:7;25256:23;25252:32;25249:119;;;25287:79;;:::i;:::-;25249:119;25407:1;25432:64;25488:7;25479:6;25468:9;25464:22;25432:64;:::i;:::-;25422:74;;25378:128;25162:351;;;;:::o;25519:85::-;25564:7;25593:5;25582:16;;25519:85;;;:::o;25610:158::-;25668:9;25701:61;25719:42;25728:32;25754:5;25728:32;:::i;:::-;25719:42;:::i;:::-;25701:61;:::i;:::-;25688:74;;25610:158;;;:::o;25774:147::-;25869:45;25908:5;25869:45;:::i;:::-;25864:3;25857:58;25774:147;;:::o;25927:114::-;25994:6;26028:5;26022:12;26012:22;;25927:114;;;:::o;26047:184::-;26146:11;26180:6;26175:3;26168:19;26220:4;26215:3;26211:14;26196:29;;26047:184;;;;:::o;26237:132::-;26304:4;26327:3;26319:11;;26357:4;26352:3;26348:14;26340:22;;26237:132;;;:::o;26375:108::-;26452:24;26470:5;26452:24;:::i;:::-;26447:3;26440:37;26375:108;;:::o;26489:179::-;26558:10;26579:46;26621:3;26613:6;26579:46;:::i;:::-;26657:4;26652:3;26648:14;26634:28;;26489:179;;;;:::o;26674:113::-;26744:4;26776;26771:3;26767:14;26759:22;;26674:113;;;:::o;26823:732::-;26942:3;26971:54;27019:5;26971:54;:::i;:::-;27041:86;27120:6;27115:3;27041:86;:::i;:::-;27034:93;;27151:56;27201:5;27151:56;:::i;:::-;27230:7;27261:1;27246:284;27271:6;27268:1;27265:13;27246:284;;;27347:6;27341:13;27374:63;27433:3;27418:13;27374:63;:::i;:::-;27367:70;;27460:60;27513:6;27460:60;:::i;:::-;27450:70;;27306:224;27293:1;27290;27286:9;27281:14;;27246:284;;;27250:14;27546:3;27539:10;;26947:608;;;26823:732;;;;:::o;27561:831::-;27824:4;27862:3;27851:9;27847:19;27839:27;;27876:71;27944:1;27933:9;27929:17;27920:6;27876:71;:::i;:::-;27957:80;28033:2;28022:9;28018:18;28009:6;27957:80;:::i;:::-;28084:9;28078:4;28074:20;28069:2;28058:9;28054:18;28047:48;28112:108;28215:4;28206:6;28112:108;:::i;:::-;28104:116;;28230:72;28298:2;28287:9;28283:18;28274:6;28230:72;:::i;:::-;28312:73;28380:3;28369:9;28365:19;28356:6;28312:73;:::i;:::-;27561:831;;;;;;;;:::o
Swarm Source
ipfs://6d58f070f9e30794ae3aa807f5a4bbb1387e6900aa3d5deaf181aa052d49f7b7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.