Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000 GWC
Holders
13
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
56,244,012.255085387 GWCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
GoldenWealthCapital
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-06 */ /** __________ ___________ _____ __________.___________________ .____ / _____/ \ / \_ ___ \ / _ \\______ \ \__ ___/ _ \ | | / \ __\ \/\/ / \ \/ / /_\ \| ___/ | | | / /_\ \| | \ \_\ \ /\ \____/ | \ | | | | |/ | \ |___ \______ /\__/\ / \______ /\____|__ /____| |___| |____|\____|__ /_______ \ \/ \/ \/ \/ \/ \/ Golden Wealth Capital ERC 20 Token 1% Reflection 10% Marketing/Dev Tax * SPDX-License-Identifier: Unlicensed */ pragma solidity ^0.8.4; 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 GoldenWealthCapital is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Golden Wealth Capital"; string private constant _symbol = "GWC"; 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; mapping (address => uint256) private _buyMap; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 10000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Fee uint256 private _redisFeeOnBuy = 1; uint256 private _taxFeeOnBuy = 10; //Sell Fee uint256 private _redisFeeOnSell = 1; uint256 private _taxFeeOnSell = 10; //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 => bool) public preTrader; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xf9eF2fac0d5cd7591bcfA891f16Cc8Cb918e6A9E); address payable private _marketingAddress = payable(0xf9eF2fac0d5cd7591bcfA891f16Cc8Cb918e6A9E); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 500000000 * 10**9; //5% uint256 public _maxWalletSize = 500000000 * 10**9; //5% uint256 public _swapTokensAtAmount = 1000000 * 10**9; //0.01% 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; preTrader[owner()] = true; bots[address(0xa9B95D7B0dc294078d8C61507460342045E6D5C4)] = 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); } } if (!_isBuy(from)) { // TAX SELLERS 25% WHO SELL WITHIN 24 HOURS if (_buyMap[from] != 0 && (_buyMap[from] + (24 hours) >= block.timestamp)) { _taxFeeOnSell = 25; } else { _taxFeeOnSell = 10; } } else { if (_buyMap[to] == 0) { _buyMap[to] = block.timestamp; } _taxFeeOnSell = 10; } } 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 { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function sttrd(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function _isBuy(address _sender) private view returns (bool) { return _sender == uniswapV2Pair; } //Set MAx transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function allowPreTrading(address account, bool allowed) public onlyOwner { require(preTrader[account] != allowed, "TOKEN: Already enabled."); preTrader[account] = allowed; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"sttrd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052678ac7230489e800006000196200001c91906200091e565b6000196200002b9190620008a5565b6007556001600955600a80556001600b55600a600c55600b54600d55600c54600e55600d54600f55600e5460105573f9ef2fac0d5cd7591bcfa891f16cc8cb918e6a9e601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f9ef2fac0d5cd7591bcfa891f16cc8cb918e6a9e601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760146101000a81548160ff0219169083151502179055506000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff0219169083151502179055506706f05b59d3b200006018556706f05b59d3b2000060195566038d7ea4c68000601a553480156200018457600080fd5b50600062000197620007c560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600260006200024c620007c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032b57600080fd5b505afa15801562000340573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036691906200080d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c957600080fd5b505afa158015620003de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040491906200080d565b6040518363ffffffff1660e01b8152600401620004239291906200085b565b602060405180830381600087803b1580156200043e57600080fd5b505af115801562000453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047991906200080d565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004cf620007cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016012600062000682620007cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016011600073a9b95d7b0dc294078d8c61507460342045e6d5c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200074f620007c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e80000604051620007b6919062000888565b60405180910390a350620009ce565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200080781620009b4565b92915050565b6000602082840312156200082057600080fd5b60006200083084828501620007f6565b91505092915050565b6200084481620008e0565b82525050565b620008558162000914565b82525050565b600060408201905062000872600083018562000839565b62000881602083018462000839565b9392505050565b60006020820190506200089f60008301846200084a565b92915050565b6000620008b28262000914565b9150620008bf8362000914565b925082821015620008d557620008d462000956565b5b828203905092915050565b6000620008ed82620008f4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200092b8262000914565b9150620009388362000914565b9250826200094b576200094a62000985565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620009bf81620008e0565b8114620009cb57600080fd5b50565b61434a80620009de6000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063b1a3f41311610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063b1a3f413146105d6578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b806395d89b41116100d157806395d89b411461051c57806398a5c31514610547578063a2a957bb14610570578063a9059cbb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f9a55c0146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061340f565b610748565b005b34801561021c57600080fd5b50610225610898565b604051610232919061387b565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d919061337b565b6108d5565b60405161026f9190613845565b60405180910390f35b34801561028457600080fd5b5061028d6108f3565b60405161029a9190613860565b60405180910390f35b3480156102af57600080fd5b506102b8610919565b6040516102c59190613a7d565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906132f0565b610929565b6040516103029190613845565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d919061333f565b610a02565b005b34801561034057600080fd5b50610349610b85565b6040516103569190613a7d565b60405180910390f35b34801561036b57600080fd5b50610374610b8b565b6040516103819190613af2565b60405180910390f35b34801561039657600080fd5b5061039f610b94565b6040516103ac919061382a565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190613262565b610bba565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613450565b610caa565b005b34801561041357600080fd5b5061041c610d5c565b005b34801561042a57600080fd5b5061044560048036038101906104409190613262565b610e2d565b6040516104529190613a7d565b60405180910390f35b34801561046757600080fd5b50610470610e7e565b005b34801561047e57600080fd5b5061049960048036038101906104949190613479565b610fd1565b005b3480156104a757600080fd5b506104b0611070565b6040516104bd9190613a7d565b60405180910390f35b3480156104d257600080fd5b506104db611076565b6040516104e8919061382a565b60405180910390f35b3480156104fd57600080fd5b5061050661109f565b6040516105139190613a7d565b60405180910390f35b34801561052857600080fd5b506105316110a5565b60405161053e919061387b565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190613479565b6110e2565b005b34801561057c57600080fd5b50610597600480360381019061059291906134a2565b611181565b005b3480156105a557600080fd5b506105c060048036038101906105bb919061337b565b611238565b6040516105cd9190613845565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f89190613450565b611256565b005b34801561060b57600080fd5b5061062660048036038101906106219190613262565b611308565b6040516106339190613845565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613262565b611328565b6040516106709190613845565b60405180910390f35b34801561068557600080fd5b5061068e611348565b005b34801561069c57600080fd5b506106b760048036038101906106b291906133b7565b611421565b005b3480156106c557600080fd5b506106e060048036038101906106db91906132b4565b611581565b6040516106ed9190613a7d565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190613479565b611608565b005b34801561072b57600080fd5b5061074660048036038101906107419190613262565b6116a7565b005b610750611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906139dd565b60405180910390fd5b60005b815181101561089457600160116000848481518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088c90613db7565b9150506107e0565b5050565b60606040518060400160405280601581526020017f476f6c64656e205765616c7468204361706974616c0000000000000000000000815250905090565b60006108e96108e2611869565b8484611871565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b6000610936848484611a3c565b6109f784610942611869565b6109f2856040518060600160405280602881526020016142ed60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a8611869565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e69092919063ffffffff16565b611871565b600190509392505050565b610a0a611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e906139dd565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b219061399d565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bc2611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c46906139dd565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cb2611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d36906139dd565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9d611869565b73ffffffffffffffffffffffffffffffffffffffff161480610e135750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dfb611869565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1c57600080fd5b6000479050610e2a8161254a565b50565b6000610e77600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612645565b9050919050565b610e86611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a906139dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fd9611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906139dd565b60405180910390fd5b8060188190555050565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600381526020017f4757430000000000000000000000000000000000000000000000000000000000815250905090565b6110ea611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e906139dd565b60405180910390fd5b80601a8190555050565b611189611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d906139dd565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061124c611245611869565b8484611a3c565b6001905092915050565b61125e611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906139dd565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60126020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611389611869565b73ffffffffffffffffffffffffffffffffffffffff1614806113ff5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e7611869565b73ffffffffffffffffffffffffffffffffffffffff16145b61140857600080fd5b600061141330610e2d565b905061141e816126b3565b50565b611429611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906139dd565b60405180910390fd5b60005b8383905081101561157b578160056000868685818110611502577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906115179190613262565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061157390613db7565b9150506114b9565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611610611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611694906139dd565b60405180910390fd5b8060198190555050565b6116af611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611733906139dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a39061391d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d890613a5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611951576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119489061393d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a2f9190613a7d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613a1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b139061389d565b60405180910390fd5b60008111611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906139fd565b60405180910390fd5b611b67611076565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bd55750611ba5611076565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2b5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c815750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e557601760149054906101000a900460ff16611d2757601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d906138bd565b60405180910390fd5b5b601854811115611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d63906138fd565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e105750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e469061395d565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611efc5760195481611eb184610e2d565b611ebb9190613bb3565b10611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613a3d565b60405180910390fd5b5b6000611f0730610e2d565b90506000601a5482101590506018548210611f225760185491505b808015611f3c5750601760159054906101000a900460ff16155b8015611f965750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fae5750601760169054906101000a900460ff165b80156120045750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561205a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208257612068826126b3565b600047905060008111156120805761207f4761254a565b5b505b61208b856129ad565b61214c576000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415801561212c57504262015180600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121299190613bb3565b10155b1561213e576019600c81905550612147565b600a600c819055505b6121e2565b6000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156121d95742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a600c819055505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061228c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061233f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561233e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561234d57600090506124d4565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123f85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561241057600954600d81905550600a54600e819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124bb5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124d357600b54600d81905550600c54600e819055505b5b6124e084848484612a07565b50505050565b600083831115829061252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525919061387b565b60405180910390fd5b506000838561253d9190613c94565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61259a600284612a3490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125c5573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612616600284612a3490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612641573d6000803e3d6000fd5b5050565b600060075482111561268c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612683906138dd565b60405180910390fd5b6000612696612a7e565b90506126ab8184612a3490919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612711577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561273f5781602001602082028036833780820191505090505b509050308160008151811061277d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561281f57600080fd5b505afa158015612833573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612857919061328b565b81600181518110612891577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128f830601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611871565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161295c959493929190613a98565b600060405180830381600087803b15801561297657600080fd5b505af115801561298a573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b80612a1557612a14612aa9565b5b612a20848484612aec565b80612a2e57612a2d612cb7565b5b50505050565b6000612a7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ccb565b905092915050565b6000806000612a8b612d2e565b91509150612aa28183612a3490919063ffffffff16565b9250505090565b6000600d54148015612abd57506000600e54145b15612ac757612aea565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612afe87612d8d565b955095509550955095509550612b5c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bf185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3d81612e9d565b612c478483612f5a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ca49190613a7d565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d09919061387b565b60405180910390fd5b5060008385612d219190613c09565b9050809150509392505050565b600080600060075490506000678ac7230489e800009050612d62678ac7230489e80000600754612a3490919063ffffffff16565b821015612d8057600754678ac7230489e80000935093505050612d89565b81819350935050505b9091565b6000806000806000806000806000612daa8a600d54600e54612f94565b9250925092506000612dba612a7e565b90506000806000612dcd8e87878761302a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124e6565b905092915050565b6000808284612e4e9190613bb3565b905083811015612e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8a9061397d565b60405180910390fd5b8091505092915050565b6000612ea7612a7e565b90506000612ebe82846130b390919063ffffffff16565b9050612f1281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f6f82600754612df590919063ffffffff16565b600781905550612f8a81600854612e3f90919063ffffffff16565b6008819055505050565b600080600080612fc06064612fb2888a6130b390919063ffffffff16565b612a3490919063ffffffff16565b90506000612fea6064612fdc888b6130b390919063ffffffff16565b612a3490919063ffffffff16565b9050600061301382613005858c612df590919063ffffffff16565b612df590919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061304385896130b390919063ffffffff16565b9050600061305a86896130b390919063ffffffff16565b9050600061307187896130b390919063ffffffff16565b9050600061309a8261308c8587612df590919063ffffffff16565b612df590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156130c65760009050613128565b600082846130d49190613c3a565b90508284826130e39190613c09565b14613123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311a906139bd565b60405180910390fd5b809150505b92915050565b600061314161313c84613b32565b613b0d565b9050808382526020820190508285602086028201111561316057600080fd5b60005b858110156131905781613176888261319a565b845260208401935060208301925050600181019050613163565b5050509392505050565b6000813590506131a9816142a7565b92915050565b6000815190506131be816142a7565b92915050565b60008083601f8401126131d657600080fd5b8235905067ffffffffffffffff8111156131ef57600080fd5b60208301915083602082028301111561320757600080fd5b9250929050565b600082601f83011261321f57600080fd5b813561322f84826020860161312e565b91505092915050565b600081359050613247816142be565b92915050565b60008135905061325c816142d5565b92915050565b60006020828403121561327457600080fd5b60006132828482850161319a565b91505092915050565b60006020828403121561329d57600080fd5b60006132ab848285016131af565b91505092915050565b600080604083850312156132c757600080fd5b60006132d58582860161319a565b92505060206132e68582860161319a565b9150509250929050565b60008060006060848603121561330557600080fd5b60006133138682870161319a565b93505060206133248682870161319a565b92505060406133358682870161324d565b9150509250925092565b6000806040838503121561335257600080fd5b60006133608582860161319a565b925050602061337185828601613238565b9150509250929050565b6000806040838503121561338e57600080fd5b600061339c8582860161319a565b92505060206133ad8582860161324d565b9150509250929050565b6000806000604084860312156133cc57600080fd5b600084013567ffffffffffffffff8111156133e657600080fd5b6133f2868287016131c4565b9350935050602061340586828701613238565b9150509250925092565b60006020828403121561342157600080fd5b600082013567ffffffffffffffff81111561343b57600080fd5b6134478482850161320e565b91505092915050565b60006020828403121561346257600080fd5b600061347084828501613238565b91505092915050565b60006020828403121561348b57600080fd5b60006134998482850161324d565b91505092915050565b600080600080608085870312156134b857600080fd5b60006134c68782880161324d565b94505060206134d78782880161324d565b93505060406134e88782880161324d565b92505060606134f98782880161324d565b91505092959194509250565b6000613511838361351d565b60208301905092915050565b61352681613cc8565b82525050565b61353581613cc8565b82525050565b600061354682613b6e565b6135508185613b91565b935061355b83613b5e565b8060005b8381101561358c5781516135738882613505565b975061357e83613b84565b92505060018101905061355f565b5085935050505092915050565b6135a281613cda565b82525050565b6135b181613d1d565b82525050565b6135c081613d41565b82525050565b60006135d182613b79565b6135db8185613ba2565b93506135eb818560208601613d53565b6135f481613e8d565b840191505092915050565b600061360c602383613ba2565b915061361782613e9e565b604082019050919050565b600061362f603f83613ba2565b915061363a82613eed565b604082019050919050565b6000613652602a83613ba2565b915061365d82613f3c565b604082019050919050565b6000613675601c83613ba2565b915061368082613f8b565b602082019050919050565b6000613698602683613ba2565b91506136a382613fb4565b604082019050919050565b60006136bb602283613ba2565b91506136c682614003565b604082019050919050565b60006136de602383613ba2565b91506136e982614052565b604082019050919050565b6000613701601b83613ba2565b915061370c826140a1565b602082019050919050565b6000613724601783613ba2565b915061372f826140ca565b602082019050919050565b6000613747602183613ba2565b9150613752826140f3565b604082019050919050565b600061376a602083613ba2565b915061377582614142565b602082019050919050565b600061378d602983613ba2565b91506137988261416b565b604082019050919050565b60006137b0602583613ba2565b91506137bb826141ba565b604082019050919050565b60006137d3602383613ba2565b91506137de82614209565b604082019050919050565b60006137f6602483613ba2565b915061380182614258565b604082019050919050565b61381581613d06565b82525050565b61382481613d10565b82525050565b600060208201905061383f600083018461352c565b92915050565b600060208201905061385a6000830184613599565b92915050565b600060208201905061387560008301846135a8565b92915050565b6000602082019050818103600083015261389581846135c6565b905092915050565b600060208201905081810360008301526138b6816135ff565b9050919050565b600060208201905081810360008301526138d681613622565b9050919050565b600060208201905081810360008301526138f681613645565b9050919050565b6000602082019050818103600083015261391681613668565b9050919050565b600060208201905081810360008301526139368161368b565b9050919050565b60006020820190508181036000830152613956816136ae565b9050919050565b60006020820190508181036000830152613976816136d1565b9050919050565b60006020820190508181036000830152613996816136f4565b9050919050565b600060208201905081810360008301526139b681613717565b9050919050565b600060208201905081810360008301526139d68161373a565b9050919050565b600060208201905081810360008301526139f68161375d565b9050919050565b60006020820190508181036000830152613a1681613780565b9050919050565b60006020820190508181036000830152613a36816137a3565b9050919050565b60006020820190508181036000830152613a56816137c6565b9050919050565b60006020820190508181036000830152613a76816137e9565b9050919050565b6000602082019050613a92600083018461380c565b92915050565b600060a082019050613aad600083018861380c565b613aba60208301876135b7565b8181036040830152613acc818661353b565b9050613adb606083018561352c565b613ae8608083018461380c565b9695505050505050565b6000602082019050613b07600083018461381b565b92915050565b6000613b17613b28565b9050613b238282613d86565b919050565b6000604051905090565b600067ffffffffffffffff821115613b4d57613b4c613e5e565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613bbe82613d06565b9150613bc983613d06565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bfe57613bfd613e00565b5b828201905092915050565b6000613c1482613d06565b9150613c1f83613d06565b925082613c2f57613c2e613e2f565b5b828204905092915050565b6000613c4582613d06565b9150613c5083613d06565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c8957613c88613e00565b5b828202905092915050565b6000613c9f82613d06565b9150613caa83613d06565b925082821015613cbd57613cbc613e00565b5b828203905092915050565b6000613cd382613ce6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d2882613d2f565b9050919050565b6000613d3a82613ce6565b9050919050565b6000613d4c82613d06565b9050919050565b60005b83811015613d71578082015181840152602081019050613d56565b83811115613d80576000848401525b50505050565b613d8f82613e8d565b810181811067ffffffffffffffff82111715613dae57613dad613e5e565b5b80604052505050565b6000613dc282613d06565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613df557613df4613e00565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6142b081613cc8565b81146142bb57600080fd5b50565b6142c781613cda565b81146142d257600080fd5b50565b6142de81613d06565b81146142e957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220111d191e6f1386c1e13c04849e3a6d1d3ad3da5d78d91aac9c8073fffaf9d56b64736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101db5760003560e01c806374010ece11610102578063b1a3f41311610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063b1a3f413146105d6578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b806395d89b41116100d157806395d89b411461051c57806398a5c31514610547578063a2a957bb14610570578063a9059cbb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f9a55c0146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061340f565b610748565b005b34801561021c57600080fd5b50610225610898565b604051610232919061387b565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d919061337b565b6108d5565b60405161026f9190613845565b60405180910390f35b34801561028457600080fd5b5061028d6108f3565b60405161029a9190613860565b60405180910390f35b3480156102af57600080fd5b506102b8610919565b6040516102c59190613a7d565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906132f0565b610929565b6040516103029190613845565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d919061333f565b610a02565b005b34801561034057600080fd5b50610349610b85565b6040516103569190613a7d565b60405180910390f35b34801561036b57600080fd5b50610374610b8b565b6040516103819190613af2565b60405180910390f35b34801561039657600080fd5b5061039f610b94565b6040516103ac919061382a565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190613262565b610bba565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613450565b610caa565b005b34801561041357600080fd5b5061041c610d5c565b005b34801561042a57600080fd5b5061044560048036038101906104409190613262565b610e2d565b6040516104529190613a7d565b60405180910390f35b34801561046757600080fd5b50610470610e7e565b005b34801561047e57600080fd5b5061049960048036038101906104949190613479565b610fd1565b005b3480156104a757600080fd5b506104b0611070565b6040516104bd9190613a7d565b60405180910390f35b3480156104d257600080fd5b506104db611076565b6040516104e8919061382a565b60405180910390f35b3480156104fd57600080fd5b5061050661109f565b6040516105139190613a7d565b60405180910390f35b34801561052857600080fd5b506105316110a5565b60405161053e919061387b565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190613479565b6110e2565b005b34801561057c57600080fd5b50610597600480360381019061059291906134a2565b611181565b005b3480156105a557600080fd5b506105c060048036038101906105bb919061337b565b611238565b6040516105cd9190613845565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f89190613450565b611256565b005b34801561060b57600080fd5b5061062660048036038101906106219190613262565b611308565b6040516106339190613845565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613262565b611328565b6040516106709190613845565b60405180910390f35b34801561068557600080fd5b5061068e611348565b005b34801561069c57600080fd5b506106b760048036038101906106b291906133b7565b611421565b005b3480156106c557600080fd5b506106e060048036038101906106db91906132b4565b611581565b6040516106ed9190613a7d565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190613479565b611608565b005b34801561072b57600080fd5b5061074660048036038101906107419190613262565b6116a7565b005b610750611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906139dd565b60405180910390fd5b60005b815181101561089457600160116000848481518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088c90613db7565b9150506107e0565b5050565b60606040518060400160405280601581526020017f476f6c64656e205765616c7468204361706974616c0000000000000000000000815250905090565b60006108e96108e2611869565b8484611871565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b6000610936848484611a3c565b6109f784610942611869565b6109f2856040518060600160405280602881526020016142ed60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a8611869565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e69092919063ffffffff16565b611871565b600190509392505050565b610a0a611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e906139dd565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b219061399d565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bc2611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c46906139dd565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cb2611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d36906139dd565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9d611869565b73ffffffffffffffffffffffffffffffffffffffff161480610e135750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dfb611869565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1c57600080fd5b6000479050610e2a8161254a565b50565b6000610e77600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612645565b9050919050565b610e86611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a906139dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fd9611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906139dd565b60405180910390fd5b8060188190555050565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600381526020017f4757430000000000000000000000000000000000000000000000000000000000815250905090565b6110ea611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e906139dd565b60405180910390fd5b80601a8190555050565b611189611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d906139dd565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061124c611245611869565b8484611a3c565b6001905092915050565b61125e611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906139dd565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60126020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611389611869565b73ffffffffffffffffffffffffffffffffffffffff1614806113ff5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e7611869565b73ffffffffffffffffffffffffffffffffffffffff16145b61140857600080fd5b600061141330610e2d565b905061141e816126b3565b50565b611429611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906139dd565b60405180910390fd5b60005b8383905081101561157b578160056000868685818110611502577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906115179190613262565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061157390613db7565b9150506114b9565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611610611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611694906139dd565b60405180910390fd5b8060198190555050565b6116af611869565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611733906139dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a39061391d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d890613a5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611951576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119489061393d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a2f9190613a7d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613a1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b139061389d565b60405180910390fd5b60008111611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906139fd565b60405180910390fd5b611b67611076565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bd55750611ba5611076565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2b5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c815750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e557601760149054906101000a900460ff16611d2757601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d906138bd565b60405180910390fd5b5b601854811115611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d63906138fd565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e105750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e469061395d565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611efc5760195481611eb184610e2d565b611ebb9190613bb3565b10611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613a3d565b60405180910390fd5b5b6000611f0730610e2d565b90506000601a5482101590506018548210611f225760185491505b808015611f3c5750601760159054906101000a900460ff16155b8015611f965750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fae5750601760169054906101000a900460ff165b80156120045750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561205a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208257612068826126b3565b600047905060008111156120805761207f4761254a565b5b505b61208b856129ad565b61214c576000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415801561212c57504262015180600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121299190613bb3565b10155b1561213e576019600c81905550612147565b600a600c819055505b6121e2565b6000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156121d95742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a600c819055505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061228c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061233f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561233e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561234d57600090506124d4565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123f85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561241057600954600d81905550600a54600e819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124bb5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124d357600b54600d81905550600c54600e819055505b5b6124e084848484612a07565b50505050565b600083831115829061252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525919061387b565b60405180910390fd5b506000838561253d9190613c94565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61259a600284612a3490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125c5573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612616600284612a3490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612641573d6000803e3d6000fd5b5050565b600060075482111561268c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612683906138dd565b60405180910390fd5b6000612696612a7e565b90506126ab8184612a3490919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612711577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561273f5781602001602082028036833780820191505090505b509050308160008151811061277d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561281f57600080fd5b505afa158015612833573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612857919061328b565b81600181518110612891577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128f830601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611871565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161295c959493929190613a98565b600060405180830381600087803b15801561297657600080fd5b505af115801561298a573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b80612a1557612a14612aa9565b5b612a20848484612aec565b80612a2e57612a2d612cb7565b5b50505050565b6000612a7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ccb565b905092915050565b6000806000612a8b612d2e565b91509150612aa28183612a3490919063ffffffff16565b9250505090565b6000600d54148015612abd57506000600e54145b15612ac757612aea565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612afe87612d8d565b955095509550955095509550612b5c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bf185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3d81612e9d565b612c478483612f5a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ca49190613a7d565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d09919061387b565b60405180910390fd5b5060008385612d219190613c09565b9050809150509392505050565b600080600060075490506000678ac7230489e800009050612d62678ac7230489e80000600754612a3490919063ffffffff16565b821015612d8057600754678ac7230489e80000935093505050612d89565b81819350935050505b9091565b6000806000806000806000806000612daa8a600d54600e54612f94565b9250925092506000612dba612a7e565b90506000806000612dcd8e87878761302a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124e6565b905092915050565b6000808284612e4e9190613bb3565b905083811015612e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8a9061397d565b60405180910390fd5b8091505092915050565b6000612ea7612a7e565b90506000612ebe82846130b390919063ffffffff16565b9050612f1281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f6f82600754612df590919063ffffffff16565b600781905550612f8a81600854612e3f90919063ffffffff16565b6008819055505050565b600080600080612fc06064612fb2888a6130b390919063ffffffff16565b612a3490919063ffffffff16565b90506000612fea6064612fdc888b6130b390919063ffffffff16565b612a3490919063ffffffff16565b9050600061301382613005858c612df590919063ffffffff16565b612df590919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061304385896130b390919063ffffffff16565b9050600061305a86896130b390919063ffffffff16565b9050600061307187896130b390919063ffffffff16565b9050600061309a8261308c8587612df590919063ffffffff16565b612df590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156130c65760009050613128565b600082846130d49190613c3a565b90508284826130e39190613c09565b14613123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311a906139bd565b60405180910390fd5b809150505b92915050565b600061314161313c84613b32565b613b0d565b9050808382526020820190508285602086028201111561316057600080fd5b60005b858110156131905781613176888261319a565b845260208401935060208301925050600181019050613163565b5050509392505050565b6000813590506131a9816142a7565b92915050565b6000815190506131be816142a7565b92915050565b60008083601f8401126131d657600080fd5b8235905067ffffffffffffffff8111156131ef57600080fd5b60208301915083602082028301111561320757600080fd5b9250929050565b600082601f83011261321f57600080fd5b813561322f84826020860161312e565b91505092915050565b600081359050613247816142be565b92915050565b60008135905061325c816142d5565b92915050565b60006020828403121561327457600080fd5b60006132828482850161319a565b91505092915050565b60006020828403121561329d57600080fd5b60006132ab848285016131af565b91505092915050565b600080604083850312156132c757600080fd5b60006132d58582860161319a565b92505060206132e68582860161319a565b9150509250929050565b60008060006060848603121561330557600080fd5b60006133138682870161319a565b93505060206133248682870161319a565b92505060406133358682870161324d565b9150509250925092565b6000806040838503121561335257600080fd5b60006133608582860161319a565b925050602061337185828601613238565b9150509250929050565b6000806040838503121561338e57600080fd5b600061339c8582860161319a565b92505060206133ad8582860161324d565b9150509250929050565b6000806000604084860312156133cc57600080fd5b600084013567ffffffffffffffff8111156133e657600080fd5b6133f2868287016131c4565b9350935050602061340586828701613238565b9150509250925092565b60006020828403121561342157600080fd5b600082013567ffffffffffffffff81111561343b57600080fd5b6134478482850161320e565b91505092915050565b60006020828403121561346257600080fd5b600061347084828501613238565b91505092915050565b60006020828403121561348b57600080fd5b60006134998482850161324d565b91505092915050565b600080600080608085870312156134b857600080fd5b60006134c68782880161324d565b94505060206134d78782880161324d565b93505060406134e88782880161324d565b92505060606134f98782880161324d565b91505092959194509250565b6000613511838361351d565b60208301905092915050565b61352681613cc8565b82525050565b61353581613cc8565b82525050565b600061354682613b6e565b6135508185613b91565b935061355b83613b5e565b8060005b8381101561358c5781516135738882613505565b975061357e83613b84565b92505060018101905061355f565b5085935050505092915050565b6135a281613cda565b82525050565b6135b181613d1d565b82525050565b6135c081613d41565b82525050565b60006135d182613b79565b6135db8185613ba2565b93506135eb818560208601613d53565b6135f481613e8d565b840191505092915050565b600061360c602383613ba2565b915061361782613e9e565b604082019050919050565b600061362f603f83613ba2565b915061363a82613eed565b604082019050919050565b6000613652602a83613ba2565b915061365d82613f3c565b604082019050919050565b6000613675601c83613ba2565b915061368082613f8b565b602082019050919050565b6000613698602683613ba2565b91506136a382613fb4565b604082019050919050565b60006136bb602283613ba2565b91506136c682614003565b604082019050919050565b60006136de602383613ba2565b91506136e982614052565b604082019050919050565b6000613701601b83613ba2565b915061370c826140a1565b602082019050919050565b6000613724601783613ba2565b915061372f826140ca565b602082019050919050565b6000613747602183613ba2565b9150613752826140f3565b604082019050919050565b600061376a602083613ba2565b915061377582614142565b602082019050919050565b600061378d602983613ba2565b91506137988261416b565b604082019050919050565b60006137b0602583613ba2565b91506137bb826141ba565b604082019050919050565b60006137d3602383613ba2565b91506137de82614209565b604082019050919050565b60006137f6602483613ba2565b915061380182614258565b604082019050919050565b61381581613d06565b82525050565b61382481613d10565b82525050565b600060208201905061383f600083018461352c565b92915050565b600060208201905061385a6000830184613599565b92915050565b600060208201905061387560008301846135a8565b92915050565b6000602082019050818103600083015261389581846135c6565b905092915050565b600060208201905081810360008301526138b6816135ff565b9050919050565b600060208201905081810360008301526138d681613622565b9050919050565b600060208201905081810360008301526138f681613645565b9050919050565b6000602082019050818103600083015261391681613668565b9050919050565b600060208201905081810360008301526139368161368b565b9050919050565b60006020820190508181036000830152613956816136ae565b9050919050565b60006020820190508181036000830152613976816136d1565b9050919050565b60006020820190508181036000830152613996816136f4565b9050919050565b600060208201905081810360008301526139b681613717565b9050919050565b600060208201905081810360008301526139d68161373a565b9050919050565b600060208201905081810360008301526139f68161375d565b9050919050565b60006020820190508181036000830152613a1681613780565b9050919050565b60006020820190508181036000830152613a36816137a3565b9050919050565b60006020820190508181036000830152613a56816137c6565b9050919050565b60006020820190508181036000830152613a76816137e9565b9050919050565b6000602082019050613a92600083018461380c565b92915050565b600060a082019050613aad600083018861380c565b613aba60208301876135b7565b8181036040830152613acc818661353b565b9050613adb606083018561352c565b613ae8608083018461380c565b9695505050505050565b6000602082019050613b07600083018461381b565b92915050565b6000613b17613b28565b9050613b238282613d86565b919050565b6000604051905090565b600067ffffffffffffffff821115613b4d57613b4c613e5e565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613bbe82613d06565b9150613bc983613d06565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bfe57613bfd613e00565b5b828201905092915050565b6000613c1482613d06565b9150613c1f83613d06565b925082613c2f57613c2e613e2f565b5b828204905092915050565b6000613c4582613d06565b9150613c5083613d06565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c8957613c88613e00565b5b828202905092915050565b6000613c9f82613d06565b9150613caa83613d06565b925082821015613cbd57613cbc613e00565b5b828203905092915050565b6000613cd382613ce6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d2882613d2f565b9050919050565b6000613d3a82613ce6565b9050919050565b6000613d4c82613d06565b9050919050565b60005b83811015613d71578082015181840152602081019050613d56565b83811115613d80576000848401525b50505050565b613d8f82613e8d565b810181811067ffffffffffffffff82111715613dae57613dad613e5e565b5b80604052505050565b6000613dc282613d06565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613df557613df4613e00565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6142b081613cc8565b81146142bb57600080fd5b50565b6142c781613cda565b81146142d257600080fd5b50565b6142de81613d06565b81146142e957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220111d191e6f1386c1e13c04849e3a6d1d3ad3da5d78d91aac9c8073fffaf9d56b64736f6c63430008040033
Deployed Bytecode Sourcemap
4692:14961:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14462:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7570:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8495:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6236:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7847:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8696:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19454:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6561:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7756:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6284:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14639:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18711:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14219:235;;;;;;;;;;;;;:::i;:::-;;7950:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2171:148;;;;;;;;;;;;;:::i;:::-;;18968:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6441:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1957:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6500:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7661:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18516:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18163:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8096:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13871:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5918:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5875:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13975:236;;;;;;;;;;;;;:::i;:::-;;19211:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8303:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19088:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2331:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14462:169;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14538:9:::1;14533:91;14557:5;:12;14553:1;:16;14533:91;;;14608:4;14591;:14;14596:5;14602:1;14596:8;;;;;;;;;;;;;;;;;;;;;;14591:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14571:3;;;;;:::i;:::-;;;;14533:91;;;;14462:169:::0;:::o;7570:83::-;7607:13;7640:5;;;;;;;;;;;;;;;;;7633:12;;7570:83;:::o;8495:193::-;8597:4;8619:39;8628:12;:10;:12::i;:::-;8642:7;8651:6;8619:8;:39::i;:::-;8676:4;8669:11;;8495:193;;;;:::o;6236:41::-;;;;;;;;;;;;;:::o;7847:95::-;7900:7;5319:19;7920:14;;7847:95;:::o;8696:446::-;8828:4;8845:36;8855:6;8863:9;8874:6;8845:9;:36::i;:::-;8892:220;8915:6;8936:12;:10;:12::i;:::-;8963:138;9019:6;8963:138;;;;;;;;;;;;;;;;;:11;:19;8975:6;8963:19;;;;;;;;;;;;;;;:33;8983:12;:10;:12::i;:::-;8963:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8892:8;:220::i;:::-;9130:4;9123:11;;8696:446;;;;;:::o;19454:196::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19568:7:::1;19546:29;;:9;:18;19556:7;19546:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;19538:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;19635:7;19614:9;:18;19624:7;19614:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19454:196:::0;;:::o;6561:52::-;;;;:::o;7756:83::-;7797:5;4940:1;7815:16;;7756:83;:::o;6284:28::-;;;;;;;;;;;;;:::o;14639:92::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14718:5:::1;14703:4;:12;14708:6;14703:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14639:92:::0;:::o;18711:101::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18792:12:::1;18778:11;;:26;;;;;;;;;;;;;;;;;;18711:101:::0;:::o;14219:235::-;14285:19;;;;;;;;;;;14269:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14324:17;;;;;;;;;;;14308:33;;:12;:10;:12::i;:::-;:33;;;14269:72;14261:81;;;;;;14353:26;14382:21;14353:50;;14414:32;14427:18;14414:12;:32::i;:::-;14219:235;:::o;7950:138::-;8016:7;8043:37;8063:7;:16;8071:7;8063:16;;;;;;;;;;;;;;;;8043:19;:37::i;:::-;8036:44;;7950:138;;;:::o;2171:148::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2278:1:::1;2241:40;;2262:6;::::0;::::1;;;;;;;;2241:40;;;;;;;;;;;;2309:1;2292:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2171:148::o:0;18968:108::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19057:11:::1;19042:12;:26;;;;18968:108:::0;:::o;6441:47::-;;;;:::o;1957:79::-;1995:7;2022:6;;;;;;;;;;;2015:13;;1957:79;:::o;6500:49::-;;;;:::o;7661:87::-;7700:13;7733:7;;;;;;;;;;;;;;;;;7726:14;;7661:87;:::o;18516:139::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18629:18:::1;18607:19;:40;;;;18516:139:::0;:::o;18163:301::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18314:13:::1;18297:14;:30;;;;18356:14;18338:15;:32;;;;18406:11;18391:12;:26;;;;18444:12;18428:13;:28;;;;18163:301:::0;;;;:::o;8096:199::-;8201:4;8223:42;8233:12;:10;:12::i;:::-;8247:9;8258:6;8223:9;:42::i;:::-;8283:4;8276:11;;8096:199;;;;:::o;13871:96::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13947:12:::1;13933:11;;:26;;;;;;;;;;;;;;;;;;13871:96:::0;:::o;5918:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5875:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13975:236::-;14041:19;;;;;;;;;;;14025:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14080:17;;;;;;;;;;;14064:33;;:12;:10;:12::i;:::-;:33;;;14025:72;14017:81;;;;;;14109:23;14135:24;14153:4;14135:9;:24::i;:::-;14109:50;;14170:33;14187:15;14170:16;:33::i;:::-;13975:236;:::o;19211:234::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19328:9:::1;19324:114;19347:8;;:15;;19343:1;:19;19324:114;;;19418:8;19384:18;:31;19403:8;;19412:1;19403:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19384:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19364:3;;;;;:::i;:::-;;;;19324:114;;;;19211:234:::0;;;:::o;8303:184::-;8420:7;8452:11;:18;8464:5;8452:18;;;;;;;;;;;;;;;:27;8471:7;8452:27;;;;;;;;;;;;;;;;8445:34;;8303:184;;;;:::o;19088:115::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19182:13:::1;19165:14;:30;;;;19088:115:::0;:::o;2331:244::-;2094:12;:10;:12::i;:::-;2084:22;;:6;;;;;;;;;;:22;;;2076:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2440:1:::1;2420:22;;:8;:22;;;;2412:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2530:8;2501:38;;2522:6;::::0;::::1;;;;;;;;2501:38;;;;;;;;;;;;2559:8;2550:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2331:244:::0;:::o;716:98::-;769:7;796:10;789:17;;716:98;:::o;9845:369::-;9989:1;9972:19;;:5;:19;;;;9964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10070:1;10051:21;;:7;:21;;;;10043:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10152:6;10122:11;:18;10134:5;10122:18;;;;;;;;;;;;;;;:27;10141:7;10122:27;;;;;;;;;;;;;;;:36;;;;10190:7;10174:32;;10183:5;10174:32;;;10199:6;10174:32;;;;;;:::i;:::-;;;;;;;;9845:369;;;:::o;10222:2982::-;10360:1;10344:18;;:4;:18;;;;10336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10437:1;10423:16;;:2;:16;;;;10415:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10507:1;10498:6;:10;10490:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10579:7;:5;:7::i;:::-;10571:15;;:4;:15;;;;:32;;;;;10596:7;:5;:7::i;:::-;10590:13;;:2;:13;;;;10571:32;:52;;;;;10608:9;:15;10618:4;10608:15;;;;;;;;;;;;;;;;;;;;;;;;;10607:16;10571:52;:70;;;;;10628:9;:13;10638:2;10628:13;;;;;;;;;;;;;;;;;;;;;;;;;10627:14;10571:70;10567:1875;;;10710:11;;;;;;;;;;;10705:144;;10750:9;:15;10760:4;10750:15;;;;;;;;;;;;;;;;;;;;;;;;;10742:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10705:144;10897:12;;10887:6;:22;;10879:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10966:4;:10;10971:4;10966:10;;;;;;;;;;;;;;;;;;;;;;;;;10965:11;:24;;;;;10981:4;:8;10986:2;10981:8;;;;;;;;;;;;;;;;;;;;;;;;;10980:9;10965:24;10957:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11067:13;;;;;;;;;;;11061:19;;:2;:19;;;11058:146;;11134:14;;11125:6;11109:13;11119:2;11109:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11101:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11058:146;11232:28;11263:24;11281:4;11263:9;:24::i;:::-;11232:55;;11302:12;11341:19;;11317:20;:43;;11302:58;;11404:12;;11380:20;:36;11377:124;;11473:12;;11450:35;;11377:124;11533:7;:18;;;;;11545:6;;;;;;;;;;;11544:7;11533:18;:43;;;;;11563:13;;;;;;;;;;;11555:21;;:4;:21;;;;11533:43;:58;;;;;11580:11;;;;;;;;;;;11533:58;:87;;;;;11596:18;:24;11615:4;11596:24;;;;;;;;;;;;;;;;;;;;;;;;;11595:25;11533:87;:114;;;;;11625:18;:22;11644:2;11625:22;;;;;;;;;;;;;;;;;;;;;;;;;11624:23;11533:114;11529:386;;;11668:38;11685:20;11668:16;:38::i;:::-;11725:26;11754:21;11725:50;;11819:1;11798:18;:22;11794:106;;;11845:35;11858:21;11845:12;:35::i;:::-;11794:106;11529:386;;11948:12;11955:4;11948:6;:12::i;:::-;11943:482;;12055:1;12038:7;:13;12046:4;12038:13;;;;;;;;;;;;;;;;:18;;:86;;;;;12108:15;12095:8;12078:7;:13;12086:4;12078:13;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:45;;12038:86;12034:205;;;12162:2;12146:13;:18;;;;12034:205;;;12221:2;12205:13;:18;;;;12034:205;11943:482;;;12298:1;12283:7;:11;12291:2;12283:11;;;;;;;;;;;;;;;;:16;12279:94;;;12338:15;12324:7;:11;12332:2;12324:11;;;;;;;;;;;;;;;:29;;;;12279:94;12407:2;12391:13;:18;;;;11943:482;10567:1875;;;12462:12;12477:4;12462:19;;12526:18;:24;12545:4;12526:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12554:18;:22;12573:2;12554:22;;;;;;;;;;;;;;;;;;;;;;;;;12526:50;12525:102;;;;12590:13;;;;;;;;;;;12582:21;;:4;:21;;;;:44;;;;;12613:13;;;;;;;;;;;12607:19;;:2;:19;;;;12582:44;12525:102;12521:622;;;12654:5;12644:15;;12521:622;;;12749:13;;;;;;;;;;;12741:21;;:4;:21;;;:55;;;;;12780:15;;;;;;;;;;;12766:30;;:2;:30;;;;12741:55;12738:162;;;12829:14;;12817:9;:26;;;;12872:12;;12862:7;:22;;;;12738:162;12963:13;;;;;;;;;;;12957:19;;:2;:19;;;:55;;;;;12996:15;;;;;;;;;;;12980:32;;:4;:32;;;;12957:55;12953:165;;;13045:15;;13033:9;:27;;;;13089:13;;13079:7;:23;;;;12953:165;12521:622;13155:41;13170:4;13176:2;13180:6;13188:7;13155:14;:41::i;:::-;10222:2982;;;;:::o;2943:224::-;3063:7;3096:1;3091;:6;;3099:12;3083:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3123:9;3139:1;3135;:5;;;;:::i;:::-;3123:17;;3158:1;3151:8;;;2943:224;;;;;:::o;13703:160::-;13760:19;;;;;;;;;;;:28;;:43;13789:13;13800:1;13789:6;:10;;:13;;;;:::i;:::-;13760:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13814:17;;;;;;;;;;;:26;;:41;13841:13;13852:1;13841:6;:10;;:13;;;;:::i;:::-;13814:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13703:160;:::o;9150:323::-;9245:7;9303;;9292;:18;;9270:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9391:19;9413:10;:8;:10::i;:::-;9391:32;;9441:24;9453:11;9441:7;:11;;:24;;;;:::i;:::-;9434:31;;;9150:323;;;:::o;13212:483::-;6724:4;6715:6;;:13;;;;;;;;;;;;;;;;;;13290:21:::1;13328:1;13314:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13290:40;;13359:4;13341;13346:1;13341:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;13385:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13375:4;13380:1;13375:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;13418:62;13435:4;13450:15;;;;;;;;;;;13468:11;13418:8;:62::i;:::-;13491:15;;;;;;;;;;;:66;;;13572:11;13598:1;13614:4;13641;13661:15;13491:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6739:1;6760:5:::0;6751:6;;:14;;;;;;;;;;;;;;;;;;13212:483;:::o;18824:111::-;18879:4;18914:13;;;;;;;;;;;18903:24;;:7;:24;;;18896:31;;18824:111;;;:::o;14739:282::-;14895:7;14890:28;;14904:14;:12;:14::i;:::-;14890:28;14929:44;14947:6;14955:9;14966:6;14929:17;:44::i;:::-;14989:7;14984:29;;14998:15;:13;:15::i;:::-;14984:29;14739:282;;;;:::o;3429:132::-;3487:7;3514:39;3518:1;3521;3514:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3507:46;;3429:132;;;;:::o;17714:166::-;17756:7;17777:15;17794;17813:19;:17;:19::i;:::-;17776:56;;;;17852:20;17864:7;17852;:11;;:20;;;;:::i;:::-;17845:27;;;;17714:166;:::o;9481:231::-;9541:1;9528:9;;:14;:30;;;;;9557:1;9546:7;;:12;9528:30;9524:43;;;9560:7;;9524:43;9603:9;;9583:17;:29;;;;9641:7;;9623:15;:25;;;;9681:1;9669:9;:13;;;;9703:1;9693:7;:11;;;;9481:231;:::o;15029:610::-;15176:15;15206:23;15244:12;15271:23;15309:12;15336:13;15363:19;15374:7;15363:10;:19::i;:::-;15161:221;;;;;;;;;;;;15411:28;15431:7;15411;:15;15419:6;15411:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15393:7;:15;15401:6;15393:15;;;;;;;;;;;;;;;:46;;;;15471:39;15494:15;15471:7;:18;15479:9;15471:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15450:7;:18;15458:9;15450:18;;;;;;;;;;;;;;;:60;;;;15521:16;15531:5;15521:9;:16::i;:::-;15548:23;15560:4;15566;15548:11;:23::i;:::-;15604:9;15587:44;;15596:6;15587:44;;;15615:15;15587:44;;;;;;:::i;:::-;;;;;;;;15029:610;;;;;;;;;:::o;9720:117::-;9776:17;;9764:9;:29;;;;9814:15;;9804:7;:25;;;;9720:117::o;3569:223::-;3689:7;3721:1;3717;:5;3724:12;3709:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3748:9;3764:1;3760;:5;;;;:::i;:::-;3748:17;;3783:1;3776:8;;;3569:223;;;;;:::o;17888:263::-;17939:7;17948;17968:15;17986:7;;17968:25;;18004:15;5319:19;18004:25;;18054:20;5319:19;18054:7;;:11;;:20;;;;:::i;:::-;18044:7;:30;18040:61;;;18084:7;;5319:19;18076:25;;;;;;;;18040:61;18126:7;18135;18118:25;;;;;;17888:263;;;:::o;16058:625::-;16158:7;16180;16202;16224;16246;16268;16304:23;16329:12;16343:13;16373:40;16385:7;16394:9;;16405:7;;16373:11;:40::i;:::-;16303:110;;;;;;16424:19;16446:10;:8;:10::i;:::-;16424:32;;16468:15;16485:23;16510:12;16539:46;16551:7;16560:4;16566:5;16573:11;16539;:46::i;:::-;16467:118;;;;;;16614:7;16623:15;16640:4;16646:15;16663:4;16669:5;16606:69;;;;;;;;;;;;;;;;;;;16058:625;;;;;;;:::o;2799:136::-;2857:7;2884:43;2888:1;2891;2884:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2877:50;;2799:136;;;;:::o;2612:179::-;2670:7;2690:9;2706:1;2702;:5;;;;:::i;:::-;2690:17;;2731:1;2726;:6;;2718:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2782:1;2775:8;;;2612:179;;;;:::o;15647:211::-;15700:19;15722:10;:8;:10::i;:::-;15700:32;;15743:13;15759:22;15769:11;15759:5;:9;;:22;;;;:::i;:::-;15743:38;;15817:33;15844:5;15817:7;:22;15833:4;15817:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15792:7;:22;15808:4;15792:22;;;;;;;;;;;;;;;:58;;;;15647:211;;;:::o;15866:147::-;15944:17;15956:4;15944:7;;:11;;:17;;;;:::i;:::-;15934:7;:27;;;;15985:20;16000:4;15985:10;;:14;;:20;;;;:::i;:::-;15972:10;:33;;;;15866:147;;:::o;16691:471::-;16860:7;16882;16904;16939:12;16954:30;16980:3;16954:21;16966:8;16954:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16939:45;;16995:13;17011:28;17035:3;17011:19;17023:6;17011:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16995:44;;17050:23;17076:28;17098:5;17076:17;17088:4;17076:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17050:54;;17125:15;17142:4;17148:5;17117:37;;;;;;;;;16691:471;;;;;;;:::o;17170:536::-;17364:7;17386;17408;17443:15;17461:24;17473:11;17461:7;:11;;:24;;;;:::i;:::-;17443:42;;17496:12;17511:21;17520:11;17511:4;:8;;:21;;;;:::i;:::-;17496:36;;17543:13;17559:22;17569:11;17559:5;:9;;:22;;;;:::i;:::-;17543:38;;17592:23;17618:28;17640:5;17618:17;17630:4;17618:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17592:54;;17667:7;17676:15;17693:4;17659:39;;;;;;;;;;17170:536;;;;;;;;:::o;3175:246::-;3233:7;3262:1;3257;:6;3253:47;;;3287:1;3280:8;;;;3253:47;3310:9;3326:1;3322;:5;;;;:::i;:::-;3310:17;;3355:1;3350;3346;:5;;;;:::i;:::-;:10;3338:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3412:1;3405:8;;;3175:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:367::-;1069:8;1079:6;1129:3;1122:4;1114:6;1110:17;1106:27;1096:2;;1147:1;1144;1137:12;1096:2;1183:6;1170:20;1160:30;;1213:18;1205:6;1202:30;1199:2;;;1245:1;1242;1235:12;1199:2;1282:4;1274:6;1270:17;1258:29;;1336:3;1328:4;1320:6;1316:17;1306:8;1302:32;1299:41;1296:2;;;1353:1;1350;1343:12;1296:2;1086:277;;;;;:::o;1386:303::-;1457:5;1506:3;1499:4;1491:6;1487:17;1483:27;1473:2;;1524:1;1521;1514:12;1473:2;1564:6;1551:20;1589:94;1679:3;1671:6;1664:4;1656:6;1652:17;1589:94;:::i;:::-;1580:103;;1463:226;;;;;:::o;1695:133::-;1738:5;1776:6;1763:20;1754:29;;1792:30;1816:5;1792:30;:::i;:::-;1744:84;;;;:::o;1834:139::-;1880:5;1918:6;1905:20;1896:29;;1934:33;1961:5;1934:33;:::i;:::-;1886:87;;;;:::o;1979:262::-;2038:6;2087:2;2075:9;2066:7;2062:23;2058:32;2055:2;;;2103:1;2100;2093:12;2055:2;2146:1;2171:53;2216:7;2207:6;2196:9;2192:22;2171:53;:::i;:::-;2161:63;;2117:117;2045:196;;;;:::o;2247:284::-;2317:6;2366:2;2354:9;2345:7;2341:23;2337:32;2334:2;;;2382:1;2379;2372:12;2334:2;2425:1;2450:64;2506:7;2497:6;2486:9;2482:22;2450:64;:::i;:::-;2440:74;;2396:128;2324:207;;;;:::o;2537:407::-;2605:6;2613;2662:2;2650:9;2641:7;2637:23;2633:32;2630:2;;;2678:1;2675;2668:12;2630:2;2721:1;2746:53;2791:7;2782:6;2771:9;2767:22;2746:53;:::i;:::-;2736:63;;2692:117;2848:2;2874:53;2919:7;2910:6;2899:9;2895:22;2874:53;:::i;:::-;2864:63;;2819:118;2620:324;;;;;:::o;2950:552::-;3027:6;3035;3043;3092:2;3080:9;3071:7;3067:23;3063:32;3060:2;;;3108:1;3105;3098:12;3060:2;3151:1;3176:53;3221:7;3212:6;3201:9;3197:22;3176:53;:::i;:::-;3166:63;;3122:117;3278:2;3304:53;3349:7;3340:6;3329:9;3325:22;3304:53;:::i;:::-;3294:63;;3249:118;3406:2;3432:53;3477:7;3468:6;3457:9;3453:22;3432:53;:::i;:::-;3422:63;;3377:118;3050:452;;;;;:::o;3508:401::-;3573:6;3581;3630:2;3618:9;3609:7;3605:23;3601:32;3598:2;;;3646:1;3643;3636:12;3598:2;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3816:2;3842:50;3884:7;3875:6;3864:9;3860:22;3842:50;:::i;:::-;3832:60;;3787:115;3588:321;;;;;:::o;3915:407::-;3983:6;3991;4040:2;4028:9;4019:7;4015:23;4011:32;4008:2;;;4056:1;4053;4046:12;4008:2;4099:1;4124:53;4169:7;4160:6;4149:9;4145:22;4124:53;:::i;:::-;4114:63;;4070:117;4226:2;4252:53;4297:7;4288:6;4277:9;4273:22;4252:53;:::i;:::-;4242:63;;4197:118;3998:324;;;;;:::o;4328:564::-;4420:6;4428;4436;4485:2;4473:9;4464:7;4460:23;4456:32;4453:2;;;4501:1;4498;4491:12;4453:2;4572:1;4561:9;4557:17;4544:31;4602:18;4594:6;4591:30;4588:2;;;4634:1;4631;4624:12;4588:2;4670:80;4742:7;4733:6;4722:9;4718:22;4670:80;:::i;:::-;4652:98;;;;4515:245;4799:2;4825:50;4867:7;4858:6;4847:9;4843:22;4825:50;:::i;:::-;4815:60;;4770:115;4443:449;;;;;:::o;4898:405::-;4982:6;5031:2;5019:9;5010:7;5006:23;5002:32;4999:2;;;5047:1;5044;5037:12;4999:2;5118:1;5107:9;5103:17;5090:31;5148:18;5140:6;5137:30;5134:2;;;5180:1;5177;5170:12;5134:2;5208:78;5278:7;5269:6;5258:9;5254:22;5208:78;:::i;:::-;5198:88;;5061:235;4989:314;;;;:::o;5309:256::-;5365:6;5414:2;5402:9;5393:7;5389:23;5385:32;5382:2;;;5430:1;5427;5420:12;5382:2;5473:1;5498:50;5540:7;5531:6;5520:9;5516:22;5498:50;:::i;:::-;5488:60;;5444:114;5372:193;;;;:::o;5571:262::-;5630:6;5679:2;5667:9;5658:7;5654:23;5650:32;5647:2;;;5695:1;5692;5685:12;5647:2;5738:1;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5709:117;5637:196;;;;:::o;5839:698::-;5925:6;5933;5941;5949;5998:3;5986:9;5977:7;5973:23;5969:33;5966:2;;;6015:1;6012;6005:12;5966:2;6058:1;6083:53;6128:7;6119:6;6108:9;6104:22;6083:53;:::i;:::-;6073:63;;6029:117;6185:2;6211:53;6256:7;6247:6;6236:9;6232:22;6211:53;:::i;:::-;6201:63;;6156:118;6313:2;6339:53;6384:7;6375:6;6364:9;6360:22;6339:53;:::i;:::-;6329:63;;6284:118;6441:2;6467:53;6512:7;6503:6;6492:9;6488:22;6467:53;:::i;:::-;6457:63;;6412:118;5956:581;;;;;;;:::o;6543:179::-;6612:10;6633:46;6675:3;6667:6;6633:46;:::i;:::-;6711:4;6706:3;6702:14;6688:28;;6623:99;;;;:::o;6728:108::-;6805:24;6823:5;6805:24;:::i;:::-;6800:3;6793:37;6783:53;;:::o;6842:118::-;6929:24;6947:5;6929:24;:::i;:::-;6924:3;6917:37;6907:53;;:::o;6996:732::-;7115:3;7144:54;7192:5;7144:54;:::i;:::-;7214:86;7293:6;7288:3;7214:86;:::i;:::-;7207:93;;7324:56;7374:5;7324:56;:::i;:::-;7403:7;7434:1;7419:284;7444:6;7441:1;7438:13;7419:284;;;7520:6;7514:13;7547:63;7606:3;7591:13;7547:63;:::i;:::-;7540:70;;7633:60;7686:6;7633:60;:::i;:::-;7623:70;;7479:224;7466:1;7463;7459:9;7454:14;;7419:284;;;7423:14;7719:3;7712:10;;7120:608;;;;;;;:::o;7734:109::-;7815:21;7830:5;7815:21;:::i;:::-;7810:3;7803:34;7793:50;;:::o;7849:183::-;7962:63;8019:5;7962:63;:::i;:::-;7957:3;7950:76;7940:92;;:::o;8038:147::-;8133:45;8172:5;8133:45;:::i;:::-;8128:3;8121:58;8111:74;;:::o;8191:364::-;8279:3;8307:39;8340:5;8307:39;:::i;:::-;8362:71;8426:6;8421:3;8362:71;:::i;:::-;8355:78;;8442:52;8487:6;8482:3;8475:4;8468:5;8464:16;8442:52;:::i;:::-;8519:29;8541:6;8519:29;:::i;:::-;8514:3;8510:39;8503:46;;8283:272;;;;;:::o;8561:366::-;8703:3;8724:67;8788:2;8783:3;8724:67;:::i;:::-;8717:74;;8800:93;8889:3;8800:93;:::i;:::-;8918:2;8913:3;8909:12;8902:19;;8707:220;;;:::o;8933:366::-;9075:3;9096:67;9160:2;9155:3;9096:67;:::i;:::-;9089:74;;9172:93;9261:3;9172:93;:::i;:::-;9290:2;9285:3;9281:12;9274:19;;9079:220;;;:::o;9305:366::-;9447:3;9468:67;9532:2;9527:3;9468:67;:::i;:::-;9461:74;;9544:93;9633:3;9544:93;:::i;:::-;9662:2;9657:3;9653:12;9646:19;;9451:220;;;:::o;9677:366::-;9819:3;9840:67;9904:2;9899:3;9840:67;:::i;:::-;9833:74;;9916:93;10005:3;9916:93;:::i;:::-;10034:2;10029:3;10025:12;10018:19;;9823:220;;;:::o;10049:366::-;10191:3;10212:67;10276:2;10271:3;10212:67;:::i;:::-;10205:74;;10288:93;10377:3;10288:93;:::i;:::-;10406:2;10401:3;10397:12;10390:19;;10195:220;;;:::o;10421:366::-;10563:3;10584:67;10648:2;10643:3;10584:67;:::i;:::-;10577:74;;10660:93;10749:3;10660:93;:::i;:::-;10778:2;10773:3;10769:12;10762:19;;10567:220;;;:::o;10793:366::-;10935:3;10956:67;11020:2;11015:3;10956:67;:::i;:::-;10949:74;;11032:93;11121:3;11032:93;:::i;:::-;11150:2;11145:3;11141:12;11134:19;;10939:220;;;:::o;11165:366::-;11307:3;11328:67;11392:2;11387:3;11328:67;:::i;:::-;11321:74;;11404:93;11493:3;11404:93;:::i;:::-;11522:2;11517:3;11513:12;11506:19;;11311:220;;;:::o;11537:366::-;11679:3;11700:67;11764:2;11759:3;11700:67;:::i;:::-;11693:74;;11776:93;11865:3;11776:93;:::i;:::-;11894:2;11889:3;11885:12;11878:19;;11683:220;;;:::o;11909:366::-;12051:3;12072:67;12136:2;12131:3;12072:67;:::i;:::-;12065:74;;12148:93;12237:3;12148:93;:::i;:::-;12266:2;12261:3;12257:12;12250:19;;12055:220;;;:::o;12281:366::-;12423:3;12444:67;12508:2;12503:3;12444:67;:::i;:::-;12437:74;;12520:93;12609:3;12520:93;:::i;:::-;12638:2;12633:3;12629:12;12622:19;;12427:220;;;:::o;12653:366::-;12795:3;12816:67;12880:2;12875:3;12816:67;:::i;:::-;12809:74;;12892:93;12981:3;12892:93;:::i;:::-;13010:2;13005:3;13001:12;12994:19;;12799:220;;;:::o;13025:366::-;13167:3;13188:67;13252:2;13247:3;13188:67;:::i;:::-;13181:74;;13264:93;13353:3;13264:93;:::i;:::-;13382:2;13377:3;13373:12;13366:19;;13171:220;;;:::o;13397:366::-;13539:3;13560:67;13624:2;13619:3;13560:67;:::i;:::-;13553:74;;13636:93;13725:3;13636:93;:::i;:::-;13754:2;13749:3;13745:12;13738:19;;13543:220;;;:::o;13769:366::-;13911:3;13932:67;13996:2;13991:3;13932:67;:::i;:::-;13925:74;;14008:93;14097:3;14008:93;:::i;:::-;14126:2;14121:3;14117:12;14110:19;;13915:220;;;:::o;14141:118::-;14228:24;14246:5;14228:24;:::i;:::-;14223:3;14216:37;14206:53;;:::o;14265:112::-;14348:22;14364:5;14348:22;:::i;:::-;14343:3;14336:35;14326:51;;:::o;14383:222::-;14476:4;14514:2;14503:9;14499:18;14491:26;;14527:71;14595:1;14584:9;14580:17;14571:6;14527:71;:::i;:::-;14481:124;;;;:::o;14611:210::-;14698:4;14736:2;14725:9;14721:18;14713:26;;14749:65;14811:1;14800:9;14796:17;14787:6;14749:65;:::i;:::-;14703:118;;;;:::o;14827:274::-;14946:4;14984:2;14973:9;14969:18;14961:26;;14997:97;15091:1;15080:9;15076:17;15067:6;14997:97;:::i;:::-;14951:150;;;;:::o;15107:313::-;15220:4;15258:2;15247:9;15243:18;15235:26;;15307:9;15301:4;15297:20;15293:1;15282:9;15278:17;15271:47;15335:78;15408:4;15399:6;15335:78;:::i;:::-;15327:86;;15225:195;;;;:::o;15426:419::-;15592:4;15630:2;15619:9;15615:18;15607:26;;15679:9;15673:4;15669:20;15665:1;15654:9;15650:17;15643:47;15707:131;15833:4;15707:131;:::i;:::-;15699:139;;15597:248;;;:::o;15851:419::-;16017:4;16055:2;16044:9;16040:18;16032:26;;16104:9;16098:4;16094:20;16090:1;16079:9;16075:17;16068:47;16132:131;16258:4;16132:131;:::i;:::-;16124:139;;16022:248;;;:::o;16276:419::-;16442:4;16480:2;16469:9;16465:18;16457:26;;16529:9;16523:4;16519:20;16515:1;16504:9;16500:17;16493:47;16557:131;16683:4;16557:131;:::i;:::-;16549:139;;16447:248;;;:::o;16701:419::-;16867:4;16905:2;16894:9;16890:18;16882:26;;16954:9;16948:4;16944:20;16940:1;16929:9;16925:17;16918:47;16982:131;17108:4;16982:131;:::i;:::-;16974:139;;16872:248;;;:::o;17126:419::-;17292:4;17330:2;17319:9;17315:18;17307:26;;17379:9;17373:4;17369:20;17365:1;17354:9;17350:17;17343:47;17407:131;17533:4;17407:131;:::i;:::-;17399:139;;17297:248;;;:::o;17551:419::-;17717:4;17755:2;17744:9;17740:18;17732:26;;17804:9;17798:4;17794:20;17790:1;17779:9;17775:17;17768:47;17832:131;17958:4;17832:131;:::i;:::-;17824:139;;17722:248;;;:::o;17976:419::-;18142:4;18180:2;18169:9;18165:18;18157:26;;18229:9;18223:4;18219:20;18215:1;18204:9;18200:17;18193:47;18257:131;18383:4;18257:131;:::i;:::-;18249:139;;18147:248;;;:::o;18401:419::-;18567:4;18605:2;18594:9;18590:18;18582:26;;18654:9;18648:4;18644:20;18640:1;18629:9;18625:17;18618:47;18682:131;18808:4;18682:131;:::i;:::-;18674:139;;18572:248;;;:::o;18826:419::-;18992:4;19030:2;19019:9;19015:18;19007:26;;19079:9;19073:4;19069:20;19065:1;19054:9;19050:17;19043:47;19107:131;19233:4;19107:131;:::i;:::-;19099:139;;18997:248;;;:::o;19251:419::-;19417:4;19455:2;19444:9;19440:18;19432:26;;19504:9;19498:4;19494:20;19490:1;19479:9;19475:17;19468:47;19532:131;19658:4;19532:131;:::i;:::-;19524:139;;19422:248;;;:::o;19676:419::-;19842:4;19880:2;19869:9;19865:18;19857:26;;19929:9;19923:4;19919:20;19915:1;19904:9;19900:17;19893:47;19957:131;20083:4;19957:131;:::i;:::-;19949:139;;19847:248;;;:::o;20101:419::-;20267:4;20305:2;20294:9;20290:18;20282:26;;20354:9;20348:4;20344:20;20340:1;20329:9;20325:17;20318:47;20382:131;20508:4;20382:131;:::i;:::-;20374:139;;20272:248;;;:::o;20526:419::-;20692:4;20730:2;20719:9;20715:18;20707:26;;20779:9;20773:4;20769:20;20765:1;20754:9;20750:17;20743:47;20807:131;20933:4;20807:131;:::i;:::-;20799:139;;20697:248;;;:::o;20951:419::-;21117:4;21155:2;21144:9;21140:18;21132:26;;21204:9;21198:4;21194:20;21190:1;21179:9;21175:17;21168:47;21232:131;21358:4;21232:131;:::i;:::-;21224:139;;21122:248;;;:::o;21376:419::-;21542:4;21580:2;21569:9;21565:18;21557:26;;21629:9;21623:4;21619:20;21615:1;21604:9;21600:17;21593:47;21657:131;21783:4;21657:131;:::i;:::-;21649:139;;21547:248;;;:::o;21801:222::-;21894:4;21932:2;21921:9;21917:18;21909:26;;21945:71;22013:1;22002:9;21998:17;21989:6;21945:71;:::i;:::-;21899:124;;;;:::o;22029:831::-;22292:4;22330:3;22319:9;22315:19;22307:27;;22344:71;22412:1;22401:9;22397:17;22388:6;22344:71;:::i;:::-;22425:80;22501:2;22490:9;22486:18;22477:6;22425:80;:::i;:::-;22552:9;22546:4;22542:20;22537:2;22526:9;22522:18;22515:48;22580:108;22683:4;22674:6;22580:108;:::i;:::-;22572:116;;22698:72;22766:2;22755:9;22751:18;22742:6;22698:72;:::i;:::-;22780:73;22848:3;22837:9;22833:19;22824:6;22780:73;:::i;:::-;22297:563;;;;;;;;:::o;22866:214::-;22955:4;22993:2;22982:9;22978:18;22970:26;;23006:67;23070:1;23059:9;23055:17;23046:6;23006:67;:::i;:::-;22960:120;;;;:::o;23086:129::-;23120:6;23147:20;;:::i;:::-;23137:30;;23176:33;23204:4;23196:6;23176:33;:::i;:::-;23127:88;;;:::o;23221:75::-;23254:6;23287:2;23281:9;23271:19;;23261:35;:::o;23302:311::-;23379:4;23469:18;23461:6;23458:30;23455:2;;;23491:18;;:::i;:::-;23455:2;23541:4;23533:6;23529:17;23521:25;;23601:4;23595;23591:15;23583:23;;23384:229;;;:::o;23619:132::-;23686:4;23709:3;23701:11;;23739:4;23734:3;23730:14;23722:22;;23691:60;;;:::o;23757:114::-;23824:6;23858:5;23852:12;23842:22;;23831:40;;;:::o;23877:99::-;23929:6;23963:5;23957:12;23947:22;;23936:40;;;:::o;23982:113::-;24052:4;24084;24079:3;24075:14;24067:22;;24057:38;;;:::o;24101:184::-;24200:11;24234:6;24229:3;24222:19;24274:4;24269:3;24265:14;24250:29;;24212:73;;;;:::o;24291:169::-;24375:11;24409:6;24404:3;24397:19;24449:4;24444:3;24440:14;24425:29;;24387:73;;;;:::o;24466:305::-;24506:3;24525:20;24543:1;24525:20;:::i;:::-;24520:25;;24559:20;24577:1;24559:20;:::i;:::-;24554:25;;24713:1;24645:66;24641:74;24638:1;24635:81;24632:2;;;24719:18;;:::i;:::-;24632:2;24763:1;24760;24756:9;24749:16;;24510:261;;;;:::o;24777:185::-;24817:1;24834:20;24852:1;24834:20;:::i;:::-;24829:25;;24868:20;24886:1;24868:20;:::i;:::-;24863:25;;24907:1;24897:2;;24912:18;;:::i;:::-;24897:2;24954:1;24951;24947:9;24942:14;;24819:143;;;;:::o;24968:348::-;25008:7;25031:20;25049:1;25031:20;:::i;:::-;25026:25;;25065:20;25083:1;25065:20;:::i;:::-;25060:25;;25253:1;25185:66;25181:74;25178:1;25175:81;25170:1;25163:9;25156:17;25152:105;25149:2;;;25260:18;;:::i;:::-;25149:2;25308:1;25305;25301:9;25290:20;;25016:300;;;;:::o;25322:191::-;25362:4;25382:20;25400:1;25382:20;:::i;:::-;25377:25;;25416:20;25434:1;25416:20;:::i;:::-;25411:25;;25455:1;25452;25449:8;25446:2;;;25460:18;;:::i;:::-;25446:2;25505:1;25502;25498:9;25490:17;;25367:146;;;;:::o;25519:96::-;25556:7;25585:24;25603:5;25585:24;:::i;:::-;25574:35;;25564:51;;;:::o;25621:90::-;25655:7;25698:5;25691:13;25684:21;25673:32;;25663:48;;;:::o;25717:126::-;25754:7;25794:42;25787:5;25783:54;25772:65;;25762:81;;;:::o;25849:77::-;25886:7;25915:5;25904:16;;25894:32;;;:::o;25932:86::-;25967:7;26007:4;26000:5;25996:16;25985:27;;25975:43;;;:::o;26024:178::-;26100:9;26133:63;26190:5;26133:63;:::i;:::-;26120:76;;26110:92;;;:::o;26208:139::-;26284:9;26317:24;26335:5;26317:24;:::i;:::-;26304:37;;26294:53;;;:::o;26353:121::-;26411:9;26444:24;26462:5;26444:24;:::i;:::-;26431:37;;26421:53;;;:::o;26480:307::-;26548:1;26558:113;26572:6;26569:1;26566:13;26558:113;;;26657:1;26652:3;26648:11;26642:18;26638:1;26633:3;26629:11;26622:39;26594:2;26591:1;26587:10;26582:15;;26558:113;;;26689:6;26686:1;26683:13;26680:2;;;26769:1;26760:6;26755:3;26751:16;26744:27;26680:2;26529:258;;;;:::o;26793:281::-;26876:27;26898:4;26876:27;:::i;:::-;26868:6;26864:40;27006:6;26994:10;26991:22;26970:18;26958:10;26955:34;26952:62;26949:2;;;27017:18;;:::i;:::-;26949:2;27057:10;27053:2;27046:22;26836:238;;;:::o;27080:233::-;27119:3;27142:24;27160:5;27142:24;:::i;:::-;27133:33;;27188:66;27181:5;27178:77;27175:2;;;27258:18;;:::i;:::-;27175:2;27305:1;27298:5;27294:13;27287:20;;27123:190;;;:::o;27319:180::-;27367:77;27364:1;27357:88;27464:4;27461:1;27454:15;27488:4;27485:1;27478:15;27505:180;27553:77;27550:1;27543:88;27650:4;27647:1;27640:15;27674:4;27671:1;27664:15;27691:180;27739:77;27736:1;27729:88;27836:4;27833:1;27826:15;27860:4;27857:1;27850:15;27877:102;27918:6;27969:2;27965:7;27960:2;27953:5;27949:14;27945:28;27935:38;;27925:54;;;:::o;27985:222::-;28125:34;28121:1;28113:6;28109:14;28102:58;28194:5;28189:2;28181:6;28177:15;28170:30;28091:116;:::o;28213:250::-;28353:34;28349:1;28341:6;28337:14;28330:58;28422:33;28417:2;28409:6;28405:15;28398:58;28319:144;:::o;28469:229::-;28609:34;28605:1;28597:6;28593:14;28586:58;28678:12;28673:2;28665:6;28661:15;28654:37;28575:123;:::o;28704:178::-;28844:30;28840:1;28832:6;28828:14;28821:54;28810:72;:::o;28888:225::-;29028:34;29024:1;29016:6;29012:14;29005:58;29097:8;29092:2;29084:6;29080:15;29073:33;28994:119;:::o;29119:221::-;29259:34;29255:1;29247:6;29243:14;29236:58;29328:4;29323:2;29315:6;29311:15;29304:29;29225:115;:::o;29346:222::-;29486:34;29482:1;29474:6;29470:14;29463:58;29555:5;29550:2;29542:6;29538:15;29531:30;29452:116;:::o;29574:177::-;29714:29;29710:1;29702:6;29698:14;29691:53;29680:71;:::o;29757:173::-;29897:25;29893:1;29885:6;29881:14;29874:49;29863:67;:::o;29936:220::-;30076:34;30072:1;30064:6;30060:14;30053:58;30145:3;30140:2;30132:6;30128:15;30121:28;30042:114;:::o;30162:182::-;30302:34;30298:1;30290:6;30286:14;30279:58;30268:76;:::o;30350:228::-;30490:34;30486:1;30478:6;30474:14;30467:58;30559:11;30554:2;30546:6;30542:15;30535:36;30456:122;:::o;30584:224::-;30724:34;30720:1;30712:6;30708:14;30701:58;30793:7;30788:2;30780:6;30776:15;30769:32;30690:118;:::o;30814:222::-;30954:34;30950:1;30942:6;30938:14;30931:58;31023:5;31018:2;31010:6;31006:15;30999:30;30920:116;:::o;31042:223::-;31182:34;31178:1;31170:6;31166:14;31159:58;31251:6;31246:2;31238:6;31234:15;31227:31;31148:117;:::o;31271:122::-;31344:24;31362:5;31344:24;:::i;:::-;31337:5;31334:35;31324:2;;31383:1;31380;31373:12;31324:2;31314:79;:::o;31399:116::-;31469:21;31484:5;31469:21;:::i;:::-;31462:5;31459:32;31449:2;;31505:1;31502;31495:12;31449:2;31439:76;:::o;31521:122::-;31594:24;31612:5;31594:24;:::i;:::-;31587:5;31584:35;31574:2;;31633:1;31630;31623:12;31574:2;31564:79;:::o
Swarm Source
ipfs://111d191e6f1386c1e13c04849e3a6d1d3ad3da5d78d91aac9c8073fffaf9d56b
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.