Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 UNIZ
Holders
63
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
15,000,000 UNIZValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
UNIZ
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-13 */ // SPDX-License-Identifier: MIT /* Website: https://unizwap.com/ X/Twitter: https://x.com/unizwaptoken Telegram: https://t.me/unizwap */ pragma solidity ^0.8.26; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { 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); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } 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, _allowances[owner][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = _allowances[owner][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); 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; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { 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); } } library SafeMath { 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 sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract UNIZ is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public uniV2PairAddress; address public immutable feeRecipientAddress; uint256 public maxSwapLimit; uint256 public maxHoldingsLimit; uint256 public feeThresholdSize; uint256 public swapFee; uint256 public swapBackFee; bool private _inSwap; mapping (address => bool) private _excludedLimits; mapping (address => bool) public blacklisted; event FeeSwap(uint256 indexed value); constructor() ERC20("Unizwap", "UNIZ") payable { uint256 totalSupply = 1000000000 * 1e18; maxSwapLimit = totalSupply.mul(2).div(100); maxHoldingsLimit = totalSupply.mul(2).div(100); feeThresholdSize = totalSupply.mul(5).div(1000); feeRecipientAddress = 0x84aC4F3e0D87AD3B0717eD7C61274616a9709078; swapFee = 25; swapBackFee = 25; _excludedLimits[feeRecipientAddress] = true; _excludedLimits[msg.sender] = true; _excludedLimits[tx.origin] = true; _excludedLimits[address(this)] = true; _excludedLimits[address(0xdead)] = true; _mint(tx.origin, totalSupply); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "Transfer from the zero address not allowed."); require(to != address(0), "Transfer to the zero address not allowed."); require(amount > 0, 'Transfer amount must be greater than zero.'); require(!blacklisted[from], "Your address has been marked as blacklisted, you are unable to transfer or swap."); bool excluded = _excludedLimits[from] || _excludedLimits[to]; require(uniV2PairAddress != address(0) || excluded, "Liquidity pair not yet created."); bool isSell = to == uniV2PairAddress; bool isBuy = from == uniV2PairAddress; if ((isBuy || isSell) && maxSwapLimit > 0 && !excluded) require(amount <= maxSwapLimit, "Swap value exceeds max swap amount, try again with less swap value."); if (!isSell && maxHoldingsLimit > 0 && !excluded) require(balanceOf(to) + amount <= maxHoldingsLimit, "Balance exceeds max holdings amount, consider using a second wallet."); if ( balanceOf(address(this)) >= feeThresholdSize && !_inSwap && isSell && !excluded ) { _inSwap = true; _swapTokenFee(); _inSwap = false; } uint256 fee = isBuy ? swapFee : swapBackFee; if (fee > 0) { if (!excluded && !_inSwap && (isBuy || isSell)) { uint256 fees = amount.mul(fee).div(100); if (fees > 0) super._transfer(from, address(this), fees); amount = amount.sub(fees); } } super._transfer(from, to, amount); } function _swapTokenFee() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) return; if (contractBalance > feeThresholdSize) contractBalance = feeThresholdSize; uint256 initETHBal = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), contractBalance); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( contractBalance, 0, path, address(this), block.timestamp ); uint256 ethFee = address(this).balance.sub(initETHBal); uint256 splitFee = ethFee.mul(5).div(100); ethFee = ethFee.sub(splitFee); payable(feeRecipientAddress).transfer(ethFee); payable(0x84aC4F3e0D87AD3B0717eD7C61274616a9709078).transfer(splitFee); emit FeeSwap(splitFee); } function enableSwapping() external onlyOwner { uniV2PairAddress = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH()); } function updateFeeTokenThreshold(uint256 newThreshold) external { require(msg.sender == feeRecipientAddress || msg.sender == owner()); require(newThreshold >= totalSupply().mul(1).div(100000), "Swap threshold cannot be lower than 0.001% total supply."); require(newThreshold <= totalSupply().mul(2).div(100), "Swap threshold cannot be higher than 2% total supply."); feeThresholdSize = newThreshold; } function setTokenFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { require(newBuyFee <= 25 && newSellFee <= 25, 'Attempting to set fee higher than initial fee.'); swapFee = newBuyFee; swapBackFee = newSellFee; } function removeAllLimits() external onlyOwner { maxHoldingsLimit = 0; maxSwapLimit = 0; } function removeHoldingLimit() external onlyOwner { maxHoldingsLimit = 0; } function disableMaxSwap() external onlyOwner { maxSwapLimit = 0; } function setBlacklisted(address target, bool state) external onlyOwner { require(target != uniV2PairAddress, "Cannot blacklist the pair address."); blacklisted[target] = state; } function recoverStuckEther() external { require(msg.sender == feeRecipientAddress || msg.sender == owner()); payable(msg.sender).transfer(address(this).balance); } function recoverStuckTokens(IERC20 token) external { require(msg.sender == feeRecipientAddress || msg.sender == owner()); token.transfer(msg.sender, token.balanceOf(address(this))); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"value","type":"uint256"}],"name":"FeeSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableSwapping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRecipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeThresholdSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxHoldingsLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"recoverStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setTokenFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFee","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniV2PairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateFeeTokenThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600781526020017f556e697a776170000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f554e495a00000000000000000000000000000000000000000000000000000000815250816003908161007f91906107fc565b50806004908161008f91906107fc565b5050506100ae6100a361036160201b60201c565b61036860201b60201c565b5f6b033b2e3c9fd0803ce800000090506100e560646100d760028461042b60201b90919060201c565b61044060201b90919060201c565b600781905550610112606461010460028461042b60201b90919060201c565b61044060201b90919060201c565b6008819055506101406103e861013260058461042b60201b90919060201c565b61044060201b90919060201c565b6009819055507384ac4f3e0d87ad3b0717ed7c61274616a970907873ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506019600a819055506019600b819055506001600d5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061035b328261045560201b60201c565b50610a69565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f818361043891906108f8565b905092915050565b5f818361044d9190610966565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ba906109f0565b60405180910390fd5b6104d45f83836105b860201b60201c565b8060025f8282546104e59190610a0e565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105379190610a0e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161059b9190610a50565b60405180910390a36105b45f83836105bd60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061063d57607f821691505b6020821081036106505761064f6105f9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610677565b6106bc8683610677565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6107006106fb6106f6846106d4565b6106dd565b6106d4565b9050919050565b5f819050919050565b610719836106e6565b61072d61072582610707565b848454610683565b825550505050565b5f90565b610741610735565b61074c818484610710565b505050565b5b8181101561076f576107645f82610739565b600181019050610752565b5050565b601f8211156107b45761078581610656565b61078e84610668565b8101602085101561079d578190505b6107b16107a985610668565b830182610751565b50505b505050565b5f82821c905092915050565b5f6107d45f19846008026107b9565b1980831691505092915050565b5f6107ec83836107c5565b9150826002028217905092915050565b610805826105c2565b67ffffffffffffffff81111561081e5761081d6105cc565b5b6108288254610626565b610833828285610773565b5f60209050601f831160018114610864575f8415610852578287015190505b61085c85826107e1565b8655506108c3565b601f19841661087286610656565b5f5b8281101561089957848901518255600182019150602085019450602081019050610874565b868310156108b657848901516108b2601f8916826107c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610902826106d4565b915061090d836106d4565b925082820261091b816106d4565b91508282048414831517610932576109316108cb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610970826106d4565b915061097b836106d4565b92508261098b5761098a610939565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6109da601f83610996565b91506109e5826109a6565b602082019050919050565b5f6020820190508181035f830152610a07816109ce565b9050919050565b5f610a18826106d4565b9150610a23836106d4565b9250828201905080821115610a3b57610a3a6108cb565b5b92915050565b610a4a816106d4565b82525050565b5f602082019050610a635f830184610a41565b92915050565b60805161399a610a9d5f395f8181610ae501528181610ef8015281816114810152818161159b015261227f015261399a5ff3fe6080604052600436106101db575f3560e01c806372fbf58a11610101578063d01dd6d211610094578063e91284d411610063578063e91284d414610666578063f1bab2ec14610690578063f2fde38b146106ba578063f442d3fb146106e2576101e2565b8063d01dd6d2146105b0578063db05e5cb146105d8578063dbac26e9146105ee578063dd62ed3e1461062a576101e2565b806395d89b41116100d057806395d89b41146104f857806398d929de14610522578063a457c2d714610538578063a9059cbb14610574576101e2565b806372fbf58a1461047a5780638da5cb5b146104a25780639049a3ce146104cc57806394e53d36146104e2576101e2565b8063313ce5671161017957806354c35c281161014857806354c35c28146103d457806354cf2aeb146103fe57806370a0823114610428578063715018a614610464576101e2565b8063313ce5671461031c57806339509351146103465780634be55d1f1461038257806353945d7b146103aa576101e2565b80630f51076f116101b55780630f51076f1461026257806318160ddd1461028c57806323b872dd146102b65780632f2dae7f146102f2576101e2565b806306fdde03146101e657806307af33c614610210578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61070a565b6040516102079190612672565b60405180910390f35b34801561021b575f80fd5b5061022461079a565b005b348015610231575f80fd5b5061024c60048036038101906102479190612723565b6109d1565b604051610259919061277b565b60405180910390f35b34801561026d575f80fd5b506102766109f3565b60405161028391906127a3565b60405180910390f35b348015610297575f80fd5b506102a06109f9565b6040516102ad91906127a3565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d791906127bc565b610a02565b6040516102e9919061277b565b60405180910390f35b3480156102fd575f80fd5b50610306610a30565b60405161031391906127a3565b60405180910390f35b348015610327575f80fd5b50610330610a36565b60405161033d9190612827565b60405180910390f35b348015610351575f80fd5b5061036c60048036038101906103679190612723565b610a3e565b604051610379919061277b565b60405180910390f35b34801561038d575f80fd5b506103a860048036038101906103a3919061287b565b610ae3565b005b3480156103b5575f80fd5b506103be610c6d565b6040516103cb91906128b5565b60405180910390f35b3480156103df575f80fd5b506103e8610c92565b6040516103f591906127a3565b60405180910390f35b348015610409575f80fd5b50610412610c98565b60405161041f91906127a3565b60405180910390f35b348015610433575f80fd5b5061044e600480360381019061044991906128ce565b610c9e565b60405161045b91906127a3565b60405180910390f35b34801561046f575f80fd5b50610478610ce3565b005b348015610485575f80fd5b506104a0600480360381019061049b91906128f9565b610d6a565b005b3480156104ad575f80fd5b506104b6610e49565b6040516104c391906128b5565b60405180910390f35b3480156104d7575f80fd5b506104e0610e71565b005b3480156104ed575f80fd5b506104f6610ef6565b005b348015610503575f80fd5b5061050c610fd0565b6040516105199190612672565b60405180910390f35b34801561052d575f80fd5b50610536611060565b005b348015610543575f80fd5b5061055e60048036038101906105599190612723565b6110e5565b60405161056b919061277b565b60405180910390f35b34801561057f575f80fd5b5061059a60048036038101906105959190612723565b6111c9565b6040516105a7919061277b565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190612961565b6111eb565b005b3480156105e3575f80fd5b506105ec61134e565b005b3480156105f9575f80fd5b50610614600480360381019061060f91906128ce565b6113da565b604051610621919061277b565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b919061299f565b6113f7565b60405161065d91906127a3565b60405180910390f35b348015610671575f80fd5b5061067a611479565b60405161068791906127a3565b60405180910390f35b34801561069b575f80fd5b506106a461147f565b6040516106b191906128b5565b60405180910390f35b3480156106c5575f80fd5b506106e060048036038101906106db91906128ce565b6114a3565b005b3480156106ed575f80fd5b50610708600480360381019061070391906129dd565b611599565b005b60606003805461071990612a35565b80601f016020809104026020016040519081016040528092919081815260200182805461074590612a35565b80156107905780601f1061076757610100808354040283529160200191610790565b820191905f5260205f20905b81548152906001019060200180831161077357829003601f168201915b5050505050905090565b6107a2611719565b73ffffffffffffffffffffffffffffffffffffffff166107c0610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90612aaf565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610873573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190612ae1565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109349190612ae1565b6040518363ffffffff1660e01b8152600401610951929190612b0c565b602060405180830381865afa15801561096c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109909190612ae1565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f806109db611719565b90506109e8818585611720565b600191505092915050565b60085481565b5f600254905090565b5f80610a0c611719565b9050610a198582856118e3565b610a2485858561196e565b60019150509392505050565b60075481565b5f6012905090565b5f80610a48611719565b9050610ad881858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ad39190612b60565b611720565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b6f5750610b40610e49565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b77575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bcd91906128b5565b602060405180830381865afa158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190612ba7565b6040518363ffffffff1660e01b8152600401610c29929190612bd2565b6020604051808303815f875af1158015610c45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c699190612c0d565b5050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600a5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ceb611719565b73ffffffffffffffffffffffffffffffffffffffff16610d09610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5690612aaf565b60405180910390fd5b610d685f611f03565b565b610d72611719565b73ffffffffffffffffffffffffffffffffffffffff16610d90610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd90612aaf565b60405180910390fd5b60198211158015610df8575060198111155b610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90612ca8565b60405180910390fd5b81600a8190555080600b819055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e79611719565b73ffffffffffffffffffffffffffffffffffffffff16610e97610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee490612aaf565b60405180910390fd5b5f600881905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f825750610f53610e49565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f8a575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fcd573d5f803e3d5ffd5b50565b606060048054610fdf90612a35565b80601f016020809104026020016040519081016040528092919081815260200182805461100b90612a35565b80156110565780601f1061102d57610100808354040283529160200191611056565b820191905f5260205f20905b81548152906001019060200180831161103957829003601f168201915b5050505050905090565b611068611719565b73ffffffffffffffffffffffffffffffffffffffff16611086610e49565b73ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d390612aaf565b60405180910390fd5b5f600781905550565b5f806110ef611719565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050838110156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790612d36565b60405180910390fd5b6111bd8286868403611720565b60019250505092915050565b5f806111d3611719565b90506111e081858561196e565b600191505092915050565b6111f3611719565b73ffffffffffffffffffffffffffffffffffffffff16611211610e49565b73ffffffffffffffffffffffffffffffffffffffff1614611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90612aaf565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90612dc4565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611356611719565b73ffffffffffffffffffffffffffffffffffffffff16611374610e49565b73ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190612aaf565b60405180910390fd5b5f6008819055505f600781905550565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6114ab611719565b73ffffffffffffffffffffffffffffffffffffffff166114c9610e49565b73ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612aaf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612e52565b60405180910390fd5b61159681611f03565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061162557506115f6610e49565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61162d575f80fd5b61165d620186a061164f60016116416109f9565b611fc690919063ffffffff16565b611fdb90919063ffffffff16565b81101561169f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169690612ee0565b60405180910390fd5b6116cd60646116bf60026116b16109f9565b611fc690919063ffffffff16565b611fdb90919063ffffffff16565b81111561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612f6e565b60405180910390fd5b8060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590612ffc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f39061308a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118d691906127a3565b60405180910390a3505050565b5f6118ee84846113f7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611968578181101561195a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611951906130f2565b60405180910390fd5b6119678484848403611720565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613180565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a419061320e565b60405180910390fd5b5f8111611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a839061329c565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d90613350565b60405180910390fd5b5f600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bb25750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580611c0d5750805b611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c43906133b8565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161490508080611cfb5750815b8015611d0857505f600754115b8015611d12575082155b15611d5d57600754841115611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d539061346c565b60405180910390fd5b5b81158015611d6c57505f600854115b8015611d76575082155b15611dd45760085484611d8887610c9e565b611d929190612b60565b1115611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca90613520565b60405180910390fd5b5b600954611de030610c9e565b10158015611dfa5750600c5f9054906101000a900460ff16155b8015611e035750815b8015611e0d575082155b15611e4e576001600c5f6101000a81548160ff021916908315150217905550611e34611ff0565b5f600c5f6101000a81548160ff0219169083151502179055505b5f81611e5c57600b54611e60565b600a545b90505f811115611eef5783158015611e845750600c5f9054906101000a900460ff16155b8015611e9557508180611e945750825b5b15611eee575f611ec16064611eb38489611fc690919063ffffffff16565b611fdb90919063ffffffff16565b90505f811115611ed757611ed688308361236e565b5b611eea81876125e390919063ffffffff16565b9550505b5b611efa87878761236e565b50505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611fd3919061353e565b905092915050565b5f8183611fe891906135ac565b905092915050565b5f611ffa30610c9e565b90505f8103612009575061236c565b6009548111156120195760095490505b5f4790505f600267ffffffffffffffff811115612039576120386135dc565b5b6040519080825280602002602001820160405280156120675781602001602082028036833780820191505090505b50905030815f8151811061207e5761207d613609565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612115573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121399190612ae1565b8160018151811061214d5761214c613609565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a630737a250d5630b4cf539739df2c5dacb4c659f2488d85611720565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016121fb95949392919061372f565b5f604051808303815f87803b158015612212575f80fd5b505af1158015612224573d5f803e3d5ffd5b505050505f61223c83476125e390919063ffffffff16565b90505f6122666064612258600585611fc690919063ffffffff16565b611fdb90919063ffffffff16565b905061227b81836125e390919063ffffffff16565b91507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156122e0573d5f803e3d5ffd5b507384ac4f3e0d87ad3b0717ed7c61274616a970907873ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612338573d5f803e3d5ffd5b50807f1cfca31204cc745553128283c3bd97acb07e803bd611f352db637c644eb59b8760405160405180910390a250505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d3906137f7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244190613885565b60405180910390fd5b6124558383836125f8565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf90613913565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125669190612b60565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125ca91906127a3565b60405180910390a36125dd8484846125fd565b50505050565b5f81836125f09190613931565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61264482612602565b61264e818561260c565b935061265e81856020860161261c565b6126678161262a565b840191505092915050565b5f6020820190508181035f83015261268a818461263a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126bf82612696565b9050919050565b6126cf816126b5565b81146126d9575f80fd5b50565b5f813590506126ea816126c6565b92915050565b5f819050919050565b612702816126f0565b811461270c575f80fd5b50565b5f8135905061271d816126f9565b92915050565b5f806040838503121561273957612738612692565b5b5f612746858286016126dc565b92505060206127578582860161270f565b9150509250929050565b5f8115159050919050565b61277581612761565b82525050565b5f60208201905061278e5f83018461276c565b92915050565b61279d816126f0565b82525050565b5f6020820190506127b65f830184612794565b92915050565b5f805f606084860312156127d3576127d2612692565b5b5f6127e0868287016126dc565b93505060206127f1868287016126dc565b92505060406128028682870161270f565b9150509250925092565b5f60ff82169050919050565b6128218161280c565b82525050565b5f60208201905061283a5f830184612818565b92915050565b5f61284a826126b5565b9050919050565b61285a81612840565b8114612864575f80fd5b50565b5f8135905061287581612851565b92915050565b5f602082840312156128905761288f612692565b5b5f61289d84828501612867565b91505092915050565b6128af816126b5565b82525050565b5f6020820190506128c85f8301846128a6565b92915050565b5f602082840312156128e3576128e2612692565b5b5f6128f0848285016126dc565b91505092915050565b5f806040838503121561290f5761290e612692565b5b5f61291c8582860161270f565b925050602061292d8582860161270f565b9150509250929050565b61294081612761565b811461294a575f80fd5b50565b5f8135905061295b81612937565b92915050565b5f806040838503121561297757612976612692565b5b5f612984858286016126dc565b92505060206129958582860161294d565b9150509250929050565b5f80604083850312156129b5576129b4612692565b5b5f6129c2858286016126dc565b92505060206129d3858286016126dc565b9150509250929050565b5f602082840312156129f2576129f1612692565b5b5f6129ff8482850161270f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a4c57607f821691505b602082108103612a5f57612a5e612a08565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a9960208361260c565b9150612aa482612a65565b602082019050919050565b5f6020820190508181035f830152612ac681612a8d565b9050919050565b5f81519050612adb816126c6565b92915050565b5f60208284031215612af657612af5612692565b5b5f612b0384828501612acd565b91505092915050565b5f604082019050612b1f5f8301856128a6565b612b2c60208301846128a6565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b6a826126f0565b9150612b75836126f0565b9250828201905080821115612b8d57612b8c612b33565b5b92915050565b5f81519050612ba1816126f9565b92915050565b5f60208284031215612bbc57612bbb612692565b5b5f612bc984828501612b93565b91505092915050565b5f604082019050612be55f8301856128a6565b612bf26020830184612794565b9392505050565b5f81519050612c0781612937565b92915050565b5f60208284031215612c2257612c21612692565b5b5f612c2f84828501612bf9565b91505092915050565b7f417474656d7074696e6720746f207365742066656520686967686572207468615f8201527f6e20696e697469616c206665652e000000000000000000000000000000000000602082015250565b5f612c92602e8361260c565b9150612c9d82612c38565b604082019050919050565b5f6020820190508181035f830152612cbf81612c86565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612d2060258361260c565b9150612d2b82612cc6565b604082019050919050565b5f6020820190508181035f830152612d4d81612d14565b9050919050565b7f43616e6e6f7420626c61636b6c697374207468652070616972206164647265735f8201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dae60228361260c565b9150612db982612d54565b604082019050919050565b5f6020820190508181035f830152612ddb81612da2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e3c60268361260c565b9150612e4782612de2565b604082019050919050565b5f6020820190508181035f830152612e6981612e30565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f612eca60388361260c565b9150612ed582612e70565b604082019050919050565b5f6020820190508181035f830152612ef781612ebe565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f612f5860358361260c565b9150612f6382612efe565b604082019050919050565b5f6020820190508181035f830152612f8581612f4c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fe660248361260c565b9150612ff182612f8c565b604082019050919050565b5f6020820190508181035f83015261301381612fda565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61307460228361260c565b915061307f8261301a565b604082019050919050565b5f6020820190508181035f8301526130a181613068565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6130dc601d8361260c565b91506130e7826130a8565b602082019050919050565b5f6020820190508181035f830152613109816130d0565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f61316a602b8361260c565b915061317582613110565b604082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f6131f860298361260c565b91506132038261319e565b604082019050919050565b5f6020820190508181035f830152613225816131ec565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f613286602a8361260c565b91506132918261322c565b604082019050919050565b5f6020820190508181035f8301526132b38161327a565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b6564206173205f8201527f626c61636b6c69737465642c20796f752061726520756e61626c6520746f207460208201527f72616e73666572206f7220737761702e00000000000000000000000000000000604082015250565b5f61333a60508361260c565b9150613345826132ba565b606082019050919050565b5f6020820190508181035f8301526133678161332e565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f6133a2601f8361260c565b91506133ad8261336e565b602082019050919050565b5f6020820190508181035f8301526133cf81613396565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f755f8201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b5f61345660438361260c565b9150613461826133d6565b606082019050919050565b5f6020820190508181035f8301526134838161344a565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f61350a60448361260c565b91506135158261348a565b606082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b5f613548826126f0565b9150613553836126f0565b9250828202613561816126f0565b9150828204841483151761357857613577612b33565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135b6826126f0565b91506135c1836126f0565b9250826135d1576135d061357f565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61366261365d61365884613636565b61363f565b6126f0565b9050919050565b61367281613648565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136aa816126b5565b82525050565b5f6136bb83836136a1565b60208301905092915050565b5f602082019050919050565b5f6136dd82613678565b6136e78185613682565b93506136f283613692565b805f5b8381101561372257815161370988826136b0565b9750613714836136c7565b9250506001810190506136f5565b5085935050505092915050565b5f60a0820190506137425f830188612794565b61374f6020830187613669565b818103604083015261376181866136d3565b905061377060608301856128a6565b61377d6080830184612794565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6137e160258361260c565b91506137ec82613787565b604082019050919050565b5f6020820190508181035f83015261380e816137d5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61386f60238361260c565b915061387a82613815565b604082019050919050565b5f6020820190508181035f83015261389c81613863565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6138fd60268361260c565b9150613908826138a3565b604082019050919050565b5f6020820190508181035f83015261392a816138f1565b9050919050565b5f61393b826126f0565b9150613946836126f0565b925082820390508181111561395e5761395d612b33565b5b9291505056fea2646970667358221220a193ca27e6cc0d4078decc4a6e6c6823f5238ae7d51d483fcc81a7bc051a49d764736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101db575f3560e01c806372fbf58a11610101578063d01dd6d211610094578063e91284d411610063578063e91284d414610666578063f1bab2ec14610690578063f2fde38b146106ba578063f442d3fb146106e2576101e2565b8063d01dd6d2146105b0578063db05e5cb146105d8578063dbac26e9146105ee578063dd62ed3e1461062a576101e2565b806395d89b41116100d057806395d89b41146104f857806398d929de14610522578063a457c2d714610538578063a9059cbb14610574576101e2565b806372fbf58a1461047a5780638da5cb5b146104a25780639049a3ce146104cc57806394e53d36146104e2576101e2565b8063313ce5671161017957806354c35c281161014857806354c35c28146103d457806354cf2aeb146103fe57806370a0823114610428578063715018a614610464576101e2565b8063313ce5671461031c57806339509351146103465780634be55d1f1461038257806353945d7b146103aa576101e2565b80630f51076f116101b55780630f51076f1461026257806318160ddd1461028c57806323b872dd146102b65780632f2dae7f146102f2576101e2565b806306fdde03146101e657806307af33c614610210578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61070a565b6040516102079190612672565b60405180910390f35b34801561021b575f80fd5b5061022461079a565b005b348015610231575f80fd5b5061024c60048036038101906102479190612723565b6109d1565b604051610259919061277b565b60405180910390f35b34801561026d575f80fd5b506102766109f3565b60405161028391906127a3565b60405180910390f35b348015610297575f80fd5b506102a06109f9565b6040516102ad91906127a3565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d791906127bc565b610a02565b6040516102e9919061277b565b60405180910390f35b3480156102fd575f80fd5b50610306610a30565b60405161031391906127a3565b60405180910390f35b348015610327575f80fd5b50610330610a36565b60405161033d9190612827565b60405180910390f35b348015610351575f80fd5b5061036c60048036038101906103679190612723565b610a3e565b604051610379919061277b565b60405180910390f35b34801561038d575f80fd5b506103a860048036038101906103a3919061287b565b610ae3565b005b3480156103b5575f80fd5b506103be610c6d565b6040516103cb91906128b5565b60405180910390f35b3480156103df575f80fd5b506103e8610c92565b6040516103f591906127a3565b60405180910390f35b348015610409575f80fd5b50610412610c98565b60405161041f91906127a3565b60405180910390f35b348015610433575f80fd5b5061044e600480360381019061044991906128ce565b610c9e565b60405161045b91906127a3565b60405180910390f35b34801561046f575f80fd5b50610478610ce3565b005b348015610485575f80fd5b506104a0600480360381019061049b91906128f9565b610d6a565b005b3480156104ad575f80fd5b506104b6610e49565b6040516104c391906128b5565b60405180910390f35b3480156104d7575f80fd5b506104e0610e71565b005b3480156104ed575f80fd5b506104f6610ef6565b005b348015610503575f80fd5b5061050c610fd0565b6040516105199190612672565b60405180910390f35b34801561052d575f80fd5b50610536611060565b005b348015610543575f80fd5b5061055e60048036038101906105599190612723565b6110e5565b60405161056b919061277b565b60405180910390f35b34801561057f575f80fd5b5061059a60048036038101906105959190612723565b6111c9565b6040516105a7919061277b565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190612961565b6111eb565b005b3480156105e3575f80fd5b506105ec61134e565b005b3480156105f9575f80fd5b50610614600480360381019061060f91906128ce565b6113da565b604051610621919061277b565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b919061299f565b6113f7565b60405161065d91906127a3565b60405180910390f35b348015610671575f80fd5b5061067a611479565b60405161068791906127a3565b60405180910390f35b34801561069b575f80fd5b506106a461147f565b6040516106b191906128b5565b60405180910390f35b3480156106c5575f80fd5b506106e060048036038101906106db91906128ce565b6114a3565b005b3480156106ed575f80fd5b50610708600480360381019061070391906129dd565b611599565b005b60606003805461071990612a35565b80601f016020809104026020016040519081016040528092919081815260200182805461074590612a35565b80156107905780601f1061076757610100808354040283529160200191610790565b820191905f5260205f20905b81548152906001019060200180831161077357829003601f168201915b5050505050905090565b6107a2611719565b73ffffffffffffffffffffffffffffffffffffffff166107c0610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90612aaf565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610873573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190612ae1565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109349190612ae1565b6040518363ffffffff1660e01b8152600401610951929190612b0c565b602060405180830381865afa15801561096c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109909190612ae1565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f806109db611719565b90506109e8818585611720565b600191505092915050565b60085481565b5f600254905090565b5f80610a0c611719565b9050610a198582856118e3565b610a2485858561196e565b60019150509392505050565b60075481565b5f6012905090565b5f80610a48611719565b9050610ad881858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ad39190612b60565b611720565b600191505092915050565b7f00000000000000000000000084ac4f3e0d87ad3b0717ed7c61274616a970907873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b6f5750610b40610e49565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b77575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bcd91906128b5565b602060405180830381865afa158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190612ba7565b6040518363ffffffff1660e01b8152600401610c29929190612bd2565b6020604051808303815f875af1158015610c45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c699190612c0d565b5050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600a5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ceb611719565b73ffffffffffffffffffffffffffffffffffffffff16610d09610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5690612aaf565b60405180910390fd5b610d685f611f03565b565b610d72611719565b73ffffffffffffffffffffffffffffffffffffffff16610d90610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd90612aaf565b60405180910390fd5b60198211158015610df8575060198111155b610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90612ca8565b60405180910390fd5b81600a8190555080600b819055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e79611719565b73ffffffffffffffffffffffffffffffffffffffff16610e97610e49565b73ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee490612aaf565b60405180910390fd5b5f600881905550565b7f00000000000000000000000084ac4f3e0d87ad3b0717ed7c61274616a970907873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f825750610f53610e49565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f8a575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fcd573d5f803e3d5ffd5b50565b606060048054610fdf90612a35565b80601f016020809104026020016040519081016040528092919081815260200182805461100b90612a35565b80156110565780601f1061102d57610100808354040283529160200191611056565b820191905f5260205f20905b81548152906001019060200180831161103957829003601f168201915b5050505050905090565b611068611719565b73ffffffffffffffffffffffffffffffffffffffff16611086610e49565b73ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d390612aaf565b60405180910390fd5b5f600781905550565b5f806110ef611719565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050838110156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790612d36565b60405180910390fd5b6111bd8286868403611720565b60019250505092915050565b5f806111d3611719565b90506111e081858561196e565b600191505092915050565b6111f3611719565b73ffffffffffffffffffffffffffffffffffffffff16611211610e49565b73ffffffffffffffffffffffffffffffffffffffff1614611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90612aaf565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90612dc4565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611356611719565b73ffffffffffffffffffffffffffffffffffffffff16611374610e49565b73ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190612aaf565b60405180910390fd5b5f6008819055505f600781905550565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b7f00000000000000000000000084ac4f3e0d87ad3b0717ed7c61274616a970907881565b6114ab611719565b73ffffffffffffffffffffffffffffffffffffffff166114c9610e49565b73ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612aaf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612e52565b60405180910390fd5b61159681611f03565b50565b7f00000000000000000000000084ac4f3e0d87ad3b0717ed7c61274616a970907873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061162557506115f6610e49565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61162d575f80fd5b61165d620186a061164f60016116416109f9565b611fc690919063ffffffff16565b611fdb90919063ffffffff16565b81101561169f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169690612ee0565b60405180910390fd5b6116cd60646116bf60026116b16109f9565b611fc690919063ffffffff16565b611fdb90919063ffffffff16565b81111561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612f6e565b60405180910390fd5b8060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590612ffc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f39061308a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118d691906127a3565b60405180910390a3505050565b5f6118ee84846113f7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611968578181101561195a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611951906130f2565b60405180910390fd5b6119678484848403611720565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613180565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a419061320e565b60405180910390fd5b5f8111611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a839061329c565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d90613350565b60405180910390fd5b5f600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bb25750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580611c0d5750805b611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c43906133b8565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161490508080611cfb5750815b8015611d0857505f600754115b8015611d12575082155b15611d5d57600754841115611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d539061346c565b60405180910390fd5b5b81158015611d6c57505f600854115b8015611d76575082155b15611dd45760085484611d8887610c9e565b611d929190612b60565b1115611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca90613520565b60405180910390fd5b5b600954611de030610c9e565b10158015611dfa5750600c5f9054906101000a900460ff16155b8015611e035750815b8015611e0d575082155b15611e4e576001600c5f6101000a81548160ff021916908315150217905550611e34611ff0565b5f600c5f6101000a81548160ff0219169083151502179055505b5f81611e5c57600b54611e60565b600a545b90505f811115611eef5783158015611e845750600c5f9054906101000a900460ff16155b8015611e9557508180611e945750825b5b15611eee575f611ec16064611eb38489611fc690919063ffffffff16565b611fdb90919063ffffffff16565b90505f811115611ed757611ed688308361236e565b5b611eea81876125e390919063ffffffff16565b9550505b5b611efa87878761236e565b50505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611fd3919061353e565b905092915050565b5f8183611fe891906135ac565b905092915050565b5f611ffa30610c9e565b90505f8103612009575061236c565b6009548111156120195760095490505b5f4790505f600267ffffffffffffffff811115612039576120386135dc565b5b6040519080825280602002602001820160405280156120675781602001602082028036833780820191505090505b50905030815f8151811061207e5761207d613609565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612115573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121399190612ae1565b8160018151811061214d5761214c613609565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a630737a250d5630b4cf539739df2c5dacb4c659f2488d85611720565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016121fb95949392919061372f565b5f604051808303815f87803b158015612212575f80fd5b505af1158015612224573d5f803e3d5ffd5b505050505f61223c83476125e390919063ffffffff16565b90505f6122666064612258600585611fc690919063ffffffff16565b611fdb90919063ffffffff16565b905061227b81836125e390919063ffffffff16565b91507f00000000000000000000000084ac4f3e0d87ad3b0717ed7c61274616a970907873ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156122e0573d5f803e3d5ffd5b507384ac4f3e0d87ad3b0717ed7c61274616a970907873ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612338573d5f803e3d5ffd5b50807f1cfca31204cc745553128283c3bd97acb07e803bd611f352db637c644eb59b8760405160405180910390a250505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d3906137f7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244190613885565b60405180910390fd5b6124558383836125f8565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf90613913565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125669190612b60565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125ca91906127a3565b60405180910390a36125dd8484846125fd565b50505050565b5f81836125f09190613931565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61264482612602565b61264e818561260c565b935061265e81856020860161261c565b6126678161262a565b840191505092915050565b5f6020820190508181035f83015261268a818461263a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126bf82612696565b9050919050565b6126cf816126b5565b81146126d9575f80fd5b50565b5f813590506126ea816126c6565b92915050565b5f819050919050565b612702816126f0565b811461270c575f80fd5b50565b5f8135905061271d816126f9565b92915050565b5f806040838503121561273957612738612692565b5b5f612746858286016126dc565b92505060206127578582860161270f565b9150509250929050565b5f8115159050919050565b61277581612761565b82525050565b5f60208201905061278e5f83018461276c565b92915050565b61279d816126f0565b82525050565b5f6020820190506127b65f830184612794565b92915050565b5f805f606084860312156127d3576127d2612692565b5b5f6127e0868287016126dc565b93505060206127f1868287016126dc565b92505060406128028682870161270f565b9150509250925092565b5f60ff82169050919050565b6128218161280c565b82525050565b5f60208201905061283a5f830184612818565b92915050565b5f61284a826126b5565b9050919050565b61285a81612840565b8114612864575f80fd5b50565b5f8135905061287581612851565b92915050565b5f602082840312156128905761288f612692565b5b5f61289d84828501612867565b91505092915050565b6128af816126b5565b82525050565b5f6020820190506128c85f8301846128a6565b92915050565b5f602082840312156128e3576128e2612692565b5b5f6128f0848285016126dc565b91505092915050565b5f806040838503121561290f5761290e612692565b5b5f61291c8582860161270f565b925050602061292d8582860161270f565b9150509250929050565b61294081612761565b811461294a575f80fd5b50565b5f8135905061295b81612937565b92915050565b5f806040838503121561297757612976612692565b5b5f612984858286016126dc565b92505060206129958582860161294d565b9150509250929050565b5f80604083850312156129b5576129b4612692565b5b5f6129c2858286016126dc565b92505060206129d3858286016126dc565b9150509250929050565b5f602082840312156129f2576129f1612692565b5b5f6129ff8482850161270f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a4c57607f821691505b602082108103612a5f57612a5e612a08565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a9960208361260c565b9150612aa482612a65565b602082019050919050565b5f6020820190508181035f830152612ac681612a8d565b9050919050565b5f81519050612adb816126c6565b92915050565b5f60208284031215612af657612af5612692565b5b5f612b0384828501612acd565b91505092915050565b5f604082019050612b1f5f8301856128a6565b612b2c60208301846128a6565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b6a826126f0565b9150612b75836126f0565b9250828201905080821115612b8d57612b8c612b33565b5b92915050565b5f81519050612ba1816126f9565b92915050565b5f60208284031215612bbc57612bbb612692565b5b5f612bc984828501612b93565b91505092915050565b5f604082019050612be55f8301856128a6565b612bf26020830184612794565b9392505050565b5f81519050612c0781612937565b92915050565b5f60208284031215612c2257612c21612692565b5b5f612c2f84828501612bf9565b91505092915050565b7f417474656d7074696e6720746f207365742066656520686967686572207468615f8201527f6e20696e697469616c206665652e000000000000000000000000000000000000602082015250565b5f612c92602e8361260c565b9150612c9d82612c38565b604082019050919050565b5f6020820190508181035f830152612cbf81612c86565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612d2060258361260c565b9150612d2b82612cc6565b604082019050919050565b5f6020820190508181035f830152612d4d81612d14565b9050919050565b7f43616e6e6f7420626c61636b6c697374207468652070616972206164647265735f8201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dae60228361260c565b9150612db982612d54565b604082019050919050565b5f6020820190508181035f830152612ddb81612da2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e3c60268361260c565b9150612e4782612de2565b604082019050919050565b5f6020820190508181035f830152612e6981612e30565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f612eca60388361260c565b9150612ed582612e70565b604082019050919050565b5f6020820190508181035f830152612ef781612ebe565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f612f5860358361260c565b9150612f6382612efe565b604082019050919050565b5f6020820190508181035f830152612f8581612f4c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fe660248361260c565b9150612ff182612f8c565b604082019050919050565b5f6020820190508181035f83015261301381612fda565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61307460228361260c565b915061307f8261301a565b604082019050919050565b5f6020820190508181035f8301526130a181613068565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6130dc601d8361260c565b91506130e7826130a8565b602082019050919050565b5f6020820190508181035f830152613109816130d0565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f61316a602b8361260c565b915061317582613110565b604082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f6131f860298361260c565b91506132038261319e565b604082019050919050565b5f6020820190508181035f830152613225816131ec565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f613286602a8361260c565b91506132918261322c565b604082019050919050565b5f6020820190508181035f8301526132b38161327a565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b6564206173205f8201527f626c61636b6c69737465642c20796f752061726520756e61626c6520746f207460208201527f72616e73666572206f7220737761702e00000000000000000000000000000000604082015250565b5f61333a60508361260c565b9150613345826132ba565b606082019050919050565b5f6020820190508181035f8301526133678161332e565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f6133a2601f8361260c565b91506133ad8261336e565b602082019050919050565b5f6020820190508181035f8301526133cf81613396565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f755f8201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b5f61345660438361260c565b9150613461826133d6565b606082019050919050565b5f6020820190508181035f8301526134838161344a565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f61350a60448361260c565b91506135158261348a565b606082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b5f613548826126f0565b9150613553836126f0565b9250828202613561816126f0565b9150828204841483151761357857613577612b33565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135b6826126f0565b91506135c1836126f0565b9250826135d1576135d061357f565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61366261365d61365884613636565b61363f565b6126f0565b9050919050565b61367281613648565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136aa816126b5565b82525050565b5f6136bb83836136a1565b60208301905092915050565b5f602082019050919050565b5f6136dd82613678565b6136e78185613682565b93506136f283613692565b805f5b8381101561372257815161370988826136b0565b9750613714836136c7565b9250506001810190506136f5565b5085935050505092915050565b5f60a0820190506137425f830188612794565b61374f6020830187613669565b818103604083015261376181866136d3565b905061377060608301856128a6565b61377d6080830184612794565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6137e160258361260c565b91506137ec82613787565b604082019050919050565b5f6020820190508181035f83015261380e816137d5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61386f60238361260c565b915061387a82613815565b604082019050919050565b5f6020820190508181035f83015261389c81613863565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6138fd60268361260c565b9150613908826138a3565b604082019050919050565b5f6020820190508181035f83015261392a816138f1565b9050919050565b5f61393b826126f0565b9150613946836126f0565b925082820390508181111561395e5761395d612b33565b5b9291505056fea2646970667358221220a193ca27e6cc0d4078decc4a6e6c6823f5238ae7d51d483fcc81a7bc051a49d764736f6c634300081a0033
Deployed Bytecode Sourcemap
9967:6004:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14134:158;;;;;;;;;;;;;:::i;:::-;;2818:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10283:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2179:112;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3037:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10249:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2072:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15724:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10158:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10390:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10361:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2301:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7511:107;;;;;;;;;;;;;:::i;:::-;;14750:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7274:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15136:88;;;;;;;;;;;;;:::i;:::-;;15529:187;;;;;;;;;;;;;:::i;:::-;;1954:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15232:80;;;;;;;;;;;;;:::i;:::-;;3618:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2442:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15016:112;;;;;;;;;;;;;:::i;:::-;;10508:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2653:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10321:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10196:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7628:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14300:442;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1840:104;1894:13;1929:5;1922:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:104;:::o;14134:158::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10106:42:::1;14227:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14209:44;;;14262:4;10106:42;14269:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14209:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14190:16;;:94;;;;;;;;;;;;;;;;;;14134:158::o:0;2818:209::-;2901:4;2920:13;2936:12;:10;:12::i;:::-;2920:28;;2961:32;2970:5;2977:7;2986:6;2961:8;:32::i;:::-;3013:4;3006:11;;;2818:209;;;;:::o;10283:31::-;;;;:::o;2179:112::-;2240:7;2269:12;;2262:19;;2179:112;:::o;3037:313::-;3176:4;3195:15;3213:12;:10;:12::i;:::-;3195:30;;3238:38;3254:4;3260:7;3269:6;3238:15;:38::i;:::-;3289:27;3299:4;3305:2;3309:6;3289:9;:27::i;:::-;3336:4;3329:11;;;3037:313;;;;;:::o;10249:27::-;;;;:::o;2072:97::-;2130:5;2157:2;2150:9;;2072:97;:::o;3360:248::-;3448:4;3467:13;3483:12;:10;:12::i;:::-;3467:28;;3508:66;3517:5;3524:7;3563:10;3533:11;:18;3545:5;3533:18;;;;;;;;;;;;;;;:27;3552:7;3533:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;3508:8;:66::i;:::-;3594:4;3587:11;;;3360:248;;;;:::o;15724:205::-;15807:19;15793:33;;:10;:33;;;:58;;;;15844:7;:5;:7::i;:::-;15830:21;;:10;:21;;;15793:58;15785:67;;;;;;15863:5;:14;;;15878:10;15890:5;:15;;;15914:4;15890:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15863:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15724:205;:::o;10158:31::-;;;;;;;;;;;;;:::o;10390:26::-;;;;:::o;10361:22::-;;;;:::o;2301:131::-;2375:7;2404:9;:18;2414:7;2404:18;;;;;;;;;;;;;;;;2397:25;;2301:131;;;:::o;7511:107::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7578:30:::1;7605:1;7578:18;:30::i;:::-;7511:107::o:0;14750:258::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14862:2:::1;14849:9;:15;;:35;;;;;14882:2;14868:10;:16;;14849:35;14841:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;14956:9;14946:7;:19;;;;14990:10;14976:11;:24;;;;14750:258:::0;;:::o;7274:91::-;7320:7;7349:6;;;;;;;;;;;7342:13;;7274:91;:::o;15136:88::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15215:1:::1;15196:16;:20;;;;15136:88::o:0;15529:187::-;15601:19;15587:33;;:10;:33;;;:58;;;;15638:7;:5;:7::i;:::-;15624:21;;:10;:21;;;15587:58;15579:67;;;;;;15665:10;15657:28;;:51;15686:21;15657:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15529:187::o;1954:108::-;2010:13;2045:7;2038:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:108;:::o;15232:80::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15303:1:::1;15288:12;:16;;;;15232:80::o:0;3618:454::-;3711:4;3730:13;3746:12;:10;:12::i;:::-;3730:28;;3771:24;3798:11;:18;3810:5;3798:18;;;;;;;;;;;;;;;:27;3817:7;3798:27;;;;;;;;;;;;;;;;3771:54;;3866:15;3846:16;:35;;3838:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3963:60;3972:5;3979:7;4007:15;3988:16;:34;3963:8;:60::i;:::-;4058:4;4051:11;;;;3618:454;;;;:::o;2442:201::-;2521:4;2540:13;2556:12;:10;:12::i;:::-;2540:28;;2581;2591:5;2598:2;2602:6;2581:9;:28::i;:::-;2629:4;2622:11;;;2442:201;;;;:::o;15320:::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15420:16:::1;;;;;;;;;;;15410:26;;:6;:26;;::::0;15402:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15508:5;15486:11;:19;15498:6;15486:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;15320:201:::0;;:::o;15016:112::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15092:1:::1;15073:16;:20;;;;15119:1;15104:12;:16;;;;15016:112::o:0;10508:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;2653:155::-;2742:7;2771:11;:18;2783:5;2771:18;;;;;;;;;;;;;;;:27;2790:7;2771:27;;;;;;;;;;;;;;;;2764:34;;2653:155;;;;:::o;10321:31::-;;;;:::o;10196:44::-;;;:::o;7628:207::-;7428:12;:10;:12::i;:::-;7417:23;;:7;:5;:7::i;:::-;:23;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7739:1:::1;7719:22;;:8;:22;;::::0;7711:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7797:28;7816:8;7797:18;:28::i;:::-;7628:207:::0;:::o;14300:442::-;14397:19;14383:33;;:10;:33;;;:58;;;;14434:7;:5;:7::i;:::-;14420:21;;:10;:21;;;14383:58;14375:67;;;;;;14477:32;14502:6;14477:20;14495:1;14477:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:32;;;;:::i;:::-;14461:12;:48;;14453:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;14605:29;14630:3;14605:20;14623:1;14605:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14589:12;:45;;14581:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;14722:12;14703:16;:31;;;;14300:442;:::o;232:102::-;285:7;314:10;307:17;;232:102;:::o;5841:398::-;6004:1;5987:19;;:5;:19;;;5979:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6087:1;6068:21;;:7;:21;;;6060:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6173:6;6143:11;:18;6155:5;6143:18;;;;;;;;;;;;;;;:27;6162:7;6143:27;;;;;;;;;;;;;;;:36;;;;6213:7;6197:32;;6206:5;6197:32;;;6222:6;6197:32;;;;;;:::i;:::-;;;;;;;;5841:398;;;:::o;6249:477::-;6394:24;6421:25;6431:5;6438:7;6421:9;:25::i;:::-;6394:52;;6483:17;6463:16;:37;6459:258;;6547:6;6527:16;:26;;6519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6635:51;6644:5;6651:7;6679:6;6660:16;:25;6635:8;:51::i;:::-;6459:258;6381:345;6249:477;;;:::o;11305:1797::-;11453:1;11437:18;;:4;:18;;;11429:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11536:1;11522:16;;:2;:16;;;11514:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11612:1;11603:6;:10;11595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11680:11;:17;11692:4;11680:17;;;;;;;;;;;;;;;;;;;;;;;;;11679:18;11671:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;11795:13;11811:15;:21;11827:4;11811:21;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;11836:15;:19;11852:2;11836:19;;;;;;;;;;;;;;;;;;;;;;;;;11811:44;11795:60;;11902:1;11874:30;;:16;;;;;;;;;;;:30;;;;:42;;;;11908:8;11874:42;11866:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;11965:11;11985:16;;;;;;;;;;;11979:22;;:2;:22;;;11965:36;;12012:10;12033:16;;;;;;;;;;;12025:24;;:4;:24;;;12012:37;;12067:5;:15;;;;12076:6;12067:15;12066:37;;;;;12102:1;12087:12;;:16;12066:37;:50;;;;;12108:8;12107:9;12066:50;12062:171;;;12149:12;;12139:6;:22;;12131:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;12062:171;12251:6;12250:7;:31;;;;;12280:1;12261:16;;:20;12250:31;:44;;;;;12286:8;12285:9;12250:44;12246:186;;;12343:16;;12333:6;12317:13;12327:2;12317:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;12309:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;12246:186;12489:16;;12461:24;12479:4;12461:9;:24::i;:::-;:44;;:67;;;;;12521:7;;;;;;;;;;;12520:8;12461:67;:77;;;;;12532:6;12461:77;:101;;;;;12554:8;12553:9;12461:101;12445:231;;;12600:4;12590:7;;:14;;;;;;;;;;;;;;;;;;12619:15;:13;:15::i;:::-;12659:5;12649:7;;:15;;;;;;;;;;;;;;;;;;12445:231;12688:11;12702:5;:29;;12720:11;;12702:29;;;12710:7;;12702:29;12688:43;;12754:1;12748:3;:7;12744:305;;;12777:8;12776:9;:21;;;;;12790:7;;;;;;;;;;;12789:8;12776:21;:42;;;;;12802:5;:15;;;;12811:6;12802:15;12776:42;12772:266;;;12839:12;12854:24;12874:3;12854:15;12865:3;12854:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;12839:39;;12910:1;12903:4;:8;12899:77;;;12934:42;12950:4;12964;12971;12934:15;:42::i;:::-;12899:77;13006:16;13017:4;13006:6;:10;;:16;;;;:::i;:::-;12997:25;;12820:218;12772:266;12744:305;13061:33;13077:4;13083:2;13087:6;13061:15;:33::i;:::-;11418:1684;;;;11305:1797;;;:::o;7845:199::-;7921:16;7940:6;;;;;;;;;;;7921:25;;7968:8;7959:6;;:17;;;;;;;;;;;;;;;;;;8025:8;7994:40;;8015:8;7994:40;;;;;;;;;;;;7908:136;7845:199;:::o;8305:102::-;8363:7;8396:1;8392;:5;;;;:::i;:::-;8385:12;;8305:102;;;;:::o;8417:::-;8475:7;8508:1;8504;:5;;;;:::i;:::-;8497:12;;8417:102;;;;:::o;13110:1016::-;13154:23;13180:24;13198:4;13180:9;:24::i;:::-;13154:50;;13238:1;13219:15;:20;13215:33;;13241:7;;;13215:33;13280:16;;13262:15;:34;13258:74;;;13316:16;;13298:34;;13258:74;13345:18;13366:21;13345:42;;13400:21;13438:1;13424:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:40;;13469:4;13451;13456:1;13451:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10106:42;13495:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13485:4;13490:1;13485:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;13522:58;13539:4;10106:42;13564:15;13522:8;:58::i;:::-;10106:42;13593:58;;;13666:15;13696:1;13712:4;13739;13759:15;13593:192;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13798:14;13815:37;13841:10;13815:21;:25;;:37;;;;:::i;:::-;13798:54;;13863:16;13882:22;13900:3;13882:13;13893:1;13882:6;:10;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;13863:41;;13926:20;13937:8;13926:6;:10;;:20;;;;:::i;:::-;13917:29;;13965:19;13957:37;;:45;13995:6;13957:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14021:42;14013:60;;:70;14074:8;14013:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14109:8;14101:17;;;;;;;;;;13143:983;;;;;13110:1016;:::o;4082:703::-;4239:1;4223:18;;:4;:18;;;4215:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4318:1;4304:16;;:2;:16;;;4296:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4375:38;4396:4;4402:2;4406:6;4375:20;:38::i;:::-;4428:19;4450:9;:15;4460:4;4450:15;;;;;;;;;;;;;;;;4428:37;;4501:6;4486:11;:21;;4478:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4622:6;4608:11;:20;4590:9;:15;4600:4;4590:15;;;;;;;;;;;;;;;:38;;;;4671:6;4654:9;:13;4664:2;4654:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;4712:2;4697:26;;4706:4;4697:26;;;4716:6;4697:26;;;;;;:::i;:::-;;;;;;;;4738:37;4758:4;4764:2;4768:6;4738:19;:37::i;:::-;4202:583;4082:703;;;:::o;8193:102::-;8251:7;8284:1;8280;:5;;;;:::i;:::-;8273:12;;8193:102;;;;:::o;6736:133::-;;;;:::o;6879:132::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:109::-;4796:7;4825:24;4843:5;4825:24;:::i;:::-;4814:35;;4746:109;;;:::o;4861:148::-;4947:37;4978:5;4947:37;:::i;:::-;4940:5;4937:48;4927:76;;4999:1;4996;4989:12;4927:76;4861:148;:::o;5015:165::-;5074:5;5112:6;5099:20;5090:29;;5128:46;5168:5;5128:46;:::i;:::-;5015:165;;;;:::o;5186:355::-;5258:6;5307:2;5295:9;5286:7;5282:23;5278:32;5275:119;;;5313:79;;:::i;:::-;5275:119;5433:1;5458:66;5516:7;5507:6;5496:9;5492:22;5458:66;:::i;:::-;5448:76;;5404:130;5186:355;;;;:::o;5547:118::-;5634:24;5652:5;5634:24;:::i;:::-;5629:3;5622:37;5547:118;;:::o;5671:222::-;5764:4;5802:2;5791:9;5787:18;5779:26;;5815:71;5883:1;5872:9;5868:17;5859:6;5815:71;:::i;:::-;5671:222;;;;:::o;5899:329::-;5958:6;6007:2;5995:9;5986:7;5982:23;5978:32;5975:119;;;6013:79;;:::i;:::-;5975:119;6133:1;6158:53;6203:7;6194:6;6183:9;6179:22;6158:53;:::i;:::-;6148:63;;6104:117;5899:329;;;;:::o;6234:474::-;6302:6;6310;6359:2;6347:9;6338:7;6334:23;6330:32;6327:119;;;6365:79;;:::i;:::-;6327:119;6485:1;6510:53;6555:7;6546:6;6535:9;6531:22;6510:53;:::i;:::-;6500:63;;6456:117;6612:2;6638:53;6683:7;6674:6;6663:9;6659:22;6638:53;:::i;:::-;6628:63;;6583:118;6234:474;;;;;:::o;6714:116::-;6784:21;6799:5;6784:21;:::i;:::-;6777:5;6774:32;6764:60;;6820:1;6817;6810:12;6764:60;6714:116;:::o;6836:133::-;6879:5;6917:6;6904:20;6895:29;;6933:30;6957:5;6933:30;:::i;:::-;6836:133;;;;:::o;6975:468::-;7040:6;7048;7097:2;7085:9;7076:7;7072:23;7068:32;7065:119;;;7103:79;;:::i;:::-;7065:119;7223:1;7248:53;7293:7;7284:6;7273:9;7269:22;7248:53;:::i;:::-;7238:63;;7194:117;7350:2;7376:50;7418:7;7409:6;7398:9;7394:22;7376:50;:::i;:::-;7366:60;;7321:115;6975:468;;;;;:::o;7449:474::-;7517:6;7525;7574:2;7562:9;7553:7;7549:23;7545:32;7542:119;;;7580:79;;:::i;:::-;7542:119;7700:1;7725:53;7770:7;7761:6;7750:9;7746:22;7725:53;:::i;:::-;7715:63;;7671:117;7827:2;7853:53;7898:7;7889:6;7878:9;7874:22;7853:53;:::i;:::-;7843:63;;7798:118;7449:474;;;;;:::o;7929:329::-;7988:6;8037:2;8025:9;8016:7;8012:23;8008:32;8005:119;;;8043:79;;:::i;:::-;8005:119;8163:1;8188:53;8233:7;8224:6;8213:9;8209:22;8188:53;:::i;:::-;8178:63;;8134:117;7929:329;;;;:::o;8264:180::-;8312:77;8309:1;8302:88;8409:4;8406:1;8399:15;8433:4;8430:1;8423:15;8450:320;8494:6;8531:1;8525:4;8521:12;8511:22;;8578:1;8572:4;8568:12;8599:18;8589:81;;8655:4;8647:6;8643:17;8633:27;;8589:81;8717:2;8709:6;8706:14;8686:18;8683:38;8680:84;;8736:18;;:::i;:::-;8680:84;8501:269;8450:320;;;:::o;8776:182::-;8916:34;8912:1;8904:6;8900:14;8893:58;8776:182;:::o;8964:366::-;9106:3;9127:67;9191:2;9186:3;9127:67;:::i;:::-;9120:74;;9203:93;9292:3;9203:93;:::i;:::-;9321:2;9316:3;9312:12;9305:19;;8964:366;;;:::o;9336:419::-;9502:4;9540:2;9529:9;9525:18;9517:26;;9589:9;9583:4;9579:20;9575:1;9564:9;9560:17;9553:47;9617:131;9743:4;9617:131;:::i;:::-;9609:139;;9336:419;;;:::o;9761:143::-;9818:5;9849:6;9843:13;9834:22;;9865:33;9892:5;9865:33;:::i;:::-;9761:143;;;;:::o;9910:351::-;9980:6;10029:2;10017:9;10008:7;10004:23;10000:32;9997:119;;;10035:79;;:::i;:::-;9997:119;10155:1;10180:64;10236:7;10227:6;10216:9;10212:22;10180:64;:::i;:::-;10170:74;;10126:128;9910:351;;;;:::o;10267:332::-;10388:4;10426:2;10415:9;10411:18;10403:26;;10439:71;10507:1;10496:9;10492:17;10483:6;10439:71;:::i;:::-;10520:72;10588:2;10577:9;10573:18;10564:6;10520:72;:::i;:::-;10267:332;;;;;:::o;10605:180::-;10653:77;10650:1;10643:88;10750:4;10747:1;10740:15;10774:4;10771:1;10764:15;10791:191;10831:3;10850:20;10868:1;10850:20;:::i;:::-;10845:25;;10884:20;10902:1;10884:20;:::i;:::-;10879:25;;10927:1;10924;10920:9;10913:16;;10948:3;10945:1;10942:10;10939:36;;;10955:18;;:::i;:::-;10939:36;10791:191;;;;:::o;10988:143::-;11045:5;11076:6;11070:13;11061:22;;11092:33;11119:5;11092:33;:::i;:::-;10988:143;;;;:::o;11137:351::-;11207:6;11256:2;11244:9;11235:7;11231:23;11227:32;11224:119;;;11262:79;;:::i;:::-;11224:119;11382:1;11407:64;11463:7;11454:6;11443:9;11439:22;11407:64;:::i;:::-;11397:74;;11353:128;11137:351;;;;:::o;11494:332::-;11615:4;11653:2;11642:9;11638:18;11630:26;;11666:71;11734:1;11723:9;11719:17;11710:6;11666:71;:::i;:::-;11747:72;11815:2;11804:9;11800:18;11791:6;11747:72;:::i;:::-;11494:332;;;;;:::o;11832:137::-;11886:5;11917:6;11911:13;11902:22;;11933:30;11957:5;11933:30;:::i;:::-;11832:137;;;;:::o;11975:345::-;12042:6;12091:2;12079:9;12070:7;12066:23;12062:32;12059:119;;;12097:79;;:::i;:::-;12059:119;12217:1;12242:61;12295:7;12286:6;12275:9;12271:22;12242:61;:::i;:::-;12232:71;;12188:125;11975:345;;;;:::o;12326:233::-;12466:34;12462:1;12454:6;12450:14;12443:58;12535:16;12530:2;12522:6;12518:15;12511:41;12326:233;:::o;12565:366::-;12707:3;12728:67;12792:2;12787:3;12728:67;:::i;:::-;12721:74;;12804:93;12893:3;12804:93;:::i;:::-;12922:2;12917:3;12913:12;12906:19;;12565:366;;;:::o;12937:419::-;13103:4;13141:2;13130:9;13126:18;13118:26;;13190:9;13184:4;13180:20;13176:1;13165:9;13161:17;13154:47;13218:131;13344:4;13218:131;:::i;:::-;13210:139;;12937:419;;;:::o;13362:224::-;13502:34;13498:1;13490:6;13486:14;13479:58;13571:7;13566:2;13558:6;13554:15;13547:32;13362:224;:::o;13592:366::-;13734:3;13755:67;13819:2;13814:3;13755:67;:::i;:::-;13748:74;;13831:93;13920:3;13831:93;:::i;:::-;13949:2;13944:3;13940:12;13933:19;;13592:366;;;:::o;13964:419::-;14130:4;14168:2;14157:9;14153:18;14145:26;;14217:9;14211:4;14207:20;14203:1;14192:9;14188:17;14181:47;14245:131;14371:4;14245:131;:::i;:::-;14237:139;;13964:419;;;:::o;14389:221::-;14529:34;14525:1;14517:6;14513:14;14506:58;14598:4;14593:2;14585:6;14581:15;14574:29;14389:221;:::o;14616:366::-;14758:3;14779:67;14843:2;14838:3;14779:67;:::i;:::-;14772:74;;14855:93;14944:3;14855:93;:::i;:::-;14973:2;14968:3;14964:12;14957:19;;14616:366;;;:::o;14988:419::-;15154:4;15192:2;15181:9;15177:18;15169:26;;15241:9;15235:4;15231:20;15227:1;15216:9;15212:17;15205:47;15269:131;15395:4;15269:131;:::i;:::-;15261:139;;14988:419;;;:::o;15413:225::-;15553:34;15549:1;15541:6;15537:14;15530:58;15622:8;15617:2;15609:6;15605:15;15598:33;15413:225;:::o;15644:366::-;15786:3;15807:67;15871:2;15866:3;15807:67;:::i;:::-;15800:74;;15883:93;15972:3;15883:93;:::i;:::-;16001:2;15996:3;15992:12;15985:19;;15644:366;;;:::o;16016:419::-;16182:4;16220:2;16209:9;16205:18;16197:26;;16269:9;16263:4;16259:20;16255:1;16244:9;16240:17;16233:47;16297:131;16423:4;16297:131;:::i;:::-;16289:139;;16016:419;;;:::o;16441:243::-;16581:34;16577:1;16569:6;16565:14;16558:58;16650:26;16645:2;16637:6;16633:15;16626:51;16441:243;:::o;16690:366::-;16832:3;16853:67;16917:2;16912:3;16853:67;:::i;:::-;16846:74;;16929:93;17018:3;16929:93;:::i;:::-;17047:2;17042:3;17038:12;17031:19;;16690:366;;;:::o;17062:419::-;17228:4;17266:2;17255:9;17251:18;17243:26;;17315:9;17309:4;17305:20;17301:1;17290:9;17286:17;17279:47;17343:131;17469:4;17343:131;:::i;:::-;17335:139;;17062:419;;;:::o;17487:240::-;17627:34;17623:1;17615:6;17611:14;17604:58;17696:23;17691:2;17683:6;17679:15;17672:48;17487:240;:::o;17733:366::-;17875:3;17896:67;17960:2;17955:3;17896:67;:::i;:::-;17889:74;;17972:93;18061:3;17972:93;:::i;:::-;18090:2;18085:3;18081:12;18074:19;;17733:366;;;:::o;18105:419::-;18271:4;18309:2;18298:9;18294:18;18286:26;;18358:9;18352:4;18348:20;18344:1;18333:9;18329:17;18322:47;18386:131;18512:4;18386:131;:::i;:::-;18378:139;;18105:419;;;:::o;18530:223::-;18670:34;18666:1;18658:6;18654:14;18647:58;18739:6;18734:2;18726:6;18722:15;18715:31;18530:223;:::o;18759:366::-;18901:3;18922:67;18986:2;18981:3;18922:67;:::i;:::-;18915:74;;18998:93;19087:3;18998:93;:::i;:::-;19116:2;19111:3;19107:12;19100:19;;18759:366;;;:::o;19131:419::-;19297:4;19335:2;19324:9;19320:18;19312:26;;19384:9;19378:4;19374:20;19370:1;19359:9;19355:17;19348:47;19412:131;19538:4;19412:131;:::i;:::-;19404:139;;19131:419;;;:::o;19556:221::-;19696:34;19692:1;19684:6;19680:14;19673:58;19765:4;19760:2;19752:6;19748:15;19741:29;19556:221;:::o;19783:366::-;19925:3;19946:67;20010:2;20005:3;19946:67;:::i;:::-;19939:74;;20022:93;20111:3;20022:93;:::i;:::-;20140:2;20135:3;20131:12;20124:19;;19783:366;;;:::o;20155:419::-;20321:4;20359:2;20348:9;20344:18;20336:26;;20408:9;20402:4;20398:20;20394:1;20383:9;20379:17;20372:47;20436:131;20562:4;20436:131;:::i;:::-;20428:139;;20155:419;;;:::o;20580:179::-;20720:31;20716:1;20708:6;20704:14;20697:55;20580:179;:::o;20765:366::-;20907:3;20928:67;20992:2;20987:3;20928:67;:::i;:::-;20921:74;;21004:93;21093:3;21004:93;:::i;:::-;21122:2;21117:3;21113:12;21106:19;;20765:366;;;:::o;21137:419::-;21303:4;21341:2;21330:9;21326:18;21318:26;;21390:9;21384:4;21380:20;21376:1;21365:9;21361:17;21354:47;21418:131;21544:4;21418:131;:::i;:::-;21410:139;;21137:419;;;:::o;21562:230::-;21702:34;21698:1;21690:6;21686:14;21679:58;21771:13;21766:2;21758:6;21754:15;21747:38;21562:230;:::o;21798:366::-;21940:3;21961:67;22025:2;22020:3;21961:67;:::i;:::-;21954:74;;22037:93;22126:3;22037:93;:::i;:::-;22155:2;22150:3;22146:12;22139:19;;21798:366;;;:::o;22170:419::-;22336:4;22374:2;22363:9;22359:18;22351:26;;22423:9;22417:4;22413:20;22409:1;22398:9;22394:17;22387:47;22451:131;22577:4;22451:131;:::i;:::-;22443:139;;22170:419;;;:::o;22595:228::-;22735:34;22731:1;22723:6;22719:14;22712:58;22804:11;22799:2;22791:6;22787:15;22780:36;22595:228;:::o;22829:366::-;22971:3;22992:67;23056:2;23051:3;22992:67;:::i;:::-;22985:74;;23068:93;23157:3;23068:93;:::i;:::-;23186:2;23181:3;23177:12;23170:19;;22829:366;;;:::o;23201:419::-;23367:4;23405:2;23394:9;23390:18;23382:26;;23454:9;23448:4;23444:20;23440:1;23429:9;23425:17;23418:47;23482:131;23608:4;23482:131;:::i;:::-;23474:139;;23201:419;;;:::o;23626:229::-;23766:34;23762:1;23754:6;23750:14;23743:58;23835:12;23830:2;23822:6;23818:15;23811:37;23626:229;:::o;23861:366::-;24003:3;24024:67;24088:2;24083:3;24024:67;:::i;:::-;24017:74;;24100:93;24189:3;24100:93;:::i;:::-;24218:2;24213:3;24209:12;24202:19;;23861:366;;;:::o;24233:419::-;24399:4;24437:2;24426:9;24422:18;24414:26;;24486:9;24480:4;24476:20;24472:1;24461:9;24457:17;24450:47;24514:131;24640:4;24514:131;:::i;:::-;24506:139;;24233:419;;;:::o;24658:304::-;24798:34;24794:1;24786:6;24782:14;24775:58;24867:34;24862:2;24854:6;24850:15;24843:59;24936:18;24931:2;24923:6;24919:15;24912:43;24658:304;:::o;24968:366::-;25110:3;25131:67;25195:2;25190:3;25131:67;:::i;:::-;25124:74;;25207:93;25296:3;25207:93;:::i;:::-;25325:2;25320:3;25316:12;25309:19;;24968:366;;;:::o;25340:419::-;25506:4;25544:2;25533:9;25529:18;25521:26;;25593:9;25587:4;25583:20;25579:1;25568:9;25564:17;25557:47;25621:131;25747:4;25621:131;:::i;:::-;25613:139;;25340:419;;;:::o;25765:181::-;25905:33;25901:1;25893:6;25889:14;25882:57;25765:181;:::o;25952:366::-;26094:3;26115:67;26179:2;26174:3;26115:67;:::i;:::-;26108:74;;26191:93;26280:3;26191:93;:::i;:::-;26309:2;26304:3;26300:12;26293:19;;25952:366;;;:::o;26324:419::-;26490:4;26528:2;26517:9;26513:18;26505:26;;26577:9;26571:4;26567:20;26563:1;26552:9;26548:17;26541:47;26605:131;26731:4;26605:131;:::i;:::-;26597:139;;26324:419;;;:::o;26749:291::-;26889:34;26885:1;26877:6;26873:14;26866:58;26958:34;26953:2;26945:6;26941:15;26934:59;27027:5;27022:2;27014:6;27010:15;27003:30;26749:291;:::o;27046:366::-;27188:3;27209:67;27273:2;27268:3;27209:67;:::i;:::-;27202:74;;27285:93;27374:3;27285:93;:::i;:::-;27403:2;27398:3;27394:12;27387:19;;27046:366;;;:::o;27418:419::-;27584:4;27622:2;27611:9;27607:18;27599:26;;27671:9;27665:4;27661:20;27657:1;27646:9;27642:17;27635:47;27699:131;27825:4;27699:131;:::i;:::-;27691:139;;27418:419;;;:::o;27843:292::-;27983:34;27979:1;27971:6;27967:14;27960:58;28052:34;28047:2;28039:6;28035:15;28028:59;28121:6;28116:2;28108:6;28104:15;28097:31;27843:292;:::o;28141:366::-;28283:3;28304:67;28368:2;28363:3;28304:67;:::i;:::-;28297:74;;28380:93;28469:3;28380:93;:::i;:::-;28498:2;28493:3;28489:12;28482:19;;28141:366;;;:::o;28513:419::-;28679:4;28717:2;28706:9;28702:18;28694:26;;28766:9;28760:4;28756:20;28752:1;28741:9;28737:17;28730:47;28794:131;28920:4;28794:131;:::i;:::-;28786:139;;28513:419;;;:::o;28938:410::-;28978:7;29001:20;29019:1;29001:20;:::i;:::-;28996:25;;29035:20;29053:1;29035:20;:::i;:::-;29030:25;;29090:1;29087;29083:9;29112:30;29130:11;29112:30;:::i;:::-;29101:41;;29291:1;29282:7;29278:15;29275:1;29272:22;29252:1;29245:9;29225:83;29202:139;;29321:18;;:::i;:::-;29202:139;28986:362;28938:410;;;;:::o;29354:180::-;29402:77;29399:1;29392:88;29499:4;29496:1;29489:15;29523:4;29520:1;29513:15;29540:185;29580:1;29597:20;29615:1;29597:20;:::i;:::-;29592:25;;29631:20;29649:1;29631:20;:::i;:::-;29626:25;;29670:1;29660:35;;29675:18;;:::i;:::-;29660:35;29717:1;29714;29710:9;29705:14;;29540:185;;;;:::o;29731:180::-;29779:77;29776:1;29769:88;29876:4;29873:1;29866:15;29900:4;29897:1;29890:15;29917:180;29965:77;29962:1;29955:88;30062:4;30059:1;30052:15;30086:4;30083:1;30076:15;30103:85;30148:7;30177:5;30166:16;;30103:85;;;:::o;30194:60::-;30222:3;30243:5;30236:12;;30194:60;;;:::o;30260:158::-;30318:9;30351:61;30369:42;30378:32;30404:5;30378:32;:::i;:::-;30369:42;:::i;:::-;30351:61;:::i;:::-;30338:74;;30260:158;;;:::o;30424:147::-;30519:45;30558:5;30519:45;:::i;:::-;30514:3;30507:58;30424:147;;:::o;30577:114::-;30644:6;30678:5;30672:12;30662:22;;30577:114;;;:::o;30697:184::-;30796:11;30830:6;30825:3;30818:19;30870:4;30865:3;30861:14;30846:29;;30697:184;;;;:::o;30887:132::-;30954:4;30977:3;30969:11;;31007:4;31002:3;30998:14;30990:22;;30887:132;;;:::o;31025:108::-;31102:24;31120:5;31102:24;:::i;:::-;31097:3;31090:37;31025:108;;:::o;31139:179::-;31208:10;31229:46;31271:3;31263:6;31229:46;:::i;:::-;31307:4;31302:3;31298:14;31284:28;;31139:179;;;;:::o;31324:113::-;31394:4;31426;31421:3;31417:14;31409:22;;31324:113;;;:::o;31473:732::-;31592:3;31621:54;31669:5;31621:54;:::i;:::-;31691:86;31770:6;31765:3;31691:86;:::i;:::-;31684:93;;31801:56;31851:5;31801:56;:::i;:::-;31880:7;31911:1;31896:284;31921:6;31918:1;31915:13;31896:284;;;31997:6;31991:13;32024:63;32083:3;32068:13;32024:63;:::i;:::-;32017:70;;32110:60;32163:6;32110:60;:::i;:::-;32100:70;;31956:224;31943:1;31940;31936:9;31931:14;;31896:284;;;31900:14;32196:3;32189:10;;31597:608;;;31473:732;;;;:::o;32211:831::-;32474:4;32512:3;32501:9;32497:19;32489:27;;32526:71;32594:1;32583:9;32579:17;32570:6;32526:71;:::i;:::-;32607:80;32683:2;32672:9;32668:18;32659:6;32607:80;:::i;:::-;32734:9;32728:4;32724:20;32719:2;32708:9;32704:18;32697:48;32762:108;32865:4;32856:6;32762:108;:::i;:::-;32754:116;;32880:72;32948:2;32937:9;32933:18;32924:6;32880:72;:::i;:::-;32962:73;33030:3;33019:9;33015:19;33006:6;32962:73;:::i;:::-;32211:831;;;;;;;;:::o;33048:224::-;33188:34;33184:1;33176:6;33172:14;33165:58;33257:7;33252:2;33244:6;33240:15;33233:32;33048:224;:::o;33278:366::-;33420:3;33441:67;33505:2;33500:3;33441:67;:::i;:::-;33434:74;;33517:93;33606:3;33517:93;:::i;:::-;33635:2;33630:3;33626:12;33619:19;;33278:366;;;:::o;33650:419::-;33816:4;33854:2;33843:9;33839:18;33831:26;;33903:9;33897:4;33893:20;33889:1;33878:9;33874:17;33867:47;33931:131;34057:4;33931:131;:::i;:::-;33923:139;;33650:419;;;:::o;34075:222::-;34215:34;34211:1;34203:6;34199:14;34192:58;34284:5;34279:2;34271:6;34267:15;34260:30;34075:222;:::o;34303:366::-;34445:3;34466:67;34530:2;34525:3;34466:67;:::i;:::-;34459:74;;34542:93;34631:3;34542:93;:::i;:::-;34660:2;34655:3;34651:12;34644:19;;34303:366;;;:::o;34675:419::-;34841:4;34879:2;34868:9;34864:18;34856:26;;34928:9;34922:4;34918:20;34914:1;34903:9;34899:17;34892:47;34956:131;35082:4;34956:131;:::i;:::-;34948:139;;34675:419;;;:::o;35100:225::-;35240:34;35236:1;35228:6;35224:14;35217:58;35309:8;35304:2;35296:6;35292:15;35285:33;35100:225;:::o;35331:366::-;35473:3;35494:67;35558:2;35553:3;35494:67;:::i;:::-;35487:74;;35570:93;35659:3;35570:93;:::i;:::-;35688:2;35683:3;35679:12;35672:19;;35331:366;;;:::o;35703:419::-;35869:4;35907:2;35896:9;35892:18;35884:26;;35956:9;35950:4;35946:20;35942:1;35931:9;35927:17;35920:47;35984:131;36110:4;35984:131;:::i;:::-;35976:139;;35703:419;;;:::o;36128:194::-;36168:4;36188:20;36206:1;36188:20;:::i;:::-;36183:25;;36222:20;36240:1;36222:20;:::i;:::-;36217:25;;36266:1;36263;36259:9;36251:17;;36290:1;36284:4;36281:11;36278:37;;;36295:18;;:::i;:::-;36278:37;36128:194;;;;:::o
Swarm Source
ipfs://a193ca27e6cc0d4078decc4a6e6c6823f5238ae7d51d483fcc81a7bc051a49d7
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.