ERC-20
Overview
Max Total Supply
1,000,000,000 HMZ
Holders
58
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Humanized
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-01-26 */ /** Get Humanized @ www.TheHumanized.eu TG: www.t.me/Humanized_ERC */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.14; 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 Humanized is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Humanized"; string private constant _symbol = "HMZ"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 30; //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; mapping (address => bool) public preTrader; address payable private _developmentAddress = payable(0xA3EfBB3468c91963574AD2A21059C044E8634fc3); address payable private _marketingAddress = payable(0xA3EfBB3468c91963574AD2A21059C044E8634fc3); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000000 * 10**9; uint256 public _maxWalletSize = 20000000 * 10**9; uint256 public _swapTokensAtAmount = 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() && !preTrader[from] && !preTrader[to]) { //Trade start check if (!tradingOpen) { require(preTrader[from], "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 enableTrading() external onlyOwner { tradingOpen = true; } 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 blockBotsExternal(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBotExternal(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 setFeeExternal(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 setMinSwapTokensThresholdExternal(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set maximum transaction function maxTransactionSetterExternal(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function maxWalletSetterExternal(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFeesExternal(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":"blockBotsExternal","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFeesExternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTransactionSetterExternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"maxWalletSetterExternal","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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"setFeeExternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThresholdExternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"unblockBotExternal","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
6080604052670de0b6b3a76400006000196200001c91906200070f565b6000196200002b919062000776565b600655600060085560146009556000600a55601e600b55600a54600c55600b54600d55600c54600e55600d54600f5573a3efbb3468c91963574ad2a21059c044e8634fc3601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a3efbb3468c91963574ad2a21059c044e8634fc3601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff02191690831515021790555066470de4df82000060175566470de4df820000601855662386f26fc100006019553480156200016757600080fd5b5060006200017a620006a560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033991906200081b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c791906200081b565b6040518363ffffffff1660e01b8152600401620003e69291906200085e565b6020604051808303816000875af115801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c91906200081b565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000482620006ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200069691906200089c565b60405180910390a350620008b9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200071c82620006d6565b91506200072983620006d6565b9250826200073c576200073b620006e0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078382620006d6565b91506200079083620006d6565b925082821015620007a657620007a562000747565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e382620007b6565b9050919050565b620007f581620007d6565b81146200080157600080fd5b50565b6000815190506200081581620007ea565b92915050565b600060208284031215620008345762000833620007b1565b5b6000620008448482850162000804565b91505092915050565b6200085881620007d6565b82525050565b60006040820190506200087560008301856200084d565b6200088460208301846200084d565b9392505050565b6200089681620006d6565b82525050565b6000602082019050620008b360008301846200088b565b92915050565b613dcd80620008c96000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f7578063a9059cbb11610095578063d4d7483f11610064578063d4d7483f1461065f578063dd09d06d14610688578063dd62ed3e146106b1578063f2fde38b146106ee576101d8565b8063a9059cbb14610591578063bdd795ef146105ce578063bfd792841461060b578063c3c8cd8014610648576101d8565b80638a8c523c116100d15780638a8c523c146104f95780638da5cb5b146105105780638f9a55c01461053b57806395d89b4114610566576101d8565b8063715018a61461047a5780637d1db4a5146104915780637f2feddc146104bc576101d8565b8063318f349f1161016f5780635a5877041161013e5780635a587704146103d45780635b1b7832146103fd5780636fc3eaec1461042657806370a082311461043d576101d8565b8063318f349f1461032e578063321f63481461035757806349bd5a5e1461038057806353e45b53146103ab576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610717565b6040516101ff9190612c55565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612d1f565b610754565b60405161023c9190612d7a565b60405180910390f35b34801561025157600080fd5b5061025a610772565b6040516102679190612df4565b60405180910390f35b34801561027c57600080fd5b50610285610798565b6040516102929190612e1e565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612e39565b6107a8565b6040516102cf9190612d7a565b60405180910390f35b3480156102e457600080fd5b506102ed610881565b6040516102fa9190612e1e565b60405180910390f35b34801561030f57600080fd5b50610318610887565b6040516103259190612ea8565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612ec3565b610890565b005b34801561036357600080fd5b5061037e60048036038101906103799190613038565b61092f565b005b34801561038c57600080fd5b50610395610a59565b6040516103a29190613090565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd91906130ab565b610a7f565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190613112565b610b36565b005b34801561040957600080fd5b50610424600480360381019061041f9190612ec3565b610c26565b005b34801561043257600080fd5b5061043b610cc5565b005b34801561044957600080fd5b50610464600480360381019061045f9190613112565b610d96565b6040516104719190612e1e565b60405180910390f35b34801561048657600080fd5b5061048f610de7565b005b34801561049d57600080fd5b506104a6610f3a565b6040516104b39190612e1e565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190613112565b610f40565b6040516104f09190612e1e565b60405180910390f35b34801561050557600080fd5b5061050e610f58565b005b34801561051c57600080fd5b5061052561100a565b6040516105329190613090565b60405180910390f35b34801561054757600080fd5b50610550611033565b60405161055d9190612e1e565b60405180910390f35b34801561057257600080fd5b5061057b611039565b6040516105889190612c55565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190612d1f565b611076565b6040516105c59190612d7a565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f09190613112565b611094565b6040516106029190612d7a565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d9190613112565b6110b4565b60405161063f9190612d7a565b60405180910390f35b34801561065457600080fd5b5061065d6110d4565b005b34801561066b57600080fd5b5061068660048036038101906106819190612ec3565b6111ad565b005b34801561069457600080fd5b506106af60048036038101906106aa91906131c6565b61124c565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190613226565b611386565b6040516106e59190612e1e565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190613112565b61140d565b005b60606040518060400160405280600981526020017f48756d616e697a65640000000000000000000000000000000000000000000000815250905090565b60006107686107616115ce565b84846115d6565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006107b584848461179f565b610876846107c16115ce565b61087185604051806060016040528060288152602001613d7060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108276115ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e59092919063ffffffff16565b6115d6565b600190509392505050565b60195481565b60006009905090565b6108986115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c906132b2565b60405180910390fd5b8060188190555050565b6109376115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb906132b2565b60405180910390fd5b60005b8151811015610a55576001601060008484815181106109e9576109e86132d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a4d90613330565b9150506109c7565b5050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a876115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906132b2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b610b3e6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc2906132b2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c2e6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb2906132b2565b60405180910390fd5b8060198190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d066115ce565b73ffffffffffffffffffffffffffffffffffffffff161480610d7c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d646115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b610d8557600080fd5b6000479050610d9381612149565b50565b6000610de0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b5565b9050919050565b610def6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e73906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60116020528060005260406000206000915090505481565b610f606115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906132b2565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f484d5a0000000000000000000000000000000000000000000000000000000000815250905090565b600061108a6110836115ce565b848461179f565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111156115ce565b73ffffffffffffffffffffffffffffffffffffffff16148061118b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111736115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b61119457600080fd5b600061119f30610d96565b90506111aa81612223565b50565b6111b56115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906132b2565b60405180910390fd5b8060178190555050565b6112546115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d8906132b2565b60405180910390fd5b60005b83839050811015611380578160056000868685818110611307576113066132d2565b5b905060200201602081019061131c9190613112565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061137890613330565b9150506112e4565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114156115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611499906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611508906133ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c9061347c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab9061350e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612e1e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611805906135a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490613632565b60405180910390fd5b600081116118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b7906136c4565b60405180910390fd5b6118c861100a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611936575061190661100a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561198c5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119e25750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de457601660149054906101000a900460ff16611a8857601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613756565b60405180910390fd5b5b601754811115611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac4906137c2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b715750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba790613854565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c5d5760185481611c1284610d96565b611c1c9190613874565b10611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c539061393c565b60405180910390fd5b5b6000611c6830610d96565b9050600060195482101590506017548210611c835760175491505b808015611c9d5750601660159054906101000a900460ff16155b8015611cf75750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0d575060168054906101000a900460ff165b8015611d635750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de157611dc782612223565b60004790506000811115611ddf57611dde47612149565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e8b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f3e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f3d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f4c57600090506120d3565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200f57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ba5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120d257600a54600c81905550600b54600d819055505b5b6120df8484848461249c565b50505050565b600083831115829061212d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121249190612c55565b60405180910390fd5b506000838561213c919061395c565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121b1573d6000803e3d6000fd5b5050565b60006006548211156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613a02565b60405180910390fd5b60006122066124c9565b905061221b81846124f490919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561225b5761225a612ef5565b5b6040519080825280602002602001820160405280156122895781602001602082028036833780820191505090505b50905030816000815181106122a1576122a06132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236c9190613a37565b816001815181106123805761237f6132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244b959493929190613b5d565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806124aa576124a961253e565b5b6124b584848461257b565b806124c3576124c2612746565b5b50505050565b60008060006124d661275a565b915091506124ed81836124f490919063ffffffff16565b9250505090565b600061253683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127b9565b905092915050565b6000600c5414801561255257506000600d54145b61257957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061258d8761281c565b9550955095509550955095506125eb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061268085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126cc8161292c565b6126d684836129e9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127339190612e1e565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061278e670de0b6b3a76400006006546124f490919063ffffffff16565b8210156127ac57600654670de0b6b3a76400009350935050506127b5565b81819350935050505b9091565b60008083118290612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f79190612c55565b60405180910390fd5b506000838561280f9190613be6565b9050809150509392505050565b60008060008060008060008060006128398a600c54600d54612a23565b92509250925060006128496124c9565b9050600080600061285c8e878787612ab9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e5565b905092915050565b60008082846128dd9190613874565b905083811015612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291990613c63565b60405180910390fd5b8091505092915050565b60006129366124c9565b9050600061294d8284612b4290919063ffffffff16565b90506129a181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129fe8260065461288490919063ffffffff16565b600681905550612a19816007546128ce90919063ffffffff16565b6007819055505050565b600080600080612a4f6064612a41888a612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612a796064612a6b888b612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612aa282612a94858c61288490919063ffffffff16565b61288490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ad28589612b4290919063ffffffff16565b90506000612ae98689612b4290919063ffffffff16565b90506000612b008789612b4290919063ffffffff16565b90506000612b2982612b1b858761288490919063ffffffff16565b61288490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612b545760009050612bb6565b60008284612b629190613c83565b9050828482612b719190613be6565b14612bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba890613d4f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bf6578082015181840152602081019050612bdb565b83811115612c05576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c2782612bbc565b612c318185612bc7565b9350612c41818560208601612bd8565b612c4a81612c0b565b840191505092915050565b60006020820190508181036000830152612c6f8184612c1c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cb682612c8b565b9050919050565b612cc681612cab565b8114612cd157600080fd5b50565b600081359050612ce381612cbd565b92915050565b6000819050919050565b612cfc81612ce9565b8114612d0757600080fd5b50565b600081359050612d1981612cf3565b92915050565b60008060408385031215612d3657612d35612c81565b5b6000612d4485828601612cd4565b9250506020612d5585828601612d0a565b9150509250929050565b60008115159050919050565b612d7481612d5f565b82525050565b6000602082019050612d8f6000830184612d6b565b92915050565b6000819050919050565b6000612dba612db5612db084612c8b565b612d95565b612c8b565b9050919050565b6000612dcc82612d9f565b9050919050565b6000612dde82612dc1565b9050919050565b612dee81612dd3565b82525050565b6000602082019050612e096000830184612de5565b92915050565b612e1881612ce9565b82525050565b6000602082019050612e336000830184612e0f565b92915050565b600080600060608486031215612e5257612e51612c81565b5b6000612e6086828701612cd4565b9350506020612e7186828701612cd4565b9250506040612e8286828701612d0a565b9150509250925092565b600060ff82169050919050565b612ea281612e8c565b82525050565b6000602082019050612ebd6000830184612e99565b92915050565b600060208284031215612ed957612ed8612c81565b5b6000612ee784828501612d0a565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2d82612c0b565b810181811067ffffffffffffffff82111715612f4c57612f4b612ef5565b5b80604052505050565b6000612f5f612c77565b9050612f6b8282612f24565b919050565b600067ffffffffffffffff821115612f8b57612f8a612ef5565b5b602082029050602081019050919050565b600080fd5b6000612fb4612faf84612f70565b612f55565b90508083825260208201905060208402830185811115612fd757612fd6612f9c565b5b835b818110156130005780612fec8882612cd4565b845260208401935050602081019050612fd9565b5050509392505050565b600082601f83011261301f5761301e612ef0565b5b813561302f848260208601612fa1565b91505092915050565b60006020828403121561304e5761304d612c81565b5b600082013567ffffffffffffffff81111561306c5761306b612c86565b5b6130788482850161300a565b91505092915050565b61308a81612cab565b82525050565b60006020820190506130a56000830184613081565b92915050565b600080600080608085870312156130c5576130c4612c81565b5b60006130d387828801612d0a565b94505060206130e487828801612d0a565b93505060406130f587828801612d0a565b925050606061310687828801612d0a565b91505092959194509250565b60006020828403121561312857613127612c81565b5b600061313684828501612cd4565b91505092915050565b600080fd5b60008083601f84011261315a57613159612ef0565b5b8235905067ffffffffffffffff8111156131775761317661313f565b5b60208301915083602082028301111561319357613192612f9c565b5b9250929050565b6131a381612d5f565b81146131ae57600080fd5b50565b6000813590506131c08161319a565b92915050565b6000806000604084860312156131df576131de612c81565b5b600084013567ffffffffffffffff8111156131fd576131fc612c86565b5b61320986828701613144565b9350935050602061321c868287016131b1565b9150509250925092565b6000806040838503121561323d5761323c612c81565b5b600061324b85828601612cd4565b925050602061325c85828601612cd4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061329c602083612bc7565b91506132a782613266565b602082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333b82612ce9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361336d5761336c613301565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133d4602683612bc7565b91506133df82613378565b604082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613466602483612bc7565b91506134718261340a565b604082019050919050565b6000602082019050818103600083015261349581613459565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f8602283612bc7565b91506135038261349c565b604082019050919050565b60006020820190508181036000830152613527816134eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061358a602583612bc7565b91506135958261352e565b604082019050919050565b600060208201905081810360008301526135b98161357d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061361c602383612bc7565b9150613627826135c0565b604082019050919050565b6000602082019050818103600083015261364b8161360f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136ae602983612bc7565b91506136b982613652565b604082019050919050565b600060208201905081810360008301526136dd816136a1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613740603f83612bc7565b915061374b826136e4565b604082019050919050565b6000602082019050818103600083015261376f81613733565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137ac601c83612bc7565b91506137b782613776565b602082019050919050565b600060208201905081810360008301526137db8161379f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061383e602383612bc7565b9150613849826137e2565b604082019050919050565b6000602082019050818103600083015261386d81613831565b9050919050565b600061387f82612ce9565b915061388a83612ce9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138bf576138be613301565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613926602383612bc7565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b600061396782612ce9565b915061397283612ce9565b92508282101561398557613984613301565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139ec602a83612bc7565b91506139f782613990565b604082019050919050565b60006020820190508181036000830152613a1b816139df565b9050919050565b600081519050613a3181612cbd565b92915050565b600060208284031215613a4d57613a4c612c81565b5b6000613a5b84828501613a22565b91505092915050565b6000819050919050565b6000613a89613a84613a7f84613a64565b612d95565b612ce9565b9050919050565b613a9981613a6e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ad481612cab565b82525050565b6000613ae68383613acb565b60208301905092915050565b6000602082019050919050565b6000613b0a82613a9f565b613b148185613aaa565b9350613b1f83613abb565b8060005b83811015613b50578151613b378882613ada565b9750613b4283613af2565b925050600181019050613b23565b5085935050505092915050565b600060a082019050613b726000830188612e0f565b613b7f6020830187613a90565b8181036040830152613b918186613aff565b9050613ba06060830185613081565b613bad6080830184612e0f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf182612ce9565b9150613bfc83612ce9565b925082613c0c57613c0b613bb7565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c4d601b83612bc7565b9150613c5882613c17565b602082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b6000613c8e82612ce9565b9150613c9983612ce9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd257613cd1613301565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d39602183612bc7565b9150613d4482613cdd565b604082019050919050565b60006020820190508181036000830152613d6881613d2c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220217a1380ca3c495e54c176832c6b2d5ae6eae827b9808d1d65f0cb4788d1154364736f6c634300080e0033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c8063715018a6116100f7578063a9059cbb11610095578063d4d7483f11610064578063d4d7483f1461065f578063dd09d06d14610688578063dd62ed3e146106b1578063f2fde38b146106ee576101d8565b8063a9059cbb14610591578063bdd795ef146105ce578063bfd792841461060b578063c3c8cd8014610648576101d8565b80638a8c523c116100d15780638a8c523c146104f95780638da5cb5b146105105780638f9a55c01461053b57806395d89b4114610566576101d8565b8063715018a61461047a5780637d1db4a5146104915780637f2feddc146104bc576101d8565b8063318f349f1161016f5780635a5877041161013e5780635a587704146103d45780635b1b7832146103fd5780636fc3eaec1461042657806370a082311461043d576101d8565b8063318f349f1461032e578063321f63481461035757806349bd5a5e1461038057806353e45b53146103ab576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610717565b6040516101ff9190612c55565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612d1f565b610754565b60405161023c9190612d7a565b60405180910390f35b34801561025157600080fd5b5061025a610772565b6040516102679190612df4565b60405180910390f35b34801561027c57600080fd5b50610285610798565b6040516102929190612e1e565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612e39565b6107a8565b6040516102cf9190612d7a565b60405180910390f35b3480156102e457600080fd5b506102ed610881565b6040516102fa9190612e1e565b60405180910390f35b34801561030f57600080fd5b50610318610887565b6040516103259190612ea8565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612ec3565b610890565b005b34801561036357600080fd5b5061037e60048036038101906103799190613038565b61092f565b005b34801561038c57600080fd5b50610395610a59565b6040516103a29190613090565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd91906130ab565b610a7f565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190613112565b610b36565b005b34801561040957600080fd5b50610424600480360381019061041f9190612ec3565b610c26565b005b34801561043257600080fd5b5061043b610cc5565b005b34801561044957600080fd5b50610464600480360381019061045f9190613112565b610d96565b6040516104719190612e1e565b60405180910390f35b34801561048657600080fd5b5061048f610de7565b005b34801561049d57600080fd5b506104a6610f3a565b6040516104b39190612e1e565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190613112565b610f40565b6040516104f09190612e1e565b60405180910390f35b34801561050557600080fd5b5061050e610f58565b005b34801561051c57600080fd5b5061052561100a565b6040516105329190613090565b60405180910390f35b34801561054757600080fd5b50610550611033565b60405161055d9190612e1e565b60405180910390f35b34801561057257600080fd5b5061057b611039565b6040516105889190612c55565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190612d1f565b611076565b6040516105c59190612d7a565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f09190613112565b611094565b6040516106029190612d7a565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d9190613112565b6110b4565b60405161063f9190612d7a565b60405180910390f35b34801561065457600080fd5b5061065d6110d4565b005b34801561066b57600080fd5b5061068660048036038101906106819190612ec3565b6111ad565b005b34801561069457600080fd5b506106af60048036038101906106aa91906131c6565b61124c565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190613226565b611386565b6040516106e59190612e1e565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190613112565b61140d565b005b60606040518060400160405280600981526020017f48756d616e697a65640000000000000000000000000000000000000000000000815250905090565b60006107686107616115ce565b84846115d6565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006107b584848461179f565b610876846107c16115ce565b61087185604051806060016040528060288152602001613d7060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108276115ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e59092919063ffffffff16565b6115d6565b600190509392505050565b60195481565b60006009905090565b6108986115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c906132b2565b60405180910390fd5b8060188190555050565b6109376115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb906132b2565b60405180910390fd5b60005b8151811015610a55576001601060008484815181106109e9576109e86132d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a4d90613330565b9150506109c7565b5050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a876115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906132b2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b610b3e6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc2906132b2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c2e6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb2906132b2565b60405180910390fd5b8060198190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d066115ce565b73ffffffffffffffffffffffffffffffffffffffff161480610d7c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d646115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b610d8557600080fd5b6000479050610d9381612149565b50565b6000610de0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b5565b9050919050565b610def6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e73906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60116020528060005260406000206000915090505481565b610f606115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906132b2565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f484d5a0000000000000000000000000000000000000000000000000000000000815250905090565b600061108a6110836115ce565b848461179f565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111156115ce565b73ffffffffffffffffffffffffffffffffffffffff16148061118b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111736115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b61119457600080fd5b600061119f30610d96565b90506111aa81612223565b50565b6111b56115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906132b2565b60405180910390fd5b8060178190555050565b6112546115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d8906132b2565b60405180910390fd5b60005b83839050811015611380578160056000868685818110611307576113066132d2565b5b905060200201602081019061131c9190613112565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061137890613330565b9150506112e4565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114156115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611499906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611508906133ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c9061347c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab9061350e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612e1e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611805906135a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490613632565b60405180910390fd5b600081116118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b7906136c4565b60405180910390fd5b6118c861100a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611936575061190661100a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561198c5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119e25750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de457601660149054906101000a900460ff16611a8857601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613756565b60405180910390fd5b5b601754811115611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac4906137c2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b715750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba790613854565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c5d5760185481611c1284610d96565b611c1c9190613874565b10611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c539061393c565b60405180910390fd5b5b6000611c6830610d96565b9050600060195482101590506017548210611c835760175491505b808015611c9d5750601660159054906101000a900460ff16155b8015611cf75750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0d575060168054906101000a900460ff165b8015611d635750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de157611dc782612223565b60004790506000811115611ddf57611dde47612149565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e8b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f3e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f3d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f4c57600090506120d3565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200f57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ba5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120d257600a54600c81905550600b54600d819055505b5b6120df8484848461249c565b50505050565b600083831115829061212d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121249190612c55565b60405180910390fd5b506000838561213c919061395c565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121b1573d6000803e3d6000fd5b5050565b60006006548211156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613a02565b60405180910390fd5b60006122066124c9565b905061221b81846124f490919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561225b5761225a612ef5565b5b6040519080825280602002602001820160405280156122895781602001602082028036833780820191505090505b50905030816000815181106122a1576122a06132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236c9190613a37565b816001815181106123805761237f6132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244b959493929190613b5d565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806124aa576124a961253e565b5b6124b584848461257b565b806124c3576124c2612746565b5b50505050565b60008060006124d661275a565b915091506124ed81836124f490919063ffffffff16565b9250505090565b600061253683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127b9565b905092915050565b6000600c5414801561255257506000600d54145b61257957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061258d8761281c565b9550955095509550955095506125eb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061268085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126cc8161292c565b6126d684836129e9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127339190612e1e565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061278e670de0b6b3a76400006006546124f490919063ffffffff16565b8210156127ac57600654670de0b6b3a76400009350935050506127b5565b81819350935050505b9091565b60008083118290612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f79190612c55565b60405180910390fd5b506000838561280f9190613be6565b9050809150509392505050565b60008060008060008060008060006128398a600c54600d54612a23565b92509250925060006128496124c9565b9050600080600061285c8e878787612ab9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e5565b905092915050565b60008082846128dd9190613874565b905083811015612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291990613c63565b60405180910390fd5b8091505092915050565b60006129366124c9565b9050600061294d8284612b4290919063ffffffff16565b90506129a181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129fe8260065461288490919063ffffffff16565b600681905550612a19816007546128ce90919063ffffffff16565b6007819055505050565b600080600080612a4f6064612a41888a612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612a796064612a6b888b612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612aa282612a94858c61288490919063ffffffff16565b61288490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ad28589612b4290919063ffffffff16565b90506000612ae98689612b4290919063ffffffff16565b90506000612b008789612b4290919063ffffffff16565b90506000612b2982612b1b858761288490919063ffffffff16565b61288490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612b545760009050612bb6565b60008284612b629190613c83565b9050828482612b719190613be6565b14612bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba890613d4f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bf6578082015181840152602081019050612bdb565b83811115612c05576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c2782612bbc565b612c318185612bc7565b9350612c41818560208601612bd8565b612c4a81612c0b565b840191505092915050565b60006020820190508181036000830152612c6f8184612c1c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cb682612c8b565b9050919050565b612cc681612cab565b8114612cd157600080fd5b50565b600081359050612ce381612cbd565b92915050565b6000819050919050565b612cfc81612ce9565b8114612d0757600080fd5b50565b600081359050612d1981612cf3565b92915050565b60008060408385031215612d3657612d35612c81565b5b6000612d4485828601612cd4565b9250506020612d5585828601612d0a565b9150509250929050565b60008115159050919050565b612d7481612d5f565b82525050565b6000602082019050612d8f6000830184612d6b565b92915050565b6000819050919050565b6000612dba612db5612db084612c8b565b612d95565b612c8b565b9050919050565b6000612dcc82612d9f565b9050919050565b6000612dde82612dc1565b9050919050565b612dee81612dd3565b82525050565b6000602082019050612e096000830184612de5565b92915050565b612e1881612ce9565b82525050565b6000602082019050612e336000830184612e0f565b92915050565b600080600060608486031215612e5257612e51612c81565b5b6000612e6086828701612cd4565b9350506020612e7186828701612cd4565b9250506040612e8286828701612d0a565b9150509250925092565b600060ff82169050919050565b612ea281612e8c565b82525050565b6000602082019050612ebd6000830184612e99565b92915050565b600060208284031215612ed957612ed8612c81565b5b6000612ee784828501612d0a565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2d82612c0b565b810181811067ffffffffffffffff82111715612f4c57612f4b612ef5565b5b80604052505050565b6000612f5f612c77565b9050612f6b8282612f24565b919050565b600067ffffffffffffffff821115612f8b57612f8a612ef5565b5b602082029050602081019050919050565b600080fd5b6000612fb4612faf84612f70565b612f55565b90508083825260208201905060208402830185811115612fd757612fd6612f9c565b5b835b818110156130005780612fec8882612cd4565b845260208401935050602081019050612fd9565b5050509392505050565b600082601f83011261301f5761301e612ef0565b5b813561302f848260208601612fa1565b91505092915050565b60006020828403121561304e5761304d612c81565b5b600082013567ffffffffffffffff81111561306c5761306b612c86565b5b6130788482850161300a565b91505092915050565b61308a81612cab565b82525050565b60006020820190506130a56000830184613081565b92915050565b600080600080608085870312156130c5576130c4612c81565b5b60006130d387828801612d0a565b94505060206130e487828801612d0a565b93505060406130f587828801612d0a565b925050606061310687828801612d0a565b91505092959194509250565b60006020828403121561312857613127612c81565b5b600061313684828501612cd4565b91505092915050565b600080fd5b60008083601f84011261315a57613159612ef0565b5b8235905067ffffffffffffffff8111156131775761317661313f565b5b60208301915083602082028301111561319357613192612f9c565b5b9250929050565b6131a381612d5f565b81146131ae57600080fd5b50565b6000813590506131c08161319a565b92915050565b6000806000604084860312156131df576131de612c81565b5b600084013567ffffffffffffffff8111156131fd576131fc612c86565b5b61320986828701613144565b9350935050602061321c868287016131b1565b9150509250925092565b6000806040838503121561323d5761323c612c81565b5b600061324b85828601612cd4565b925050602061325c85828601612cd4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061329c602083612bc7565b91506132a782613266565b602082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333b82612ce9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361336d5761336c613301565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133d4602683612bc7565b91506133df82613378565b604082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613466602483612bc7565b91506134718261340a565b604082019050919050565b6000602082019050818103600083015261349581613459565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f8602283612bc7565b91506135038261349c565b604082019050919050565b60006020820190508181036000830152613527816134eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061358a602583612bc7565b91506135958261352e565b604082019050919050565b600060208201905081810360008301526135b98161357d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061361c602383612bc7565b9150613627826135c0565b604082019050919050565b6000602082019050818103600083015261364b8161360f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136ae602983612bc7565b91506136b982613652565b604082019050919050565b600060208201905081810360008301526136dd816136a1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613740603f83612bc7565b915061374b826136e4565b604082019050919050565b6000602082019050818103600083015261376f81613733565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137ac601c83612bc7565b91506137b782613776565b602082019050919050565b600060208201905081810360008301526137db8161379f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061383e602383612bc7565b9150613849826137e2565b604082019050919050565b6000602082019050818103600083015261386d81613831565b9050919050565b600061387f82612ce9565b915061388a83612ce9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138bf576138be613301565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613926602383612bc7565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b600061396782612ce9565b915061397283612ce9565b92508282101561398557613984613301565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139ec602a83612bc7565b91506139f782613990565b604082019050919050565b60006020820190508181036000830152613a1b816139df565b9050919050565b600081519050613a3181612cbd565b92915050565b600060208284031215613a4d57613a4c612c81565b5b6000613a5b84828501613a22565b91505092915050565b6000819050919050565b6000613a89613a84613a7f84613a64565b612d95565b612ce9565b9050919050565b613a9981613a6e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ad481612cab565b82525050565b6000613ae68383613acb565b60208301905092915050565b6000602082019050919050565b6000613b0a82613a9f565b613b148185613aaa565b9350613b1f83613abb565b8060005b83811015613b50578151613b378882613ada565b9750613b4283613af2565b925050600181019050613b23565b5085935050505092915050565b600060a082019050613b726000830188612e0f565b613b7f6020830187613a90565b8181036040830152613b918186613aff565b9050613ba06060830185613081565b613bad6080830184612e0f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf182612ce9565b9150613bfc83612ce9565b925082613c0c57613c0b613bb7565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c4d601b83612bc7565b9150613c5882613c17565b602082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b6000613c8e82612ce9565b9150613c9983612ce9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd257613cd1613301565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d39602183612bc7565b9150613d4482613cdd565b604082019050919050565b60006020820190508181036000830152613d6881613d2c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220217a1380ca3c495e54c176832c6b2d5ae6eae827b9808d1d65f0cb4788d1154364736f6c634300080e0033
Deployed Bytecode Sourcemap
4153:13473:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6703:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7628:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5550:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6980:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7829:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5848:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6889:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17251:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12894:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5598:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16585:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13079:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16936:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12651:235;;;;;;;;;;;;;:::i;:::-;;7083:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1640:148;;;;;;;;;;;;;:::i;:::-;;5740:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5243:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12318:81;;;;;;;;;;;;;:::i;:::-;;1426:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6794:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7229:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5293:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5205:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12407:236;;;;;;;;;;;;;:::i;:::-;;17122:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17381:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7436:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1796:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6703:83;6740:13;6773:5;;;;;;;;;;;;;;;;;6766:12;;6703:83;:::o;7628:193::-;7730:4;7752:39;7761:12;:10;:12::i;:::-;7775:7;7784:6;7752:8;:39::i;:::-;7809:4;7802:11;;7628:193;;;;:::o;5550:41::-;;;;;;;;;;;;;:::o;6980:95::-;7033:7;4701:22;7053:14;;6980:95;:::o;7829:446::-;7961:4;7978:36;7988:6;7996:9;8007:6;7978:9;:36::i;:::-;8025:220;8048:6;8069:12;:10;:12::i;:::-;8096:138;8152:6;8096:138;;;;;;;;;;;;;;;;;:11;:19;8108:6;8096:19;;;;;;;;;;;;;;;:33;8116:12;:10;:12::i;:::-;8096:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8025:8;:220::i;:::-;8263:4;8256:11;;7829:446;;;;;:::o;5848:53::-;;;;:::o;6889:83::-;6930:5;4375:1;6948:16;;6889:83;:::o;17251:122::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17352:13:::1;17335:14;:30;;;;17251:122:::0;:::o;12894:177::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12978:9:::1;12973:91;12997:5;:12;12993:1;:16;12973:91;;;13048:4;13031;:14;13036:5;13042:1;13036:8;;;;;;;;:::i;:::-;;;;;;;;13031:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13011:3;;;;;:::i;:::-;;;;12973:91;;;;12894:177:::0;:::o;5598:28::-;;;;;;;;;;;;;:::o;16585:299::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16744:13:::1;16727:14;:30;;;;16786:14;16768:15;:32;;;;16826:11;16811:12;:26;;;;16864:12;16848:13;:28;;;;16585:299:::0;;;;:::o;13079:100::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13166:5:::1;13151:4;:12;13156:6;13151:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13079:100:::0;:::o;16936:147::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17057:18:::1;17035:19;:40;;;;16936:147:::0;:::o;12651:235::-;12717:19;;;;;;;;;;;12701:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12756:17;;;;;;;;;;;12740:33;;:12;:10;:12::i;:::-;:33;;;12701:72;12693:81;;;;;;12785:26;12814:21;12785:50;;12846:32;12859:18;12846:12;:32::i;:::-;12682:204;12651:235::o;7083:138::-;7149:7;7176:37;7196:7;:16;7204:7;7196:16;;;;;;;;;;;;;;;;7176:19;:37::i;:::-;7169:44;;7083:138;;;:::o;1640:148::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1747:1:::1;1710:40;;1731:6;::::0;::::1;;;;;;;;1710:40;;;;;;;;;;;;1778:1;1761:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1640:148::o:0;5740:46::-;;;;:::o;5243:43::-;;;;;;;;;;;;;;;;;:::o;12318:81::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12387:4:::1;12373:11;;:18;;;;;;;;;;;;;;;;;;12318:81::o:0;1426:79::-;1464:7;1491:6;;;;;;;;;;;1484:13;;1426:79;:::o;5793:48::-;;;;:::o;6794:87::-;6833:13;6866:7;;;;;;;;;;;;;;;;;6859:14;;6794:87;:::o;7229:199::-;7334:4;7356:42;7366:12;:10;:12::i;:::-;7380:9;7391:6;7356:9;:42::i;:::-;7416:4;7409:11;;7229:199;;;;:::o;5293:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5205:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12407:236::-;12473:19;;;;;;;;;;;12457:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12512:17;;;;;;;;;;;12496:33;;:12;:10;:12::i;:::-;:33;;;12457:72;12449:81;;;;;;12541:23;12567:24;12585:4;12567:9;:24::i;:::-;12541:50;;12602:33;12619:15;12602:16;:33::i;:::-;12438:205;12407:236::o;17122:121::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17224:11:::1;17209:12;:26;;;;17122:121:::0;:::o;17381:242::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17506:9:::1;17502:114;17525:8;;:15;;17521:1;:19;17502:114;;;17596:8;17562:18;:31;17581:8;;17590:1;17581:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17562:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17542:3;;;;;:::i;:::-;;;;17502:114;;;;17381:242:::0;;;:::o;7436:184::-;7553:7;7585:11;:18;7597:5;7585:18;;;;;;;;;;;;;;;:27;7604:7;7585:27;;;;;;;;;;;;;;;;7578:34;;7436:184;;;;:::o;1796:244::-;1563:12;:10;:12::i;:::-;1553:22;;:6;;;;;;;;;;:22;;;1545:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1905:1:::1;1885:22;;:8;:22;;::::0;1877:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1995:8;1966:38;;1987:6;::::0;::::1;;;;;;;;1966:38;;;;;;;;;;;;2024:8;2015:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1796:244:::0;:::o;185:98::-;238:7;265:10;258:17;;185:98;:::o;8966:369::-;9110:1;9093:19;;:5;:19;;;9085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9191:1;9172:21;;:7;:21;;;9164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9273:6;9243:11;:18;9255:5;9243:18;;;;;;;;;;;;;;;:27;9262:7;9243:27;;;;;;;;;;;;;;;:36;;;;9311:7;9295:32;;9304:5;9295:32;;;9320:6;9295:32;;;;;;:::i;:::-;;;;;;;;8966:369;;;:::o;9343:2369::-;9481:1;9465:18;;:4;:18;;;9457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9558:1;9544:16;;:2;:16;;;9536:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9628:1;9619:6;:10;9611:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9701:7;:5;:7::i;:::-;9693:15;;:4;:15;;;;:32;;;;;9718:7;:5;:7::i;:::-;9712:13;;:2;:13;;;;9693:32;:52;;;;;9730:9;:15;9740:4;9730:15;;;;;;;;;;;;;;;;;;;;;;;;;9729:16;9693:52;:70;;;;;9750:9;:13;9760:2;9750:13;;;;;;;;;;;;;;;;;;;;;;;;;9749:14;9693:70;9689:1297;;;9820:11;;;;;;;;;;;9815:144;;9860:9;:15;9870:4;9860:15;;;;;;;;;;;;;;;;;;;;;;;;;9852:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9815:144;9993:12;;9983:6;:22;;9975:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10062:4;:10;10067:4;10062:10;;;;;;;;;;;;;;;;;;;;;;;;;10061:11;:24;;;;;10077:4;:8;10082:2;10077:8;;;;;;;;;;;;;;;;;;;;;;;;;10076:9;10061:24;10053:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10151:13;;;;;;;;;;;10145:19;;:2;:19;;;10142:146;;10218:14;;10209:6;10193:13;10203:2;10193:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10185:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10142:146;10304:28;10335:24;10353:4;10335:9;:24::i;:::-;10304:55;;10374:12;10413:19;;10389:20;:43;;10374:58;;10476:12;;10452:20;:36;10449:124;;10545:12;;10522:35;;10449:124;10593:7;:18;;;;;10605:6;;;;;;;;;;;10604:7;10593:18;:43;;;;;10623:13;;;;;;;;;;;10615:21;;:4;:21;;;;10593:43;:58;;;;;10640:11;;;;;;;;;;10593:58;:87;;;;;10656:18;:24;10675:4;10656:24;;;;;;;;;;;;;;;;;;;;;;;;;10655:25;10593:87;:114;;;;;10685:18;:22;10704:2;10685:22;;;;;;;;;;;;;;;;;;;;;;;;;10684:23;10593:114;10589:386;;;10728:38;10745:20;10728:16;:38::i;:::-;10785:26;10814:21;10785:50;;10879:1;10858:18;:22;10854:106;;;10905:35;10918:21;10905:12;:35::i;:::-;10854:106;10709:266;10589:386;9765:1221;;9689:1297;10998:12;11013:4;10998:19;;11062:18;:24;11081:4;11062:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11090:18;:22;11109:2;11090:22;;;;;;;;;;;;;;;;;;;;;;;;;11062:50;11061:102;;;;11126:13;;;;;;;;;;;11118:21;;:4;:21;;;;:44;;;;;11149:13;;;;;;;;;;;11143:19;;:2;:19;;;;11118:44;11061:102;11057:594;;;11190:5;11180:15;;11057:594;;;11273:13;;;;;;;;;;;11265:21;;:4;:21;;;:55;;;;;11304:15;;;;;;;;;;;11290:30;;:2;:30;;;;11265:55;11262:162;;;11353:14;;11341:9;:26;;;;11396:12;;11386:7;:22;;;;11262:162;11483:13;;;;;;;;;;;11477:19;;:2;:19;;;:55;;;;;11516:15;;;;;;;;;;;11500:32;;:4;:32;;;;11477:55;11473:165;;;11565:15;;11553:9;:27;;;;11609:13;;11599:7;:23;;;;11473:165;11057:594;11663:41;11678:4;11684:2;11688:6;11696:7;11663:14;:41::i;:::-;9446:2266;9343:2369;;;:::o;2404:224::-;2524:7;2557:1;2552;:6;;2560:12;2544:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2584:9;2600:1;2596;:5;;;;:::i;:::-;2584:17;;2619:1;2612:8;;;2404:224;;;;;:::o;12211:99::-;12268:17;;;;;;;;;;;:26;;:34;12295:6;12268:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12211:99;:::o;8283:323::-;8378:7;8436;;8425;:18;;8403:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8524:19;8546:10;:8;:10::i;:::-;8524:32;;8574:24;8586:11;8574:7;:11;;:24;;;;:::i;:::-;8567:31;;;8283:323;;;:::o;11720:483::-;6004:4;5995:6;;:13;;;;;;;;;;;;;;;;;;11798:21:::1;11836:1;11822:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11798:40;;11867:4;11849;11854:1;11849:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11893:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11883:4;11888:1;11883:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11926:62;11943:4;11958:15;;;;;;;;;;;11976:11;11926:8;:62::i;:::-;11999:15;;;;;;;;;;;:66;;;12080:11;12106:1;12122:4;12149;12169:15;11999:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11787:416;6040:5:::0;6031:6;;:14;;;;;;;;;;;;;;;;;;11720:483;:::o;13187:282::-;13343:7;13338:28;;13352:14;:12;:14::i;:::-;13338:28;13377:44;13395:6;13403:9;13414:6;13377:17;:44::i;:::-;13437:7;13432:29;;13446:15;:13;:15::i;:::-;13432:29;13187:282;;;;:::o;16148:164::-;16190:7;16211:15;16228;16247:19;:17;:19::i;:::-;16210:56;;;;16284:20;16296:7;16284;:11;;:20;;;;:::i;:::-;16277:27;;;;16148:164;:::o;2890:132::-;2948:7;2975:39;2979:1;2982;2975:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2968:46;;2890:132;;;;:::o;8614:219::-;8674:1;8661:9;;:14;:30;;;;;8690:1;8679:7;;:12;8661:30;8693:7;8657:43;8732:9;;8712:17;:29;;;;8770:7;;8752:15;:25;;;;8802:1;8790:9;:13;;;;8824:1;8814:7;:11;;;;8614:219;:::o;13477:610::-;13624:15;13654:23;13692:12;13719:23;13757:12;13784:13;13811:19;13822:7;13811:10;:19::i;:::-;13609:221;;;;;;;;;;;;13859:28;13879:7;13859;:15;13867:6;13859:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13841:7;:15;13849:6;13841:15;;;;;;;;;;;;;;;:46;;;;13919:39;13942:15;13919:7;:18;13927:9;13919:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13898:7;:18;13906:9;13898:18;;;;;;;;;;;;;;;:60;;;;13969:16;13979:5;13969:9;:16::i;:::-;13996:23;14008:4;14014;13996:11;:23::i;:::-;14052:9;14035:44;;14044:6;14035:44;;;14063:15;14035:44;;;;;;:::i;:::-;;;;;;;;13598:489;;;;;;13477:610;;;:::o;8841:117::-;8897:17;;8885:9;:29;;;;8935:15;;8925:7;:25;;;;8841:117::o;16320:257::-;16371:7;16380;16400:15;16418:7;;16400:25;;16436:15;4701:22;16436:25;;16486:20;4701:22;16486:7;;:11;;:20;;;;:::i;:::-;16476:7;:30;16472:61;;;16516:7;;4701:22;16508:25;;;;;;;;16472:61;16552:7;16561;16544:25;;;;;;16320:257;;;:::o;3030:223::-;3150:7;3182:1;3178;:5;3185:12;3170:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3209:9;3225:1;3221;:5;;;;:::i;:::-;3209:17;;3244:1;3237:8;;;3030:223;;;;;:::o;14506:615::-;14606:7;14628;14650;14672;14694;14716;14752:23;14777:12;14791:13;14821:40;14833:7;14842:9;;14853:7;;14821:11;:40::i;:::-;14751:110;;;;;;14872:19;14894:10;:8;:10::i;:::-;14872:32;;14916:15;14933:23;14958:12;14987:46;14999:7;15008:4;15014:5;15021:11;14987;:46::i;:::-;14915:118;;;;;;15052:7;15061:15;15078:4;15084:15;15101:4;15107:5;15044:69;;;;;;;;;;;;;;;;;;;14506:615;;;;;;;:::o;2260:136::-;2318:7;2345:43;2349:1;2352;2345:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2338:50;;2260:136;;;;:::o;2073:179::-;2131:7;2151:9;2167:1;2163;:5;;;;:::i;:::-;2151:17;;2192:1;2187;:6;;2179:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2243:1;2236:8;;;2073:179;;;;:::o;14095:211::-;14148:19;14170:10;:8;:10::i;:::-;14148:32;;14191:13;14207:22;14217:11;14207:5;:9;;:22;;;;:::i;:::-;14191:38;;14265:33;14292:5;14265:7;:22;14281:4;14265:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14240:7;:22;14256:4;14240:22;;;;;;;;;;;;;;;:58;;;;14137:169;;14095:211;:::o;14314:147::-;14392:17;14404:4;14392:7;;:11;;:17;;;;:::i;:::-;14382:7;:27;;;;14433:20;14448:4;14433:10;;:14;;:20;;;;:::i;:::-;14420:10;:33;;;;14314:147;;:::o;15129:469::-;15298:7;15320;15342;15377:12;15392:30;15418:3;15392:21;15404:8;15392:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15377:45;;15433:13;15449:28;15473:3;15449:19;15461:6;15449:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15433:44;;15488:23;15514:28;15536:5;15514:17;15526:4;15514:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15488:54;;15561:15;15578:4;15584:5;15553:37;;;;;;;;;15129:469;;;;;;;:::o;15606:534::-;15800:7;15822;15844;15879:15;15897:24;15909:11;15897:7;:11;;:24;;;;:::i;:::-;15879:42;;15932:12;15947:21;15956:11;15947:4;:8;;:21;;;;:::i;:::-;15932:36;;15979:13;15995:22;16005:11;15995:5;:9;;:22;;;;:::i;:::-;15979:38;;16028:23;16054:28;16076:5;16054:17;16066:4;16054:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16028:54;;16101:7;16110:15;16127:4;16093:39;;;;;;;;;;15606:534;;;;;;;;:::o;2636:246::-;2694:7;2723:1;2718;:6;2714:47;;2748:1;2741:8;;;;2714:47;2771:9;2787:1;2783;:5;;;;:::i;:::-;2771:17;;2816:1;2811;2807;:5;;;;:::i;:::-;:10;2799:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2873:1;2866:8;;;2636:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:329::-;5933:6;5982:2;5970:9;5961:7;5957:23;5953:32;5950:119;;;5988:79;;:::i;:::-;5950:119;6108:1;6133:53;6178:7;6169:6;6158:9;6154:22;6133:53;:::i;:::-;6123:63;;6079:117;5874:329;;;;:::o;6209:117::-;6318:1;6315;6308:12;6332:180;6380:77;6377:1;6370:88;6477:4;6474:1;6467:15;6501:4;6498:1;6491:15;6518:281;6601:27;6623:4;6601:27;:::i;:::-;6593:6;6589:40;6731:6;6719:10;6716:22;6695:18;6683:10;6680:34;6677:62;6674:88;;;6742:18;;:::i;:::-;6674:88;6782:10;6778:2;6771:22;6561:238;6518:281;;:::o;6805:129::-;6839:6;6866:20;;:::i;:::-;6856:30;;6895:33;6923:4;6915:6;6895:33;:::i;:::-;6805:129;;;:::o;6940:311::-;7017:4;7107:18;7099:6;7096:30;7093:56;;;7129:18;;:::i;:::-;7093:56;7179:4;7171:6;7167:17;7159:25;;7239:4;7233;7229:15;7221:23;;6940:311;;;:::o;7257:117::-;7366:1;7363;7356:12;7397:710;7493:5;7518:81;7534:64;7591:6;7534:64;:::i;:::-;7518:81;:::i;:::-;7509:90;;7619:5;7648:6;7641:5;7634:21;7682:4;7675:5;7671:16;7664:23;;7735:4;7727:6;7723:17;7715:6;7711:30;7764:3;7756:6;7753:15;7750:122;;;7783:79;;:::i;:::-;7750:122;7898:6;7881:220;7915:6;7910:3;7907:15;7881:220;;;7990:3;8019:37;8052:3;8040:10;8019:37;:::i;:::-;8014:3;8007:50;8086:4;8081:3;8077:14;8070:21;;7957:144;7941:4;7936:3;7932:14;7925:21;;7881:220;;;7885:21;7499:608;;7397:710;;;;;:::o;8130:370::-;8201:5;8250:3;8243:4;8235:6;8231:17;8227:27;8217:122;;8258:79;;:::i;:::-;8217:122;8375:6;8362:20;8400:94;8490:3;8482:6;8475:4;8467:6;8463:17;8400:94;:::i;:::-;8391:103;;8207:293;8130:370;;;;:::o;8506:539::-;8590:6;8639:2;8627:9;8618:7;8614:23;8610:32;8607:119;;;8645:79;;:::i;:::-;8607:119;8793:1;8782:9;8778:17;8765:31;8823:18;8815:6;8812:30;8809:117;;;8845:79;;:::i;:::-;8809:117;8950:78;9020:7;9011:6;9000:9;8996:22;8950:78;:::i;:::-;8940:88;;8736:302;8506:539;;;;:::o;9051:118::-;9138:24;9156:5;9138:24;:::i;:::-;9133:3;9126:37;9051:118;;:::o;9175:222::-;9268:4;9306:2;9295:9;9291:18;9283:26;;9319:71;9387:1;9376:9;9372:17;9363:6;9319:71;:::i;:::-;9175:222;;;;:::o;9403:765::-;9489:6;9497;9505;9513;9562:3;9550:9;9541:7;9537:23;9533:33;9530:120;;;9569:79;;:::i;:::-;9530:120;9689:1;9714:53;9759:7;9750:6;9739:9;9735:22;9714:53;:::i;:::-;9704:63;;9660:117;9816:2;9842:53;9887:7;9878:6;9867:9;9863:22;9842:53;:::i;:::-;9832:63;;9787:118;9944:2;9970:53;10015:7;10006:6;9995:9;9991:22;9970:53;:::i;:::-;9960:63;;9915:118;10072:2;10098:53;10143:7;10134:6;10123:9;10119:22;10098:53;:::i;:::-;10088:63;;10043:118;9403:765;;;;;;;:::o;10174:329::-;10233:6;10282:2;10270:9;10261:7;10257:23;10253:32;10250:119;;;10288:79;;:::i;:::-;10250:119;10408:1;10433:53;10478:7;10469:6;10458:9;10454:22;10433:53;:::i;:::-;10423:63;;10379:117;10174:329;;;;:::o;10509:117::-;10618:1;10615;10608:12;10649:568;10722:8;10732:6;10782:3;10775:4;10767:6;10763:17;10759:27;10749:122;;10790:79;;:::i;:::-;10749:122;10903:6;10890:20;10880:30;;10933:18;10925:6;10922:30;10919:117;;;10955:79;;:::i;:::-;10919:117;11069:4;11061:6;11057:17;11045:29;;11123:3;11115:4;11107:6;11103:17;11093:8;11089:32;11086:41;11083:128;;;11130:79;;:::i;:::-;11083:128;10649:568;;;;;:::o;11223:116::-;11293:21;11308:5;11293:21;:::i;:::-;11286:5;11283:32;11273:60;;11329:1;11326;11319:12;11273:60;11223:116;:::o;11345:133::-;11388:5;11426:6;11413:20;11404:29;;11442:30;11466:5;11442:30;:::i;:::-;11345:133;;;;:::o;11484:698::-;11576:6;11584;11592;11641:2;11629:9;11620:7;11616:23;11612:32;11609:119;;;11647:79;;:::i;:::-;11609:119;11795:1;11784:9;11780:17;11767:31;11825:18;11817:6;11814:30;11811:117;;;11847:79;;:::i;:::-;11811:117;11960:80;12032:7;12023:6;12012:9;12008:22;11960:80;:::i;:::-;11942:98;;;;11738:312;12089:2;12115:50;12157:7;12148:6;12137:9;12133:22;12115:50;:::i;:::-;12105:60;;12060:115;11484:698;;;;;:::o;12188:474::-;12256:6;12264;12313:2;12301:9;12292:7;12288:23;12284:32;12281:119;;;12319:79;;:::i;:::-;12281:119;12439:1;12464:53;12509:7;12500:6;12489:9;12485:22;12464:53;:::i;:::-;12454:63;;12410:117;12566:2;12592:53;12637:7;12628:6;12617:9;12613:22;12592:53;:::i;:::-;12582:63;;12537:118;12188:474;;;;;:::o;12668:182::-;12808:34;12804:1;12796:6;12792:14;12785:58;12668:182;:::o;12856:366::-;12998:3;13019:67;13083:2;13078:3;13019:67;:::i;:::-;13012:74;;13095:93;13184:3;13095:93;:::i;:::-;13213:2;13208:3;13204:12;13197:19;;12856:366;;;:::o;13228:419::-;13394:4;13432:2;13421:9;13417:18;13409:26;;13481:9;13475:4;13471:20;13467:1;13456:9;13452:17;13445:47;13509:131;13635:4;13509:131;:::i;:::-;13501:139;;13228:419;;;:::o;13653:180::-;13701:77;13698:1;13691:88;13798:4;13795:1;13788:15;13822:4;13819:1;13812:15;13839:180;13887:77;13884:1;13877:88;13984:4;13981:1;13974:15;14008:4;14005:1;13998:15;14025:233;14064:3;14087:24;14105:5;14087:24;:::i;:::-;14078:33;;14133:66;14126:5;14123:77;14120:103;;14203:18;;:::i;:::-;14120:103;14250:1;14243:5;14239:13;14232:20;;14025:233;;;:::o;14264:225::-;14404:34;14400:1;14392:6;14388:14;14381:58;14473:8;14468:2;14460:6;14456:15;14449:33;14264:225;:::o;14495:366::-;14637:3;14658:67;14722:2;14717:3;14658:67;:::i;:::-;14651:74;;14734:93;14823:3;14734:93;:::i;:::-;14852:2;14847:3;14843:12;14836:19;;14495:366;;;:::o;14867:419::-;15033:4;15071:2;15060:9;15056:18;15048:26;;15120:9;15114:4;15110:20;15106:1;15095:9;15091:17;15084:47;15148:131;15274:4;15148:131;:::i;:::-;15140:139;;14867:419;;;:::o;15292:223::-;15432:34;15428:1;15420:6;15416:14;15409:58;15501:6;15496:2;15488:6;15484:15;15477:31;15292:223;:::o;15521:366::-;15663:3;15684:67;15748:2;15743:3;15684:67;:::i;:::-;15677:74;;15760:93;15849:3;15760:93;:::i;:::-;15878:2;15873:3;15869:12;15862:19;;15521:366;;;:::o;15893:419::-;16059:4;16097:2;16086:9;16082:18;16074:26;;16146:9;16140:4;16136:20;16132:1;16121:9;16117:17;16110:47;16174:131;16300:4;16174:131;:::i;:::-;16166:139;;15893:419;;;:::o;16318:221::-;16458:34;16454:1;16446:6;16442:14;16435:58;16527:4;16522:2;16514:6;16510:15;16503:29;16318:221;:::o;16545:366::-;16687:3;16708:67;16772:2;16767:3;16708:67;:::i;:::-;16701:74;;16784:93;16873:3;16784:93;:::i;:::-;16902:2;16897:3;16893:12;16886:19;;16545:366;;;:::o;16917:419::-;17083:4;17121:2;17110:9;17106:18;17098:26;;17170:9;17164:4;17160:20;17156:1;17145:9;17141:17;17134:47;17198:131;17324:4;17198:131;:::i;:::-;17190:139;;16917:419;;;:::o;17342:224::-;17482:34;17478:1;17470:6;17466:14;17459:58;17551:7;17546:2;17538:6;17534:15;17527:32;17342:224;:::o;17572:366::-;17714:3;17735:67;17799:2;17794:3;17735:67;:::i;:::-;17728:74;;17811:93;17900:3;17811:93;:::i;:::-;17929:2;17924:3;17920:12;17913:19;;17572:366;;;:::o;17944:419::-;18110:4;18148:2;18137:9;18133:18;18125:26;;18197:9;18191:4;18187:20;18183:1;18172:9;18168:17;18161:47;18225:131;18351:4;18225:131;:::i;:::-;18217:139;;17944:419;;;:::o;18369:222::-;18509:34;18505:1;18497:6;18493:14;18486:58;18578:5;18573:2;18565:6;18561:15;18554:30;18369:222;:::o;18597:366::-;18739:3;18760:67;18824:2;18819:3;18760:67;:::i;:::-;18753:74;;18836:93;18925:3;18836:93;:::i;:::-;18954:2;18949:3;18945:12;18938:19;;18597:366;;;:::o;18969:419::-;19135:4;19173:2;19162:9;19158:18;19150:26;;19222:9;19216:4;19212:20;19208:1;19197:9;19193:17;19186:47;19250:131;19376:4;19250:131;:::i;:::-;19242:139;;18969:419;;;:::o;19394:228::-;19534:34;19530:1;19522:6;19518:14;19511:58;19603:11;19598:2;19590:6;19586:15;19579:36;19394:228;:::o;19628:366::-;19770:3;19791:67;19855:2;19850:3;19791:67;:::i;:::-;19784:74;;19867:93;19956:3;19867:93;:::i;:::-;19985:2;19980:3;19976:12;19969:19;;19628:366;;;:::o;20000:419::-;20166:4;20204:2;20193:9;20189:18;20181:26;;20253:9;20247:4;20243:20;20239:1;20228:9;20224:17;20217:47;20281:131;20407:4;20281:131;:::i;:::-;20273:139;;20000:419;;;:::o;20425:250::-;20565:34;20561:1;20553:6;20549:14;20542:58;20634:33;20629:2;20621:6;20617:15;20610:58;20425:250;:::o;20681:366::-;20823:3;20844:67;20908:2;20903:3;20844:67;:::i;:::-;20837:74;;20920:93;21009:3;20920:93;:::i;:::-;21038:2;21033:3;21029:12;21022:19;;20681:366;;;:::o;21053:419::-;21219:4;21257:2;21246:9;21242:18;21234:26;;21306:9;21300:4;21296:20;21292:1;21281:9;21277:17;21270:47;21334:131;21460:4;21334:131;:::i;:::-;21326:139;;21053:419;;;:::o;21478:178::-;21618:30;21614:1;21606:6;21602:14;21595:54;21478:178;:::o;21662:366::-;21804:3;21825:67;21889:2;21884:3;21825:67;:::i;:::-;21818:74;;21901:93;21990:3;21901:93;:::i;:::-;22019:2;22014:3;22010:12;22003:19;;21662:366;;;:::o;22034:419::-;22200:4;22238:2;22227:9;22223:18;22215:26;;22287:9;22281:4;22277:20;22273:1;22262:9;22258:17;22251:47;22315:131;22441:4;22315:131;:::i;:::-;22307:139;;22034:419;;;:::o;22459:222::-;22599:34;22595:1;22587:6;22583:14;22576:58;22668:5;22663:2;22655:6;22651:15;22644:30;22459:222;:::o;22687:366::-;22829:3;22850:67;22914:2;22909:3;22850:67;:::i;:::-;22843:74;;22926:93;23015:3;22926:93;:::i;:::-;23044:2;23039:3;23035:12;23028:19;;22687:366;;;:::o;23059:419::-;23225:4;23263:2;23252:9;23248:18;23240:26;;23312:9;23306:4;23302:20;23298:1;23287:9;23283:17;23276:47;23340:131;23466:4;23340:131;:::i;:::-;23332:139;;23059:419;;;:::o;23484:305::-;23524:3;23543:20;23561:1;23543:20;:::i;:::-;23538:25;;23577:20;23595:1;23577:20;:::i;:::-;23572:25;;23731:1;23663:66;23659:74;23656:1;23653:81;23650:107;;;23737:18;;:::i;:::-;23650:107;23781:1;23778;23774:9;23767:16;;23484:305;;;;:::o;23795:222::-;23935:34;23931:1;23923:6;23919:14;23912:58;24004:5;23999:2;23991:6;23987:15;23980:30;23795:222;:::o;24023:366::-;24165:3;24186:67;24250:2;24245:3;24186:67;:::i;:::-;24179:74;;24262:93;24351:3;24262:93;:::i;:::-;24380:2;24375:3;24371:12;24364:19;;24023:366;;;:::o;24395:419::-;24561:4;24599:2;24588:9;24584:18;24576:26;;24648:9;24642:4;24638:20;24634:1;24623:9;24619:17;24612:47;24676:131;24802:4;24676:131;:::i;:::-;24668:139;;24395:419;;;:::o;24820:191::-;24860:4;24880:20;24898:1;24880:20;:::i;:::-;24875:25;;24914:20;24932:1;24914:20;:::i;:::-;24909:25;;24953:1;24950;24947:8;24944:34;;;24958:18;;:::i;:::-;24944:34;25003:1;25000;24996:9;24988:17;;24820:191;;;;:::o;25017:229::-;25157:34;25153:1;25145:6;25141:14;25134:58;25226:12;25221:2;25213:6;25209:15;25202:37;25017:229;:::o;25252:366::-;25394:3;25415:67;25479:2;25474:3;25415:67;:::i;:::-;25408:74;;25491:93;25580:3;25491:93;:::i;:::-;25609:2;25604:3;25600:12;25593:19;;25252:366;;;:::o;25624:419::-;25790:4;25828:2;25817:9;25813:18;25805:26;;25877:9;25871:4;25867:20;25863:1;25852:9;25848:17;25841:47;25905:131;26031:4;25905:131;:::i;:::-;25897:139;;25624:419;;;:::o;26049:143::-;26106:5;26137:6;26131:13;26122:22;;26153:33;26180:5;26153:33;:::i;:::-;26049:143;;;;:::o;26198:351::-;26268:6;26317:2;26305:9;26296:7;26292:23;26288:32;26285:119;;;26323:79;;:::i;:::-;26285:119;26443:1;26468:64;26524:7;26515:6;26504:9;26500:22;26468:64;:::i;:::-;26458:74;;26414:128;26198:351;;;;:::o;26555:85::-;26600:7;26629:5;26618:16;;26555:85;;;:::o;26646:158::-;26704:9;26737:61;26755:42;26764:32;26790:5;26764:32;:::i;:::-;26755:42;:::i;:::-;26737:61;:::i;:::-;26724:74;;26646:158;;;:::o;26810:147::-;26905:45;26944:5;26905:45;:::i;:::-;26900:3;26893:58;26810:147;;:::o;26963:114::-;27030:6;27064:5;27058:12;27048:22;;26963:114;;;:::o;27083:184::-;27182:11;27216:6;27211:3;27204:19;27256:4;27251:3;27247:14;27232:29;;27083:184;;;;:::o;27273:132::-;27340:4;27363:3;27355:11;;27393:4;27388:3;27384:14;27376:22;;27273:132;;;:::o;27411:108::-;27488:24;27506:5;27488:24;:::i;:::-;27483:3;27476:37;27411:108;;:::o;27525:179::-;27594:10;27615:46;27657:3;27649:6;27615:46;:::i;:::-;27693:4;27688:3;27684:14;27670:28;;27525:179;;;;:::o;27710:113::-;27780:4;27812;27807:3;27803:14;27795:22;;27710:113;;;:::o;27859:732::-;27978:3;28007:54;28055:5;28007:54;:::i;:::-;28077:86;28156:6;28151:3;28077:86;:::i;:::-;28070:93;;28187:56;28237:5;28187:56;:::i;:::-;28266:7;28297:1;28282:284;28307:6;28304:1;28301:13;28282:284;;;28383:6;28377:13;28410:63;28469:3;28454:13;28410:63;:::i;:::-;28403:70;;28496:60;28549:6;28496:60;:::i;:::-;28486:70;;28342:224;28329:1;28326;28322:9;28317:14;;28282:284;;;28286:14;28582:3;28575:10;;27983:608;;;27859:732;;;;:::o;28597:831::-;28860:4;28898:3;28887:9;28883:19;28875:27;;28912:71;28980:1;28969:9;28965:17;28956:6;28912:71;:::i;:::-;28993:80;29069:2;29058:9;29054:18;29045:6;28993:80;:::i;:::-;29120:9;29114:4;29110:20;29105:2;29094:9;29090:18;29083:48;29148:108;29251:4;29242:6;29148:108;:::i;:::-;29140:116;;29266:72;29334:2;29323:9;29319:18;29310:6;29266:72;:::i;:::-;29348:73;29416:3;29405:9;29401:19;29392:6;29348:73;:::i;:::-;28597:831;;;;;;;;:::o;29434:180::-;29482:77;29479:1;29472:88;29579:4;29576:1;29569:15;29603:4;29600:1;29593:15;29620:185;29660:1;29677:20;29695:1;29677:20;:::i;:::-;29672:25;;29711:20;29729:1;29711:20;:::i;:::-;29706:25;;29750:1;29740:35;;29755:18;;:::i;:::-;29740:35;29797:1;29794;29790:9;29785:14;;29620:185;;;;:::o;29811:177::-;29951:29;29947:1;29939:6;29935:14;29928:53;29811:177;:::o;29994:366::-;30136:3;30157:67;30221:2;30216:3;30157:67;:::i;:::-;30150:74;;30233:93;30322:3;30233:93;:::i;:::-;30351:2;30346:3;30342:12;30335:19;;29994:366;;;:::o;30366:419::-;30532:4;30570:2;30559:9;30555:18;30547:26;;30619:9;30613:4;30609:20;30605:1;30594:9;30590:17;30583:47;30647:131;30773:4;30647:131;:::i;:::-;30639:139;;30366:419;;;:::o;30791:348::-;30831:7;30854:20;30872:1;30854:20;:::i;:::-;30849:25;;30888:20;30906:1;30888:20;:::i;:::-;30883:25;;31076:1;31008:66;31004:74;31001:1;30998:81;30993:1;30986:9;30979:17;30975:105;30972:131;;;31083:18;;:::i;:::-;30972:131;31131:1;31128;31124:9;31113:20;;30791:348;;;;:::o;31145:220::-;31285:34;31281:1;31273:6;31269:14;31262:58;31354:3;31349:2;31341:6;31337:15;31330:28;31145:220;:::o;31371:366::-;31513:3;31534:67;31598:2;31593:3;31534:67;:::i;:::-;31527:74;;31610:93;31699:3;31610:93;:::i;:::-;31728:2;31723:3;31719:12;31712:19;;31371:366;;;:::o;31743:419::-;31909:4;31947:2;31936:9;31932:18;31924:26;;31996:9;31990:4;31986:20;31982:1;31971:9;31967:17;31960:47;32024:131;32150:4;32024:131;:::i;:::-;32016:139;;31743:419;;;:::o
Swarm Source
ipfs://217a1380ca3c495e54c176832c6b2d5ae6eae827b9808d1d65f0cb4788d11543
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.