ERC-20
Overview
Max Total Supply
10,000,000 HDOGE
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
193,999.03 HDOGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
HalloweenDoge
Compiler Version
v0.8.2+commit.661d1103
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-05 */ /** https://t.me/halloweendogeETH */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.2; 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 HalloweenDoge is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Halloween Doge"; string private constant _symbol = "HDOGE"; 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 = 10000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 3; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 3; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0xFb89Cc5aBC810706e2eCc4997a3040BCD3F0D837); address payable private _marketingAddress = payable(0xCD709A579c863979D68BD92d98714a44044611F2); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 10000000 * 10**9; uint256 public _maxWalletSize = 10000000 * 10**9; uint256 public _swapTokensAtAmount = 10000000 * 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()) { //Trade start check 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; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells 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 { _marketingAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } 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 blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(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 { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public 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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","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":"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"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","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":"unblockBot","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
6080604052662386f26fc100006000196200001b919062000847565b6000196200002a9190620007ce565b600655600060085560036009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f5573fb89cc5abc810706e2ecc4997a3040bcd3f0d837601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cd709a579c863979d68bd92d98714a44044611f2601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550662386f26fc10000601655662386f26fc10000601755662386f26fc100006018553480156200018157600080fd5b50600062000194620006ee60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000249620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032857600080fd5b505afa1580156200033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000363919062000736565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c657600080fd5b505afa158015620003db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000401919062000736565b6040518363ffffffff1660e01b81526004016200042092919062000784565b602060405180830381600087803b1580156200043b57600080fd5b505af115801562000450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000476919062000736565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004cc620006f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000679620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620006df9190620007b1565b60405180910390a350620008f7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200073081620008dd565b92915050565b6000602082840312156200074957600080fd5b600062000759848285016200071f565b91505092915050565b6200076d8162000809565b82525050565b6200077e816200083d565b82525050565b60006040820190506200079b600083018562000762565b620007aa602083018462000762565b9392505050565b6000602082019050620007c8600083018462000773565b92915050565b6000620007db826200083d565b9150620007e8836200083d565b925082821015620007fe57620007fd6200087f565b5b828203905092915050565b600062000816826200081d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000854826200083d565b915062000861836200083d565b925082620008745762000873620008ae565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620008e88162000809565b8114620008f457600080fd5b50565b613dcf80620009076000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065c578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb146105a2578063a9059cbb146105cb578063bfd7928414610608578063c3c8cd8014610645576101d7565b80638f70ccf7116100d15780638f70ccf7146104fa5780638f9a55c01461052357806395d89b411461054e57806398a5c31514610579576101d7565b80637d1db4a5146104675780637f2feddc146104925780638da5cb5b146104cf576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146103d357806370a08231146103ea578063715018a61461042757806374010ece1461043e576101d7565b8063313ce5671461032b57806349bd5a5e146103565780636b999053146103815780636d8aa8f8146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612f00565b610714565b005b34801561021157600080fd5b5061021a610864565b6040516102279190613349565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e6c565b6108a1565b6040516102649190613313565b60405180910390f35b34801561027957600080fd5b506102826108bf565b60405161028f919061332e565b60405180910390f35b3480156102a457600080fd5b506102ad6108e5565b6040516102ba919061352b565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612e1d565b6108f4565b6040516102f79190613313565b60405180910390f35b34801561030c57600080fd5b506103156109cd565b604051610322919061352b565b60405180910390f35b34801561033757600080fd5b506103406109d3565b60405161034d91906135a0565b60405180910390f35b34801561036257600080fd5b5061036b6109dc565b60405161037891906132f8565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190612d8f565b610a02565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190612f41565b610af2565b005b3480156103df57600080fd5b506103e8610ba4565b005b3480156103f657600080fd5b50610411600480360381019061040c9190612d8f565b610c75565b60405161041e919061352b565b60405180910390f35b34801561043357600080fd5b5061043c610cc6565b005b34801561044a57600080fd5b5061046560048036038101906104609190612f6a565b610e19565b005b34801561047357600080fd5b5061047c610eb8565b604051610489919061352b565b60405180910390f35b34801561049e57600080fd5b506104b960048036038101906104b49190612d8f565b610ebe565b6040516104c6919061352b565b60405180910390f35b3480156104db57600080fd5b506104e4610ed6565b6040516104f191906132f8565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190612f41565b610eff565b005b34801561052f57600080fd5b50610538610fb1565b604051610545919061352b565b60405180910390f35b34801561055a57600080fd5b50610563610fb7565b6040516105709190613349565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190612f6a565b610ff4565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190612f93565b611093565b005b3480156105d757600080fd5b506105f260048036038101906105ed9190612e6c565b61114a565b6040516105ff9190613313565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a9190612d8f565b611168565b60405161063c9190613313565b60405180910390f35b34801561065157600080fd5b5061065a611188565b005b34801561066857600080fd5b50610683600480360381019061067e9190612ea8565b611261565b005b34801561069157600080fd5b506106ac60048036038101906106a79190612de1565b6113c1565b6040516106b9919061352b565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612f6a565b611448565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612d8f565b6114e7565b005b61071c6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a09061348b565b60405180910390fd5b60005b8151811015610860576001601060008484815181106107f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061085890613865565b9150506107ac565b5050565b60606040518060400160405280600e81526020017f48616c6c6f7765656e20446f6765000000000000000000000000000000000000815250905090565b60006108b56108ae6116a9565b84846116b1565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600061090184848461187c565b6109c28461090d6116a9565b6109bd85604051806060016040528060288152602001613d7260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109736116a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121019092919063ffffffff16565b6116b1565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a0a6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e9061348b565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610afa6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e9061348b565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be56116a9565b73ffffffffffffffffffffffffffffffffffffffff161480610c5b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c436116a9565b73ffffffffffffffffffffffffffffffffffffffff16145b610c6457600080fd5b6000479050610c7281612165565b50565b6000610cbf600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d1565b9050919050565b610cce6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d529061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e216116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea59061348b565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f076116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8b9061348b565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f48444f4745000000000000000000000000000000000000000000000000000000815250905090565b610ffc6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110809061348b565b60405180910390fd5b8060188190555050565b61109b6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061348b565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061115e6111576116a9565b848461187c565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c96116a9565b73ffffffffffffffffffffffffffffffffffffffff16148061123f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112276116a9565b73ffffffffffffffffffffffffffffffffffffffff16145b61124857600080fd5b600061125330610c75565b905061125e8161223f565b50565b6112696116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed9061348b565b60405180910390fd5b60005b838390508110156113bb578160056000868685818110611342577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906113579190612d8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113b390613865565b9150506112f9565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114506116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d49061348b565b60405180910390fd5b8060178190555050565b6114ef6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e3906133eb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061350b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061340b565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161186f919061352b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e3906134cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119539061336b565b60405180910390fd5b6000811161199f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611996906134ab565b60405180910390fd5b6119a7610ed6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1557506119e5610ed6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e0057601560149054906101000a900460ff16611aa457611a36610ed6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061338b565b60405180910390fd5b5b601654811115611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae0906133cb565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b8d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc39061342b565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c795760175481611c2e84610c75565b611c389190613661565b10611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f906134eb565b60405180910390fd5b5b6000611c8430610c75565b9050600060185482101590506016548210611c9f5760165491505b808015611cb7575060158054906101000a900460ff16155b8015611d115750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d295750601560169054906101000a900460ff165b8015611d7f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dd55750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dfd57611de38261223f565b60004790506000811115611dfb57611dfa47612165565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ea75750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f5a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f595750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f6857600090506120ef565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120135750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561202b57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120d65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120ee57600a54600c81905550600b54600d819055505b5b6120fb84848484612537565b50505050565b6000838311158290612149576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121409190613349565b60405180910390fd5b50600083856121589190613742565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121cd573d6000803e3d6000fd5b5050565b6000600654821115612218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220f906133ab565b60405180910390fd5b6000612222612564565b9050612237818461258f90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561229c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122ca5781602001602082028036833780820191505090505b5090503081600081518110612308577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123aa57600080fd5b505afa1580156123be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e29190612db8565b8160018151811061241c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061248330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116b1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124e7959493929190613546565b600060405180830381600087803b15801561250157600080fd5b505af1158015612515573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612545576125446125d9565b5b61255084848461261c565b8061255e5761255d6127e7565b5b50505050565b60008060006125716127fb565b91509150612588818361258f90919063ffffffff16565b9250505090565b60006125d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612857565b905092915050565b6000600c541480156125ed57506000600d54145b156125f75761261a565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061262e876128ba565b95509550955095509550955061268c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276d816129ca565b6127778483612a87565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127d4919061352b565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc10000905061282d662386f26fc1000060065461258f90919063ffffffff16565b82101561284a57600654662386f26fc10000935093505050612853565b81819350935050505b9091565b6000808311829061289e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128959190613349565b60405180910390fd5b50600083856128ad91906136b7565b9050809150509392505050565b60008060008060008060008060006128d78a600c54600d54612ac1565b92509250925060006128e7612564565b905060008060006128fa8e878787612b57565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061296483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612101565b905092915050565b600080828461297b9190613661565b9050838110156129c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b79061344b565b60405180910390fd5b8091505092915050565b60006129d4612564565b905060006129eb8284612be090919063ffffffff16565b9050612a3f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a9c8260065461292290919063ffffffff16565b600681905550612ab78160075461296c90919063ffffffff16565b6007819055505050565b600080600080612aed6064612adf888a612be090919063ffffffff16565b61258f90919063ffffffff16565b90506000612b176064612b09888b612be090919063ffffffff16565b61258f90919063ffffffff16565b90506000612b4082612b32858c61292290919063ffffffff16565b61292290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b708589612be090919063ffffffff16565b90506000612b878689612be090919063ffffffff16565b90506000612b9e8789612be090919063ffffffff16565b90506000612bc782612bb9858761292290919063ffffffff16565b61292290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612bf35760009050612c55565b60008284612c0191906136e8565b9050828482612c1091906136b7565b14612c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c479061346b565b60405180910390fd5b809150505b92915050565b6000612c6e612c69846135e0565b6135bb565b90508083825260208201905082856020860282011115612c8d57600080fd5b60005b85811015612cbd5781612ca38882612cc7565b845260208401935060208301925050600181019050612c90565b5050509392505050565b600081359050612cd681613d2c565b92915050565b600081519050612ceb81613d2c565b92915050565b60008083601f840112612d0357600080fd5b8235905067ffffffffffffffff811115612d1c57600080fd5b602083019150836020820283011115612d3457600080fd5b9250929050565b600082601f830112612d4c57600080fd5b8135612d5c848260208601612c5b565b91505092915050565b600081359050612d7481613d43565b92915050565b600081359050612d8981613d5a565b92915050565b600060208284031215612da157600080fd5b6000612daf84828501612cc7565b91505092915050565b600060208284031215612dca57600080fd5b6000612dd884828501612cdc565b91505092915050565b60008060408385031215612df457600080fd5b6000612e0285828601612cc7565b9250506020612e1385828601612cc7565b9150509250929050565b600080600060608486031215612e3257600080fd5b6000612e4086828701612cc7565b9350506020612e5186828701612cc7565b9250506040612e6286828701612d7a565b9150509250925092565b60008060408385031215612e7f57600080fd5b6000612e8d85828601612cc7565b9250506020612e9e85828601612d7a565b9150509250929050565b600080600060408486031215612ebd57600080fd5b600084013567ffffffffffffffff811115612ed757600080fd5b612ee386828701612cf1565b93509350506020612ef686828701612d65565b9150509250925092565b600060208284031215612f1257600080fd5b600082013567ffffffffffffffff811115612f2c57600080fd5b612f3884828501612d3b565b91505092915050565b600060208284031215612f5357600080fd5b6000612f6184828501612d65565b91505092915050565b600060208284031215612f7c57600080fd5b6000612f8a84828501612d7a565b91505092915050565b60008060008060808587031215612fa957600080fd5b6000612fb787828801612d7a565b9450506020612fc887828801612d7a565b9350506040612fd987828801612d7a565b9250506060612fea87828801612d7a565b91505092959194509250565b6000613002838361300e565b60208301905092915050565b61301781613776565b82525050565b61302681613776565b82525050565b60006130378261361c565b613041818561363f565b935061304c8361360c565b8060005b8381101561307d5781516130648882612ff6565b975061306f83613632565b925050600181019050613050565b5085935050505092915050565b61309381613788565b82525050565b6130a2816137cb565b82525050565b6130b1816137ef565b82525050565b60006130c282613627565b6130cc8185613650565b93506130dc818560208601613801565b6130e58161393b565b840191505092915050565b60006130fd602383613650565b91506131088261394c565b604082019050919050565b6000613120603f83613650565b915061312b8261399b565b604082019050919050565b6000613143602a83613650565b915061314e826139ea565b604082019050919050565b6000613166601c83613650565b915061317182613a39565b602082019050919050565b6000613189602683613650565b915061319482613a62565b604082019050919050565b60006131ac602283613650565b91506131b782613ab1565b604082019050919050565b60006131cf602383613650565b91506131da82613b00565b604082019050919050565b60006131f2601b83613650565b91506131fd82613b4f565b602082019050919050565b6000613215602183613650565b915061322082613b78565b604082019050919050565b6000613238602083613650565b915061324382613bc7565b602082019050919050565b600061325b602983613650565b915061326682613bf0565b604082019050919050565b600061327e602583613650565b915061328982613c3f565b604082019050919050565b60006132a1602383613650565b91506132ac82613c8e565b604082019050919050565b60006132c4602483613650565b91506132cf82613cdd565b604082019050919050565b6132e3816137b4565b82525050565b6132f2816137be565b82525050565b600060208201905061330d600083018461301d565b92915050565b6000602082019050613328600083018461308a565b92915050565b60006020820190506133436000830184613099565b92915050565b6000602082019050818103600083015261336381846130b7565b905092915050565b60006020820190508181036000830152613384816130f0565b9050919050565b600060208201905081810360008301526133a481613113565b9050919050565b600060208201905081810360008301526133c481613136565b9050919050565b600060208201905081810360008301526133e481613159565b9050919050565b600060208201905081810360008301526134048161317c565b9050919050565b600060208201905081810360008301526134248161319f565b9050919050565b60006020820190508181036000830152613444816131c2565b9050919050565b60006020820190508181036000830152613464816131e5565b9050919050565b6000602082019050818103600083015261348481613208565b9050919050565b600060208201905081810360008301526134a48161322b565b9050919050565b600060208201905081810360008301526134c48161324e565b9050919050565b600060208201905081810360008301526134e481613271565b9050919050565b6000602082019050818103600083015261350481613294565b9050919050565b60006020820190508181036000830152613524816132b7565b9050919050565b600060208201905061354060008301846132da565b92915050565b600060a08201905061355b60008301886132da565b61356860208301876130a8565b818103604083015261357a818661302c565b9050613589606083018561301d565b61359660808301846132da565b9695505050505050565b60006020820190506135b560008301846132e9565b92915050565b60006135c56135d6565b90506135d18282613834565b919050565b6000604051905090565b600067ffffffffffffffff8211156135fb576135fa61390c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061366c826137b4565b9150613677836137b4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ac576136ab6138ae565b5b828201905092915050565b60006136c2826137b4565b91506136cd836137b4565b9250826136dd576136dc6138dd565b5b828204905092915050565b60006136f3826137b4565b91506136fe836137b4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613737576137366138ae565b5b828202905092915050565b600061374d826137b4565b9150613758836137b4565b92508282101561376b5761376a6138ae565b5b828203905092915050565b600061378182613794565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137d6826137dd565b9050919050565b60006137e882613794565b9050919050565b60006137fa826137b4565b9050919050565b60005b8381101561381f578082015181840152602081019050613804565b8381111561382e576000848401525b50505050565b61383d8261393b565b810181811067ffffffffffffffff8211171561385c5761385b61390c565b5b80604052505050565b6000613870826137b4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138a3576138a26138ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613d3581613776565b8114613d4057600080fd5b50565b613d4c81613788565b8114613d5757600080fd5b50565b613d63816137b4565b8114613d6e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206b48335c055d4e088b5761527774408389342845cbae6aea30b43da1dd6cd50264736f6c63430008020033
Deployed Bytecode
0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065c578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb146105a2578063a9059cbb146105cb578063bfd7928414610608578063c3c8cd8014610645576101d7565b80638f70ccf7116100d15780638f70ccf7146104fa5780638f9a55c01461052357806395d89b411461054e57806398a5c31514610579576101d7565b80637d1db4a5146104675780637f2feddc146104925780638da5cb5b146104cf576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146103d357806370a08231146103ea578063715018a61461042757806374010ece1461043e576101d7565b8063313ce5671461032b57806349bd5a5e146103565780636b999053146103815780636d8aa8f8146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612f00565b610714565b005b34801561021157600080fd5b5061021a610864565b6040516102279190613349565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e6c565b6108a1565b6040516102649190613313565b60405180910390f35b34801561027957600080fd5b506102826108bf565b60405161028f919061332e565b60405180910390f35b3480156102a457600080fd5b506102ad6108e5565b6040516102ba919061352b565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612e1d565b6108f4565b6040516102f79190613313565b60405180910390f35b34801561030c57600080fd5b506103156109cd565b604051610322919061352b565b60405180910390f35b34801561033757600080fd5b506103406109d3565b60405161034d91906135a0565b60405180910390f35b34801561036257600080fd5b5061036b6109dc565b60405161037891906132f8565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190612d8f565b610a02565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190612f41565b610af2565b005b3480156103df57600080fd5b506103e8610ba4565b005b3480156103f657600080fd5b50610411600480360381019061040c9190612d8f565b610c75565b60405161041e919061352b565b60405180910390f35b34801561043357600080fd5b5061043c610cc6565b005b34801561044a57600080fd5b5061046560048036038101906104609190612f6a565b610e19565b005b34801561047357600080fd5b5061047c610eb8565b604051610489919061352b565b60405180910390f35b34801561049e57600080fd5b506104b960048036038101906104b49190612d8f565b610ebe565b6040516104c6919061352b565b60405180910390f35b3480156104db57600080fd5b506104e4610ed6565b6040516104f191906132f8565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190612f41565b610eff565b005b34801561052f57600080fd5b50610538610fb1565b604051610545919061352b565b60405180910390f35b34801561055a57600080fd5b50610563610fb7565b6040516105709190613349565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190612f6a565b610ff4565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190612f93565b611093565b005b3480156105d757600080fd5b506105f260048036038101906105ed9190612e6c565b61114a565b6040516105ff9190613313565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a9190612d8f565b611168565b60405161063c9190613313565b60405180910390f35b34801561065157600080fd5b5061065a611188565b005b34801561066857600080fd5b50610683600480360381019061067e9190612ea8565b611261565b005b34801561069157600080fd5b506106ac60048036038101906106a79190612de1565b6113c1565b6040516106b9919061352b565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612f6a565b611448565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612d8f565b6114e7565b005b61071c6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a09061348b565b60405180910390fd5b60005b8151811015610860576001601060008484815181106107f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061085890613865565b9150506107ac565b5050565b60606040518060400160405280600e81526020017f48616c6c6f7765656e20446f6765000000000000000000000000000000000000815250905090565b60006108b56108ae6116a9565b84846116b1565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600061090184848461187c565b6109c28461090d6116a9565b6109bd85604051806060016040528060288152602001613d7260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109736116a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121019092919063ffffffff16565b6116b1565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a0a6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e9061348b565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610afa6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e9061348b565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be56116a9565b73ffffffffffffffffffffffffffffffffffffffff161480610c5b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c436116a9565b73ffffffffffffffffffffffffffffffffffffffff16145b610c6457600080fd5b6000479050610c7281612165565b50565b6000610cbf600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d1565b9050919050565b610cce6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d529061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e216116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea59061348b565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f076116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8b9061348b565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f48444f4745000000000000000000000000000000000000000000000000000000815250905090565b610ffc6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110809061348b565b60405180910390fd5b8060188190555050565b61109b6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061348b565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061115e6111576116a9565b848461187c565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c96116a9565b73ffffffffffffffffffffffffffffffffffffffff16148061123f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112276116a9565b73ffffffffffffffffffffffffffffffffffffffff16145b61124857600080fd5b600061125330610c75565b905061125e8161223f565b50565b6112696116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed9061348b565b60405180910390fd5b60005b838390508110156113bb578160056000868685818110611342577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906113579190612d8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113b390613865565b9150506112f9565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114506116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d49061348b565b60405180910390fd5b8060178190555050565b6114ef6116a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e3906133eb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061350b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061340b565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161186f919061352b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e3906134cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119539061336b565b60405180910390fd5b6000811161199f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611996906134ab565b60405180910390fd5b6119a7610ed6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1557506119e5610ed6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e0057601560149054906101000a900460ff16611aa457611a36610ed6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061338b565b60405180910390fd5b5b601654811115611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae0906133cb565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b8d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc39061342b565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c795760175481611c2e84610c75565b611c389190613661565b10611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f906134eb565b60405180910390fd5b5b6000611c8430610c75565b9050600060185482101590506016548210611c9f5760165491505b808015611cb7575060158054906101000a900460ff16155b8015611d115750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d295750601560169054906101000a900460ff165b8015611d7f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dd55750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dfd57611de38261223f565b60004790506000811115611dfb57611dfa47612165565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ea75750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f5a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f595750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f6857600090506120ef565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120135750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561202b57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120d65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120ee57600a54600c81905550600b54600d819055505b5b6120fb84848484612537565b50505050565b6000838311158290612149576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121409190613349565b60405180910390fd5b50600083856121589190613742565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121cd573d6000803e3d6000fd5b5050565b6000600654821115612218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220f906133ab565b60405180910390fd5b6000612222612564565b9050612237818461258f90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561229c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122ca5781602001602082028036833780820191505090505b5090503081600081518110612308577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123aa57600080fd5b505afa1580156123be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e29190612db8565b8160018151811061241c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061248330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116b1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124e7959493929190613546565b600060405180830381600087803b15801561250157600080fd5b505af1158015612515573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612545576125446125d9565b5b61255084848461261c565b8061255e5761255d6127e7565b5b50505050565b60008060006125716127fb565b91509150612588818361258f90919063ffffffff16565b9250505090565b60006125d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612857565b905092915050565b6000600c541480156125ed57506000600d54145b156125f75761261a565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061262e876128ba565b95509550955095509550955061268c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276d816129ca565b6127778483612a87565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127d4919061352b565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc10000905061282d662386f26fc1000060065461258f90919063ffffffff16565b82101561284a57600654662386f26fc10000935093505050612853565b81819350935050505b9091565b6000808311829061289e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128959190613349565b60405180910390fd5b50600083856128ad91906136b7565b9050809150509392505050565b60008060008060008060008060006128d78a600c54600d54612ac1565b92509250925060006128e7612564565b905060008060006128fa8e878787612b57565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061296483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612101565b905092915050565b600080828461297b9190613661565b9050838110156129c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b79061344b565b60405180910390fd5b8091505092915050565b60006129d4612564565b905060006129eb8284612be090919063ffffffff16565b9050612a3f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a9c8260065461292290919063ffffffff16565b600681905550612ab78160075461296c90919063ffffffff16565b6007819055505050565b600080600080612aed6064612adf888a612be090919063ffffffff16565b61258f90919063ffffffff16565b90506000612b176064612b09888b612be090919063ffffffff16565b61258f90919063ffffffff16565b90506000612b4082612b32858c61292290919063ffffffff16565b61292290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b708589612be090919063ffffffff16565b90506000612b878689612be090919063ffffffff16565b90506000612b9e8789612be090919063ffffffff16565b90506000612bc782612bb9858761292290919063ffffffff16565b61292290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612bf35760009050612c55565b60008284612c0191906136e8565b9050828482612c1091906136b7565b14612c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c479061346b565b60405180910390fd5b809150505b92915050565b6000612c6e612c69846135e0565b6135bb565b90508083825260208201905082856020860282011115612c8d57600080fd5b60005b85811015612cbd5781612ca38882612cc7565b845260208401935060208301925050600181019050612c90565b5050509392505050565b600081359050612cd681613d2c565b92915050565b600081519050612ceb81613d2c565b92915050565b60008083601f840112612d0357600080fd5b8235905067ffffffffffffffff811115612d1c57600080fd5b602083019150836020820283011115612d3457600080fd5b9250929050565b600082601f830112612d4c57600080fd5b8135612d5c848260208601612c5b565b91505092915050565b600081359050612d7481613d43565b92915050565b600081359050612d8981613d5a565b92915050565b600060208284031215612da157600080fd5b6000612daf84828501612cc7565b91505092915050565b600060208284031215612dca57600080fd5b6000612dd884828501612cdc565b91505092915050565b60008060408385031215612df457600080fd5b6000612e0285828601612cc7565b9250506020612e1385828601612cc7565b9150509250929050565b600080600060608486031215612e3257600080fd5b6000612e4086828701612cc7565b9350506020612e5186828701612cc7565b9250506040612e6286828701612d7a565b9150509250925092565b60008060408385031215612e7f57600080fd5b6000612e8d85828601612cc7565b9250506020612e9e85828601612d7a565b9150509250929050565b600080600060408486031215612ebd57600080fd5b600084013567ffffffffffffffff811115612ed757600080fd5b612ee386828701612cf1565b93509350506020612ef686828701612d65565b9150509250925092565b600060208284031215612f1257600080fd5b600082013567ffffffffffffffff811115612f2c57600080fd5b612f3884828501612d3b565b91505092915050565b600060208284031215612f5357600080fd5b6000612f6184828501612d65565b91505092915050565b600060208284031215612f7c57600080fd5b6000612f8a84828501612d7a565b91505092915050565b60008060008060808587031215612fa957600080fd5b6000612fb787828801612d7a565b9450506020612fc887828801612d7a565b9350506040612fd987828801612d7a565b9250506060612fea87828801612d7a565b91505092959194509250565b6000613002838361300e565b60208301905092915050565b61301781613776565b82525050565b61302681613776565b82525050565b60006130378261361c565b613041818561363f565b935061304c8361360c565b8060005b8381101561307d5781516130648882612ff6565b975061306f83613632565b925050600181019050613050565b5085935050505092915050565b61309381613788565b82525050565b6130a2816137cb565b82525050565b6130b1816137ef565b82525050565b60006130c282613627565b6130cc8185613650565b93506130dc818560208601613801565b6130e58161393b565b840191505092915050565b60006130fd602383613650565b91506131088261394c565b604082019050919050565b6000613120603f83613650565b915061312b8261399b565b604082019050919050565b6000613143602a83613650565b915061314e826139ea565b604082019050919050565b6000613166601c83613650565b915061317182613a39565b602082019050919050565b6000613189602683613650565b915061319482613a62565b604082019050919050565b60006131ac602283613650565b91506131b782613ab1565b604082019050919050565b60006131cf602383613650565b91506131da82613b00565b604082019050919050565b60006131f2601b83613650565b91506131fd82613b4f565b602082019050919050565b6000613215602183613650565b915061322082613b78565b604082019050919050565b6000613238602083613650565b915061324382613bc7565b602082019050919050565b600061325b602983613650565b915061326682613bf0565b604082019050919050565b600061327e602583613650565b915061328982613c3f565b604082019050919050565b60006132a1602383613650565b91506132ac82613c8e565b604082019050919050565b60006132c4602483613650565b91506132cf82613cdd565b604082019050919050565b6132e3816137b4565b82525050565b6132f2816137be565b82525050565b600060208201905061330d600083018461301d565b92915050565b6000602082019050613328600083018461308a565b92915050565b60006020820190506133436000830184613099565b92915050565b6000602082019050818103600083015261336381846130b7565b905092915050565b60006020820190508181036000830152613384816130f0565b9050919050565b600060208201905081810360008301526133a481613113565b9050919050565b600060208201905081810360008301526133c481613136565b9050919050565b600060208201905081810360008301526133e481613159565b9050919050565b600060208201905081810360008301526134048161317c565b9050919050565b600060208201905081810360008301526134248161319f565b9050919050565b60006020820190508181036000830152613444816131c2565b9050919050565b60006020820190508181036000830152613464816131e5565b9050919050565b6000602082019050818103600083015261348481613208565b9050919050565b600060208201905081810360008301526134a48161322b565b9050919050565b600060208201905081810360008301526134c48161324e565b9050919050565b600060208201905081810360008301526134e481613271565b9050919050565b6000602082019050818103600083015261350481613294565b9050919050565b60006020820190508181036000830152613524816132b7565b9050919050565b600060208201905061354060008301846132da565b92915050565b600060a08201905061355b60008301886132da565b61356860208301876130a8565b818103604083015261357a818661302c565b9050613589606083018561301d565b61359660808301846132da565b9695505050505050565b60006020820190506135b560008301846132e9565b92915050565b60006135c56135d6565b90506135d18282613834565b919050565b6000604051905090565b600067ffffffffffffffff8211156135fb576135fa61390c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061366c826137b4565b9150613677836137b4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ac576136ab6138ae565b5b828201905092915050565b60006136c2826137b4565b91506136cd836137b4565b9250826136dd576136dc6138dd565b5b828204905092915050565b60006136f3826137b4565b91506136fe836137b4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613737576137366138ae565b5b828202905092915050565b600061374d826137b4565b9150613758836137b4565b92508282101561376b5761376a6138ae565b5b828203905092915050565b600061378182613794565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137d6826137dd565b9050919050565b60006137e882613794565b9050919050565b60006137fa826137b4565b9050919050565b60005b8381101561381f578082015181840152602081019050613804565b8381111561382e576000848401525b50505050565b61383d8261393b565b810181811067ffffffffffffffff8211171561385c5761385b61390c565b5b80604052505050565b6000613870826137b4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138a3576138a26138ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613d3581613776565b8114613d4057600080fd5b50565b613d4c81613788565b8114613d5757600080fd5b50565b613d63816137b4565b8114613d6e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206b48335c055d4e088b5761527774408389342845cbae6aea30b43da1dd6cd50264736f6c63430008020033
Deployed Bytecode Sourcemap
3402:10826:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10425:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5653:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6394:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4653:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5882:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6543:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4930:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5807:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4697:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10566:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13694:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10214:207;;;;;;;;;;;;;:::i;:::-;;5969:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1385:128;;;;;;;;;;;;;:::i;:::-;;13814:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4830:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4407:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1211:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9909:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4879:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5728:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13523:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13224:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6099:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4369:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10002:208;;;;;;;;;;;;;:::i;:::-;;14021:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6254:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13914:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1517:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10425:137;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10493:9:::1;10488:71;10512:5;:12;10508:1;:16;10488:71;;;10551:4;10534;:14;10539:5;10545:1;10539:8;;;;;;;;;;;;;;;;;;;;;;10534:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10526:3;;;;;:::i;:::-;;;;10488:71;;;;10425:137:::0;:::o;5653:71::-;5690:13;5715:5;;;;;;;;;;;;;;;;;5708:12;;5653:71;:::o;6394:145::-;6472:4;6482:39;6491:12;:10;:12::i;:::-;6505:7;6514:6;6482:8;:39::i;:::-;6531:4;6524:11;;6394:145;;;;:::o;4653:41::-;;;;;;;;;;;;;:::o;5882:83::-;5935:7;3921:16;5947:14;;5882:83;:::o;6543:302::-;6647:4;6656:36;6666:6;6674:9;6685:6;6656:9;:36::i;:::-;6695:132;6706:6;6715:12;:10;:12::i;:::-;6730:94;6770:6;6730:94;;;;;;;;;;;;;;;;;:11;:19;6742:6;6730:19;;;;;;;;;;;;;;;:33;6750:12;:10;:12::i;:::-;6730:33;;;;;;;;;;;;;;;;:37;;:94;;;;;:::i;:::-;6695:8;:132::i;:::-;6837:4;6830:11;;6543:302;;;;;:::o;4930:53::-;;;;:::o;5807:71::-;5848:5;3619:1;5858:16;;5807:71;:::o;4697:28::-;;;;;;;;;;;;;:::o;10566:80::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10637:5:::1;10622:4;:12;10627:6;10622:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10566:80:::0;:::o;13694:89::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13767:12:::1;13753:11;;:26;;;;;;;;;;;;;;;;;;13694:89:::0;:::o;10214:207::-;10272:19;;;;;;;;;;;10256:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;10311:17;;;;;;;;;;;10295:33;;:12;:10;:12::i;:::-;:33;;;10256:72;10248:81;;;;;;10332:26;10361:21;10332:50;;10385:32;10398:18;10385:12;:32::i;:::-;10214:207;:::o;5969:126::-;6035:7;6054:37;6074:7;:16;6082:7;6074:16;;;;;;;;;;;;;;;;6054:19;:37::i;:::-;6047:44;;5969:126;;;:::o;1385:128::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1484:1:::1;1447:40;;1468:6;::::0;::::1;;;;;;;;1447:40;;;;;;;;;;;;1507:1;1490:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1385:128::o:0;13814:96::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13895:11:::1;13880:12;:26;;;;13814:96:::0;:::o;4830:46::-;;;;:::o;4407:43::-;;;;;;;;;;;;;;;;;:::o;1211:67::-;1249:7;1268:6;;;;;;;;;;;1261:13;;1211:67;:::o;9909:89::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9982:12:::1;9968:11;;:26;;;;;;;;;;;;;;;;;;9909:89:::0;:::o;4879:48::-;;;;:::o;5728:75::-;5767:13;5792:7;;;;;;;;;;;;;;;;;5785:14;;5728:75;:::o;13523:127::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13628:18:::1;13606:19;:40;;;;13523:127:::0;:::o;13224:255::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13367:13:::1;13350:14;:30;;;;13401:14;13383:15;:32;;;;13433:11;13418:12;:26;;;;13463:12;13447:13;:28;;;;13224:255:::0;;;;:::o;6099:151::-;6180:4;6190:42;6200:12;:10;:12::i;:::-;6214:9;6225:6;6190:9;:42::i;:::-;6242:4;6235:11;;6099:151;;;;:::o;4369:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;10002:208::-;10060:19;;;;;;;;;;;10044:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;10099:17;;;;;;;;;;;10083:33;;:12;:10;:12::i;:::-;:33;;;10044:72;10036:81;;;;;;10120:23;10146:24;10164:4;10146:9;:24::i;:::-;10120:50;;10173:33;10190:15;10173:16;:33::i;:::-;10002:208;:::o;14021:202::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14130:9:::1;14126:94;14149:8;;:15;;14145:1;:19;14126:94;;;14208:8;14174:18;:31;14193:8;;14202:1;14193:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14174:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14166:3;;;;;:::i;:::-;;;;14126:94;;;;14021:202:::0;;;:::o;6254:136::-;6339:7;6359:11;:18;6371:5;6359:18;;;;;;;;;;;;;;;:27;6378:7;6359:27;;;;;;;;;;;;;;;;6352:34;;6254:136;;;;:::o;13914:103::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14000:13:::1;13983:14;:30;;;;13914:103:::0;:::o;1517:216::-;1324:12;:10;:12::i;:::-;1314:22;;:6;;;;;;;;;;:22;;;1306:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1618:1:::1;1598:22;;:8;:22;;;;1590:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1700:8;1671:38;;1692:6;::::0;::::1;;;;;;;;1671:38;;;;;;;;;;;;1721:8;1712:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1517:216:::0;:::o;138:86::-;191:7;210:10;203:17;;138:86;:::o;7368:305::-;7476:1;7459:19;;:5;:19;;;;7451:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7549:1;7530:21;;:7;:21;;;;7522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7623:6;7593:11;:18;7605:5;7593:18;;;;;;;;;;;;;;;:27;7612:7;7593:27;;;;;;;;;;;;;;;:36;;;;7653:7;7637:32;;7646:5;7637:32;;;7662:6;7637:32;;;;;;:::i;:::-;;;;;;;;7368:305;;;:::o;7677:1762::-;7779:1;7763:18;;:4;:18;;;;7755:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7848:1;7834:16;;:2;:16;;;;7826:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7910:1;7901:6;:10;7893:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7974:7;:5;:7::i;:::-;7966:15;;:4;:15;;;;:32;;;;;7991:7;:5;:7::i;:::-;7985:13;;:2;:13;;;;7966:32;7962:951;;;8031:11;;;;;;;;;;;8026:116;;8063:7;:5;:7::i;:::-;8055:15;;:4;:15;;;8047:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;8026:116;8164:12;;8154:6;:22;;8146:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8221:4;:10;8226:4;8221:10;;;;;;;;;;;;;;;;;;;;;;;;;8220:11;:24;;;;;8236:4;:8;8241:2;8236:8;;;;;;;;;;;;;;;;;;;;;;;;;8235:9;8220:24;8212:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;8298:13;;;;;;;;;;;8292:19;;:2;:19;;;8289:118;;8349:14;;8340:6;8324:13;8334:2;8324:9;:13::i;:::-;:22;;;;:::i;:::-;:39;8316:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8289:118;8411:28;8442:24;8460:4;8442:9;:24::i;:::-;8411:55;;8469:12;8508:19;;8484:20;:43;;8469:58;;8559:12;;8535:20;:36;8532:84;;8600:12;;8577:35;;8532:84;8624:7;:18;;;;;8636:6;;;;;;;;;;8635:7;8624:18;:43;;;;;8654:13;;;;;;;;;;;8646:21;;:4;:21;;;;8624:43;:58;;;;;8671:11;;;;;;;;;;;8624:58;:87;;;;;8687:18;:24;8706:4;8687:24;;;;;;;;;;;;;;;;;;;;;;;;;8686:25;8624:87;:114;;;;;8716:18;:22;8735:2;8716:22;;;;;;;;;;;;;;;;;;;;;;;;;8715:23;8624:114;8620:290;;;8743:38;8760:20;8743:16;:38::i;:::-;8784:26;8813:21;8784:50;;8862:1;8841:18;:22;8837:70;;;8868:35;8881:21;8868:12;:35::i;:::-;8837:70;8620:290;;7962:951;;;8917:12;8932:4;8917:19;;8965:18;:24;8984:4;8965:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8993:18;:22;9012:2;8993:22;;;;;;;;;;;;;;;;;;;;;;;;;8965:50;8964:102;;;;9029:13;;;;;;;;;;;9021:21;;:4;:21;;;;:44;;;;;9052:13;;;;;;;;;;;9046:19;;:2;:19;;;;9021:44;8964:102;8960:430;;;9081:5;9071:15;;8960:430;;;9132:13;;;;;;;;;;;9124:21;;:4;:21;;;:55;;;;;9163:15;;;;;;;;;;;9149:30;;:2;:30;;;;9124:55;9121:118;;;9196:14;;9184:9;:26;;;;9223:12;;9213:7;:22;;;;9121:118;9274:13;;;;;;;;;;;9268:19;;:2;:19;;;:55;;;;;9307:15;;;;;;;;;;;9291:32;;:4;:32;;;;9268:55;9264:121;;;9340:15;;9328:9;:27;;;;9368:13;;9358:7;:23;;;;9264:121;8960:430;9394:41;9409:4;9415:2;9419:6;9427:7;9394:14;:41::i;:::-;7677:1762;;;;:::o;2045:168::-;2137:7;2162:1;2157;:6;;2165:12;2149:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2181:9;2197:1;2193;:5;;;;:::i;:::-;2181:17;;2208:1;2201:8;;;2045:168;;;;;:::o;9818:87::-;9867:17;;;;;;;;;;;:26;;:34;9894:6;9867:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9818:87;:::o;6849:235::-;6920:7;6954;;6943;:18;;6933:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7014:19;7036:10;:8;:10::i;:::-;7014:32;;7056:24;7068:11;7056:7;:11;;:24;;;;:::i;:::-;7049:31;;;6849:235;;;:::o;9443:371::-;5070:4;5061:6;;:13;;;;;;;;;;;;;;;;;;9513:21:::1;9551:1;9537:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9513:40;;9574:4;9556;9561:1;9556:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9592:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9582:4;9587:1;9582:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9617:62;9634:4;9649:15;;;;;;;;;;;9667:11;9617:8;:62::i;:::-;9682:15;;;;;;;;;;;:66;;;9751:11;9765:1;9769:4;9784;9792:15;9682:128;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5077:1;5090:5:::0;5081:6;;:14;;;;;;;;;;;;;;;;;;9443:371;:::o;10650:218::-;10762:7;10757:28;;10771:14;:12;:14::i;:::-;10757:28;10788:44;10806:6;10814:9;10825:6;10788:17;:44::i;:::-;10840:7;10835:29;;10849:15;:13;:15::i;:::-;10835:29;10650:218;;;;:::o;12851:144::-;12893:7;12906:15;12923;12942:19;:17;:19::i;:::-;12905:56;;;;12971:20;12983:7;12971;:11;;:20;;;;:::i;:::-;12964:27;;;;12851:144;:::o;2411:120::-;2469:7;2488:39;2492:1;2495;2488:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2481:46;;2411:120;;;;:::o;7088:175::-;7140:1;7127:9;;:14;:30;;;;;7156:1;7145:7;;:12;7127:30;7123:43;;;7159:7;;7123:43;7190:9;;7170:17;:29;;;;7220:7;;7202:15;:25;;;;7244:1;7232:9;:13;;;;7258:1;7248:7;:11;;;;7088:175;:::o;10872:450::-;10971:15;10989:23;11015:12;11030:23;11056:12;11071:13;11090:19;11101:7;11090:10;:19::i;:::-;10968:141;;;;;;;;;;;;11130:28;11150:7;11130;:15;11138:6;11130:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11112:7;:15;11120:6;11112:15;;;;;;;;;;;;;;;:46;;;;11182:39;11205:15;11182:7;:18;11190:9;11182:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11161:7;:18;11169:9;11161:18;;;;;;;;;;;;;;;:60;;;;11224:16;11234:5;11224:9;:16::i;:::-;11243:23;11255:4;11261;11243:11;:23::i;:::-;11291:9;11274:44;;11283:6;11274:44;;;11302:15;11274:44;;;;;;:::i;:::-;;;;;;;;10872:450;;;;;;;;;:::o;7267:97::-;7315:17;;7303:9;:29;;;;7345:15;;7335:7;:25;;;;7267:97::o;12999:221::-;13050:7;13059;13071:15;13089:7;;13071:25;;13099:15;3921:16;13099:25;;13141:20;3921:16;13141:7;;:11;;:20;;;;:::i;:::-;13131:7;:30;13127:61;;;13171:7;;3921:16;13163:25;;;;;;;;13127:61;13199:7;13208;13191:25;;;;;;12999:221;;;:::o;2535:167::-;2627:7;2651:1;2647;:5;2654:12;2639:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2670:9;2686:1;2682;:5;;;;:::i;:::-;2670:17;;2697:1;2690:8;;;2535:167;;;;;:::o;11677:447::-;11741:7;11751;11761;11771;11781;11791;11807:23;11832:12;11846:13;11864:40;11876:7;11885:9;;11896:7;;11864:11;:40::i;:::-;11806:98;;;;;;11907:19;11929:10;:8;:10::i;:::-;11907:32;;11943:15;11960:23;11985:12;12002:46;12014:7;12023:4;12029:5;12036:11;12002;:46::i;:::-;11942:106;;;;;;12059:7;12068:15;12085:4;12091:15;12108:4;12114:5;12051:69;;;;;;;;;;;;;;;;;;;11677:447;;;;;;;:::o;1917:124::-;1975:7;1994:43;1998:1;2001;1994:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1987:50;;1917:124;;;;:::o;1762:151::-;1820:7;1832:9;1848:1;1844;:5;;;;:::i;:::-;1832:17;;1865:1;1860;:6;;1852:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1908:1;1901:8;;;1762:151;;;;:::o;11326:183::-;11371:19;11393:10;:8;:10::i;:::-;11371:32;;11406:13;11422:22;11432:11;11422:5;:9;;:22;;;;:::i;:::-;11406:38;;11472:33;11499:5;11472:7;:22;11488:4;11472:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11447:7;:22;11463:4;11447:22;;;;;;;;;;;;;;;:58;;;;11326:183;;;:::o;11513:127::-;11583:17;11595:4;11583:7;;:11;;:17;;;;:::i;:::-;11573:7;:27;;;;11616:20;11631:4;11616:10;;:14;;:20;;;;:::i;:::-;11603:10;:33;;;;11513:127;;:::o;12128:333::-;12233:7;12243;12253;12268:12;12283:30;12309:3;12283:21;12295:8;12283:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;12268:45;;12316:13;12332:28;12356:3;12332:19;12344:6;12332:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12316:44;;12363:23;12389:28;12411:5;12389:17;12401:4;12389:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12363:54;;12428:15;12445:4;12451:5;12420:37;;;;;;;;;12128:333;;;;;;;:::o;12465:382::-;12587:7;12597;12607;12622:15;12640:24;12652:11;12640:7;:11;;:24;;;;:::i;:::-;12622:42;;12667:12;12682:21;12691:11;12682:4;:8;;:21;;;;:::i;:::-;12667:36;;12706:13;12722:22;12732:11;12722:5;:9;;:22;;;;:::i;:::-;12706:38;;12747:23;12773:28;12795:5;12773:17;12785:4;12773:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12747:54;;12812:7;12821:15;12838:4;12804:39;;;;;;;;;;12465:382;;;;;;;;:::o;2217:190::-;2275:7;2296:1;2291;:6;2287:27;;;2309:1;2302:8;;;;2287:27;2316:9;2332:1;2328;:5;;;;:::i;:::-;2316:17;;2353:1;2348;2344;:5;;;;:::i;:::-;:10;2336:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2402:1;2395:8;;;2217:190;;;;;:::o;24:623:1:-;;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;274:6;267:5;260:21;300:4;293:5;289:16;282:23;;325:6;375:3;367:4;359:6;355:17;350:3;346:27;343:36;340:2;;;392:1;389;382:12;340:2;420:1;405:236;430:6;427:1;424:13;405:236;;;497:3;525:37;558:3;546:10;525:37;:::i;:::-;520:3;513:50;592:4;587:3;583:14;576:21;;626:4;621:3;617:14;610:21;;465:176;452:1;449;445:9;440:14;;405:236;;;409:14;126:521;;;;;;;:::o;653:139::-;;737:6;724:20;715:29;;753:33;780:5;753:33;:::i;:::-;705:87;;;;:::o;798:143::-;;886:6;880:13;871:22;;902:33;929:5;902:33;:::i;:::-;861:80;;;;:::o;964:367::-;;;1097:3;1090:4;1082:6;1078:17;1074:27;1064:2;;1115:1;1112;1105:12;1064:2;1151:6;1138:20;1128:30;;1181:18;1173:6;1170:30;1167:2;;;1213:1;1210;1203:12;1167:2;1250:4;1242:6;1238:17;1226:29;;1304:3;1296:4;1288:6;1284:17;1274:8;1270:32;1267:41;1264:2;;;1321:1;1318;1311:12;1264:2;1054:277;;;;;:::o;1354:303::-;;1474:3;1467:4;1459:6;1455:17;1451:27;1441:2;;1492:1;1489;1482:12;1441:2;1532:6;1519:20;1557:94;1647:3;1639:6;1632:4;1624:6;1620:17;1557:94;:::i;:::-;1548:103;;1431:226;;;;;:::o;1663:133::-;;1744:6;1731:20;1722:29;;1760:30;1784:5;1760:30;:::i;:::-;1712:84;;;;:::o;1802:139::-;;1886:6;1873:20;1864:29;;1902:33;1929:5;1902:33;:::i;:::-;1854:87;;;;:::o;1947:262::-;;2055:2;2043:9;2034:7;2030:23;2026:32;2023:2;;;2071:1;2068;2061:12;2023:2;2114:1;2139:53;2184:7;2175:6;2164:9;2160:22;2139:53;:::i;:::-;2129:63;;2085:117;2013:196;;;;:::o;2215:284::-;;2334:2;2322:9;2313:7;2309:23;2305:32;2302:2;;;2350:1;2347;2340:12;2302:2;2393:1;2418:64;2474:7;2465:6;2454:9;2450:22;2418:64;:::i;:::-;2408:74;;2364:128;2292:207;;;;:::o;2505:407::-;;;2630:2;2618:9;2609:7;2605:23;2601:32;2598:2;;;2646:1;2643;2636:12;2598:2;2689:1;2714:53;2759:7;2750:6;2739:9;2735:22;2714:53;:::i;:::-;2704:63;;2660:117;2816:2;2842:53;2887:7;2878:6;2867:9;2863:22;2842:53;:::i;:::-;2832:63;;2787:118;2588:324;;;;;:::o;2918:552::-;;;;3060:2;3048:9;3039:7;3035:23;3031:32;3028:2;;;3076:1;3073;3066:12;3028:2;3119:1;3144:53;3189:7;3180:6;3169:9;3165:22;3144:53;:::i;:::-;3134:63;;3090:117;3246:2;3272:53;3317:7;3308:6;3297:9;3293:22;3272:53;:::i;:::-;3262:63;;3217:118;3374:2;3400:53;3445:7;3436:6;3425:9;3421:22;3400:53;:::i;:::-;3390:63;;3345:118;3018:452;;;;;:::o;3476:407::-;;;3601:2;3589:9;3580:7;3576:23;3572:32;3569:2;;;3617:1;3614;3607:12;3569:2;3660:1;3685:53;3730:7;3721:6;3710:9;3706:22;3685:53;:::i;:::-;3675:63;;3631:117;3787:2;3813:53;3858:7;3849:6;3838:9;3834:22;3813:53;:::i;:::-;3803:63;;3758:118;3559:324;;;;;:::o;3889:564::-;;;;4046:2;4034:9;4025:7;4021:23;4017:32;4014:2;;;4062:1;4059;4052:12;4014:2;4133:1;4122:9;4118:17;4105:31;4163:18;4155:6;4152:30;4149:2;;;4195:1;4192;4185:12;4149:2;4231:80;4303:7;4294:6;4283:9;4279:22;4231:80;:::i;:::-;4213:98;;;;4076:245;4360:2;4386:50;4428:7;4419:6;4408:9;4404:22;4386:50;:::i;:::-;4376:60;;4331:115;4004:449;;;;;:::o;4459:405::-;;4592:2;4580:9;4571:7;4567:23;4563:32;4560:2;;;4608:1;4605;4598:12;4560:2;4679:1;4668:9;4664:17;4651:31;4709:18;4701:6;4698:30;4695:2;;;4741:1;4738;4731:12;4695:2;4769:78;4839:7;4830:6;4819:9;4815:22;4769:78;:::i;:::-;4759:88;;4622:235;4550:314;;;;:::o;4870:256::-;;4975:2;4963:9;4954:7;4950:23;4946:32;4943:2;;;4991:1;4988;4981:12;4943:2;5034:1;5059:50;5101:7;5092:6;5081:9;5077:22;5059:50;:::i;:::-;5049:60;;5005:114;4933:193;;;;:::o;5132:262::-;;5240:2;5228:9;5219:7;5215:23;5211:32;5208:2;;;5256:1;5253;5246:12;5208:2;5299:1;5324:53;5369:7;5360:6;5349:9;5345:22;5324:53;:::i;:::-;5314:63;;5270:117;5198:196;;;;:::o;5400:698::-;;;;;5559:3;5547:9;5538:7;5534:23;5530:33;5527:2;;;5576:1;5573;5566:12;5527:2;5619:1;5644:53;5689:7;5680:6;5669:9;5665:22;5644:53;:::i;:::-;5634:63;;5590:117;5746:2;5772:53;5817:7;5808:6;5797:9;5793:22;5772:53;:::i;:::-;5762:63;;5717:118;5874:2;5900:53;5945:7;5936:6;5925:9;5921:22;5900:53;:::i;:::-;5890:63;;5845:118;6002:2;6028:53;6073:7;6064:6;6053:9;6049:22;6028:53;:::i;:::-;6018:63;;5973:118;5517:581;;;;;;;:::o;6104:179::-;;6194:46;6236:3;6228:6;6194:46;:::i;:::-;6272:4;6267:3;6263:14;6249:28;;6184:99;;;;:::o;6289:108::-;6366:24;6384:5;6366:24;:::i;:::-;6361:3;6354:37;6344:53;;:::o;6403:118::-;6490:24;6508:5;6490:24;:::i;:::-;6485:3;6478:37;6468:53;;:::o;6557:732::-;;6705:54;6753:5;6705:54;:::i;:::-;6775:86;6854:6;6849:3;6775:86;:::i;:::-;6768:93;;6885:56;6935:5;6885:56;:::i;:::-;6964:7;6995:1;6980:284;7005:6;7002:1;6999:13;6980:284;;;7081:6;7075:13;7108:63;7167:3;7152:13;7108:63;:::i;:::-;7101:70;;7194:60;7247:6;7194:60;:::i;:::-;7184:70;;7040:224;7027:1;7024;7020:9;7015:14;;6980:284;;;6984:14;7280:3;7273:10;;6681:608;;;;;;;:::o;7295:109::-;7376:21;7391:5;7376:21;:::i;:::-;7371:3;7364:34;7354:50;;:::o;7410:183::-;7523:63;7580:5;7523:63;:::i;:::-;7518:3;7511:76;7501:92;;:::o;7599:147::-;7694:45;7733:5;7694:45;:::i;:::-;7689:3;7682:58;7672:74;;:::o;7752:364::-;;7868:39;7901:5;7868:39;:::i;:::-;7923:71;7987:6;7982:3;7923:71;:::i;:::-;7916:78;;8003:52;8048:6;8043:3;8036:4;8029:5;8025:16;8003:52;:::i;:::-;8080:29;8102:6;8080:29;:::i;:::-;8075:3;8071:39;8064:46;;7844:272;;;;;:::o;8122:366::-;;8285:67;8349:2;8344:3;8285:67;:::i;:::-;8278:74;;8361:93;8450:3;8361:93;:::i;:::-;8479:2;8474:3;8470:12;8463:19;;8268:220;;;:::o;8494:366::-;;8657:67;8721:2;8716:3;8657:67;:::i;:::-;8650:74;;8733:93;8822:3;8733:93;:::i;:::-;8851:2;8846:3;8842:12;8835:19;;8640:220;;;:::o;8866:366::-;;9029:67;9093:2;9088:3;9029:67;:::i;:::-;9022:74;;9105:93;9194:3;9105:93;:::i;:::-;9223:2;9218:3;9214:12;9207:19;;9012:220;;;:::o;9238:366::-;;9401:67;9465:2;9460:3;9401:67;:::i;:::-;9394:74;;9477:93;9566:3;9477:93;:::i;:::-;9595:2;9590:3;9586:12;9579:19;;9384:220;;;:::o;9610:366::-;;9773:67;9837:2;9832:3;9773:67;:::i;:::-;9766:74;;9849:93;9938:3;9849:93;:::i;:::-;9967:2;9962:3;9958:12;9951:19;;9756:220;;;:::o;9982:366::-;;10145:67;10209:2;10204:3;10145:67;:::i;:::-;10138:74;;10221:93;10310:3;10221:93;:::i;:::-;10339:2;10334:3;10330:12;10323:19;;10128:220;;;:::o;10354:366::-;;10517:67;10581:2;10576:3;10517:67;:::i;:::-;10510:74;;10593:93;10682:3;10593:93;:::i;:::-;10711:2;10706:3;10702:12;10695:19;;10500:220;;;:::o;10726:366::-;;10889:67;10953:2;10948:3;10889:67;:::i;:::-;10882:74;;10965:93;11054:3;10965:93;:::i;:::-;11083:2;11078:3;11074:12;11067:19;;10872:220;;;:::o;11098:366::-;;11261:67;11325:2;11320:3;11261:67;:::i;:::-;11254:74;;11337:93;11426:3;11337:93;:::i;:::-;11455:2;11450:3;11446:12;11439:19;;11244:220;;;:::o;11470:366::-;;11633:67;11697:2;11692:3;11633:67;:::i;:::-;11626:74;;11709:93;11798:3;11709:93;:::i;:::-;11827:2;11822:3;11818:12;11811:19;;11616:220;;;:::o;11842:366::-;;12005:67;12069:2;12064:3;12005:67;:::i;:::-;11998:74;;12081:93;12170:3;12081:93;:::i;:::-;12199:2;12194:3;12190:12;12183:19;;11988:220;;;:::o;12214:366::-;;12377:67;12441:2;12436:3;12377:67;:::i;:::-;12370:74;;12453:93;12542:3;12453:93;:::i;:::-;12571:2;12566:3;12562:12;12555:19;;12360:220;;;:::o;12586:366::-;;12749:67;12813:2;12808:3;12749:67;:::i;:::-;12742:74;;12825:93;12914:3;12825:93;:::i;:::-;12943:2;12938:3;12934:12;12927:19;;12732:220;;;:::o;12958:366::-;;13121:67;13185:2;13180:3;13121:67;:::i;:::-;13114:74;;13197:93;13286:3;13197:93;:::i;:::-;13315:2;13310:3;13306:12;13299:19;;13104:220;;;:::o;13330:118::-;13417:24;13435:5;13417:24;:::i;:::-;13412:3;13405:37;13395:53;;:::o;13454:112::-;13537:22;13553:5;13537:22;:::i;:::-;13532:3;13525:35;13515:51;;:::o;13572:222::-;;13703:2;13692:9;13688:18;13680:26;;13716:71;13784:1;13773:9;13769:17;13760:6;13716:71;:::i;:::-;13670:124;;;;:::o;13800:210::-;;13925:2;13914:9;13910:18;13902:26;;13938:65;14000:1;13989:9;13985:17;13976:6;13938:65;:::i;:::-;13892:118;;;;:::o;14016:274::-;;14173:2;14162:9;14158:18;14150:26;;14186:97;14280:1;14269:9;14265:17;14256:6;14186:97;:::i;:::-;14140:150;;;;:::o;14296:313::-;;14447:2;14436:9;14432:18;14424:26;;14496:9;14490:4;14486:20;14482:1;14471:9;14467:17;14460:47;14524:78;14597:4;14588:6;14524:78;:::i;:::-;14516:86;;14414:195;;;;:::o;14615:419::-;;14819:2;14808:9;14804:18;14796:26;;14868:9;14862:4;14858:20;14854:1;14843:9;14839:17;14832:47;14896:131;15022:4;14896:131;:::i;:::-;14888:139;;14786:248;;;:::o;15040:419::-;;15244:2;15233:9;15229:18;15221:26;;15293:9;15287:4;15283:20;15279:1;15268:9;15264:17;15257:47;15321:131;15447:4;15321:131;:::i;:::-;15313:139;;15211:248;;;:::o;15465:419::-;;15669:2;15658:9;15654:18;15646:26;;15718:9;15712:4;15708:20;15704:1;15693:9;15689:17;15682:47;15746:131;15872:4;15746:131;:::i;:::-;15738:139;;15636:248;;;:::o;15890:419::-;;16094:2;16083:9;16079:18;16071:26;;16143:9;16137:4;16133:20;16129:1;16118:9;16114:17;16107:47;16171:131;16297:4;16171:131;:::i;:::-;16163:139;;16061:248;;;:::o;16315:419::-;;16519:2;16508:9;16504:18;16496:26;;16568:9;16562:4;16558:20;16554:1;16543:9;16539:17;16532:47;16596:131;16722:4;16596:131;:::i;:::-;16588:139;;16486:248;;;:::o;16740:419::-;;16944:2;16933:9;16929:18;16921:26;;16993:9;16987:4;16983:20;16979:1;16968:9;16964:17;16957:47;17021:131;17147:4;17021:131;:::i;:::-;17013:139;;16911:248;;;:::o;17165:419::-;;17369:2;17358:9;17354:18;17346:26;;17418:9;17412:4;17408:20;17404:1;17393:9;17389:17;17382:47;17446:131;17572:4;17446:131;:::i;:::-;17438:139;;17336:248;;;:::o;17590:419::-;;17794:2;17783:9;17779:18;17771:26;;17843:9;17837:4;17833:20;17829:1;17818:9;17814:17;17807:47;17871:131;17997:4;17871:131;:::i;:::-;17863:139;;17761:248;;;:::o;18015:419::-;;18219:2;18208:9;18204:18;18196:26;;18268:9;18262:4;18258:20;18254:1;18243:9;18239:17;18232:47;18296:131;18422:4;18296:131;:::i;:::-;18288:139;;18186:248;;;:::o;18440:419::-;;18644:2;18633:9;18629:18;18621:26;;18693:9;18687:4;18683:20;18679:1;18668:9;18664:17;18657:47;18721:131;18847:4;18721:131;:::i;:::-;18713:139;;18611:248;;;:::o;18865:419::-;;19069:2;19058:9;19054:18;19046:26;;19118:9;19112:4;19108:20;19104:1;19093:9;19089:17;19082:47;19146:131;19272:4;19146:131;:::i;:::-;19138:139;;19036:248;;;:::o;19290:419::-;;19494:2;19483:9;19479:18;19471:26;;19543:9;19537:4;19533:20;19529:1;19518:9;19514:17;19507:47;19571:131;19697:4;19571:131;:::i;:::-;19563:139;;19461:248;;;:::o;19715:419::-;;19919:2;19908:9;19904:18;19896:26;;19968:9;19962:4;19958:20;19954:1;19943:9;19939:17;19932:47;19996:131;20122:4;19996:131;:::i;:::-;19988:139;;19886:248;;;:::o;20140:419::-;;20344:2;20333:9;20329:18;20321:26;;20393:9;20387:4;20383:20;20379:1;20368:9;20364:17;20357:47;20421:131;20547:4;20421:131;:::i;:::-;20413:139;;20311:248;;;:::o;20565:222::-;;20696:2;20685:9;20681:18;20673:26;;20709:71;20777:1;20766:9;20762:17;20753:6;20709:71;:::i;:::-;20663:124;;;;:::o;20793:831::-;;21094:3;21083:9;21079:19;21071:27;;21108:71;21176:1;21165:9;21161:17;21152:6;21108:71;:::i;:::-;21189:80;21265:2;21254:9;21250:18;21241:6;21189:80;:::i;:::-;21316:9;21310:4;21306:20;21301:2;21290:9;21286:18;21279:48;21344:108;21447:4;21438:6;21344:108;:::i;:::-;21336:116;;21462:72;21530:2;21519:9;21515:18;21506:6;21462:72;:::i;:::-;21544:73;21612:3;21601:9;21597:19;21588:6;21544:73;:::i;:::-;21061:563;;;;;;;;:::o;21630:214::-;;21757:2;21746:9;21742:18;21734:26;;21770:67;21834:1;21823:9;21819:17;21810:6;21770:67;:::i;:::-;21724:120;;;;:::o;21850:129::-;;21911:20;;:::i;:::-;21901:30;;21940:33;21968:4;21960:6;21940:33;:::i;:::-;21891:88;;;:::o;21985:75::-;;22051:2;22045:9;22035:19;;22025:35;:::o;22066:311::-;;22233:18;22225:6;22222:30;22219:2;;;22255:18;;:::i;:::-;22219:2;22305:4;22297:6;22293:17;22285:25;;22365:4;22359;22355:15;22347:23;;22148:229;;;:::o;22383:132::-;;22473:3;22465:11;;22503:4;22498:3;22494:14;22486:22;;22455:60;;;:::o;22521:114::-;;22622:5;22616:12;22606:22;;22595:40;;;:::o;22641:99::-;;22727:5;22721:12;22711:22;;22700:40;;;:::o;22746:113::-;;22848:4;22843:3;22839:14;22831:22;;22821:38;;;:::o;22865:184::-;;22998:6;22993:3;22986:19;23038:4;23033:3;23029:14;23014:29;;22976:73;;;;:::o;23055:169::-;;23173:6;23168:3;23161:19;23213:4;23208:3;23204:14;23189:29;;23151:73;;;;:::o;23230:305::-;;23289:20;23307:1;23289:20;:::i;:::-;23284:25;;23323:20;23341:1;23323:20;:::i;:::-;23318:25;;23477:1;23409:66;23405:74;23402:1;23399:81;23396:2;;;23483:18;;:::i;:::-;23396:2;23527:1;23524;23520:9;23513:16;;23274:261;;;;:::o;23541:185::-;;23598:20;23616:1;23598:20;:::i;:::-;23593:25;;23632:20;23650:1;23632:20;:::i;:::-;23627:25;;23671:1;23661:2;;23676:18;;:::i;:::-;23661:2;23718:1;23715;23711:9;23706:14;;23583:143;;;;:::o;23732:348::-;;23795:20;23813:1;23795:20;:::i;:::-;23790:25;;23829:20;23847:1;23829:20;:::i;:::-;23824:25;;24017:1;23949:66;23945:74;23942:1;23939:81;23934:1;23927:9;23920:17;23916:105;23913:2;;;24024:18;;:::i;:::-;23913:2;24072:1;24069;24065:9;24054:20;;23780:300;;;;:::o;24086:191::-;;24146:20;24164:1;24146:20;:::i;:::-;24141:25;;24180:20;24198:1;24180:20;:::i;:::-;24175:25;;24219:1;24216;24213:8;24210:2;;;24224:18;;:::i;:::-;24210:2;24269:1;24266;24262:9;24254:17;;24131:146;;;;:::o;24283:96::-;;24349:24;24367:5;24349:24;:::i;:::-;24338:35;;24328:51;;;:::o;24385:90::-;;24462:5;24455:13;24448:21;24437:32;;24427:48;;;:::o;24481:126::-;;24558:42;24551:5;24547:54;24536:65;;24526:81;;;:::o;24613:77::-;;24679:5;24668:16;;24658:32;;;:::o;24696:86::-;;24771:4;24764:5;24760:16;24749:27;;24739:43;;;:::o;24788:178::-;;24897:63;24954:5;24897:63;:::i;:::-;24884:76;;24874:92;;;:::o;24972:139::-;;25081:24;25099:5;25081:24;:::i;:::-;25068:37;;25058:53;;;:::o;25117:121::-;;25208:24;25226:5;25208:24;:::i;:::-;25195:37;;25185:53;;;:::o;25244:307::-;25312:1;25322:113;25336:6;25333:1;25330:13;25322:113;;;25421:1;25416:3;25412:11;25406:18;25402:1;25397:3;25393:11;25386:39;25358:2;25355:1;25351:10;25346:15;;25322:113;;;25453:6;25450:1;25447:13;25444:2;;;25533:1;25524:6;25519:3;25515:16;25508:27;25444:2;25293:258;;;;:::o;25557:281::-;25640:27;25662:4;25640:27;:::i;:::-;25632:6;25628:40;25770:6;25758:10;25755:22;25734:18;25722:10;25719:34;25716:62;25713:2;;;25781:18;;:::i;:::-;25713:2;25821:10;25817:2;25810:22;25600:238;;;:::o;25844:233::-;;25906:24;25924:5;25906:24;:::i;:::-;25897:33;;25952:66;25945:5;25942:77;25939:2;;;26022:18;;:::i;:::-;25939:2;26069:1;26062:5;26058:13;26051:20;;25887:190;;;:::o;26083:180::-;26131:77;26128:1;26121:88;26228:4;26225:1;26218:15;26252:4;26249:1;26242:15;26269:180;26317:77;26314:1;26307:88;26414:4;26411:1;26404:15;26438:4;26435:1;26428:15;26455:180;26503:77;26500:1;26493:88;26600:4;26597:1;26590:15;26624:4;26621:1;26614:15;26641:102;;26733:2;26729:7;26724:2;26717:5;26713:14;26709:28;26699:38;;26689:54;;;:::o;26749:222::-;26889:34;26885:1;26877:6;26873:14;26866:58;26958:5;26953:2;26945:6;26941:15;26934:30;26855:116;:::o;26977:250::-;27117:34;27113:1;27105:6;27101:14;27094:58;27186:33;27181:2;27173:6;27169:15;27162:58;27083:144;:::o;27233:229::-;27373:34;27369:1;27361:6;27357:14;27350:58;27442:12;27437:2;27429:6;27425:15;27418:37;27339:123;:::o;27468:178::-;27608:30;27604:1;27596:6;27592:14;27585:54;27574:72;:::o;27652:225::-;27792:34;27788:1;27780:6;27776:14;27769:58;27861:8;27856:2;27848:6;27844:15;27837:33;27758:119;:::o;27883:221::-;28023:34;28019:1;28011:6;28007:14;28000:58;28092:4;28087:2;28079:6;28075:15;28068:29;27989:115;:::o;28110:222::-;28250:34;28246:1;28238:6;28234:14;28227:58;28319:5;28314:2;28306:6;28302:15;28295:30;28216:116;:::o;28338:177::-;28478:29;28474:1;28466:6;28462:14;28455:53;28444:71;:::o;28521:220::-;28661:34;28657:1;28649:6;28645:14;28638:58;28730:3;28725:2;28717:6;28713:15;28706:28;28627:114;:::o;28747:182::-;28887:34;28883:1;28875:6;28871:14;28864:58;28853:76;:::o;28935:228::-;29075:34;29071:1;29063:6;29059:14;29052:58;29144:11;29139:2;29131:6;29127:15;29120:36;29041:122;:::o;29169:224::-;29309:34;29305:1;29297:6;29293:14;29286:58;29378:7;29373:2;29365:6;29361:15;29354:32;29275:118;:::o;29399:222::-;29539:34;29535:1;29527:6;29523:14;29516:58;29608:5;29603:2;29595:6;29591:15;29584:30;29505:116;:::o;29627:223::-;29767:34;29763:1;29755:6;29751:14;29744:58;29836:6;29831:2;29823:6;29819:15;29812:31;29733:117;:::o;29856:122::-;29929:24;29947:5;29929:24;:::i;:::-;29922:5;29919:35;29909:2;;29968:1;29965;29958:12;29909:2;29899:79;:::o;29984:116::-;30054:21;30069:5;30054:21;:::i;:::-;30047:5;30044:32;30034:2;;30090:1;30087;30080:12;30034:2;30024:76;:::o;30106:122::-;30179:24;30197:5;30179:24;:::i;:::-;30172:5;30169:35;30159:2;;30218:1;30215;30208:12;30159:2;30149:79;:::o
Swarm Source
ipfs://6b48335c055d4e088b5761527774408389342845cbae6aea30b43da1dd6cd502
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.