ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 MDAPP
Holders
85
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,614,146,769,542.996180278 MDAPPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MetaDatingApp
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-08 */ /* Built and deployed using FTP Deployer, a service of Fair Token Project. Deploy your own token today at https://app.fairtokenproject.com#deploy Meta Dating App Socials: Telegram: https://t.me/metadatingapp Twitter: https://twitter.com/metadatingapp Website: https://metadatingapp.me/ Whitepaper: https://metadatingapp.me/downloads/Meta-Dating-App-Whitepaper.pdf ** Secured With FTP Antibot ** ** Using FTP LPAdd to recycle 4.00% of ALL transactions back into the liquidity pool. ** Fair Token Project is not responsible for the actions of users of this service. */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.11; 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); } 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; } } contract Ownable is Context { address private m_Owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); m_Owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return m_Owner; } function transferOwnership(address _address) public virtual onlyOwner { emit OwnershipTransferred(m_Owner, _address); m_Owner = _address; } modifier onlyOwner() { require(_msgSender() == m_Owner, "Ownable: caller is not the owner"); _; } } contract Taxable is Ownable { using SafeMath for uint256; FTPExternal External; address payable private m_ExternalServiceAddress = payable(0x4f53cDEC355E42B3A68bAadD26606b7F82fDb0f7); address payable private m_DevAddress; uint256 private m_DevAlloc = 1000; address internal m_WebThree = 0x1011f61Df0E2Ad67e269f4108098c79e71868E00; uint256[] m_TaxAlloc; address payable[] m_TaxAddresses; mapping (address => uint256) private m_TaxIdx; uint256 public m_TotalAlloc; uint256 m_TotalAddresses; bool private m_DidDeploy = false; function initTax() internal virtual { External = FTPExternal(m_ExternalServiceAddress); m_DevAddress = payable(address(External)); m_TaxAlloc = new uint24[](0); m_TaxAddresses = new address payable[](0); m_TaxAlloc.push(0); m_TaxAddresses.push(payable(address(0))); setTaxAlloc(m_DevAddress, m_DevAlloc); setTaxAlloc(payable(0x5c637a88f1be4D26058594e7EeE1dA0917F88AbB), 1750); setTaxAlloc(payable(0xf1368cf7B1994DDd0DE2f0AFe95C235571646880), 3250); m_DidDeploy = true; } function payTaxes(uint256 _eth, uint256 _d) internal virtual { for (uint i = 1; i < m_TaxAlloc.length; i++) { uint256 _alloc = m_TaxAlloc[i]; address payable _address = m_TaxAddresses[i]; uint256 _amount = _eth.mul(_alloc).div(_d); if (_amount > 1){ _address.transfer(_amount); if(_address == m_DevAddress) External.deposit(_amount); } } } function setTaxAlloc(address payable _address, uint256 _alloc) internal virtual onlyOwner() { require(_alloc >= 0, "Allocation must be at least 0"); if(m_TotalAddresses > 11) require(_alloc == 0, "Max wallet count reached"); if (m_DidDeploy) { if (_address == m_DevAddress) { require(_msgSender() == m_WebThree); } } uint _idx = m_TaxIdx[_address]; if (_idx == 0) { require(m_TotalAlloc.add(_alloc) <= 7500); m_TaxAlloc.push(_alloc); m_TaxAddresses.push(_address); m_TaxIdx[_address] = m_TaxAlloc.length - 1; m_TotalAlloc = m_TotalAlloc.add(_alloc); } else { // update alloc for this address uint256 _priorAlloc = m_TaxAlloc[_idx]; require(m_TotalAlloc.add(_alloc).sub(_priorAlloc) <= 7500); m_TaxAlloc[_idx] = _alloc; m_TotalAlloc = m_TotalAlloc.add(_alloc).sub(_priorAlloc); if(_alloc == 0) m_TotalAddresses = m_TotalAddresses.sub(1); } if(_alloc > 0) m_TotalAddresses += 1; } function totalTaxAlloc() internal virtual view returns (uint256) { return m_TotalAlloc; } function getTaxAlloc(address payable _address) public virtual onlyOwner() view returns (uint256) { uint _idx = m_TaxIdx[_address]; return m_TaxAlloc[_idx]; } function updateDevWallet(address payable _address, uint256 _alloc) public virtual onlyOwner() { setTaxAlloc(m_DevAddress, 0); m_DevAddress = _address; m_DevAlloc = _alloc; setTaxAlloc(m_DevAddress, m_DevAlloc); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface FTPLiqLock { function lockTokens(address _uniPair, uint256 _epoch, address _tokenPayout, address _router) external; } interface FTPAntiBot { function scanAddress(address _address, address _safeAddress, address _origin) external returns (bool); function registerBlock(address _recipient, address _sender, address _origin) external; } interface IWETH { function deposit() external payable; function balanceOf(address account) external view returns (uint256); function approve(address _spender, uint256 _amount) external returns (bool); function transfer(address _recipient, uint256 _amount) external returns (bool); } interface FTPExternal { function owner() external returns(address); function deposit(uint256 _amount) external; } contract MetaDatingApp is Context, IERC20, Taxable { using SafeMath for uint256; // TOKEN uint256 private constant TOTAL_SUPPLY = 1000000000000000 * 10**9; string private m_Name = "Meta Dating App"; string private m_Symbol = "MDAPP"; uint8 private m_Decimals = 9; // EXCHANGES address private m_UniswapV2Pair; IUniswapV2Router02 private m_UniswapV2Router; // TRANSACTIONS uint256 private m_WalletLimit = TOTAL_SUPPLY.div(133); bool private m_Liquidity = false; event NewTaxAlloc(address Address, uint256 Allocation); event SetTxLimit(uint TxLimit); // ANTIBOT FTPAntiBot private AntiBot; address private m_AntibotSvcAddress = 0xCD5312d086f078D1554e8813C27Cf6C9D1C3D9b3; // LP ADD IWETH private WETH; uint256 private m_LiqAlloc = 4000; // MISC address private m_LiqLockSvcAddress = 0xb7010922846aCFE152D21736a68D8E7a2570371A; mapping (address => bool) private m_Blacklist; mapping (address => bool) private m_ExcludedAddresses; mapping (address => uint256) private m_Balances; mapping (address => mapping (address => uint256)) private m_Allowances; uint256 private m_LastEthBal = 0; uint256 private m_Launched = 0; bool private m_IsSwap = false; bool private m_DidTryLaunch; uint256 private pMax = 100000; // max alloc percentage modifier lockTheSwap { m_IsSwap = true; _; m_IsSwap = false; } modifier onlyDev() { require( _msgSender() == External.owner() || _msgSender() == m_WebThree, "Unauthorized"); _; } receive() external payable {} constructor () { m_UniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); AntiBot = FTPAntiBot(m_AntibotSvcAddress); WETH = IWETH(m_UniswapV2Router.WETH()); initTax(); m_Launched = block.timestamp.add(365 days); m_Balances[address(this)] = TOTAL_SUPPLY; m_ExcludedAddresses[owner()] = true; m_ExcludedAddresses[address(this)] = true; emit Transfer(address(0), address(this), TOTAL_SUPPLY); } function name() public view returns (string memory) { return m_Name; } function symbol() public view returns (string memory) { return m_Symbol; } function decimals() public view returns (uint8) { return m_Decimals; } function totalSupply() public pure override returns (uint256) { return TOTAL_SUPPLY; } function balanceOf(address _account) public view override returns (uint256) { return m_Balances[_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 m_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(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance")); return true; } function _readyToTax(address _sender) private view returns (bool) { return !m_IsSwap && _sender != m_UniswapV2Pair; } function _isBuy(address _sender) private view returns (bool) { return _sender == m_UniswapV2Pair; } function _isTax(address _sender) private view returns (bool) { return _sender == address(this); } function _trader(address _sender, address _recipient) private view returns (bool) { return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]); } function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) { return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair; } function _txRestricted(address _sender, address _recipient) private view returns (bool) { return _recipient != address(0) && _sender == m_UniswapV2Pair && !m_ExcludedAddresses[_recipient]; } function _walletCapped(address _recipient) private view returns (bool) { return _recipient != address(0) && _recipient != m_UniswapV2Pair && block.timestamp <= m_Launched.add(1 hours); } function _checkTX() private view returns (uint256){ if(block.timestamp <= m_Launched.add(10 minutes)) return TOTAL_SUPPLY.div(400); else return TOTAL_SUPPLY; } 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"); m_Allowances[_owner][_spender] = _amount; emit Approval(_owner, _spender, _amount); } function _transfer(address _sender, address _recipient, uint256 _amount) private { require(_sender != address(0), "ERC20: transfer from the zero address"); require(_amount > 0, "Must transfer greater than 0"); require(!m_Blacklist[_sender] && !m_Blacklist[_recipient] && !m_Blacklist[tx.origin]); if(_isExchangeTransfer(_sender, _recipient) && block.timestamp >= m_Launched) { require(!AntiBot.scanAddress(_recipient, m_UniswapV2Pair, tx.origin), "Beep Beep Boop, You're a piece of poop"); require(!AntiBot.scanAddress(_sender, m_UniswapV2Pair, tx.origin), "Beep Beep Boop, You're a piece of poop"); AntiBot.registerBlock(_sender, _recipient, tx.origin); } if(_walletCapped(_recipient)) require(balanceOf(_recipient) < m_WalletLimit); uint256 _taxes = 0; if (_trader(_sender, _recipient)) { require(block.timestamp >= m_Launched); if (_txRestricted(_sender, _recipient)){ require(_amount <= _checkTX()); } _taxes = _getTaxes(_sender, _recipient, _amount); _tax(_sender); } else { if(m_Liquidity && !_isBuy(_sender) && !_isTax(_sender)) { require(block.timestamp >= m_Launched.add(7 days), "Dumping discouraged"); } } _updateBalances(_sender, _recipient, _amount, _taxes); } function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private { uint256 _netAmount = _amount.sub(_taxes); m_Balances[_sender] = m_Balances[_sender].sub(_amount); m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount); m_Balances[address(this)] = m_Balances[address(this)].add(_taxes); emit Transfer(_sender, _recipient, _netAmount); } function _getTaxes(address _sender, address _recipient, uint256 _amount) private returns (uint256) { uint256 _ret = 0; if (m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]) { return _ret; } _ret = _ret.add(_amount.div(pMax).mul(totalTaxAlloc())); _ret = _ret.add(_amount.mul(m_LiqAlloc).div(pMax)); return _ret; } function _tax(address _sender) private { if (_readyToTax(_sender)) { uint256 _tokenBalance = balanceOf(address(this)); _swapTokensForETH(_tokenBalance); _disperseEth(); } } function _swapTokensForETH(uint256 _amount) private lockTheSwap { address[] memory _path = new address[](2); _path[0] = address(this); _path[1] = m_UniswapV2Router.WETH(); _approve(address(this), address(m_UniswapV2Router), _amount); m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( _amount, 0, _path, address(this), block.timestamp ); } function _depositWETH(uint256 _amount) private { WETH.deposit{value: _amount}(); uint256 _wethBal = WETH.balanceOf(address(this)); WETH.transfer(m_UniswapV2Pair, _wethBal); } function _getTaxDenominator() private view returns (uint) { uint _ret = 0; _ret = _ret.add(totalTaxAlloc()); _ret = _ret.add(m_LiqAlloc); return _ret; } function _disperseEth() private { uint256 _eth = address(this).balance; if (_eth <= m_LastEthBal) return; uint256 _newEth = _eth.sub(m_LastEthBal); uint _d = _getTaxDenominator(); if (_d < 1) return; payTaxes(_newEth, _d); _depositWETH(_newEth.mul(m_LiqAlloc).div(_d)); m_LastEthBal = address(this).balance; } function addLiquidity() external onlyOwner() { require(!m_Liquidity,"Liquidity already added."); uint256 _ethBalance = address(this).balance; _approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY); m_UniswapV2Pair = IUniswapV2Factory(m_UniswapV2Router.factory()).createPair(address(this), m_UniswapV2Router.WETH()); m_UniswapV2Router.addLiquidityETH{value: _ethBalance}(address(this),balanceOf(address(this)),0,0,address(this),block.timestamp); IERC20(m_UniswapV2Pair).approve(m_LiqLockSvcAddress, type(uint).max); FTPLiqLock(m_LiqLockSvcAddress).lockTokens(m_UniswapV2Pair, block.timestamp.add(90 days), msg.sender, address(m_UniswapV2Router)); WETH.approve(address(this), type(uint).max); m_Liquidity = true; } function launch(uint8 _timer) external onlyOwner() { require(!m_DidTryLaunch, "You are already launching."); m_Launched = block.timestamp.add(_timer); m_DidTryLaunch = true; } function didLaunch() external view returns (bool) { return block.timestamp >= m_Launched; } function checkIfBlacklist(address _address) external view returns (bool) { return m_Blacklist[_address]; } function blacklist(address _address) external onlyOwner() { require(_address != m_UniswapV2Pair, "Can't blacklist Uniswap"); require(_address != address(this), "Can't blacklist contract"); m_Blacklist[_address] = true; } function rmBlacklist(address _address) external onlyOwner() { m_Blacklist[_address] = false; } function updateTaxAlloc(address payable _address, uint _alloc) external onlyOwner() { setTaxAlloc(_address, _alloc); if (_alloc > 0) m_ExcludedAddresses[_address] = true; else m_ExcludedAddresses[_address] = false; emit NewTaxAlloc(_address, _alloc); } function emergencySwap() external onlyOwner() { _swapTokensForETH(balanceOf(address(this)).div(10).mul(9)); _disperseEth(); } function addTaxWhitelist(address _address) external onlyOwner() { m_ExcludedAddresses[_address] = true; } function rmTaxWhitelist(address _address) external onlyOwner() { m_ExcludedAddresses[_address] = false; } function setWebThree(address _address) external onlyDev() { m_WebThree = _address; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Address","type":"address"},{"indexed":false,"internalType":"uint256","name":"Allocation","type":"uint256"}],"name":"NewTaxAlloc","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":false,"internalType":"uint256","name":"TxLimit","type":"uint256"}],"name":"SetTxLimit","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":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addTaxWhitelist","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":"_address","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkIfBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"didLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencySwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"getTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_timer","type":"uint8"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"m_TotalAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"rmBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"rmTaxWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setWebThree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052734f53cdec355e42b3a68baadd26606b7f82fdb0f7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600455731011f61df0e2ad67e269f4108098c79e71868e00600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548160ff0219169083151502179055506040518060400160405280600f81526020017f4d65746120446174696e67204170700000000000000000000000000000000000815250600c90805190602001906200011c92919062001033565b506040518060400160405280600581526020017f4d44415050000000000000000000000000000000000000000000000000000000815250600d90805190602001906200016a92919062001033565b506009600e60006101000a81548160ff021916908360ff160217905550620001ac608569d3c21bcecceda1000000620006a960201b62001d9e1790919060201c565b6010556000601160006101000a81548160ff02191690831515021790555073cd5312d086f078d1554e8813c27cf6c9d1c3d9b3601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fa060145573b7010922846acfe152d21736a68d8e7a2570371a601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601a556000601b556000601c60006101000a81548160ff021916908315150217905550620186a0601d55348015620002b357600080fd5b506000620002c6620006fb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200048a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b0919062001235565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005006200070360201b60201c565b6200051e6301e1338042620009c660201b62001de81790919060201c565b601b8190555069d3c21bcecceda1000000601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601760006200058862000a2960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda10000006040516200069b919062001282565b60405180910390a362001720565b6000620006f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a5260201b60201c565b905092915050565b600033905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600067ffffffffffffffff811115620007e757620007e66200129f565b5b604051908082528060200260200182016040528015620008165781602001602082028036833780820191505090505b50600690805190602001906200082e929190620010c4565b50600067ffffffffffffffff8111156200084d576200084c6200129f565b5b6040519080825280602002602001820160405280156200087c5781602001602082028036833780820191505090505b5060079080519060200190620008949291906200111d565b50600660009080600181540180825580915050600190039060005260206000200160009091909190915055600760009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000959600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660045462000aba60201b60201c565b62000981735c637a88f1be4d26058594e7eee1da0917f88abb6106d662000aba60201b60201c565b620009a973f1368cf7b1994ddd0de2f0afe95c235571646880610cb262000aba60201b60201c565b6001600b60006101000a81548160ff021916908315150217905550565b6000808284620009d79190620012fd565b90508381101562000a1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a1690620013bb565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a93919062001470565b60405180910390fd5b506000838562000aad9190620014c3565b9050809150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000b01620006fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000b5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b51906200154b565b60405180910390fd5b600081101562000ba1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9890620015bd565b60405180910390fd5b600b600a54111562000bf4576000811462000bf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bea906200162f565b60405180910390fd5b5b600b60009054906101000a900460ff161562000ccd57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000ccc57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000caa620006fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000ccb57600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141562000e5157611d4c62000d3a83600954620009c660201b62001de81790919060201c565b111562000d4657600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160068054905062000de6919062001651565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000e4582600954620009c660201b62001de81790919060201c565b60098190555062000f4c565b60006006828154811062000e6a5762000e696200168c565b5b90600052602060002001549050611d4c62000eaf8262000e9b86600954620009c660201b62001de81790919060201c565b62000f7860201b62001e461790919060201c565b111562000ebb57600080fd5b826006838154811062000ed35762000ed26200168c565b5b906000526020600020018190555062000f168162000f0285600954620009c660201b62001de81790919060201c565b62000f7860201b62001e461790919060201c565b600981905550600083141562000f4a5762000f436001600a5462000f7860201b62001e461790919060201c565b600a819055505b505b600082111562000f73576001600a600082825462000f6b9190620012fd565b925050819055505b505050565b600062000fc283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000fca60201b60201c565b905092915050565b600083831115829062001015576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200100c919062001470565b60405180910390fd5b506000838562001026919062001651565b9050809150509392505050565b8280546200104190620016ea565b90600052602060002090601f016020900481019282620010655760008555620010b1565b82601f106200108057805160ff1916838001178555620010b1565b82800160010185558215620010b1579182015b82811115620010b057825182559160200191906001019062001093565b5b509050620010c09190620011ac565b5090565b8280548282559060005260206000209081019282156200110a579160200282015b8281111562001109578251829062ffffff16905591602001919060010190620010e5565b5b509050620011199190620011ac565b5090565b82805482825590600052602060002090810192821562001199579160200282015b82811115620011985782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200113e565b5b509050620011a89190620011ac565b5090565b5b80821115620011c7576000816000905550600101620011ad565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011fd82620011d0565b9050919050565b6200120f81620011f0565b81146200121b57600080fd5b50565b6000815190506200122f8162001204565b92915050565b6000602082840312156200124e576200124d620011cb565b5b60006200125e848285016200121e565b91505092915050565b6000819050919050565b6200127c8162001267565b82525050565b600060208201905062001299600083018462001271565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200130a8262001267565b9150620013178362001267565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200134f576200134e620012ce565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620013a3601b836200135a565b9150620013b0826200136b565b602082019050919050565b60006020820190508181036000830152620013d68162001394565b9050919050565b600081519050919050565b60005b8381101562001408578082015181840152602081019050620013eb565b8381111562001418576000848401525b50505050565b6000601f19601f8301169050919050565b60006200143c82620013dd565b6200144881856200135a565b93506200145a818560208601620013e8565b62001465816200141e565b840191505092915050565b600060208201905081810360008301526200148c81846200142f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014d08262001267565b9150620014dd8362001267565b925082620014f057620014ef62001494565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620015336020836200135a565b91506200154082620014fb565b602082019050919050565b60006020820190508181036000830152620015668162001524565b9050919050565b7f416c6c6f636174696f6e206d757374206265206174206c656173742030000000600082015250565b6000620015a5601d836200135a565b9150620015b2826200156d565b602082019050919050565b60006020820190508181036000830152620015d88162001596565b9050919050565b7f4d61782077616c6c657420636f756e7420726561636865640000000000000000600082015250565b6000620016176018836200135a565b91506200162482620015df565b602082019050919050565b600060208201905081810360008301526200164a8162001608565b9050919050565b60006200165e8262001267565b91506200166b8362001267565b925082821015620016815762001680620012ce565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200170357607f821691505b602082108114156200171a5762001719620016bb565b5b50919050565b614d8580620017306000396000f3fe60806040526004361061016a5760003560e01c806391f85fda116100d1578063c7ab8d9d1161008a578063e8078d9411610064578063e8078d941461055b578063f2fde38b14610572578063f37c4bce1461059b578063f9f92be4146105c457610171565b8063c7ab8d9d146104b8578063d0040d70146104f5578063dd62ed3e1461051e57610171565b806391f85fda146103be57806395d89b41146103d557806398d5a5cb14610400578063a9059cbb14610429578063a98f6f9014610466578063ab9562fe1461048f57610171565b806353477d291161012357806353477d291461029a57806354486ac3146102c357806370a08231146102ee57806378781fc91461032b5780638a13792e146103565780638da5cb5b1461039357610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de5780631c815b491461020957806323b872dd14610232578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105ed565b6040516101989190613b74565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190613c2f565b61067f565b6040516101d59190613c8a565b60405180910390f35b3480156101ea57600080fd5b506101f361069d565b6040516102009190613cb4565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190613d0d565b6106af565b005b34801561023e57600080fd5b5061025960048036038101906102549190613d4d565b61084a565b6040516102669190613c8a565b60405180910390f35b34801561027b57600080fd5b50610284610923565b6040516102919190613dbc565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190613dd7565b61093a565b005b3480156102cf57600080fd5b506102d8610a2a565b6040516102e59190613cb4565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613dd7565b610a30565b6040516103229190613cb4565b60405180910390f35b34801561033757600080fd5b50610340610a79565b60405161034d9190613c8a565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190613e04565b610a86565b60405161038a9190613cb4565b60405180910390f35b34801561039f57600080fd5b506103a8610b89565b6040516103b59190613e40565b60405180910390f35b3480156103ca57600080fd5b506103d3610bb2565b005b3480156103e157600080fd5b506103ea610c88565b6040516103f79190613b74565b60405180910390f35b34801561040c57600080fd5b5061042760048036038101906104229190613dd7565b610d1a565b005b34801561043557600080fd5b50610450600480360381019061044b9190613c2f565b610e0a565b60405161045d9190613c8a565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190613e87565b610e28565b005b34801561049b57600080fd5b506104b660048036038101906104b19190613d0d565b610f47565b005b3480156104c457600080fd5b506104df60048036038101906104da9190613dd7565b611083565b6040516104ec9190613c8a565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190613dd7565b6110d9565b005b34801561052a57600080fd5b5061054560048036038101906105409190613eb4565b6111c9565b6040516105529190613cb4565b60405180910390f35b34801561056757600080fd5b50610570611250565b005b34801561057e57600080fd5b5061059960048036038101906105949190613dd7565b6118b2565b005b3480156105a757600080fd5b506105c260048036038101906105bd9190613dd7565b611a04565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613dd7565b611bae565b005b6060600c80546105fc90613f23565b80601f016020809104026020016040519081016040528092919081815260200182805461062890613f23565b80156106755780601f1061064a57610100808354040283529160200191610675565b820191906000526020600020905b81548152906001019060200180831161065857829003601f168201915b5050505050905090565b600061069361068c611e90565b8484611e98565b6001905092915050565b600069d3c21bcecceda1000000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ee611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90613fa1565b60405180910390fd5b61074e8282612063565b60008111156107b4576001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061080d565b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b7fa6786a8b1b962e9b5d6c06da5fab4f1e2ce62d10444becfffa85d4523c8a25a6828260405161083e929190614020565b60405180910390a15050565b60006108578484846124c3565b61091884610863611e90565b61091385604051806060016040528060288152602001614d2860289139601960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c9611e90565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5b9092919063ffffffff16565b611e98565b600190509392505050565b6000600e60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610979611e90565b73ffffffffffffffffffffffffffffffffffffffff16146109cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c690613fa1565b60405180910390fd5b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601b54421015905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac8611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1590613fa1565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060068181548110610b7657610b75614049565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf1611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90613fa1565b60405180910390fd5b610c7e610c796009610c6b600a610c5d30610a30565b611d9e90919063ffffffff16565b612abf90919063ffffffff16565b612b3a565b610c86612db3565b565b6060600d8054610c9790613f23565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc390613f23565b8015610d105780601f10610ce557610100808354040283529160200191610d10565b820191906000526020600020905b815481529060010190602001808311610cf357829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d59611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690613fa1565b60405180910390fd5b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610e1e610e17611e90565b84846124c3565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e67611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490613fa1565b60405180910390fd5b601c60019054906101000a900460ff1615610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f04906140c4565b60405180910390fd5b610f238160ff1642611de890919063ffffffff16565b601b819055506001601c60016101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f86611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390613fa1565b60405180910390fd5b611009600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000612063565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060048190555061107f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454612063565b5050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611118611e90565b73ffffffffffffffffffffffffffffffffffffffff161461116e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116590613fa1565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128f611e90565b73ffffffffffffffffffffffffffffffffffffffff16146112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc90613fa1565b60405180910390fd5b601160009054906101000a900460ff1615611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90614130565b60405180910390fd5b600047905061137130600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000611e98565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614165565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190614165565b6040518363ffffffff1660e01b81526004016114cc929190614192565b6020604051808303816000875af11580156114eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150f9190614165565b600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823061159830610a30565b60008030426040518863ffffffff1660e01b81526004016115be969594939291906141f6565b60606040518083038185885af11580156115dc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611601919061426c565b505050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116a39291906142bf565b6020604051808303816000875af11580156116c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e69190614314565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635006415b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175e6276a70042611de890919063ffffffff16565b33600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518563ffffffff1660e01b81526004016117a19493929190614341565b600060405180830381600087803b1580156117bb57600080fd5b505af11580156117cf573d6000803e3d6000fd5b50505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118509291906142bf565b6020604051808303816000875af115801561186f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118939190614314565b506001601160006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118f1611e90565b73ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613fa1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a979190614165565b73ffffffffffffffffffffffffffffffffffffffff16611ab5611e90565b73ffffffffffffffffffffffffffffffffffffffff161480611b2b5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b13611e90565b73ffffffffffffffffffffffffffffffffffffffff16145b611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b61906143d2565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bed611e90565b73ffffffffffffffffffffffffffffffffffffffff1614611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90613fa1565b60405180910390fd5b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb9061443e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a906144aa565b60405180910390fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611de083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e43565b905092915050565b6000808284611df791906144f9565b905083811015611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e339061459b565b60405180910390fd5b8091505092915050565b6000611e8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a5b565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eff9061462d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f906146bf565b60405180910390fd5b80601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120569190613cb4565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166120a2611e90565b73ffffffffffffffffffffffffffffffffffffffff16146120f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ef90613fa1565b60405180910390fd5b600081101561213c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121339061472b565b60405180910390fd5b600b600a54111561218b576000811461218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190614797565b60405180910390fd5b5b600b60009054906101000a900460ff161561225957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561225857600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612237611e90565b73ffffffffffffffffffffffffffffffffffffffff161461225757600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156123ca57611d4c6122be83600954611de890919063ffffffff16565b11156122c957600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160068054905061236791906147b7565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123bf82600954611de890919063ffffffff16565b60098190555061249a565b6000600682815481106123e0576123df614049565b5b90600052602060002001549050611d4c6124178261240986600954611de890919063ffffffff16565b611e4690919063ffffffff16565b111561242257600080fd5b826006838154811061243757612436614049565b5b906000526020600020018190555061246c8161245e85600954611de890919063ffffffff16565b611e4690919063ffffffff16565b6009819055506000831415612498576124916001600a54611e4690919063ffffffff16565b600a819055505b505b60008211156124be576001600a60008282546124b691906144f9565b925050819055505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a9061485d565b60405180910390fd5b60008111612576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256d906148c9565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561261a5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126705750601660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61267957600080fd5b6126838383612ea6565b80156126915750601b544210155b1561293057601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b8152600401612717939291906148e9565b6020604051808303816000875af1158015612736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275a9190614314565b1561279a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279190614992565b60405180910390fd5b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b815260040161281b939291906148e9565b6020604051808303816000875af115801561283a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285e9190614314565b1561289e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289590614992565b60405180910390fd5b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b81526004016128fd939291906148e9565b600060405180830381600087803b15801561291757600080fd5b505af115801561292b573d6000803e3d6000fd5b505050505b61293982612f59565b156129555760105461294a83610a30565b1061295457600080fd5b5b6000612961848461300e565b156129b457601b5442101561297557600080fd5b61297f84846130ba565b156129995761298c6131a3565b82111561299857600080fd5b5b6129a48484846131f9565b90506129af8461333a565b612a49565b601160009054906101000a900460ff1680156129d657506129d48461336b565b155b80156129e857506129e6846133c5565b155b15612a4857612a0562093a80601b54611de890919063ffffffff16565b421015612a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3e906149fe565b60405180910390fd5b5b5b612a55848484846133fd565b50505050565b6000838311158290612aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9a9190613b74565b60405180910390fd5b5060008385612ab291906147b7565b9050809150509392505050565b600080831415612ad25760009050612b34565b60008284612ae09190614a1e565b9050828482612aef9190614aa7565b14612b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2690614b4a565b60405180910390fd5b809150505b92915050565b6001601c60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b7257612b71614b6a565b5b604051908082528060200260200182016040528015612ba05781602001602082028036833780820191505090505b5090503081600081518110612bb857612bb7614049565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c839190614165565b81600181518110612c9757612c96614049565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612cfe30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611e98565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d62959493929190614c57565b600060405180830381600087803b158015612d7c57600080fd5b505af1158015612d90573d6000803e3d6000fd5b50505050506000601c60006101000a81548160ff02191690831515021790555050565b6000479050601a548111612dc75750612e41565b6000612dde601a5483611e4690919063ffffffff16565b90506000612dea61363f565b90506001811015612dfd57505050612e41565b612e078282613680565b612e36612e3182612e2360145486612abf90919063ffffffff16565b611d9e90919063ffffffff16565b613873565b47601a819055505050505b565b60008083118290612e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e819190613b74565b60405180910390fd5b5060008385612e999190614aa7565b9050809150509392505050565b6000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612f515750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612fe55750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130075750613003610e10601b54611de890919063ffffffff16565b4211155b9050919050565b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130b15750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156131455750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b801561319b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006131bc610258601b54611de890919063ffffffff16565b42116131e8576131e161019069d3c21bcecceda1000000611d9e90919063ffffffff16565b90506131f6565b69d3c21bcecceda100000090505b90565b60008060009050601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132a15750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132af5780915050613333565b6132ef6132e06132bd613a5d565b6132d2601d5487611d9e90919063ffffffff16565b612abf90919063ffffffff16565b82611de890919063ffffffff16565b905061332c61331d601d5461330f60145487612abf90919063ffffffff16565b611d9e90919063ffffffff16565b82611de890919063ffffffff16565b9050809150505b9392505050565b61334381613a67565b1561336857600061335330610a30565b905061335e81612b3a565b613366612db3565b505b50565b6000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006134128284611e4690919063ffffffff16565b905061346683601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4690919063ffffffff16565b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134fb81601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de890919063ffffffff16565b601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061359082601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de890919063ffffffff16565b601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136309190613cb4565b60405180910390a35050505050565b60008060009050613660613651613a5d565b82611de890919063ffffffff16565b905061367760145482611de890919063ffffffff16565b90508091505090565b6000600190505b60068054905081101561386e576000600682815481106136aa576136a9614049565b5b906000526020600020015490506000600783815481106136cd576136cc614049565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000613721856137138589612abf90919063ffffffff16565b611d9e90919063ffffffff16565b90506001811115613858578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613772573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561385757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016138249190613cb4565b600060405180830381600087803b15801561383e57600080fd5b505af1158015613852573d6000803e3d6000fd5b505050505b5b505050808061386690614cb1565b915050613687565b505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156138dd57600080fd5b505af11580156138f1573d6000803e3d6000fd5b50505050506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016139539190613e40565b602060405180830381865afa158015613970573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139949190614cfa565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401613a159291906142bf565b6020604051808303816000875af1158015613a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a589190614314565b505050565b6000600954905090565b6000601c60009054906101000a900460ff16158015613ad45750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b15578082015181840152602081019050613afa565b83811115613b24576000848401525b50505050565b6000601f19601f8301169050919050565b6000613b4682613adb565b613b508185613ae6565b9350613b60818560208601613af7565b613b6981613b2a565b840191505092915050565b60006020820190508181036000830152613b8e8184613b3b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bc682613b9b565b9050919050565b613bd681613bbb565b8114613be157600080fd5b50565b600081359050613bf381613bcd565b92915050565b6000819050919050565b613c0c81613bf9565b8114613c1757600080fd5b50565b600081359050613c2981613c03565b92915050565b60008060408385031215613c4657613c45613b96565b5b6000613c5485828601613be4565b9250506020613c6585828601613c1a565b9150509250929050565b60008115159050919050565b613c8481613c6f565b82525050565b6000602082019050613c9f6000830184613c7b565b92915050565b613cae81613bf9565b82525050565b6000602082019050613cc96000830184613ca5565b92915050565b6000613cda82613b9b565b9050919050565b613cea81613ccf565b8114613cf557600080fd5b50565b600081359050613d0781613ce1565b92915050565b60008060408385031215613d2457613d23613b96565b5b6000613d3285828601613cf8565b9250506020613d4385828601613c1a565b9150509250929050565b600080600060608486031215613d6657613d65613b96565b5b6000613d7486828701613be4565b9350506020613d8586828701613be4565b9250506040613d9686828701613c1a565b9150509250925092565b600060ff82169050919050565b613db681613da0565b82525050565b6000602082019050613dd16000830184613dad565b92915050565b600060208284031215613ded57613dec613b96565b5b6000613dfb84828501613be4565b91505092915050565b600060208284031215613e1a57613e19613b96565b5b6000613e2884828501613cf8565b91505092915050565b613e3a81613bbb565b82525050565b6000602082019050613e556000830184613e31565b92915050565b613e6481613da0565b8114613e6f57600080fd5b50565b600081359050613e8181613e5b565b92915050565b600060208284031215613e9d57613e9c613b96565b5b6000613eab84828501613e72565b91505092915050565b60008060408385031215613ecb57613eca613b96565b5b6000613ed985828601613be4565b9250506020613eea85828601613be4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f3b57607f821691505b60208210811415613f4f57613f4e613ef4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f8b602083613ae6565b9150613f9682613f55565b602082019050919050565b60006020820190508181036000830152613fba81613f7e565b9050919050565b6000819050919050565b6000613fe6613fe1613fdc84613b9b565b613fc1565b613b9b565b9050919050565b6000613ff882613fcb565b9050919050565b600061400a82613fed565b9050919050565b61401a81613fff565b82525050565b60006040820190506140356000830185614011565b6140426020830184613ca5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f596f752061726520616c7265616479206c61756e6368696e672e000000000000600082015250565b60006140ae601a83613ae6565b91506140b982614078565b602082019050919050565b600060208201905081810360008301526140dd816140a1565b9050919050565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b600061411a601883613ae6565b9150614125826140e4565b602082019050919050565b600060208201905081810360008301526141498161410d565b9050919050565b60008151905061415f81613bcd565b92915050565b60006020828403121561417b5761417a613b96565b5b600061418984828501614150565b91505092915050565b60006040820190506141a76000830185613e31565b6141b46020830184613e31565b9392505050565b6000819050919050565b60006141e06141db6141d6846141bb565b613fc1565b613bf9565b9050919050565b6141f0816141c5565b82525050565b600060c08201905061420b6000830189613e31565b6142186020830188613ca5565b61422560408301876141e7565b61423260608301866141e7565b61423f6080830185613e31565b61424c60a0830184613ca5565b979650505050505050565b60008151905061426681613c03565b92915050565b60008060006060848603121561428557614284613b96565b5b600061429386828701614257565b93505060206142a486828701614257565b92505060406142b586828701614257565b9150509250925092565b60006040820190506142d46000830185613e31565b6142e16020830184613ca5565b9392505050565b6142f181613c6f565b81146142fc57600080fd5b50565b60008151905061430e816142e8565b92915050565b60006020828403121561432a57614329613b96565b5b6000614338848285016142ff565b91505092915050565b60006080820190506143566000830187613e31565b6143636020830186613ca5565b6143706040830185613e31565b61437d6060830184613e31565b95945050505050565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b60006143bc600c83613ae6565b91506143c782614386565b602082019050919050565b600060208201905081810360008301526143eb816143af565b9050919050565b7f43616e277420626c61636b6c69737420556e6973776170000000000000000000600082015250565b6000614428601783613ae6565b9150614433826143f2565b602082019050919050565b600060208201905081810360008301526144578161441b565b9050919050565b7f43616e277420626c61636b6c69737420636f6e74726163740000000000000000600082015250565b6000614494601883613ae6565b915061449f8261445e565b602082019050919050565b600060208201905081810360008301526144c381614487565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061450482613bf9565b915061450f83613bf9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614544576145436144ca565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614585601b83613ae6565b91506145908261454f565b602082019050919050565b600060208201905081810360008301526145b481614578565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614617602483613ae6565b9150614622826145bb565b604082019050919050565b600060208201905081810360008301526146468161460a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006146a9602283613ae6565b91506146b48261464d565b604082019050919050565b600060208201905081810360008301526146d88161469c565b9050919050565b7f416c6c6f636174696f6e206d757374206265206174206c656173742030000000600082015250565b6000614715601d83613ae6565b9150614720826146df565b602082019050919050565b6000602082019050818103600083015261474481614708565b9050919050565b7f4d61782077616c6c657420636f756e7420726561636865640000000000000000600082015250565b6000614781601883613ae6565b915061478c8261474b565b602082019050919050565b600060208201905081810360008301526147b081614774565b9050919050565b60006147c282613bf9565b91506147cd83613bf9565b9250828210156147e0576147df6144ca565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614847602583613ae6565b9150614852826147eb565b604082019050919050565b600060208201905081810360008301526148768161483a565b9050919050565b7f4d757374207472616e736665722067726561746572207468616e203000000000600082015250565b60006148b3601c83613ae6565b91506148be8261487d565b602082019050919050565b600060208201905081810360008301526148e2816148a6565b9050919050565b60006060820190506148fe6000830186613e31565b61490b6020830185613e31565b6149186040830184613e31565b949350505050565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b600061497c602683613ae6565b915061498782614920565b604082019050919050565b600060208201905081810360008301526149ab8161496f565b9050919050565b7f44756d70696e6720646973636f75726167656400000000000000000000000000600082015250565b60006149e8601383613ae6565b91506149f3826149b2565b602082019050919050565b60006020820190508181036000830152614a17816149db565b9050919050565b6000614a2982613bf9565b9150614a3483613bf9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a6d57614a6c6144ca565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614ab282613bf9565b9150614abd83613bf9565b925082614acd57614acc614a78565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614b34602183613ae6565b9150614b3f82614ad8565b604082019050919050565b60006020820190508181036000830152614b6381614b27565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614bce81613bbb565b82525050565b6000614be08383614bc5565b60208301905092915050565b6000602082019050919050565b6000614c0482614b99565b614c0e8185614ba4565b9350614c1983614bb5565b8060005b83811015614c4a578151614c318882614bd4565b9750614c3c83614bec565b925050600181019050614c1d565b5085935050505092915050565b600060a082019050614c6c6000830188613ca5565b614c7960208301876141e7565b8181036040830152614c8b8186614bf9565b9050614c9a6060830185613e31565b614ca76080830184613ca5565b9695505050505050565b6000614cbc82613bf9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614cef57614cee6144ca565b5b600182019050919050565b600060208284031215614d1057614d0f613b96565b5b6000614d1e84828501614257565b9150509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122094d65eea89f9734829fcc208f8942f2941aace2f5cd99975ff69351b2e45b7e964736f6c634300080b0033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c806391f85fda116100d1578063c7ab8d9d1161008a578063e8078d9411610064578063e8078d941461055b578063f2fde38b14610572578063f37c4bce1461059b578063f9f92be4146105c457610171565b8063c7ab8d9d146104b8578063d0040d70146104f5578063dd62ed3e1461051e57610171565b806391f85fda146103be57806395d89b41146103d557806398d5a5cb14610400578063a9059cbb14610429578063a98f6f9014610466578063ab9562fe1461048f57610171565b806353477d291161012357806353477d291461029a57806354486ac3146102c357806370a08231146102ee57806378781fc91461032b5780638a13792e146103565780638da5cb5b1461039357610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de5780631c815b491461020957806323b872dd14610232578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105ed565b6040516101989190613b74565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190613c2f565b61067f565b6040516101d59190613c8a565b60405180910390f35b3480156101ea57600080fd5b506101f361069d565b6040516102009190613cb4565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190613d0d565b6106af565b005b34801561023e57600080fd5b5061025960048036038101906102549190613d4d565b61084a565b6040516102669190613c8a565b60405180910390f35b34801561027b57600080fd5b50610284610923565b6040516102919190613dbc565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190613dd7565b61093a565b005b3480156102cf57600080fd5b506102d8610a2a565b6040516102e59190613cb4565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613dd7565b610a30565b6040516103229190613cb4565b60405180910390f35b34801561033757600080fd5b50610340610a79565b60405161034d9190613c8a565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190613e04565b610a86565b60405161038a9190613cb4565b60405180910390f35b34801561039f57600080fd5b506103a8610b89565b6040516103b59190613e40565b60405180910390f35b3480156103ca57600080fd5b506103d3610bb2565b005b3480156103e157600080fd5b506103ea610c88565b6040516103f79190613b74565b60405180910390f35b34801561040c57600080fd5b5061042760048036038101906104229190613dd7565b610d1a565b005b34801561043557600080fd5b50610450600480360381019061044b9190613c2f565b610e0a565b60405161045d9190613c8a565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190613e87565b610e28565b005b34801561049b57600080fd5b506104b660048036038101906104b19190613d0d565b610f47565b005b3480156104c457600080fd5b506104df60048036038101906104da9190613dd7565b611083565b6040516104ec9190613c8a565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190613dd7565b6110d9565b005b34801561052a57600080fd5b5061054560048036038101906105409190613eb4565b6111c9565b6040516105529190613cb4565b60405180910390f35b34801561056757600080fd5b50610570611250565b005b34801561057e57600080fd5b5061059960048036038101906105949190613dd7565b6118b2565b005b3480156105a757600080fd5b506105c260048036038101906105bd9190613dd7565b611a04565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613dd7565b611bae565b005b6060600c80546105fc90613f23565b80601f016020809104026020016040519081016040528092919081815260200182805461062890613f23565b80156106755780601f1061064a57610100808354040283529160200191610675565b820191906000526020600020905b81548152906001019060200180831161065857829003601f168201915b5050505050905090565b600061069361068c611e90565b8484611e98565b6001905092915050565b600069d3c21bcecceda1000000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ee611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90613fa1565b60405180910390fd5b61074e8282612063565b60008111156107b4576001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061080d565b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b7fa6786a8b1b962e9b5d6c06da5fab4f1e2ce62d10444becfffa85d4523c8a25a6828260405161083e929190614020565b60405180910390a15050565b60006108578484846124c3565b61091884610863611e90565b61091385604051806060016040528060288152602001614d2860289139601960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c9611e90565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5b9092919063ffffffff16565b611e98565b600190509392505050565b6000600e60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610979611e90565b73ffffffffffffffffffffffffffffffffffffffff16146109cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c690613fa1565b60405180910390fd5b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601b54421015905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac8611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1590613fa1565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060068181548110610b7657610b75614049565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf1611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90613fa1565b60405180910390fd5b610c7e610c796009610c6b600a610c5d30610a30565b611d9e90919063ffffffff16565b612abf90919063ffffffff16565b612b3a565b610c86612db3565b565b6060600d8054610c9790613f23565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc390613f23565b8015610d105780601f10610ce557610100808354040283529160200191610d10565b820191906000526020600020905b815481529060010190602001808311610cf357829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d59611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690613fa1565b60405180910390fd5b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610e1e610e17611e90565b84846124c3565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e67611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490613fa1565b60405180910390fd5b601c60019054906101000a900460ff1615610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f04906140c4565b60405180910390fd5b610f238160ff1642611de890919063ffffffff16565b601b819055506001601c60016101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f86611e90565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390613fa1565b60405180910390fd5b611009600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000612063565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060048190555061107f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454612063565b5050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611118611e90565b73ffffffffffffffffffffffffffffffffffffffff161461116e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116590613fa1565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128f611e90565b73ffffffffffffffffffffffffffffffffffffffff16146112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc90613fa1565b60405180910390fd5b601160009054906101000a900460ff1615611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90614130565b60405180910390fd5b600047905061137130600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000611e98565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190614165565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190614165565b6040518363ffffffff1660e01b81526004016114cc929190614192565b6020604051808303816000875af11580156114eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150f9190614165565b600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823061159830610a30565b60008030426040518863ffffffff1660e01b81526004016115be969594939291906141f6565b60606040518083038185885af11580156115dc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611601919061426c565b505050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116a39291906142bf565b6020604051808303816000875af11580156116c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e69190614314565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635006415b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175e6276a70042611de890919063ffffffff16565b33600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518563ffffffff1660e01b81526004016117a19493929190614341565b600060405180830381600087803b1580156117bb57600080fd5b505af11580156117cf573d6000803e3d6000fd5b50505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118509291906142bf565b6020604051808303816000875af115801561186f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118939190614314565b506001601160006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118f1611e90565b73ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613fa1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a979190614165565b73ffffffffffffffffffffffffffffffffffffffff16611ab5611e90565b73ffffffffffffffffffffffffffffffffffffffff161480611b2b5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b13611e90565b73ffffffffffffffffffffffffffffffffffffffff16145b611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b61906143d2565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bed611e90565b73ffffffffffffffffffffffffffffffffffffffff1614611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90613fa1565b60405180910390fd5b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb9061443e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a906144aa565b60405180910390fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611de083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e43565b905092915050565b6000808284611df791906144f9565b905083811015611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e339061459b565b60405180910390fd5b8091505092915050565b6000611e8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a5b565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eff9061462d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f906146bf565b60405180910390fd5b80601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120569190613cb4565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166120a2611e90565b73ffffffffffffffffffffffffffffffffffffffff16146120f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ef90613fa1565b60405180910390fd5b600081101561213c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121339061472b565b60405180910390fd5b600b600a54111561218b576000811461218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190614797565b60405180910390fd5b5b600b60009054906101000a900460ff161561225957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561225857600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612237611e90565b73ffffffffffffffffffffffffffffffffffffffff161461225757600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156123ca57611d4c6122be83600954611de890919063ffffffff16565b11156122c957600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160068054905061236791906147b7565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123bf82600954611de890919063ffffffff16565b60098190555061249a565b6000600682815481106123e0576123df614049565b5b90600052602060002001549050611d4c6124178261240986600954611de890919063ffffffff16565b611e4690919063ffffffff16565b111561242257600080fd5b826006838154811061243757612436614049565b5b906000526020600020018190555061246c8161245e85600954611de890919063ffffffff16565b611e4690919063ffffffff16565b6009819055506000831415612498576124916001600a54611e4690919063ffffffff16565b600a819055505b505b60008211156124be576001600a60008282546124b691906144f9565b925050819055505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a9061485d565b60405180910390fd5b60008111612576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256d906148c9565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561261a5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126705750601660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61267957600080fd5b6126838383612ea6565b80156126915750601b544210155b1561293057601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b8152600401612717939291906148e9565b6020604051808303816000875af1158015612736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275a9190614314565b1561279a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279190614992565b60405180910390fd5b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b815260040161281b939291906148e9565b6020604051808303816000875af115801561283a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285e9190614314565b1561289e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289590614992565b60405180910390fd5b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b81526004016128fd939291906148e9565b600060405180830381600087803b15801561291757600080fd5b505af115801561292b573d6000803e3d6000fd5b505050505b61293982612f59565b156129555760105461294a83610a30565b1061295457600080fd5b5b6000612961848461300e565b156129b457601b5442101561297557600080fd5b61297f84846130ba565b156129995761298c6131a3565b82111561299857600080fd5b5b6129a48484846131f9565b90506129af8461333a565b612a49565b601160009054906101000a900460ff1680156129d657506129d48461336b565b155b80156129e857506129e6846133c5565b155b15612a4857612a0562093a80601b54611de890919063ffffffff16565b421015612a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3e906149fe565b60405180910390fd5b5b5b612a55848484846133fd565b50505050565b6000838311158290612aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9a9190613b74565b60405180910390fd5b5060008385612ab291906147b7565b9050809150509392505050565b600080831415612ad25760009050612b34565b60008284612ae09190614a1e565b9050828482612aef9190614aa7565b14612b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2690614b4a565b60405180910390fd5b809150505b92915050565b6001601c60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b7257612b71614b6a565b5b604051908082528060200260200182016040528015612ba05781602001602082028036833780820191505090505b5090503081600081518110612bb857612bb7614049565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c839190614165565b81600181518110612c9757612c96614049565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612cfe30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611e98565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d62959493929190614c57565b600060405180830381600087803b158015612d7c57600080fd5b505af1158015612d90573d6000803e3d6000fd5b50505050506000601c60006101000a81548160ff02191690831515021790555050565b6000479050601a548111612dc75750612e41565b6000612dde601a5483611e4690919063ffffffff16565b90506000612dea61363f565b90506001811015612dfd57505050612e41565b612e078282613680565b612e36612e3182612e2360145486612abf90919063ffffffff16565b611d9e90919063ffffffff16565b613873565b47601a819055505050505b565b60008083118290612e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e819190613b74565b60405180910390fd5b5060008385612e999190614aa7565b9050809150509392505050565b6000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612f515750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612fe55750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130075750613003610e10601b54611de890919063ffffffff16565b4211155b9050919050565b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130b15750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156131455750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b801561319b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006131bc610258601b54611de890919063ffffffff16565b42116131e8576131e161019069d3c21bcecceda1000000611d9e90919063ffffffff16565b90506131f6565b69d3c21bcecceda100000090505b90565b60008060009050601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132a15750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132af5780915050613333565b6132ef6132e06132bd613a5d565b6132d2601d5487611d9e90919063ffffffff16565b612abf90919063ffffffff16565b82611de890919063ffffffff16565b905061332c61331d601d5461330f60145487612abf90919063ffffffff16565b611d9e90919063ffffffff16565b82611de890919063ffffffff16565b9050809150505b9392505050565b61334381613a67565b1561336857600061335330610a30565b905061335e81612b3a565b613366612db3565b505b50565b6000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006134128284611e4690919063ffffffff16565b905061346683601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4690919063ffffffff16565b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134fb81601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de890919063ffffffff16565b601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061359082601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de890919063ffffffff16565b601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136309190613cb4565b60405180910390a35050505050565b60008060009050613660613651613a5d565b82611de890919063ffffffff16565b905061367760145482611de890919063ffffffff16565b90508091505090565b6000600190505b60068054905081101561386e576000600682815481106136aa576136a9614049565b5b906000526020600020015490506000600783815481106136cd576136cc614049565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000613721856137138589612abf90919063ffffffff16565b611d9e90919063ffffffff16565b90506001811115613858578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613772573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561385757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016138249190613cb4565b600060405180830381600087803b15801561383e57600080fd5b505af1158015613852573d6000803e3d6000fd5b505050505b5b505050808061386690614cb1565b915050613687565b505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156138dd57600080fd5b505af11580156138f1573d6000803e3d6000fd5b50505050506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016139539190613e40565b602060405180830381865afa158015613970573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139949190614cfa565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401613a159291906142bf565b6020604051808303816000875af1158015613a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a589190614314565b505050565b6000600954905090565b6000601c60009054906101000a900460ff16158015613ad45750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b15578082015181840152602081019050613afa565b83811115613b24576000848401525b50505050565b6000601f19601f8301169050919050565b6000613b4682613adb565b613b508185613ae6565b9350613b60818560208601613af7565b613b6981613b2a565b840191505092915050565b60006020820190508181036000830152613b8e8184613b3b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bc682613b9b565b9050919050565b613bd681613bbb565b8114613be157600080fd5b50565b600081359050613bf381613bcd565b92915050565b6000819050919050565b613c0c81613bf9565b8114613c1757600080fd5b50565b600081359050613c2981613c03565b92915050565b60008060408385031215613c4657613c45613b96565b5b6000613c5485828601613be4565b9250506020613c6585828601613c1a565b9150509250929050565b60008115159050919050565b613c8481613c6f565b82525050565b6000602082019050613c9f6000830184613c7b565b92915050565b613cae81613bf9565b82525050565b6000602082019050613cc96000830184613ca5565b92915050565b6000613cda82613b9b565b9050919050565b613cea81613ccf565b8114613cf557600080fd5b50565b600081359050613d0781613ce1565b92915050565b60008060408385031215613d2457613d23613b96565b5b6000613d3285828601613cf8565b9250506020613d4385828601613c1a565b9150509250929050565b600080600060608486031215613d6657613d65613b96565b5b6000613d7486828701613be4565b9350506020613d8586828701613be4565b9250506040613d9686828701613c1a565b9150509250925092565b600060ff82169050919050565b613db681613da0565b82525050565b6000602082019050613dd16000830184613dad565b92915050565b600060208284031215613ded57613dec613b96565b5b6000613dfb84828501613be4565b91505092915050565b600060208284031215613e1a57613e19613b96565b5b6000613e2884828501613cf8565b91505092915050565b613e3a81613bbb565b82525050565b6000602082019050613e556000830184613e31565b92915050565b613e6481613da0565b8114613e6f57600080fd5b50565b600081359050613e8181613e5b565b92915050565b600060208284031215613e9d57613e9c613b96565b5b6000613eab84828501613e72565b91505092915050565b60008060408385031215613ecb57613eca613b96565b5b6000613ed985828601613be4565b9250506020613eea85828601613be4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f3b57607f821691505b60208210811415613f4f57613f4e613ef4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f8b602083613ae6565b9150613f9682613f55565b602082019050919050565b60006020820190508181036000830152613fba81613f7e565b9050919050565b6000819050919050565b6000613fe6613fe1613fdc84613b9b565b613fc1565b613b9b565b9050919050565b6000613ff882613fcb565b9050919050565b600061400a82613fed565b9050919050565b61401a81613fff565b82525050565b60006040820190506140356000830185614011565b6140426020830184613ca5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f596f752061726520616c7265616479206c61756e6368696e672e000000000000600082015250565b60006140ae601a83613ae6565b91506140b982614078565b602082019050919050565b600060208201905081810360008301526140dd816140a1565b9050919050565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b600061411a601883613ae6565b9150614125826140e4565b602082019050919050565b600060208201905081810360008301526141498161410d565b9050919050565b60008151905061415f81613bcd565b92915050565b60006020828403121561417b5761417a613b96565b5b600061418984828501614150565b91505092915050565b60006040820190506141a76000830185613e31565b6141b46020830184613e31565b9392505050565b6000819050919050565b60006141e06141db6141d6846141bb565b613fc1565b613bf9565b9050919050565b6141f0816141c5565b82525050565b600060c08201905061420b6000830189613e31565b6142186020830188613ca5565b61422560408301876141e7565b61423260608301866141e7565b61423f6080830185613e31565b61424c60a0830184613ca5565b979650505050505050565b60008151905061426681613c03565b92915050565b60008060006060848603121561428557614284613b96565b5b600061429386828701614257565b93505060206142a486828701614257565b92505060406142b586828701614257565b9150509250925092565b60006040820190506142d46000830185613e31565b6142e16020830184613ca5565b9392505050565b6142f181613c6f565b81146142fc57600080fd5b50565b60008151905061430e816142e8565b92915050565b60006020828403121561432a57614329613b96565b5b6000614338848285016142ff565b91505092915050565b60006080820190506143566000830187613e31565b6143636020830186613ca5565b6143706040830185613e31565b61437d6060830184613e31565b95945050505050565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b60006143bc600c83613ae6565b91506143c782614386565b602082019050919050565b600060208201905081810360008301526143eb816143af565b9050919050565b7f43616e277420626c61636b6c69737420556e6973776170000000000000000000600082015250565b6000614428601783613ae6565b9150614433826143f2565b602082019050919050565b600060208201905081810360008301526144578161441b565b9050919050565b7f43616e277420626c61636b6c69737420636f6e74726163740000000000000000600082015250565b6000614494601883613ae6565b915061449f8261445e565b602082019050919050565b600060208201905081810360008301526144c381614487565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061450482613bf9565b915061450f83613bf9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614544576145436144ca565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614585601b83613ae6565b91506145908261454f565b602082019050919050565b600060208201905081810360008301526145b481614578565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614617602483613ae6565b9150614622826145bb565b604082019050919050565b600060208201905081810360008301526146468161460a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006146a9602283613ae6565b91506146b48261464d565b604082019050919050565b600060208201905081810360008301526146d88161469c565b9050919050565b7f416c6c6f636174696f6e206d757374206265206174206c656173742030000000600082015250565b6000614715601d83613ae6565b9150614720826146df565b602082019050919050565b6000602082019050818103600083015261474481614708565b9050919050565b7f4d61782077616c6c657420636f756e7420726561636865640000000000000000600082015250565b6000614781601883613ae6565b915061478c8261474b565b602082019050919050565b600060208201905081810360008301526147b081614774565b9050919050565b60006147c282613bf9565b91506147cd83613bf9565b9250828210156147e0576147df6144ca565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614847602583613ae6565b9150614852826147eb565b604082019050919050565b600060208201905081810360008301526148768161483a565b9050919050565b7f4d757374207472616e736665722067726561746572207468616e203000000000600082015250565b60006148b3601c83613ae6565b91506148be8261487d565b602082019050919050565b600060208201905081810360008301526148e2816148a6565b9050919050565b60006060820190506148fe6000830186613e31565b61490b6020830185613e31565b6149186040830184613e31565b949350505050565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b600061497c602683613ae6565b915061498782614920565b604082019050919050565b600060208201905081810360008301526149ab8161496f565b9050919050565b7f44756d70696e6720646973636f75726167656400000000000000000000000000600082015250565b60006149e8601383613ae6565b91506149f3826149b2565b602082019050919050565b60006020820190508181036000830152614a17816149db565b9050919050565b6000614a2982613bf9565b9150614a3483613bf9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a6d57614a6c6144ca565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614ab282613bf9565b9150614abd83613bf9565b925082614acd57614acc614a78565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614b34602183613ae6565b9150614b3f82614ad8565b604082019050919050565b60006020820190508181036000830152614b6381614b27565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614bce81613bbb565b82525050565b6000614be08383614bc5565b60208301905092915050565b6000602082019050919050565b6000614c0482614b99565b614c0e8185614ba4565b9350614c1983614bb5565b8060005b83811015614c4a578151614c318882614bd4565b9750614c3c83614bec565b925050600181019050614c1d565b5085935050505092915050565b600060a082019050614c6c6000830188613ca5565b614c7960208301876141e7565b8181036040830152614c8b8186614bf9565b9050614c9a6060830185613e31565b614ca76080830184613ca5565b9695505050505050565b6000614cbc82613bf9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614cef57614cee6144ca565b5b600182019050919050565b600060208284031215614d1057614d0f613b96565b5b6000614d1e84828501614257565b9150509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122094d65eea89f9734829fcc208f8942f2941aace2f5cd99975ff69351b2e45b7e964736f6c634300080b0033
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.