ERC-20
Overview
Max Total Supply
1,000,000,000 Y U NO
Holders
45
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
13,223,426.36848416 Y U NOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
YUNO
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-09 */ // https://t.me/yunotoken // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract YUNO is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Y U NO"; string private constant _symbol = "Y U NO"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public launchBlock; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 6; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 6; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0x048A29721c1A3d2Ed847f38638CC2D0A995482F6); address payable private _marketingAddress = payable(0x048A29721c1A3d2Ed847f38638CC2D0A995482F6); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000000 * 10**9; uint256 public _maxWalletSize = 20000000 * 10**9; uint256 public _swapTokensAtAmount = 10000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if ((from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setTrading(bool _tradingOpen) public onlyOwner { require(_tradingOpen); tradingOpen = _tradingOpen; launchBlock = block.number; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function addBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBots(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(taxFeeOnBuy <= 15 && taxFeeOnSell <= 15 ); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount, uint256 maxWalletSize) external onlyOwner { require(maxTxAmount >= 5000000 * 10**9 ); _maxTxAmount = maxTxAmount; _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c919062000833565b6000196200002b9190620007ba565b60065560006009556006600a556000600b556006600c55600b54600d55600c54600e55600d54600f55600e5460105573048a29721c1a3d2ed847f38638cc2d0a995482f6601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073048a29721c1a3d2ed847f38638cc2d0a995482f6601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff02191690831515021790555066470de4df82000060175566470de4df8200006018556509184e72a0006019553480156200016657600080fd5b50600062000179620006d460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022e620006d460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030d57600080fd5b505afa15801562000322573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034891906200071c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ab57600080fd5b505afa158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e691906200071c565b6040518363ffffffff1660e01b81526004016200040592919062000770565b602060405180830381600087803b1580156200042057600080fd5b505af115801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b91906200071c565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b1620006dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200065e620006d460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006c591906200079d565b60405180910390a350620008e8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200071681620008ce565b92915050565b600060208284031215620007355762000734620008c9565b5b6000620007458482850162000705565b91505092915050565b6200075981620007f5565b82525050565b6200076a8162000829565b82525050565b60006040820190506200078760008301856200074e565b6200079660208301846200074e565b9392505050565b6000602082019050620007b460008301846200075f565b92915050565b6000620007c78262000829565b9150620007d48362000829565b925082821015620007ea57620007e96200086b565b5b828203905092915050565b6000620008028262000809565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008408262000829565b91506200084d8362000829565b92508262000860576200085f6200089a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008d981620007f5565b8114620008e557600080fd5b50565b613d2d80620008f86000396000f3fe6080604052600436106101c65760003560e01c80638f70ccf7116100f7578063b792507e11610095578063d00efb2f11610064578063d00efb2f14610615578063d34628cc14610640578063dd62ed3e14610669578063f2fde38b146106a6576101cd565b8063b792507e1461056f578063bfd7928414610598578063c3c8cd80146105d5578063c492f046146105ec576101cd565b806398a5c315116100d157806398a5c315146104b7578063a2a957bb146104e0578063a9059cbb14610509578063ae0f3f4514610546576101cd565b80638f70ccf7146104385780638f9a55c01461046157806395d89b411461048c576101cd565b806349bd5a5e1161016457806370a082311161013e57806370a082311461038e578063715018a6146103cb5780637d1db4a5146103e25780638da5cb5b1461040d576101cd565b806349bd5a5e146103235780636d8aa8f81461034e5780636fc3eaec14610377576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd146102905780632fd689e3146102cd578063313ce567146102f8576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780631694505e1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106cf565b6040516101f4919061324d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612d10565b61070c565b6040516102319190613217565b60405180910390f35b34801561024657600080fd5b5061024f61072a565b60405161025c9190613232565b60405180910390f35b34801561027157600080fd5b5061027a610750565b604051610287919061342f565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612cbd565b610760565b6040516102c49190613217565b60405180910390f35b3480156102d957600080fd5b506102e2610839565b6040516102ef919061342f565b60405180910390f35b34801561030457600080fd5b5061030d61083f565b60405161031a91906134a4565b60405180910390f35b34801561032f57600080fd5b50610338610848565b60405161034591906131fc565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612df9565b61086e565b005b34801561038357600080fd5b5061038c61091f565b005b34801561039a57600080fd5b506103b560048036038101906103b09190612c23565b6109f0565b6040516103c2919061342f565b60405180910390f35b3480156103d757600080fd5b506103e0610a41565b005b3480156103ee57600080fd5b506103f7610b94565b604051610404919061342f565b60405180910390f35b34801561041957600080fd5b50610422610b9a565b60405161042f91906131fc565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612df9565b610bc3565b005b34801561046d57600080fd5b50610476610c86565b604051610483919061342f565b60405180910390f35b34801561049857600080fd5b506104a1610c8c565b6040516104ae919061324d565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190612e26565b610cc9565b005b3480156104ec57600080fd5b5061050760048036038101906105029190612e93565b610d68565b005b34801561051557600080fd5b50610530600480360381019061052b9190612d10565b610e3a565b60405161053d9190613217565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190612e53565b610e58565b005b34801561057b57600080fd5b5061059660048036038101906105919190612c23565b610f13565b005b3480156105a457600080fd5b506105bf60048036038101906105ba9190612c23565b611003565b6040516105cc9190613217565b60405180910390f35b3480156105e157600080fd5b506105ea611023565b005b3480156105f857600080fd5b50610613600480360381019061060e9190612d50565b6110fc565b005b34801561062157600080fd5b5061062a611236565b604051610637919061342f565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612db0565b61123c565b005b34801561067557600080fd5b50610690600480360381019061068b9190612c7d565b611366565b60405161069d919061342f565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190612c23565b6113ed565b005b60606040518060400160405280600681526020017f592055204e4f0000000000000000000000000000000000000000000000000000815250905090565b60006107206107196115af565b84846115b7565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061076d848484611782565b61082e846107796115af565b61082985604051806060016040528060288152602001613cd060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107df6115af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5f9092919063ffffffff16565b6115b7565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108766115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa9061338f565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109606115af565b73ffffffffffffffffffffffffffffffffffffffff1614806109d65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109be6115af565b73ffffffffffffffffffffffffffffffffffffffff16145b6109df57600080fd5b60004790506109ed81611fc3565b50565b6000610a3a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120be565b9050919050565b610a496115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd9061338f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bcb6115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f9061338f565b60405180910390fd5b80610c6257600080fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600681526020017f592055204e4f0000000000000000000000000000000000000000000000000000815250905090565b610cd16115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d559061338f565b60405180910390fd5b8060198190555050565b610d706115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df49061338f565b60405180910390fd5b600f8211158015610e0f5750600f8111155b610e1857600080fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b6000610e4e610e476115af565b8484611782565b6001905092915050565b610e606115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee49061338f565b60405180910390fd5b6611c37937e08000821015610f0157600080fd5b81601781905550806018819055505050565b610f1b6115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f9061338f565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110646115af565b73ffffffffffffffffffffffffffffffffffffffff1614806110da5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c26115af565b73ffffffffffffffffffffffffffffffffffffffff16145b6110e357600080fd5b60006110ee306109f0565b90506110f98161212c565b50565b6111046115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111889061338f565b60405180910390fd5b60005b838390508110156112305781600560008686858181106111b7576111b6613822565b5b90506020020160208101906111cc9190612c23565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112289061377b565b915050611194565b50505050565b60085481565b6112446115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c89061338f565b60405180910390fd5b60005b8151811015611362576001601160008484815181106112f6576112f5613822565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061135a9061377b565b9150506112d4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113f56115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114799061338f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e9906132ef565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e9061340f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e9061330f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611775919061342f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e9906133cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611862576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118599061326f565b60405180910390fd5b600081116118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c906133af565b60405180910390fd5b6118ad610b9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561191b57506118eb610b9a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d0657601660149054906101000a900460ff166119aa5761193c610b9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a09061328f565b60405180910390fd5b5b6017548111156119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e6906132cf565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a935750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac99061332f565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b7f5760185481611b34846109f0565b611b3e9190613565565b10611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b75906133ef565b60405180910390fd5b5b6000611b8a306109f0565b9050600060195482101590506017548210611ba55760175491505b808015611bbf5750601660159054906101000a900460ff16155b8015611c195750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2f575060168054906101000a900460ff165b8015611c855750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cdb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0357611ce98261212c565b60004790506000811115611d0157611d0047611fc3565b5b505b50505b600060019050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611db85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dc65760009050611f4d565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e715750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e8957600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f345750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f4c57600b54600d81905550600c54600e819055505b5b611f59848484846123b4565b50505050565b6000838311158290611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e919061324d565b60405180910390fd5b5060008385611fb69190613646565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120136002846123e190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561203e573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61208f6002846123e190919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120ba573d6000803e3d6000fd5b5050565b6000600654821115612105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fc906132af565b60405180910390fd5b600061210f61242b565b905061212481846123e190919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561216457612163613851565b5b6040519080825280602002602001820160405280156121925781602001602082028036833780820191505090505b50905030816000815181106121aa576121a9613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561224c57600080fd5b505afa158015612260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122849190612c50565b8160018151811061229857612297613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122ff30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115b7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161236395949392919061344a565b600060405180830381600087803b15801561237d57600080fd5b505af1158015612391573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806123c2576123c1612456565b5b6123cd848484612499565b806123db576123da612664565b5b50505050565b600061242383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612678565b905092915050565b60008060006124386126db565b9150915061244f81836123e190919063ffffffff16565b9250505090565b6000600d5414801561246a57506000600e54145b1561247457612497565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806124ab8761273a565b95509550955095509550955061250986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ea8161284a565b6125f48483612907565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612651919061342f565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080831182906126bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b6919061324d565b60405180910390fd5b50600083856126ce91906135bb565b9050809150509392505050565b600080600060065490506000670de0b6b3a7640000905061270f670de0b6b3a76400006006546123e190919063ffffffff16565b82101561272d57600654670de0b6b3a7640000935093505050612736565b81819350935050505b9091565b60008060008060008060008060006127578a600d54600e54612941565b925092509250600061276761242b565b9050600080600061277a8e8787876129d7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006127e483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f5f565b905092915050565b60008082846127fb9190613565565b905083811015612840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128379061334f565b60405180910390fd5b8091505092915050565b600061285461242b565b9050600061286b8284612a6090919063ffffffff16565b90506128bf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61291c826006546127a290919063ffffffff16565b600681905550612937816007546127ec90919063ffffffff16565b6007819055505050565b60008060008061296d606461295f888a612a6090919063ffffffff16565b6123e190919063ffffffff16565b905060006129976064612989888b612a6090919063ffffffff16565b6123e190919063ffffffff16565b905060006129c0826129b2858c6127a290919063ffffffff16565b6127a290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129f08589612a6090919063ffffffff16565b90506000612a078689612a6090919063ffffffff16565b90506000612a1e8789612a6090919063ffffffff16565b90506000612a4782612a3985876127a290919063ffffffff16565b6127a290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612a735760009050612ad5565b60008284612a8191906135ec565b9050828482612a9091906135bb565b14612ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac79061336f565b60405180910390fd5b809150505b92915050565b6000612aee612ae9846134e4565b6134bf565b90508083825260208201905082856020860282011115612b1157612b1061388a565b5b60005b85811015612b415781612b278882612b4b565b845260208401935060208301925050600181019050612b14565b5050509392505050565b600081359050612b5a81613c8a565b92915050565b600081519050612b6f81613c8a565b92915050565b60008083601f840112612b8b57612b8a613885565b5b8235905067ffffffffffffffff811115612ba857612ba7613880565b5b602083019150836020820283011115612bc457612bc361388a565b5b9250929050565b600082601f830112612be057612bdf613885565b5b8135612bf0848260208601612adb565b91505092915050565b600081359050612c0881613ca1565b92915050565b600081359050612c1d81613cb8565b92915050565b600060208284031215612c3957612c38613894565b5b6000612c4784828501612b4b565b91505092915050565b600060208284031215612c6657612c65613894565b5b6000612c7484828501612b60565b91505092915050565b60008060408385031215612c9457612c93613894565b5b6000612ca285828601612b4b565b9250506020612cb385828601612b4b565b9150509250929050565b600080600060608486031215612cd657612cd5613894565b5b6000612ce486828701612b4b565b9350506020612cf586828701612b4b565b9250506040612d0686828701612c0e565b9150509250925092565b60008060408385031215612d2757612d26613894565b5b6000612d3585828601612b4b565b9250506020612d4685828601612c0e565b9150509250929050565b600080600060408486031215612d6957612d68613894565b5b600084013567ffffffffffffffff811115612d8757612d8661388f565b5b612d9386828701612b75565b93509350506020612da686828701612bf9565b9150509250925092565b600060208284031215612dc657612dc5613894565b5b600082013567ffffffffffffffff811115612de457612de361388f565b5b612df084828501612bcb565b91505092915050565b600060208284031215612e0f57612e0e613894565b5b6000612e1d84828501612bf9565b91505092915050565b600060208284031215612e3c57612e3b613894565b5b6000612e4a84828501612c0e565b91505092915050565b60008060408385031215612e6a57612e69613894565b5b6000612e7885828601612c0e565b9250506020612e8985828601612c0e565b9150509250929050565b60008060008060808587031215612ead57612eac613894565b5b6000612ebb87828801612c0e565b9450506020612ecc87828801612c0e565b9350506040612edd87828801612c0e565b9250506060612eee87828801612c0e565b91505092959194509250565b6000612f068383612f12565b60208301905092915050565b612f1b8161367a565b82525050565b612f2a8161367a565b82525050565b6000612f3b82613520565b612f458185613543565b9350612f5083613510565b8060005b83811015612f81578151612f688882612efa565b9750612f7383613536565b925050600181019050612f54565b5085935050505092915050565b612f978161368c565b82525050565b612fa6816136cf565b82525050565b612fb5816136e1565b82525050565b6000612fc68261352b565b612fd08185613554565b9350612fe0818560208601613717565b612fe981613899565b840191505092915050565b6000613001602383613554565b915061300c826138aa565b604082019050919050565b6000613024603f83613554565b915061302f826138f9565b604082019050919050565b6000613047602a83613554565b915061305282613948565b604082019050919050565b600061306a601c83613554565b915061307582613997565b602082019050919050565b600061308d602683613554565b9150613098826139c0565b604082019050919050565b60006130b0602283613554565b91506130bb82613a0f565b604082019050919050565b60006130d3602383613554565b91506130de82613a5e565b604082019050919050565b60006130f6601b83613554565b915061310182613aad565b602082019050919050565b6000613119602183613554565b915061312482613ad6565b604082019050919050565b600061313c602083613554565b915061314782613b25565b602082019050919050565b600061315f602983613554565b915061316a82613b4e565b604082019050919050565b6000613182602583613554565b915061318d82613b9d565b604082019050919050565b60006131a5602383613554565b91506131b082613bec565b604082019050919050565b60006131c8602483613554565b91506131d382613c3b565b604082019050919050565b6131e7816136b8565b82525050565b6131f6816136c2565b82525050565b60006020820190506132116000830184612f21565b92915050565b600060208201905061322c6000830184612f8e565b92915050565b60006020820190506132476000830184612f9d565b92915050565b600060208201905081810360008301526132678184612fbb565b905092915050565b6000602082019050818103600083015261328881612ff4565b9050919050565b600060208201905081810360008301526132a881613017565b9050919050565b600060208201905081810360008301526132c88161303a565b9050919050565b600060208201905081810360008301526132e88161305d565b9050919050565b6000602082019050818103600083015261330881613080565b9050919050565b60006020820190508181036000830152613328816130a3565b9050919050565b60006020820190508181036000830152613348816130c6565b9050919050565b60006020820190508181036000830152613368816130e9565b9050919050565b600060208201905081810360008301526133888161310c565b9050919050565b600060208201905081810360008301526133a88161312f565b9050919050565b600060208201905081810360008301526133c881613152565b9050919050565b600060208201905081810360008301526133e881613175565b9050919050565b6000602082019050818103600083015261340881613198565b9050919050565b60006020820190508181036000830152613428816131bb565b9050919050565b600060208201905061344460008301846131de565b92915050565b600060a08201905061345f60008301886131de565b61346c6020830187612fac565b818103604083015261347e8186612f30565b905061348d6060830185612f21565b61349a60808301846131de565b9695505050505050565b60006020820190506134b960008301846131ed565b92915050565b60006134c96134da565b90506134d5828261374a565b919050565b6000604051905090565b600067ffffffffffffffff8211156134ff576134fe613851565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613570826136b8565b915061357b836136b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135b0576135af6137c4565b5b828201905092915050565b60006135c6826136b8565b91506135d1836136b8565b9250826135e1576135e06137f3565b5b828204905092915050565b60006135f7826136b8565b9150613602836136b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561363b5761363a6137c4565b5b828202905092915050565b6000613651826136b8565b915061365c836136b8565b92508282101561366f5761366e6137c4565b5b828203905092915050565b600061368582613698565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136da826136f3565b9050919050565b60006136ec826136b8565b9050919050565b60006136fe82613705565b9050919050565b600061371082613698565b9050919050565b60005b8381101561373557808201518184015260208101905061371a565b83811115613744576000848401525b50505050565b61375382613899565b810181811067ffffffffffffffff8211171561377257613771613851565b5b80604052505050565b6000613786826136b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137b9576137b86137c4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613c938161367a565b8114613c9e57600080fd5b50565b613caa8161368c565b8114613cb557600080fd5b50565b613cc1816136b8565b8114613ccc57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207eb0246f20b7c61758e1db7476e8391fc19482fd856bfe8dca66e3a15ccc027564736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c80638f70ccf7116100f7578063b792507e11610095578063d00efb2f11610064578063d00efb2f14610615578063d34628cc14610640578063dd62ed3e14610669578063f2fde38b146106a6576101cd565b8063b792507e1461056f578063bfd7928414610598578063c3c8cd80146105d5578063c492f046146105ec576101cd565b806398a5c315116100d157806398a5c315146104b7578063a2a957bb146104e0578063a9059cbb14610509578063ae0f3f4514610546576101cd565b80638f70ccf7146104385780638f9a55c01461046157806395d89b411461048c576101cd565b806349bd5a5e1161016457806370a082311161013e57806370a082311461038e578063715018a6146103cb5780637d1db4a5146103e25780638da5cb5b1461040d576101cd565b806349bd5a5e146103235780636d8aa8f81461034e5780636fc3eaec14610377576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd146102905780632fd689e3146102cd578063313ce567146102f8576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780631694505e1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106cf565b6040516101f4919061324d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612d10565b61070c565b6040516102319190613217565b60405180910390f35b34801561024657600080fd5b5061024f61072a565b60405161025c9190613232565b60405180910390f35b34801561027157600080fd5b5061027a610750565b604051610287919061342f565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612cbd565b610760565b6040516102c49190613217565b60405180910390f35b3480156102d957600080fd5b506102e2610839565b6040516102ef919061342f565b60405180910390f35b34801561030457600080fd5b5061030d61083f565b60405161031a91906134a4565b60405180910390f35b34801561032f57600080fd5b50610338610848565b60405161034591906131fc565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612df9565b61086e565b005b34801561038357600080fd5b5061038c61091f565b005b34801561039a57600080fd5b506103b560048036038101906103b09190612c23565b6109f0565b6040516103c2919061342f565b60405180910390f35b3480156103d757600080fd5b506103e0610a41565b005b3480156103ee57600080fd5b506103f7610b94565b604051610404919061342f565b60405180910390f35b34801561041957600080fd5b50610422610b9a565b60405161042f91906131fc565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612df9565b610bc3565b005b34801561046d57600080fd5b50610476610c86565b604051610483919061342f565b60405180910390f35b34801561049857600080fd5b506104a1610c8c565b6040516104ae919061324d565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190612e26565b610cc9565b005b3480156104ec57600080fd5b5061050760048036038101906105029190612e93565b610d68565b005b34801561051557600080fd5b50610530600480360381019061052b9190612d10565b610e3a565b60405161053d9190613217565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190612e53565b610e58565b005b34801561057b57600080fd5b5061059660048036038101906105919190612c23565b610f13565b005b3480156105a457600080fd5b506105bf60048036038101906105ba9190612c23565b611003565b6040516105cc9190613217565b60405180910390f35b3480156105e157600080fd5b506105ea611023565b005b3480156105f857600080fd5b50610613600480360381019061060e9190612d50565b6110fc565b005b34801561062157600080fd5b5061062a611236565b604051610637919061342f565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612db0565b61123c565b005b34801561067557600080fd5b50610690600480360381019061068b9190612c7d565b611366565b60405161069d919061342f565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190612c23565b6113ed565b005b60606040518060400160405280600681526020017f592055204e4f0000000000000000000000000000000000000000000000000000815250905090565b60006107206107196115af565b84846115b7565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061076d848484611782565b61082e846107796115af565b61082985604051806060016040528060288152602001613cd060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107df6115af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5f9092919063ffffffff16565b6115b7565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108766115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa9061338f565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109606115af565b73ffffffffffffffffffffffffffffffffffffffff1614806109d65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109be6115af565b73ffffffffffffffffffffffffffffffffffffffff16145b6109df57600080fd5b60004790506109ed81611fc3565b50565b6000610a3a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120be565b9050919050565b610a496115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd9061338f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bcb6115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f9061338f565b60405180910390fd5b80610c6257600080fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600681526020017f592055204e4f0000000000000000000000000000000000000000000000000000815250905090565b610cd16115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d559061338f565b60405180910390fd5b8060198190555050565b610d706115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df49061338f565b60405180910390fd5b600f8211158015610e0f5750600f8111155b610e1857600080fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b6000610e4e610e476115af565b8484611782565b6001905092915050565b610e606115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee49061338f565b60405180910390fd5b6611c37937e08000821015610f0157600080fd5b81601781905550806018819055505050565b610f1b6115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f9061338f565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110646115af565b73ffffffffffffffffffffffffffffffffffffffff1614806110da5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c26115af565b73ffffffffffffffffffffffffffffffffffffffff16145b6110e357600080fd5b60006110ee306109f0565b90506110f98161212c565b50565b6111046115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111889061338f565b60405180910390fd5b60005b838390508110156112305781600560008686858181106111b7576111b6613822565b5b90506020020160208101906111cc9190612c23565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112289061377b565b915050611194565b50505050565b60085481565b6112446115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c89061338f565b60405180910390fd5b60005b8151811015611362576001601160008484815181106112f6576112f5613822565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061135a9061377b565b9150506112d4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113f56115af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114799061338f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e9906132ef565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e9061340f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e9061330f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611775919061342f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e9906133cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611862576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118599061326f565b60405180910390fd5b600081116118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c906133af565b60405180910390fd5b6118ad610b9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561191b57506118eb610b9a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d0657601660149054906101000a900460ff166119aa5761193c610b9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a09061328f565b60405180910390fd5b5b6017548111156119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e6906132cf565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a935750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac99061332f565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b7f5760185481611b34846109f0565b611b3e9190613565565b10611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b75906133ef565b60405180910390fd5b5b6000611b8a306109f0565b9050600060195482101590506017548210611ba55760175491505b808015611bbf5750601660159054906101000a900460ff16155b8015611c195750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2f575060168054906101000a900460ff165b8015611c855750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cdb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0357611ce98261212c565b60004790506000811115611d0157611d0047611fc3565b5b505b50505b600060019050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611db85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dc65760009050611f4d565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e715750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e8957600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f345750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f4c57600b54600d81905550600c54600e819055505b5b611f59848484846123b4565b50505050565b6000838311158290611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e919061324d565b60405180910390fd5b5060008385611fb69190613646565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120136002846123e190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561203e573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61208f6002846123e190919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120ba573d6000803e3d6000fd5b5050565b6000600654821115612105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fc906132af565b60405180910390fd5b600061210f61242b565b905061212481846123e190919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561216457612163613851565b5b6040519080825280602002602001820160405280156121925781602001602082028036833780820191505090505b50905030816000815181106121aa576121a9613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561224c57600080fd5b505afa158015612260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122849190612c50565b8160018151811061229857612297613822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122ff30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115b7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161236395949392919061344a565b600060405180830381600087803b15801561237d57600080fd5b505af1158015612391573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806123c2576123c1612456565b5b6123cd848484612499565b806123db576123da612664565b5b50505050565b600061242383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612678565b905092915050565b60008060006124386126db565b9150915061244f81836123e190919063ffffffff16565b9250505090565b6000600d5414801561246a57506000600e54145b1561247457612497565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806124ab8761273a565b95509550955095509550955061250986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ea8161284a565b6125f48483612907565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612651919061342f565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080831182906126bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b6919061324d565b60405180910390fd5b50600083856126ce91906135bb565b9050809150509392505050565b600080600060065490506000670de0b6b3a7640000905061270f670de0b6b3a76400006006546123e190919063ffffffff16565b82101561272d57600654670de0b6b3a7640000935093505050612736565b81819350935050505b9091565b60008060008060008060008060006127578a600d54600e54612941565b925092509250600061276761242b565b9050600080600061277a8e8787876129d7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006127e483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f5f565b905092915050565b60008082846127fb9190613565565b905083811015612840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128379061334f565b60405180910390fd5b8091505092915050565b600061285461242b565b9050600061286b8284612a6090919063ffffffff16565b90506128bf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61291c826006546127a290919063ffffffff16565b600681905550612937816007546127ec90919063ffffffff16565b6007819055505050565b60008060008061296d606461295f888a612a6090919063ffffffff16565b6123e190919063ffffffff16565b905060006129976064612989888b612a6090919063ffffffff16565b6123e190919063ffffffff16565b905060006129c0826129b2858c6127a290919063ffffffff16565b6127a290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129f08589612a6090919063ffffffff16565b90506000612a078689612a6090919063ffffffff16565b90506000612a1e8789612a6090919063ffffffff16565b90506000612a4782612a3985876127a290919063ffffffff16565b6127a290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612a735760009050612ad5565b60008284612a8191906135ec565b9050828482612a9091906135bb565b14612ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac79061336f565b60405180910390fd5b809150505b92915050565b6000612aee612ae9846134e4565b6134bf565b90508083825260208201905082856020860282011115612b1157612b1061388a565b5b60005b85811015612b415781612b278882612b4b565b845260208401935060208301925050600181019050612b14565b5050509392505050565b600081359050612b5a81613c8a565b92915050565b600081519050612b6f81613c8a565b92915050565b60008083601f840112612b8b57612b8a613885565b5b8235905067ffffffffffffffff811115612ba857612ba7613880565b5b602083019150836020820283011115612bc457612bc361388a565b5b9250929050565b600082601f830112612be057612bdf613885565b5b8135612bf0848260208601612adb565b91505092915050565b600081359050612c0881613ca1565b92915050565b600081359050612c1d81613cb8565b92915050565b600060208284031215612c3957612c38613894565b5b6000612c4784828501612b4b565b91505092915050565b600060208284031215612c6657612c65613894565b5b6000612c7484828501612b60565b91505092915050565b60008060408385031215612c9457612c93613894565b5b6000612ca285828601612b4b565b9250506020612cb385828601612b4b565b9150509250929050565b600080600060608486031215612cd657612cd5613894565b5b6000612ce486828701612b4b565b9350506020612cf586828701612b4b565b9250506040612d0686828701612c0e565b9150509250925092565b60008060408385031215612d2757612d26613894565b5b6000612d3585828601612b4b565b9250506020612d4685828601612c0e565b9150509250929050565b600080600060408486031215612d6957612d68613894565b5b600084013567ffffffffffffffff811115612d8757612d8661388f565b5b612d9386828701612b75565b93509350506020612da686828701612bf9565b9150509250925092565b600060208284031215612dc657612dc5613894565b5b600082013567ffffffffffffffff811115612de457612de361388f565b5b612df084828501612bcb565b91505092915050565b600060208284031215612e0f57612e0e613894565b5b6000612e1d84828501612bf9565b91505092915050565b600060208284031215612e3c57612e3b613894565b5b6000612e4a84828501612c0e565b91505092915050565b60008060408385031215612e6a57612e69613894565b5b6000612e7885828601612c0e565b9250506020612e8985828601612c0e565b9150509250929050565b60008060008060808587031215612ead57612eac613894565b5b6000612ebb87828801612c0e565b9450506020612ecc87828801612c0e565b9350506040612edd87828801612c0e565b9250506060612eee87828801612c0e565b91505092959194509250565b6000612f068383612f12565b60208301905092915050565b612f1b8161367a565b82525050565b612f2a8161367a565b82525050565b6000612f3b82613520565b612f458185613543565b9350612f5083613510565b8060005b83811015612f81578151612f688882612efa565b9750612f7383613536565b925050600181019050612f54565b5085935050505092915050565b612f978161368c565b82525050565b612fa6816136cf565b82525050565b612fb5816136e1565b82525050565b6000612fc68261352b565b612fd08185613554565b9350612fe0818560208601613717565b612fe981613899565b840191505092915050565b6000613001602383613554565b915061300c826138aa565b604082019050919050565b6000613024603f83613554565b915061302f826138f9565b604082019050919050565b6000613047602a83613554565b915061305282613948565b604082019050919050565b600061306a601c83613554565b915061307582613997565b602082019050919050565b600061308d602683613554565b9150613098826139c0565b604082019050919050565b60006130b0602283613554565b91506130bb82613a0f565b604082019050919050565b60006130d3602383613554565b91506130de82613a5e565b604082019050919050565b60006130f6601b83613554565b915061310182613aad565b602082019050919050565b6000613119602183613554565b915061312482613ad6565b604082019050919050565b600061313c602083613554565b915061314782613b25565b602082019050919050565b600061315f602983613554565b915061316a82613b4e565b604082019050919050565b6000613182602583613554565b915061318d82613b9d565b604082019050919050565b60006131a5602383613554565b91506131b082613bec565b604082019050919050565b60006131c8602483613554565b91506131d382613c3b565b604082019050919050565b6131e7816136b8565b82525050565b6131f6816136c2565b82525050565b60006020820190506132116000830184612f21565b92915050565b600060208201905061322c6000830184612f8e565b92915050565b60006020820190506132476000830184612f9d565b92915050565b600060208201905081810360008301526132678184612fbb565b905092915050565b6000602082019050818103600083015261328881612ff4565b9050919050565b600060208201905081810360008301526132a881613017565b9050919050565b600060208201905081810360008301526132c88161303a565b9050919050565b600060208201905081810360008301526132e88161305d565b9050919050565b6000602082019050818103600083015261330881613080565b9050919050565b60006020820190508181036000830152613328816130a3565b9050919050565b60006020820190508181036000830152613348816130c6565b9050919050565b60006020820190508181036000830152613368816130e9565b9050919050565b600060208201905081810360008301526133888161310c565b9050919050565b600060208201905081810360008301526133a88161312f565b9050919050565b600060208201905081810360008301526133c881613152565b9050919050565b600060208201905081810360008301526133e881613175565b9050919050565b6000602082019050818103600083015261340881613198565b9050919050565b60006020820190508181036000830152613428816131bb565b9050919050565b600060208201905061344460008301846131de565b92915050565b600060a08201905061345f60008301886131de565b61346c6020830187612fac565b818103604083015261347e8186612f30565b905061348d6060830185612f21565b61349a60808301846131de565b9695505050505050565b60006020820190506134b960008301846131ed565b92915050565b60006134c96134da565b90506134d5828261374a565b919050565b6000604051905090565b600067ffffffffffffffff8211156134ff576134fe613851565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613570826136b8565b915061357b836136b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135b0576135af6137c4565b5b828201905092915050565b60006135c6826136b8565b91506135d1836136b8565b9250826135e1576135e06137f3565b5b828204905092915050565b60006135f7826136b8565b9150613602836136b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561363b5761363a6137c4565b5b828202905092915050565b6000613651826136b8565b915061365c836136b8565b92508282101561366f5761366e6137c4565b5b828203905092915050565b600061368582613698565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136da826136f3565b9050919050565b60006136ec826136b8565b9050919050565b60006136fe82613705565b9050919050565b600061371082613698565b9050919050565b60005b8381101561373557808201518184015260208101905061371a565b83811115613744576000848401525b50505050565b61375382613899565b810181811067ffffffffffffffff8211171561377257613771613851565b5b80604052505050565b6000613786826136b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137b9576137b86137c4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613c938161367a565b8114613c9e57600080fd5b50565b613caa8161368c565b8114613cb557600080fd5b50565b613cc1816136b8565b8114613ccc57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207eb0246f20b7c61758e1db7476e8391fc19482fd856bfe8dca66e3a15ccc027564736f6c63430008070033
Deployed Bytecode Sourcemap
4128:13601:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6679:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7611:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5518:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7813:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6867:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5566:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17128:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12657:235;;;;;;;;;;;;;:::i;:::-;;7063:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1601:148;;;;;;;;;;;;;:::i;:::-;;5710:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1385:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12233:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5764:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6771:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16974:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16602:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7210:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17247:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13077:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5212:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12412:236;;;;;;;;;;;;;:::i;:::-;;17490;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4788:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12901:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7418:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1758:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6679:83;6716:13;6749:5;;;;;;;;;;;;;;;;;6742:12;;6679:83;:::o;7611:193::-;7713:4;7735:39;7744:12;:10;:12::i;:::-;7758:7;7767:6;7735:8;:39::i;:::-;7792:4;7785:11;;7611:193;;;;:::o;5518:41::-;;;;;;;;;;;;;:::o;6959:95::-;7012:7;4674:18;7032:14;;6959:95;:::o;7813:446::-;7945:4;7962:36;7972:6;7980:9;7991:6;7962:9;:36::i;:::-;8009:220;8032:6;8053:12;:10;:12::i;:::-;8080:138;8136:6;8080:138;;;;;;;;;;;;;;;;;:11;:19;8092:6;8080:19;;;;;;;;;;;;;;;:33;8100:12;:10;:12::i;:::-;8080:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8009:8;:220::i;:::-;8247:4;8240:11;;7813:446;;;;;:::o;5820:50::-;;;;:::o;6867:83::-;6908:5;4347:1;6926:16;;6867:83;:::o;5566:28::-;;;;;;;;;;;;;:::o;17128:101::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17209:12:::1;17195:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17128:101:::0;:::o;12657:235::-;12723:19;;;;;;;;;;;12707:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12762:17;;;;;;;;;;;12746:33;;:12;:10;:12::i;:::-;:33;;;12707:72;12699:81;;;;;;12791:26;12820:21;12791:50;;12852:32;12865:18;12852:12;:32::i;:::-;12688:204;12657:235::o;7063:138::-;7129:7;7156:37;7176:7;:16;7184:7;7176:16;;;;;;;;;;;;;;;;7156:19;:37::i;:::-;7149:44;;7063:138;;;:::o;1601:148::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1708:1:::1;1671:40;;1692:6;::::0;::::1;;;;;;;;1671:40;;;;;;;;;;;;1739:1;1722:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1601:148::o:0;5710:46::-;;;;:::o;1385:79::-;1423:7;1450:6;;;;;;;;;;;1443:13;;1385:79;:::o;12233:170::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12308:12:::1;12300:21;;;::::0;::::1;;12346:12;12332:11;;:26;;;;;;;;;;;;;;;;;;12383:12;12369:11;:26;;;;12233:170:::0;:::o;5764:48::-;;;;:::o;6771:87::-;6810:13;6843:7;;;;;;;;;;;;;;;;;6836:14;;6771:87;:::o;16974:139::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17087:18:::1;17065:19;:40;;;;16974:139:::0;:::o;16602:357::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16761:2:::1;16746:11;:17;;:40;;;;;16784:2;16767:12;:19;;16746:40;16738:50;;;::::0;::::1;;16816:13;16799:14;:30;;;;16858:14;16840:15;:32;;;;16901:11;16886:12;:26;;;;16939:12;16923:13;:28;;;;16602:357:::0;;;;:::o;7210:199::-;7315:4;7337:42;7347:12;:10;:12::i;:::-;7361:9;7372:6;7337:9;:42::i;:::-;7397:4;7390:11;;7210:199;;;;:::o;17247:225::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17369:15:::1;17354:11;:30;;17346:40;;;::::0;::::1;;17412:11;17397:12;:26;;;;17451:13;17434:14;:30;;;;17247:225:::0;;:::o;13077:93::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13157:5:::1;13142:4;:12;13147:6;13142:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13077:93:::0;:::o;5212:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12412:236::-;12478:19;;;;;;;;;;;12462:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12517:17;;;;;;;;;;;12501:33;;:12;:10;:12::i;:::-;:33;;;12462:72;12454:81;;;;;;12546:23;12572:24;12590:4;12572:9;:24::i;:::-;12546:50;;12607:33;12624:15;12607:16;:33::i;:::-;12443:205;12412:236::o;17490:::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17609:9:::1;17605:114;17628:8;;:15;;17624:1;:19;17605:114;;;17699:8;17665:18;:31;17684:8;;17693:1;17684:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17665:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17645:3;;;;;:::i;:::-;;;;17605:114;;;;17490:236:::0;;;:::o;4788:26::-;;;;:::o;12901:167::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12975:9:::1;12970:91;12994:5;:12;12990:1;:16;12970:91;;;13045:4;13028;:14;13033:5;13039:1;13033:8;;;;;;;;:::i;:::-;;;;;;;;13028:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13008:3;;;;;:::i;:::-;;;;12970:91;;;;12901:167:::0;:::o;7418:184::-;7535:7;7567:11;:18;7579:5;7567:18;;;;;;;;;;;;;;;:27;7586:7;7567:27;;;;;;;;;;;;;;;;7560:34;;7418:184;;;;:::o;1758:244::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1867:1:::1;1847:22;;:8;:22;;;;1839:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1957:8;1928:38;;1949:6;::::0;::::1;;;;;;;;1928:38;;;;;;;;;;;;1986:8;1977:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1758:244:::0;:::o;134:98::-;187:7;214:10;207:17;;134:98;:::o;8956:369::-;9100:1;9083:19;;:5;:19;;;;9075:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9181:1;9162:21;;:7;:21;;;;9154:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9263:6;9233:11;:18;9245:5;9233:18;;;;;;;;;;;;;;;:27;9252:7;9233:27;;;;;;;;;;;;;;;:36;;;;9301:7;9285:32;;9294:5;9285:32;;;9310:6;9285:32;;;;;;:::i;:::-;;;;;;;;8956:369;;;:::o;9334:2229::-;9472:1;9456:18;;:4;:18;;;;9448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9549:1;9535:16;;:2;:16;;;;9527:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9619:1;9610:6;:10;9602:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9692:7;:5;:7::i;:::-;9684:15;;:4;:15;;;;:32;;;;;9709:7;:5;:7::i;:::-;9703:13;;:2;:13;;;;9684:32;9680:1261;;;9755:11;;;;;;;;;;;9750:144;;9803:7;:5;:7::i;:::-;9795:15;;:4;:15;;;9787:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9750:144;9929:12;;9919:6;:22;;9911:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9998:4;:10;10003:4;9998:10;;;;;;;;;;;;;;;;;;;;;;;;;9997:11;:24;;;;;10013:4;:8;10018:2;10013:8;;;;;;;;;;;;;;;;;;;;;;;;;10012:9;9997:24;9989:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10103:13;;;;;;;;;;;10097:19;;:2;:19;;;10094:146;;10170:14;;10161:6;10145:13;10155:2;10145:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10137:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10094:146;10257:28;10288:24;10306:4;10288:9;:24::i;:::-;10257:55;;10327:12;10366:19;;10342:20;:43;;10327:58;;10430:12;;10406:20;:36;10403:124;;10499:12;;10476:35;;10403:124;10548:7;:18;;;;;10560:6;;;;;;;;;;;10559:7;10548:18;:43;;;;;10578:13;;;;;;;;;;;10570:21;;:4;:21;;;;10548:43;:58;;;;;10595:11;;;;;;;;;;10548:58;:87;;;;;10611:18;:24;10630:4;10611:24;;;;;;;;;;;;;;;;;;;;;;;;;10610:25;10548:87;:114;;;;;10640:18;:22;10659:2;10640:22;;;;;;;;;;;;;;;;;;;;;;;;;10639:23;10548:114;10544:386;;;10683:38;10700:20;10683:16;:38::i;:::-;10740:26;10769:21;10740:50;;10834:1;10813:18;:22;10809:106;;;10860:35;10873:21;10860:12;:35::i;:::-;10809:106;10664:266;10544:386;9718:1223;;9680:1261;10954:12;10969:4;10954:19;;11010:13;;;;;;;;;;;11002:21;;:4;:21;;;;:44;;;;;11033:13;;;;;;;;;;;11027:19;;:2;:19;;;;11002:44;10997:504;;;11074:5;11064:15;;10997:504;;;11140:13;;;;;;;;;;;11132:21;;:4;:21;;;:55;;;;;11171:15;;;;;;;;;;;11157:30;;:2;:30;;;;11132:55;11129:162;;;11220:14;;11208:9;:26;;;;11263:12;;11253:7;:22;;;;11129:162;11332:13;;;;;;;;;;;11326:19;;:2;:19;;;:55;;;;;11365:15;;;;;;;;;;;11349:32;;:4;:32;;;;11326:55;11322:165;;;11414:15;;11402:9;:27;;;;11458:13;;11448:7;:23;;;;11322:165;10997:504;11514:41;11529:4;11535:2;11539:6;11547:7;11514:14;:41::i;:::-;9437:2126;9334:2229;;;:::o;2370:224::-;2490:7;2523:1;2518;:6;;2526:12;2510:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2550:9;2566:1;2562;:5;;;;:::i;:::-;2550:17;;2585:1;2578:8;;;2370:224;;;;;:::o;12064:160::-;12121:19;;;;;;;;;;;:28;;:43;12150:13;12161:1;12150:6;:10;;:13;;;;:::i;:::-;12121:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12175:17;;;;;;;;;;;:26;;:41;12202:13;12213:1;12202:6;:10;;:13;;;;:::i;:::-;12175:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12064:160;:::o;8268:323::-;8363:7;8421;;8410;:18;;8388:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8509:19;8531:10;:8;:10::i;:::-;8509:32;;8559:24;8571:11;8559:7;:11;;:24;;;;:::i;:::-;8552:31;;;8268:323;;;:::o;11572:483::-;5975:4;5966:6;;:13;;;;;;;;;;;;;;;;;;11650:21:::1;11688:1;11674:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11650:40;;11719:4;11701;11706:1;11701:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11745:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11735:4;11740:1;11735:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11778:62;11795:4;11810:15;;;;;;;;;;;11828:11;11778:8;:62::i;:::-;11851:15;;;;;;;;;;;:66;;;11932:11;11958:1;11974:4;12001;12021:15;11851:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11639:416;6011:5:::0;6002:6;;:14;;;;;;;;;;;;;;;;;;11572:483;:::o;13179:282::-;13335:7;13330:28;;13344:14;:12;:14::i;:::-;13330:28;13369:44;13387:6;13395:9;13406:6;13369:17;:44::i;:::-;13429:7;13424:29;;13438:15;:13;:15::i;:::-;13424:29;13179:282;;;;:::o;2858:132::-;2916:7;2943:39;2947:1;2950;2943:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2936:46;;2858:132;;;;:::o;16157:167::-;16199:7;16220:15;16237;16256:19;:17;:19::i;:::-;16219:56;;;;16296:20;16308:7;16296;:11;;:20;;;;:::i;:::-;16289:27;;;;16157:167;:::o;8600:221::-;8660:1;8647:9;;:14;:30;;;;;8676:1;8665:7;;:12;8647:30;8643:43;;;8679:7;;8643:43;8719:9;;8699:17;:29;;;;8757:7;;8739:15;:25;;;;8790:1;8778:9;:13;;;;8812:1;8802:7;:11;;;;8600:221;:::o;13470:610::-;13617:15;13647:23;13685:12;13712:23;13750:12;13777:13;13804:19;13815:7;13804:10;:19::i;:::-;13602:221;;;;;;;;;;;;13852:28;13872:7;13852;:15;13860:6;13852:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13834:7;:15;13842:6;13834:15;;;;;;;;;;;;;;;:46;;;;13912:39;13935:15;13912:7;:18;13920:9;13912:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13891:7;:18;13899:9;13891:18;;;;;;;;;;;;;;;:60;;;;13962:16;13972:5;13962:9;:16::i;:::-;13989:23;14001:4;14007;13989:11;:23::i;:::-;14045:9;14028:44;;14037:6;14028:44;;;14056:15;14028:44;;;;;;:::i;:::-;;;;;;;;13591:489;;;;;;13470:610;;;:::o;8830:117::-;8886:17;;8874:9;:29;;;;8924:15;;8914:7;:25;;;;8830:117::o;2999:223::-;3119:7;3151:1;3147;:5;3154:12;3139:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3178:9;3194:1;3190;:5;;;;:::i;:::-;3178:17;;3213:1;3206:8;;;2999:223;;;;;:::o;16333:260::-;16384:7;16393;16413:15;16431:7;;16413:25;;16449:15;4674:18;16449:25;;16499:20;4674:18;16499:7;;:11;;:20;;;;:::i;:::-;16489:7;:30;16485:61;;;16529:7;;4674:18;16521:25;;;;;;;;16485:61;16568:7;16577;16560:25;;;;;;16333:260;;;:::o;14503:618::-;14603:7;14625;14647;14669;14691;14713;14749:23;14774:12;14788:13;14818:40;14830:7;14839:9;;14850:7;;14818:11;:40::i;:::-;14748:110;;;;;;14869:19;14891:10;:8;:10::i;:::-;14869:32;;14913:15;14930:23;14955:12;14984:46;14996:7;15005:4;15011:5;15018:11;14984;:46::i;:::-;14912:118;;;;;;15052:7;15061:15;15078:4;15084:15;15101:4;15107:5;15044:69;;;;;;;;;;;;;;;;;;;14503:618;;;;;;;:::o;2225:136::-;2283:7;2310:43;2314:1;2317;2310:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2303:50;;2225:136;;;;:::o;2037:179::-;2095:7;2115:9;2131:1;2127;:5;;;;:::i;:::-;2115:17;;2156:1;2151;:6;;2143:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2207:1;2200:8;;;2037:179;;;;:::o;14089:211::-;14142:19;14164:10;:8;:10::i;:::-;14142:32;;14185:13;14201:22;14211:11;14201:5;:9;;:22;;;;:::i;:::-;14185:38;;14259:33;14286:5;14259:7;:22;14275:4;14259:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14234:7;:22;14250:4;14234:22;;;;;;;;;;;;;;;:58;;;;14131:169;;14089:211;:::o;14309:147::-;14387:17;14399:4;14387:7;;:11;;:17;;;;:::i;:::-;14377:7;:27;;;;14428:20;14443:4;14428:10;;:14;;:20;;;;:::i;:::-;14415:10;:33;;;;14309:147;;:::o;15130:472::-;15299:7;15321;15343;15378:12;15393:30;15419:3;15393:21;15405:8;15393:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15378:45;;15434:13;15450:28;15474:3;15450:19;15462:6;15450:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15434:44;;15489:23;15515:28;15537:5;15515:17;15527:4;15515:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15489:54;;15565:15;15582:4;15588:5;15557:37;;;;;;;;;15130:472;;;;;;;:::o;15611:537::-;15805:7;15827;15849;15884:15;15902:24;15914:11;15902:7;:11;;:24;;;;:::i;:::-;15884:42;;15937:12;15952:21;15961:11;15952:4;:8;;:21;;;;:::i;:::-;15937:36;;15984:13;16000:22;16010:11;16000:5;:9;;:22;;;;:::i;:::-;15984:38;;16033:23;16059:28;16081:5;16059:17;16071:4;16059:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16033:54;;16109:7;16118:15;16135:4;16101:39;;;;;;;;;;15611:537;;;;;;;;:::o;2603:246::-;2661:7;2690:1;2685;:6;2681:47;;;2715:1;2708:8;;;;2681:47;2738:9;2754:1;2750;:5;;;;:::i;:::-;2738:17;;2783:1;2778;2774;:5;;;;:::i;:::-;:10;2766:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2840:1;2833:8;;;2603:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:568::-;1136:8;1146:6;1196:3;1189:4;1181:6;1177:17;1173:27;1163:122;;1204:79;;:::i;:::-;1163:122;1317:6;1304:20;1294:30;;1347:18;1339:6;1336:30;1333:117;;;1369:79;;:::i;:::-;1333:117;1483:4;1475:6;1471:17;1459:29;;1537:3;1529:4;1521:6;1517:17;1507:8;1503:32;1500:41;1497:128;;;1544:79;;:::i;:::-;1497:128;1063:568;;;;;:::o;1654:370::-;1725:5;1774:3;1767:4;1759:6;1755:17;1751:27;1741:122;;1782:79;;:::i;:::-;1741:122;1899:6;1886:20;1924:94;2014:3;2006:6;1999:4;1991:6;1987:17;1924:94;:::i;:::-;1915:103;;1731:293;1654:370;;;;:::o;2030:133::-;2073:5;2111:6;2098:20;2089:29;;2127:30;2151:5;2127:30;:::i;:::-;2030:133;;;;:::o;2169:139::-;2215:5;2253:6;2240:20;2231:29;;2269:33;2296:5;2269:33;:::i;:::-;2169:139;;;;:::o;2314:329::-;2373:6;2422:2;2410:9;2401:7;2397:23;2393:32;2390:119;;;2428:79;;:::i;:::-;2390:119;2548:1;2573:53;2618:7;2609:6;2598:9;2594:22;2573:53;:::i;:::-;2563:63;;2519:117;2314:329;;;;:::o;2649:351::-;2719:6;2768:2;2756:9;2747:7;2743:23;2739:32;2736:119;;;2774:79;;:::i;:::-;2736:119;2894:1;2919:64;2975:7;2966:6;2955:9;2951:22;2919:64;:::i;:::-;2909:74;;2865:128;2649:351;;;;:::o;3006:474::-;3074:6;3082;3131:2;3119:9;3110:7;3106:23;3102:32;3099:119;;;3137:79;;:::i;:::-;3099:119;3257:1;3282:53;3327:7;3318:6;3307:9;3303:22;3282:53;:::i;:::-;3272:63;;3228:117;3384:2;3410:53;3455:7;3446:6;3435:9;3431:22;3410:53;:::i;:::-;3400:63;;3355:118;3006:474;;;;;:::o;3486:619::-;3563:6;3571;3579;3628:2;3616:9;3607:7;3603:23;3599:32;3596:119;;;3634:79;;:::i;:::-;3596:119;3754:1;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3725:117;3881:2;3907:53;3952:7;3943:6;3932:9;3928:22;3907:53;:::i;:::-;3897:63;;3852:118;4009:2;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3980:118;3486:619;;;;;:::o;4111:474::-;4179:6;4187;4236:2;4224:9;4215:7;4211:23;4207:32;4204:119;;;4242:79;;:::i;:::-;4204:119;4362:1;4387:53;4432:7;4423:6;4412:9;4408:22;4387:53;:::i;:::-;4377:63;;4333:117;4489:2;4515:53;4560:7;4551:6;4540:9;4536:22;4515:53;:::i;:::-;4505:63;;4460:118;4111:474;;;;;:::o;4591:698::-;4683:6;4691;4699;4748:2;4736:9;4727:7;4723:23;4719:32;4716:119;;;4754:79;;:::i;:::-;4716:119;4902:1;4891:9;4887:17;4874:31;4932:18;4924:6;4921:30;4918:117;;;4954:79;;:::i;:::-;4918:117;5067:80;5139:7;5130:6;5119:9;5115:22;5067:80;:::i;:::-;5049:98;;;;4845:312;5196:2;5222:50;5264:7;5255:6;5244:9;5240:22;5222:50;:::i;:::-;5212:60;;5167:115;4591:698;;;;;:::o;5295:539::-;5379:6;5428:2;5416:9;5407:7;5403:23;5399:32;5396:119;;;5434:79;;:::i;:::-;5396:119;5582:1;5571:9;5567:17;5554:31;5612:18;5604:6;5601:30;5598:117;;;5634:79;;:::i;:::-;5598:117;5739:78;5809:7;5800:6;5789:9;5785:22;5739:78;:::i;:::-;5729:88;;5525:302;5295:539;;;;:::o;5840:323::-;5896:6;5945:2;5933:9;5924:7;5920:23;5916:32;5913:119;;;5951:79;;:::i;:::-;5913:119;6071:1;6096:50;6138:7;6129:6;6118:9;6114:22;6096:50;:::i;:::-;6086:60;;6042:114;5840:323;;;;:::o;6169:329::-;6228:6;6277:2;6265:9;6256:7;6252:23;6248:32;6245:119;;;6283:79;;:::i;:::-;6245:119;6403:1;6428:53;6473:7;6464:6;6453:9;6449:22;6428:53;:::i;:::-;6418:63;;6374:117;6169:329;;;;:::o;6504:474::-;6572:6;6580;6629:2;6617:9;6608:7;6604:23;6600:32;6597:119;;;6635:79;;:::i;:::-;6597:119;6755:1;6780:53;6825:7;6816:6;6805:9;6801:22;6780:53;:::i;:::-;6770:63;;6726:117;6882:2;6908:53;6953:7;6944:6;6933:9;6929:22;6908:53;:::i;:::-;6898:63;;6853:118;6504:474;;;;;:::o;6984:765::-;7070:6;7078;7086;7094;7143:3;7131:9;7122:7;7118:23;7114:33;7111:120;;;7150:79;;:::i;:::-;7111:120;7270:1;7295:53;7340:7;7331:6;7320:9;7316:22;7295:53;:::i;:::-;7285:63;;7241:117;7397:2;7423:53;7468:7;7459:6;7448:9;7444:22;7423:53;:::i;:::-;7413:63;;7368:118;7525:2;7551:53;7596:7;7587:6;7576:9;7572:22;7551:53;:::i;:::-;7541:63;;7496:118;7653:2;7679:53;7724:7;7715:6;7704:9;7700:22;7679:53;:::i;:::-;7669:63;;7624:118;6984:765;;;;;;;:::o;7755:179::-;7824:10;7845:46;7887:3;7879:6;7845:46;:::i;:::-;7923:4;7918:3;7914:14;7900:28;;7755:179;;;;:::o;7940:108::-;8017:24;8035:5;8017:24;:::i;:::-;8012:3;8005:37;7940:108;;:::o;8054:118::-;8141:24;8159:5;8141:24;:::i;:::-;8136:3;8129:37;8054:118;;:::o;8208:732::-;8327:3;8356:54;8404:5;8356:54;:::i;:::-;8426:86;8505:6;8500:3;8426:86;:::i;:::-;8419:93;;8536:56;8586:5;8536:56;:::i;:::-;8615:7;8646:1;8631:284;8656:6;8653:1;8650:13;8631:284;;;8732:6;8726:13;8759:63;8818:3;8803:13;8759:63;:::i;:::-;8752:70;;8845:60;8898:6;8845:60;:::i;:::-;8835:70;;8691:224;8678:1;8675;8671:9;8666:14;;8631:284;;;8635:14;8931:3;8924:10;;8332:608;;;8208:732;;;;:::o;8946:109::-;9027:21;9042:5;9027:21;:::i;:::-;9022:3;9015:34;8946:109;;:::o;9061:183::-;9174:63;9231:5;9174:63;:::i;:::-;9169:3;9162:76;9061:183;;:::o;9250:147::-;9345:45;9384:5;9345:45;:::i;:::-;9340:3;9333:58;9250:147;;:::o;9403:364::-;9491:3;9519:39;9552:5;9519:39;:::i;:::-;9574:71;9638:6;9633:3;9574:71;:::i;:::-;9567:78;;9654:52;9699:6;9694:3;9687:4;9680:5;9676:16;9654:52;:::i;:::-;9731:29;9753:6;9731:29;:::i;:::-;9726:3;9722:39;9715:46;;9495:272;9403:364;;;;:::o;9773:366::-;9915:3;9936:67;10000:2;9995:3;9936:67;:::i;:::-;9929:74;;10012:93;10101:3;10012:93;:::i;:::-;10130:2;10125:3;10121:12;10114:19;;9773:366;;;:::o;10145:::-;10287:3;10308:67;10372:2;10367:3;10308:67;:::i;:::-;10301:74;;10384:93;10473:3;10384:93;:::i;:::-;10502:2;10497:3;10493:12;10486:19;;10145:366;;;:::o;10517:::-;10659:3;10680:67;10744:2;10739:3;10680:67;:::i;:::-;10673:74;;10756:93;10845:3;10756:93;:::i;:::-;10874:2;10869:3;10865:12;10858:19;;10517:366;;;:::o;10889:::-;11031:3;11052:67;11116:2;11111:3;11052:67;:::i;:::-;11045:74;;11128:93;11217:3;11128:93;:::i;:::-;11246:2;11241:3;11237:12;11230:19;;10889:366;;;:::o;11261:::-;11403:3;11424:67;11488:2;11483:3;11424:67;:::i;:::-;11417:74;;11500:93;11589:3;11500:93;:::i;:::-;11618:2;11613:3;11609:12;11602:19;;11261:366;;;:::o;11633:::-;11775:3;11796:67;11860:2;11855:3;11796:67;:::i;:::-;11789:74;;11872:93;11961:3;11872:93;:::i;:::-;11990:2;11985:3;11981:12;11974:19;;11633:366;;;:::o;12005:::-;12147:3;12168:67;12232:2;12227:3;12168:67;:::i;:::-;12161:74;;12244:93;12333:3;12244:93;:::i;:::-;12362:2;12357:3;12353:12;12346:19;;12005:366;;;:::o;12377:::-;12519:3;12540:67;12604:2;12599:3;12540:67;:::i;:::-;12533:74;;12616:93;12705:3;12616:93;:::i;:::-;12734:2;12729:3;12725:12;12718:19;;12377:366;;;:::o;12749:::-;12891:3;12912:67;12976:2;12971:3;12912:67;:::i;:::-;12905:74;;12988:93;13077:3;12988:93;:::i;:::-;13106:2;13101:3;13097:12;13090:19;;12749:366;;;:::o;13121:::-;13263:3;13284:67;13348:2;13343:3;13284:67;:::i;:::-;13277:74;;13360:93;13449:3;13360:93;:::i;:::-;13478:2;13473:3;13469:12;13462:19;;13121:366;;;:::o;13493:::-;13635:3;13656:67;13720:2;13715:3;13656:67;:::i;:::-;13649:74;;13732:93;13821:3;13732:93;:::i;:::-;13850:2;13845:3;13841:12;13834:19;;13493:366;;;:::o;13865:::-;14007:3;14028:67;14092:2;14087:3;14028:67;:::i;:::-;14021:74;;14104:93;14193:3;14104:93;:::i;:::-;14222:2;14217:3;14213:12;14206:19;;13865:366;;;:::o;14237:::-;14379:3;14400:67;14464:2;14459:3;14400:67;:::i;:::-;14393:74;;14476:93;14565:3;14476:93;:::i;:::-;14594:2;14589:3;14585:12;14578:19;;14237:366;;;:::o;14609:::-;14751:3;14772:67;14836:2;14831:3;14772:67;:::i;:::-;14765:74;;14848:93;14937:3;14848:93;:::i;:::-;14966:2;14961:3;14957:12;14950:19;;14609:366;;;:::o;14981:118::-;15068:24;15086:5;15068:24;:::i;:::-;15063:3;15056:37;14981:118;;:::o;15105:112::-;15188:22;15204:5;15188:22;:::i;:::-;15183:3;15176:35;15105:112;;:::o;15223:222::-;15316:4;15354:2;15343:9;15339:18;15331:26;;15367:71;15435:1;15424:9;15420:17;15411:6;15367:71;:::i;:::-;15223:222;;;;:::o;15451:210::-;15538:4;15576:2;15565:9;15561:18;15553:26;;15589:65;15651:1;15640:9;15636:17;15627:6;15589:65;:::i;:::-;15451:210;;;;:::o;15667:274::-;15786:4;15824:2;15813:9;15809:18;15801:26;;15837:97;15931:1;15920:9;15916:17;15907:6;15837:97;:::i;:::-;15667:274;;;;:::o;15947:313::-;16060:4;16098:2;16087:9;16083:18;16075:26;;16147:9;16141:4;16137:20;16133:1;16122:9;16118:17;16111:47;16175:78;16248:4;16239:6;16175:78;:::i;:::-;16167:86;;15947:313;;;;:::o;16266:419::-;16432:4;16470:2;16459:9;16455:18;16447:26;;16519:9;16513:4;16509:20;16505:1;16494:9;16490:17;16483:47;16547:131;16673:4;16547:131;:::i;:::-;16539:139;;16266:419;;;:::o;16691:::-;16857:4;16895:2;16884:9;16880:18;16872:26;;16944:9;16938:4;16934:20;16930:1;16919:9;16915:17;16908:47;16972:131;17098:4;16972:131;:::i;:::-;16964:139;;16691:419;;;:::o;17116:::-;17282:4;17320:2;17309:9;17305:18;17297:26;;17369:9;17363:4;17359:20;17355:1;17344:9;17340:17;17333:47;17397:131;17523:4;17397:131;:::i;:::-;17389:139;;17116:419;;;:::o;17541:::-;17707:4;17745:2;17734:9;17730:18;17722:26;;17794:9;17788:4;17784:20;17780:1;17769:9;17765:17;17758:47;17822:131;17948:4;17822:131;:::i;:::-;17814:139;;17541:419;;;:::o;17966:::-;18132:4;18170:2;18159:9;18155:18;18147:26;;18219:9;18213:4;18209:20;18205:1;18194:9;18190:17;18183:47;18247:131;18373:4;18247:131;:::i;:::-;18239:139;;17966:419;;;:::o;18391:::-;18557:4;18595:2;18584:9;18580:18;18572:26;;18644:9;18638:4;18634:20;18630:1;18619:9;18615:17;18608:47;18672:131;18798:4;18672:131;:::i;:::-;18664:139;;18391:419;;;:::o;18816:::-;18982:4;19020:2;19009:9;19005:18;18997:26;;19069:9;19063:4;19059:20;19055:1;19044:9;19040:17;19033:47;19097:131;19223:4;19097:131;:::i;:::-;19089:139;;18816:419;;;:::o;19241:::-;19407:4;19445:2;19434:9;19430:18;19422:26;;19494:9;19488:4;19484:20;19480:1;19469:9;19465:17;19458:47;19522:131;19648:4;19522:131;:::i;:::-;19514:139;;19241:419;;;:::o;19666:::-;19832:4;19870:2;19859:9;19855:18;19847:26;;19919:9;19913:4;19909:20;19905:1;19894:9;19890:17;19883:47;19947:131;20073:4;19947:131;:::i;:::-;19939:139;;19666:419;;;:::o;20091:::-;20257:4;20295:2;20284:9;20280:18;20272:26;;20344:9;20338:4;20334:20;20330:1;20319:9;20315:17;20308:47;20372:131;20498:4;20372:131;:::i;:::-;20364:139;;20091:419;;;:::o;20516:::-;20682:4;20720:2;20709:9;20705:18;20697:26;;20769:9;20763:4;20759:20;20755:1;20744:9;20740:17;20733:47;20797:131;20923:4;20797:131;:::i;:::-;20789:139;;20516:419;;;:::o;20941:::-;21107:4;21145:2;21134:9;21130:18;21122:26;;21194:9;21188:4;21184:20;21180:1;21169:9;21165:17;21158:47;21222:131;21348:4;21222:131;:::i;:::-;21214:139;;20941:419;;;:::o;21366:::-;21532:4;21570:2;21559:9;21555:18;21547:26;;21619:9;21613:4;21609:20;21605:1;21594:9;21590:17;21583:47;21647:131;21773:4;21647:131;:::i;:::-;21639:139;;21366:419;;;:::o;21791:::-;21957:4;21995:2;21984:9;21980:18;21972:26;;22044:9;22038:4;22034:20;22030:1;22019:9;22015:17;22008:47;22072:131;22198:4;22072:131;:::i;:::-;22064:139;;21791:419;;;:::o;22216:222::-;22309:4;22347:2;22336:9;22332:18;22324:26;;22360:71;22428:1;22417:9;22413:17;22404:6;22360:71;:::i;:::-;22216:222;;;;:::o;22444:831::-;22707:4;22745:3;22734:9;22730:19;22722:27;;22759:71;22827:1;22816:9;22812:17;22803:6;22759:71;:::i;:::-;22840:80;22916:2;22905:9;22901:18;22892:6;22840:80;:::i;:::-;22967:9;22961:4;22957:20;22952:2;22941:9;22937:18;22930:48;22995:108;23098:4;23089:6;22995:108;:::i;:::-;22987:116;;23113:72;23181:2;23170:9;23166:18;23157:6;23113:72;:::i;:::-;23195:73;23263:3;23252:9;23248:19;23239:6;23195:73;:::i;:::-;22444:831;;;;;;;;:::o;23281:214::-;23370:4;23408:2;23397:9;23393:18;23385:26;;23421:67;23485:1;23474:9;23470:17;23461:6;23421:67;:::i;:::-;23281:214;;;;:::o;23501:129::-;23535:6;23562:20;;:::i;:::-;23552:30;;23591:33;23619:4;23611:6;23591:33;:::i;:::-;23501:129;;;:::o;23636:75::-;23669:6;23702:2;23696:9;23686:19;;23636:75;:::o;23717:311::-;23794:4;23884:18;23876:6;23873:30;23870:56;;;23906:18;;:::i;:::-;23870:56;23956:4;23948:6;23944:17;23936:25;;24016:4;24010;24006:15;23998:23;;23717:311;;;:::o;24034:132::-;24101:4;24124:3;24116:11;;24154:4;24149:3;24145:14;24137:22;;24034:132;;;:::o;24172:114::-;24239:6;24273:5;24267:12;24257:22;;24172:114;;;:::o;24292:99::-;24344:6;24378:5;24372:12;24362:22;;24292:99;;;:::o;24397:113::-;24467:4;24499;24494:3;24490:14;24482:22;;24397:113;;;:::o;24516:184::-;24615:11;24649:6;24644:3;24637:19;24689:4;24684:3;24680:14;24665:29;;24516:184;;;;:::o;24706:169::-;24790:11;24824:6;24819:3;24812:19;24864:4;24859:3;24855:14;24840:29;;24706:169;;;;:::o;24881:305::-;24921:3;24940:20;24958:1;24940:20;:::i;:::-;24935:25;;24974:20;24992:1;24974:20;:::i;:::-;24969:25;;25128:1;25060:66;25056:74;25053:1;25050:81;25047:107;;;25134:18;;:::i;:::-;25047:107;25178:1;25175;25171:9;25164:16;;24881:305;;;;:::o;25192:185::-;25232:1;25249:20;25267:1;25249:20;:::i;:::-;25244:25;;25283:20;25301:1;25283:20;:::i;:::-;25278:25;;25322:1;25312:35;;25327:18;;:::i;:::-;25312:35;25369:1;25366;25362:9;25357:14;;25192:185;;;;:::o;25383:348::-;25423:7;25446:20;25464:1;25446:20;:::i;:::-;25441:25;;25480:20;25498:1;25480:20;:::i;:::-;25475:25;;25668:1;25600:66;25596:74;25593:1;25590:81;25585:1;25578:9;25571:17;25567:105;25564:131;;;25675:18;;:::i;:::-;25564:131;25723:1;25720;25716:9;25705:20;;25383:348;;;;:::o;25737:191::-;25777:4;25797:20;25815:1;25797:20;:::i;:::-;25792:25;;25831:20;25849:1;25831:20;:::i;:::-;25826:25;;25870:1;25867;25864:8;25861:34;;;25875:18;;:::i;:::-;25861:34;25920:1;25917;25913:9;25905:17;;25737:191;;;;:::o;25934:96::-;25971:7;26000:24;26018:5;26000:24;:::i;:::-;25989:35;;25934:96;;;:::o;26036:90::-;26070:7;26113:5;26106:13;26099:21;26088:32;;26036:90;;;:::o;26132:126::-;26169:7;26209:42;26202:5;26198:54;26187:65;;26132:126;;;:::o;26264:77::-;26301:7;26330:5;26319:16;;26264:77;;;:::o;26347:86::-;26382:7;26422:4;26415:5;26411:16;26400:27;;26347:86;;;:::o;26439:152::-;26515:9;26548:37;26579:5;26548:37;:::i;:::-;26535:50;;26439:152;;;:::o;26597:121::-;26655:9;26688:24;26706:5;26688:24;:::i;:::-;26675:37;;26597:121;;;:::o;26724:126::-;26774:9;26807:37;26838:5;26807:37;:::i;:::-;26794:50;;26724:126;;;:::o;26856:113::-;26906:9;26939:24;26957:5;26939:24;:::i;:::-;26926:37;;26856:113;;;:::o;26975:307::-;27043:1;27053:113;27067:6;27064:1;27061:13;27053:113;;;27152:1;27147:3;27143:11;27137:18;27133:1;27128:3;27124:11;27117:39;27089:2;27086:1;27082:10;27077:15;;27053:113;;;27184:6;27181:1;27178:13;27175:101;;;27264:1;27255:6;27250:3;27246:16;27239:27;27175:101;27024:258;26975:307;;;:::o;27288:281::-;27371:27;27393:4;27371:27;:::i;:::-;27363:6;27359:40;27501:6;27489:10;27486:22;27465:18;27453:10;27450:34;27447:62;27444:88;;;27512:18;;:::i;:::-;27444:88;27552:10;27548:2;27541:22;27331:238;27288:281;;:::o;27575:233::-;27614:3;27637:24;27655:5;27637:24;:::i;:::-;27628:33;;27683:66;27676:5;27673:77;27670:103;;;27753:18;;:::i;:::-;27670:103;27800:1;27793:5;27789:13;27782:20;;27575:233;;;:::o;27814:180::-;27862:77;27859:1;27852:88;27959:4;27956:1;27949:15;27983:4;27980:1;27973:15;28000:180;28048:77;28045:1;28038:88;28145:4;28142:1;28135:15;28169:4;28166:1;28159:15;28186:180;28234:77;28231:1;28224:88;28331:4;28328:1;28321:15;28355:4;28352:1;28345:15;28372:180;28420:77;28417:1;28410:88;28517:4;28514:1;28507:15;28541:4;28538:1;28531:15;28558:117;28667:1;28664;28657:12;28681:117;28790:1;28787;28780:12;28804:117;28913:1;28910;28903:12;28927:117;29036:1;29033;29026:12;29050:117;29159:1;29156;29149:12;29173:102;29214:6;29265:2;29261:7;29256:2;29249:5;29245:14;29241:28;29231:38;;29173:102;;;:::o;29281:222::-;29421:34;29417:1;29409:6;29405:14;29398:58;29490:5;29485:2;29477:6;29473:15;29466:30;29281:222;:::o;29509:250::-;29649:34;29645:1;29637:6;29633:14;29626:58;29718:33;29713:2;29705:6;29701:15;29694:58;29509:250;:::o;29765:229::-;29905:34;29901:1;29893:6;29889:14;29882:58;29974:12;29969:2;29961:6;29957:15;29950:37;29765:229;:::o;30000:178::-;30140:30;30136:1;30128:6;30124:14;30117:54;30000:178;:::o;30184:225::-;30324:34;30320:1;30312:6;30308:14;30301:58;30393:8;30388:2;30380:6;30376:15;30369:33;30184:225;:::o;30415:221::-;30555:34;30551:1;30543:6;30539:14;30532:58;30624:4;30619:2;30611:6;30607:15;30600:29;30415:221;:::o;30642:222::-;30782:34;30778:1;30770:6;30766:14;30759:58;30851:5;30846:2;30838:6;30834:15;30827:30;30642:222;:::o;30870:177::-;31010:29;31006:1;30998:6;30994:14;30987:53;30870:177;:::o;31053:220::-;31193:34;31189:1;31181:6;31177:14;31170:58;31262:3;31257:2;31249:6;31245:15;31238:28;31053:220;:::o;31279:182::-;31419:34;31415:1;31407:6;31403:14;31396:58;31279:182;:::o;31467:228::-;31607:34;31603:1;31595:6;31591:14;31584:58;31676:11;31671:2;31663:6;31659:15;31652:36;31467:228;:::o;31701:224::-;31841:34;31837:1;31829:6;31825:14;31818:58;31910:7;31905:2;31897:6;31893:15;31886:32;31701:224;:::o;31931:222::-;32071:34;32067:1;32059:6;32055:14;32048:58;32140:5;32135:2;32127:6;32123:15;32116:30;31931:222;:::o;32159:223::-;32299:34;32295:1;32287:6;32283:14;32276:58;32368:6;32363:2;32355:6;32351:15;32344:31;32159:223;:::o;32388:122::-;32461:24;32479:5;32461:24;:::i;:::-;32454:5;32451:35;32441:63;;32500:1;32497;32490:12;32441:63;32388:122;:::o;32516:116::-;32586:21;32601:5;32586:21;:::i;:::-;32579:5;32576:32;32566:60;;32622:1;32619;32612:12;32566:60;32516:116;:::o;32638:122::-;32711:24;32729:5;32711:24;:::i;:::-;32704:5;32701:35;32691:63;;32750:1;32747;32740:12;32691:63;32638:122;:::o
Swarm Source
ipfs://7eb0246f20b7c61758e1db7476e8391fc19482fd856bfe8dca66e3a15ccc0275
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.