ERC-20
Overview
Max Total Supply
1,000,000,000 CLOG
Holders
71
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,246,104.287889769 CLOGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CLOG
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-03 */ /** https://Cliffordog.com https://t.me/cliffordog https://X.com/theogclifford */ // SPDX-License-Identifier: MIT pragma solidity 0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract CLOG is ERC20, Ownable{ using Address for address payable; mapping (address user => bool status) public isExcludedFromFees; mapping (address buyer => bool status) public whitelistedBuyer; mapping (address buyer => bool status) public earlyBuyer; mapping (address buyer => uint256 amount) public earlyBuyerDailySell; mapping (address user => bool status) public isBlacklisted; mapping (address user => uint256 timestamp) public lastTrade; IRouter public router; address public pair; address public marketingWallet = 0xAf6f1bef0B666D53F817a07698ca78155698a9Ea; address public marketingWallet2 = 0xAf6f1bef0B666D53F817a07698ca78155698a9Ea; bool private swapping; bool public swapEnabled; bool public tradingEnabled; bool public finalTaxSet; uint256 public swapThreshold; uint256 public maxWallet = 10000000 * 10**9; uint256 public maxTx = 10000000 * 10**9; uint256 public earlyBuyerDailyMaxSell; uint256 public delay = 0 minutes; uint256 public deadBlocks = 2; uint256 public whitelistPeriod = 0 minutes; uint256 public launchBlock; uint256 public launchTimestamp; uint256 public finalTaxTimestamp = 30 minutes; struct Taxes { uint256 buy; uint256 sell; uint256 transfer; } Taxes public taxes = Taxes(1,2,0); modifier mutexLock() { if (!swapping) { swapping = true; _; swapping = false; } } string private constant _name = unicode"Clifford OG"; string private constant _symbol = unicode"CLOG"; constructor(address _router) ERC20(_name, _symbol) { _mint(msg.sender, 1000000000 * 10 ** 9); router = IRouter(_router); isExcludedFromFees[address(this)] = true; isExcludedFromFees[msg.sender] = true; isExcludedFromFees[marketingWallet] = true; swapThreshold = maxWallet; _approve(address(this), address(router), type(uint256).max); } function decimals() public view virtual override returns (uint8) { return 9; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if (swapping || isExcludedFromFees[sender] || isExcludedFromFees[recipient]) { super._transfer(sender, recipient, amount); return; } else{ require(tradingEnabled, "Trading not enabled"); require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address"); if(!finalTaxSet && finalTaxTimestamp + launchTimestamp < block.timestamp){ finalTaxSet = true; taxes = Taxes(20, 25, 0); // set final tax after 1 hour } if(launchTimestamp + whitelistPeriod > block.timestamp){ if(sender == pair && !whitelistedBuyer[recipient]) require(amount <= maxTx, "MaxTx limit exceeded"); } else require(amount <= maxTx, "MaxTx limit exceeded"); if(sender != pair) { if(earlyBuyer[sender]){ if(block.timestamp - lastTrade[sender] >= 1 days){ earlyBuyerDailyMaxSell = 0; } require(earlyBuyerDailySell[sender] + amount <= earlyBuyerDailyMaxSell, "Early buyer sell limit exceeded"); earlyBuyerDailySell[sender] += amount; } require(lastTrade[sender] + delay <= block.timestamp, "WAIT PLEASE"); lastTrade[sender] = block.timestamp; } if(recipient != pair){ if(launchTimestamp + whitelistPeriod > block.timestamp && !whitelistedBuyer[recipient]){ isBlacklisted[recipient] = true; } require(balanceOf(recipient) + amount <= maxWallet, "Wallet limit exceeded"); require(lastTrade[recipient] + delay <= block.timestamp, "WAIT PLEASE"); lastTrade[recipient] = block.timestamp; } } if(whitelistedBuyer[recipient] && sender == pair && launchTimestamp + whitelistPeriod > block.timestamp){ earlyBuyer[recipient] = true; } uint256 fees; if(recipient == pair) fees = amount * taxes.sell / 100; else if(sender == pair && !whitelistedBuyer[recipient]) fees = amount * taxes.buy / 100; else if(sender != pair && recipient != pair) fees = amount * taxes.transfer / 100; if (swapEnabled && recipient == pair && !swapping) swapFees(); super._transfer(sender, recipient, amount - fees); if(fees > 0){ super._transfer(sender, address(this), fees); } } function swapFees() private mutexLock { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { uint256 amountToSwap = swapThreshold; if(swapThreshold == maxWallet) swapThreshold = totalSupply() * 200 / 10000; uint256 initialBalance = address(this).balance; swapTokensForEth(amountToSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 deltaBalance1 = deltaBalance * 100 / 100; // 100% of the balance goes to the first marketing wallet uint256 deltaBalance2 = deltaBalance * 0 / 100; // 0% of the balance goes to the second marketing wallet payable(marketingWallet).sendValue(deltaBalance1); payable(marketingWallet2).sendValue(deltaBalance2); } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function setSwapEnabled(bool status) external onlyOwner { swapEnabled = status; } function setSwapTreshhold(uint256 amount) external onlyOwner { swapThreshold = amount * 10**9; } function setTaxes(uint256 _buyTax, uint256 _sellTax, uint256 _transferTax) external onlyOwner { taxes = Taxes(_buyTax, _sellTax, _transferTax); } function setRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; _approve(address(this), address(newRouter), type(uint256).max); } function enableTrading() external onlyOwner{ require(!tradingEnabled, "Already enabled"); tradingEnabled = true; swapEnabled = true; taxes.transfer = 99; launchBlock = block.number; launchTimestamp = block.timestamp; } function removeLimits() external onlyOwner{ maxTx = totalSupply(); maxWallet = totalSupply(); taxes.transfer = 0; } function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{ maxTx = _maxTx * 10**9; maxWallet = _maxWallet * 10**9; } function setIsExcludedFromFees(address _address, bool state) external onlyOwner { isExcludedFromFees[_address] = state; } function setBlacklist(address[] memory accounts, bool status) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ isBlacklisted[accounts[i]] = status; } } function rescueETH(uint256 weiAmount) external { uint256 amount1 = weiAmount * 30 / 100; uint256 amount2 = weiAmount * 70 / 100; payable(marketingWallet).sendValue(amount1); payable(marketingWallet2).sendValue(amount2); } function rescueERC20(address tokenAdd, uint256 amount) external { uint256 amount1 = amount * 30 / 100; uint256 amount2 = amount * 70 / 100; IERC20(tokenAdd).transfer(marketingWallet, amount1); IERC20(tokenAdd).transfer(marketingWallet2, amount2); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlyBuyerDailyMaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyerDailySell","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalTaxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"setRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"whitelistedBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273af6f1bef0b666d53f817a07698ca78155698a9ea600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073af6f1bef0b666d53f817a07698ca78155698a9ea600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550662386f26fc10000601155662386f26fc10000601255600060145560026015556000601655610708601955604051806060016040528060018152602001600281526020016000815250601a60008201518160000155602082015181600101556040820151816002015550503480156200012657600080fd5b50604051620051ee380380620051ee83398181016040528101906200014c919062000868565b6040518060400160405280600b81526020017f436c6966666f7264204f470000000000000000000000000000000000000000008152506040518060400160405280600481526020017f434c4f47000000000000000000000000000000000000000000000000000000008152508160039081620001c9919062000b14565b508060049081620001db919062000b14565b505050620001fe620001f2620003e860201b60201c565b620003f060201b60201c565b6200021833670de0b6b3a7640000620004b660201b60201c565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601154601081905550620003e130600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200062360201b60201c565b5062000e46565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000528576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200051f9062000c5c565b60405180910390fd5b6200053c60008383620007f460201b60201c565b806002600082825462000550919062000cad565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000603919062000cf9565b60405180910390a36200061f60008383620007f960201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200068c9062000d8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000707576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006fe9062000e24565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620007e7919062000cf9565b60405180910390a3505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008308262000803565b9050919050565b620008428162000823565b81146200084e57600080fd5b50565b600081519050620008628162000837565b92915050565b600060208284031215620008815762000880620007fe565b5b6000620008918482850162000851565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200091c57607f821691505b602082108103620009325762000931620008d4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200099c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200095d565b620009a886836200095d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009f5620009ef620009e984620009c0565b620009ca565b620009c0565b9050919050565b6000819050919050565b62000a1183620009d4565b62000a2962000a2082620009fc565b8484546200096a565b825550505050565b600090565b62000a4062000a31565b62000a4d81848462000a06565b505050565b5b8181101562000a755762000a6960008262000a36565b60018101905062000a53565b5050565b601f82111562000ac45762000a8e8162000938565b62000a99846200094d565b8101602085101562000aa9578190505b62000ac162000ab8856200094d565b83018262000a52565b50505b505050565b600082821c905092915050565b600062000ae96000198460080262000ac9565b1980831691505092915050565b600062000b04838362000ad6565b9150826002028217905092915050565b62000b1f826200089a565b67ffffffffffffffff81111562000b3b5762000b3a620008a5565b5b62000b47825462000903565b62000b5482828562000a79565b600060209050601f83116001811462000b8c576000841562000b77578287015190505b62000b83858262000af6565b86555062000bf3565b601f19841662000b9c8662000938565b60005b8281101562000bc65784890151825560018201915060208501945060208101905062000b9f565b8683101562000be6578489015162000be2601f89168262000ad6565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c44601f8362000bfb565b915062000c518262000c0c565b602082019050919050565b6000602082019050818103600083015262000c778162000c35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000cba82620009c0565b915062000cc783620009c0565b925082820190508082111562000ce25762000ce162000c7e565b5b92915050565b62000cf381620009c0565b82525050565b600060208201905062000d10600083018462000ce8565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000d7460248362000bfb565b915062000d818262000d16565b604082019050919050565b6000602082019050818103600083015262000da78162000d65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e0c60228362000bfb565b915062000e198262000dae565b604082019050919050565b6000602082019050818103600083015262000e3f8162000dfd565b9050919050565b6143988062000e566000396000f3fe6080604052600436106102b25760003560e01c80638a8c523c11610175578063b5d7ab9a116100dc578063e25c392311610095578063f887ea401161006f578063f887ea4014610ad7578063f8b45b0514610b02578063fabb0b4f14610b2d578063fe575a8714610b58576102b9565b8063e25c392314610a5a578063e9dae5ed14610a85578063f2fde38b14610aae576102b9565b8063b5d7ab9a1461093a578063c26d7be014610963578063c4590d3f146109a0578063d00efb2f146109c9578063dd62ed3e146109f4578063e01af92c14610a31576102b9565b80639e252f001161012e5780639e252f0014610818578063a457c2d714610841578063a8aa1b311461087e578063a9059cbb146108a9578063adf18693146108e6578063b48e665e1461090f576102b9565b80638a8c523c1461072c5780638cd4426d146107435780638da5cb5b1461076c578063950e40501461079757806395d89b41146107c25780639ccde992146107ed576102b9565b80634ada218b1161021957806370a08231116101d257806370a082311461063e578063715018a61461067b578063728f8eea146106925780637437681e146106bf578063751039fc146106ea57806375f0a87414610701576102b9565b80634ada218b146105185780634d2ff7c1146105435780634fbee1931461058057806365cf7c9b146105bd5780636a42b8f8146105e85780636ddd171314610613576102b9565b806323b872dd1161026b57806323b872dd146103d0578063255f40b61461040d578063313ce56714610436578063395093511461046157806339937cde1461049e578063445418ce146104db576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b3146103145780630d0020f2146103515780630e85d1e31461037c57806318160ddd146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b95565b6040516102e09190612f02565b60405180910390f35b3480156102f557600080fd5b506102fe610b9b565b60405161030b9190612fad565b60405180910390f35b34801561032057600080fd5b5061033b6004803603810190610336919061306d565b610c2d565b60405161034891906130c8565b60405180910390f35b34801561035d57600080fd5b50610366610c50565b60405161037391906130f2565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190613281565b610c76565b005b3480156103b157600080fd5b506103ba610d13565b6040516103c79190612f02565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f291906132dd565b610d1d565b60405161040491906130c8565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613330565b610d4c565b005b34801561044257600080fd5b5061044b610e05565b604051610458919061338c565b60405180910390f35b34801561046d57600080fd5b506104886004803603810190610483919061306d565b610e0e565b60405161049591906130c8565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c091906133a7565b610e45565b6040516104d291906130c8565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd91906133a7565b610e65565b60405161050f9190612f02565b60405180910390f35b34801561052457600080fd5b5061052d610e7d565b60405161053a91906130c8565b60405180910390f35b34801561054f57600080fd5b5061056a600480360381019061056591906133a7565b610e90565b60405161057791906130c8565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906133a7565b610eb0565b6040516105b491906130c8565b60405180910390f35b3480156105c957600080fd5b506105d2610ed0565b6040516105df9190612f02565b60405180910390f35b3480156105f457600080fd5b506105fd610ed6565b60405161060a9190612f02565b60405180910390f35b34801561061f57600080fd5b50610628610edc565b60405161063591906130c8565b60405180910390f35b34801561064a57600080fd5b50610665600480360381019061066091906133a7565b610eef565b6040516106729190612f02565b60405180910390f35b34801561068757600080fd5b50610690610f37565b005b34801561069e57600080fd5b506106a7610f4b565b6040516106b6939291906133d4565b60405180910390f35b3480156106cb57600080fd5b506106d4610f63565b6040516106e19190612f02565b60405180910390f35b3480156106f657600080fd5b506106ff610f69565b005b34801561070d57600080fd5b50610716610f9a565b60405161072391906130f2565b60405180910390f35b34801561073857600080fd5b50610741610fc0565b005b34801561074f57600080fd5b5061076a6004803603810190610765919061306d565b611069565b005b34801561077857600080fd5b506107816111eb565b60405161078e91906130f2565b60405180910390f35b3480156107a357600080fd5b506107ac611215565b6040516107b99190612f02565b60405180910390f35b3480156107ce57600080fd5b506107d761121b565b6040516107e49190612fad565b60405180910390f35b3480156107f957600080fd5b506108026112ad565b60405161080f91906130c8565b60405180910390f35b34801561082457600080fd5b5061083f600480360381019061083a919061340b565b6112c0565b005b34801561084d57600080fd5b506108686004803603810190610863919061306d565b611395565b60405161087591906130c8565b60405180910390f35b34801561088a57600080fd5b5061089361140c565b6040516108a091906130f2565b60405180910390f35b3480156108b557600080fd5b506108d060048036038101906108cb919061306d565b611432565b6040516108dd91906130c8565b60405180910390f35b3480156108f257600080fd5b5061090d60048036038101906109089190613438565b611455565b005b34801561091b57600080fd5b506109246114b8565b6040516109319190612f02565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c919061340b565b6114be565b005b34801561096f57600080fd5b5061098a600480360381019061098591906133a7565b6114df565b6040516109979190612f02565b60405180910390f35b3480156109ac57600080fd5b506109c760048036038101906109c29190613478565b6114f7565b005b3480156109d557600080fd5b506109de61152f565b6040516109eb9190612f02565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613330565b611535565b604051610a289190612f02565b60405180910390f35b348015610a3d57600080fd5b50610a586004803603810190610a5391906134b8565b6115bc565b005b348015610a6657600080fd5b50610a6f6115e1565b604051610a7c9190612f02565b60405180910390f35b348015610a9157600080fd5b50610aac6004803603810190610aa791906134e5565b6115e7565b005b348015610aba57600080fd5b50610ad56004803603810190610ad091906133a7565b611632565b005b348015610ae357600080fd5b50610aec6116b5565b604051610af99190613597565b60405180910390f35b348015610b0e57600080fd5b50610b176116db565b604051610b249190612f02565b60405180910390f35b348015610b3957600080fd5b50610b426116e1565b604051610b4f9190612f02565b60405180910390f35b348015610b6457600080fd5b50610b7f6004803603810190610b7a91906133a7565b6116e7565b604051610b8c91906130c8565b60405180910390f35b60105481565b606060038054610baa906135e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd6906135e1565b8015610c235780601f10610bf857610100808354040283529160200191610c23565b820191906000526020600020905b815481529060010190602001808311610c0657829003601f168201915b5050505050905090565b600080610c38611707565b9050610c4581858561170f565b600191505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c7e6118d8565b60005b8251811015610d0e5781600a6000858481518110610ca257610ca1613612565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d0690613670565b915050610c81565b505050565b6000600254905090565b600080610d28611707565b9050610d35858285611956565b610d408585856119e2565b60019150509392505050565b610d546118d8565b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0130837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61170f565b5050565b60006009905090565b600080610e19611707565b9050610e3a818585610e2b8589611535565b610e3591906136b8565b61170f565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b600f60169054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b60185481565b60145481565b600f60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f3f6118d8565b610f496000612708565b565b601a8060000154908060010154908060020154905083565b60125481565b610f716118d8565b610f79610d13565b601281905550610f87610d13565b6011819055506000601a60020181905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fc86118d8565b600f60169054906101000a900460ff1615611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90613738565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60156101000a81548160ff0219169083151502179055506063601a600201819055504360178190555042601881905550565b60006064601e8361107a9190613758565b61108491906137c9565b9050600060646046846110979190613758565b6110a191906137c9565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016111009291906137fa565b6020604051808303816000875af115801561111f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111439190613838565b508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111a19291906137fa565b6020604051808303816000875af11580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e49190613838565b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606004805461122a906135e1565b80601f0160208091040260200160405190810160405280929190818152602001828054611256906135e1565b80156112a35780601f10611278576101008083540402835291602001916112a3565b820191906000526020600020905b81548152906001019060200180831161128657829003601f168201915b5050505050905090565b600f60179054906101000a900460ff1681565b60006064601e836112d19190613758565b6112db91906137c9565b9050600060646046846112ee9190613758565b6112f891906137c9565b905061134582600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b61139081600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b505050565b6000806113a0611707565b905060006113ae8286611535565b9050838110156113f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ea906138d7565b60405180910390fd5b611400828686840361170f565b60019250505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061143d611707565b905061144a8185856119e2565b600191505092915050565b61145d6118d8565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b6114c66118d8565b633b9aca00816114d69190613758565b60108190555050565b600b6020528060005260406000206000915090505481565b6114ff6118d8565b633b9aca008261150f9190613758565b601281905550633b9aca00816115259190613758565b6011819055505050565b60175481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c46118d8565b80600f60156101000a81548160ff02191690831515021790555050565b60135481565b6115ef6118d8565b604051806060016040528084815260200183815260200182815250601a600082015181600001556020820151816001015560408201518160020155905050505050565b61163a6118d8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090613969565b60405180910390fd5b6116b281612708565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b60155481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361177e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611775906139fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613a8d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118cb9190612f02565b60405180910390a3505050565b6118e0611707565b73ffffffffffffffffffffffffffffffffffffffff166118fe6111eb565b73ffffffffffffffffffffffffffffffffffffffff1614611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194b90613af9565b60405180910390fd5b565b60006119628484611535565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119dc57818110156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c590613b65565b60405180910390fd5b6119db848484840361170f565b5b50505050565b60008111611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90613bf7565b60405180910390fd5b600f60149054906101000a900460ff1680611a895750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611add5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611af257611aed8383836128c2565b612703565b600f60169054906101000a900460ff16611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3890613c63565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611be55750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613ccf565b60405180910390fd5b600f60179054906101000a900460ff16158015611c4f575042601854601954611c4d91906136b8565b105b15611cb1576001600f60176101000a81548160ff021916908315150217905550604051806060016040528060148152602001601981526020016000815250601a6000820151816000015560208201518160010155604082015181600201559050505b42601654601854611cc291906136b8565b1115611dbf57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d6f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dba57601254811115611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db090613d3b565b60405180910390fd5b5b611e05565b601254811115611e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfb90613d3b565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146120c357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fef5762015180600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442611efb9190613d5b565b10611f095760006013819055505b60135481600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5791906136b8565b1115611f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8f90613ddb565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fe791906136b8565b925050819055505b42601454600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d91906136b8565b111561207e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207590613e47565b60405180910390fd5b42600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461230a574260165460185461212991906136b8565b1180156121805750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121de576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601154816121eb84610eef565b6121f591906136b8565b1115612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613eb3565b60405180910390fd5b42601454600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228491906136b8565b11156122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc90613e47565b60405180910390fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123b05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156123ca5750426016546018546123c891906136b8565b115b15612428576001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124a3576064601a60010154836124929190613758565b61249c91906137c9565b9050612646565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561254a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612573576064601a60000154836125629190613758565b61256c91906137c9565b9050612645565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561261f5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612644576064601a60020154836126379190613758565b61264191906137c9565b90505b5b5b600f60159054906101000a900460ff1680156126af5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156126c85750600f60149054906101000a900460ff16155b156126d6576126d5612b38565b5b6126ec848483856126e79190613d5b565b6128c2565b6000811115612701576127008430836128c2565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280890613f1f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161283790613f70565b60006040518083038185875af1925050503d8060008114612874576040519150601f19603f3d011682016040523d82523d6000602084013e612879565b606091505b50509050806128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490613ff7565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292890614089565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129979061411b565b60405180910390fd5b6129ab838383612cc9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a28906141ad565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b1f9190612f02565b60405180910390a3612b32848484612cce565b50505050565b600f60149054906101000a900460ff16612cc7576001600f60146101000a81548160ff0219169083151502179055506000612b7230610eef565b90506010548110612caa576000601054905060115460105403612bb75761271060c8612b9c610d13565b612ba69190613758565b612bb091906137c9565b6010819055505b6000479050612bc582612cd3565b60008147612bd39190613d5b565b9050600060648083612be59190613758565b612bef91906137c9565b905060006064600084612c029190613758565b612c0c91906137c9565b9050612c5982600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b612ca481600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b50505050505b506000600f60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff811115612cf057612cef613112565b5b604051908082528060200260200182016040528015612d1e5781602001602082028036833780820191505090505b5090503081600081518110612d3657612d35613612565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0191906141e2565b81600181518110612e1557612e14613612565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612eb3959493929190614308565b600060405180830381600087803b158015612ecd57600080fd5b505af1158015612ee1573d6000803e3d6000fd5b505050505050565b6000819050919050565b612efc81612ee9565b82525050565b6000602082019050612f176000830184612ef3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f57578082015181840152602081019050612f3c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f7f82612f1d565b612f898185612f28565b9350612f99818560208601612f39565b612fa281612f63565b840191505092915050565b60006020820190508181036000830152612fc78184612f74565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061300e82612fe3565b9050919050565b61301e81613003565b811461302957600080fd5b50565b60008135905061303b81613015565b92915050565b61304a81612ee9565b811461305557600080fd5b50565b60008135905061306781613041565b92915050565b6000806040838503121561308457613083612fd9565b5b60006130928582860161302c565b92505060206130a385828601613058565b9150509250929050565b60008115159050919050565b6130c2816130ad565b82525050565b60006020820190506130dd60008301846130b9565b92915050565b6130ec81613003565b82525050565b600060208201905061310760008301846130e3565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61314a82612f63565b810181811067ffffffffffffffff8211171561316957613168613112565b5b80604052505050565b600061317c612fcf565b90506131888282613141565b919050565b600067ffffffffffffffff8211156131a8576131a7613112565b5b602082029050602081019050919050565b600080fd5b60006131d16131cc8461318d565b613172565b905080838252602082019050602084028301858111156131f4576131f36131b9565b5b835b8181101561321d5780613209888261302c565b8452602084019350506020810190506131f6565b5050509392505050565b600082601f83011261323c5761323b61310d565b5b813561324c8482602086016131be565b91505092915050565b61325e816130ad565b811461326957600080fd5b50565b60008135905061327b81613255565b92915050565b6000806040838503121561329857613297612fd9565b5b600083013567ffffffffffffffff8111156132b6576132b5612fde565b5b6132c285828601613227565b92505060206132d38582860161326c565b9150509250929050565b6000806000606084860312156132f6576132f5612fd9565b5b60006133048682870161302c565b93505060206133158682870161302c565b925050604061332686828701613058565b9150509250925092565b6000806040838503121561334757613346612fd9565b5b60006133558582860161302c565b92505060206133668582860161302c565b9150509250929050565b600060ff82169050919050565b61338681613370565b82525050565b60006020820190506133a1600083018461337d565b92915050565b6000602082840312156133bd576133bc612fd9565b5b60006133cb8482850161302c565b91505092915050565b60006060820190506133e96000830186612ef3565b6133f66020830185612ef3565b6134036040830184612ef3565b949350505050565b60006020828403121561342157613420612fd9565b5b600061342f84828501613058565b91505092915050565b6000806040838503121561344f5761344e612fd9565b5b600061345d8582860161302c565b925050602061346e8582860161326c565b9150509250929050565b6000806040838503121561348f5761348e612fd9565b5b600061349d85828601613058565b92505060206134ae85828601613058565b9150509250929050565b6000602082840312156134ce576134cd612fd9565b5b60006134dc8482850161326c565b91505092915050565b6000806000606084860312156134fe576134fd612fd9565b5b600061350c86828701613058565b935050602061351d86828701613058565b925050604061352e86828701613058565b9150509250925092565b6000819050919050565b600061355d61355861355384612fe3565b613538565b612fe3565b9050919050565b600061356f82613542565b9050919050565b600061358182613564565b9050919050565b61359181613576565b82525050565b60006020820190506135ac6000830184613588565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135f957607f821691505b60208210810361360c5761360b6135b2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061367b82612ee9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136ad576136ac613641565b5b600182019050919050565b60006136c382612ee9565b91506136ce83612ee9565b92508282019050808211156136e6576136e5613641565b5b92915050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000613722600f83612f28565b915061372d826136ec565b602082019050919050565b6000602082019050818103600083015261375181613715565b9050919050565b600061376382612ee9565b915061376e83612ee9565b925082820261377c81612ee9565b9150828204841483151761379357613792613641565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137d482612ee9565b91506137df83612ee9565b9250826137ef576137ee61379a565b5b828204905092915050565b600060408201905061380f60008301856130e3565b61381c6020830184612ef3565b9392505050565b60008151905061383281613255565b92915050565b60006020828403121561384e5761384d612fd9565b5b600061385c84828501613823565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006138c1602583612f28565b91506138cc82613865565b604082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613953602683612f28565b915061395e826138f7565b604082019050919050565b6000602082019050818103600083015261398281613946565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139e5602483612f28565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a77602283612f28565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ae3602083612f28565b9150613aee82613aad565b602082019050919050565b60006020820190508181036000830152613b1281613ad6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613b4f601d83612f28565b9150613b5a82613b19565b602082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613be1602983612f28565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613c4d601383612f28565b9150613c5882613c17565b602082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000613cb9601383612f28565b9150613cc482613c83565b602082019050919050565b60006020820190508181036000830152613ce881613cac565b9050919050565b7f4d61785478206c696d6974206578636565646564000000000000000000000000600082015250565b6000613d25601483612f28565b9150613d3082613cef565b602082019050919050565b60006020820190508181036000830152613d5481613d18565b9050919050565b6000613d6682612ee9565b9150613d7183612ee9565b9250828203905081811115613d8957613d88613641565b5b92915050565b7f4561726c792062757965722073656c6c206c696d697420657863656564656400600082015250565b6000613dc5601f83612f28565b9150613dd082613d8f565b602082019050919050565b60006020820190508181036000830152613df481613db8565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b6000613e31600b83612f28565b9150613e3c82613dfb565b602082019050919050565b60006020820190508181036000830152613e6081613e24565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b6000613e9d601583612f28565b9150613ea882613e67565b602082019050919050565b60006020820190508181036000830152613ecc81613e90565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613f09601d83612f28565b9150613f1482613ed3565b602082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b600081905092915050565b50565b6000613f5a600083613f3f565b9150613f6582613f4a565b600082019050919050565b6000613f7b82613f4d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613fe1603a83612f28565b9150613fec82613f85565b604082019050919050565b6000602082019050818103600083015261401081613fd4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614073602583612f28565b915061407e82614017565b604082019050919050565b600060208201905081810360008301526140a281614066565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614105602383612f28565b9150614110826140a9565b604082019050919050565b60006020820190508181036000830152614134816140f8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614197602683612f28565b91506141a28261413b565b604082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b6000815190506141dc81613015565b92915050565b6000602082840312156141f8576141f7612fd9565b5b6000614206848285016141cd565b91505092915050565b6000819050919050565b600061423461422f61422a8461420f565b613538565b612ee9565b9050919050565b61424481614219565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61427f81613003565b82525050565b60006142918383614276565b60208301905092915050565b6000602082019050919050565b60006142b58261424a565b6142bf8185614255565b93506142ca83614266565b8060005b838110156142fb5781516142e28882614285565b97506142ed8361429d565b9250506001810190506142ce565b5085935050505092915050565b600060a08201905061431d6000830188612ef3565b61432a602083018761423b565b818103604083015261433c81866142aa565b905061434b60608301856130e3565b6143586080830184612ef3565b969550505050505056fea2646970667358221220111c3f7b09230c375ea5c67974b23345f3e1034bbe5673f9235eb7290aaf3bc964736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106102b25760003560e01c80638a8c523c11610175578063b5d7ab9a116100dc578063e25c392311610095578063f887ea401161006f578063f887ea4014610ad7578063f8b45b0514610b02578063fabb0b4f14610b2d578063fe575a8714610b58576102b9565b8063e25c392314610a5a578063e9dae5ed14610a85578063f2fde38b14610aae576102b9565b8063b5d7ab9a1461093a578063c26d7be014610963578063c4590d3f146109a0578063d00efb2f146109c9578063dd62ed3e146109f4578063e01af92c14610a31576102b9565b80639e252f001161012e5780639e252f0014610818578063a457c2d714610841578063a8aa1b311461087e578063a9059cbb146108a9578063adf18693146108e6578063b48e665e1461090f576102b9565b80638a8c523c1461072c5780638cd4426d146107435780638da5cb5b1461076c578063950e40501461079757806395d89b41146107c25780639ccde992146107ed576102b9565b80634ada218b1161021957806370a08231116101d257806370a082311461063e578063715018a61461067b578063728f8eea146106925780637437681e146106bf578063751039fc146106ea57806375f0a87414610701576102b9565b80634ada218b146105185780634d2ff7c1146105435780634fbee1931461058057806365cf7c9b146105bd5780636a42b8f8146105e85780636ddd171314610613576102b9565b806323b872dd1161026b57806323b872dd146103d0578063255f40b61461040d578063313ce56714610436578063395093511461046157806339937cde1461049e578063445418ce146104db576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b3146103145780630d0020f2146103515780630e85d1e31461037c57806318160ddd146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b95565b6040516102e09190612f02565b60405180910390f35b3480156102f557600080fd5b506102fe610b9b565b60405161030b9190612fad565b60405180910390f35b34801561032057600080fd5b5061033b6004803603810190610336919061306d565b610c2d565b60405161034891906130c8565b60405180910390f35b34801561035d57600080fd5b50610366610c50565b60405161037391906130f2565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190613281565b610c76565b005b3480156103b157600080fd5b506103ba610d13565b6040516103c79190612f02565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f291906132dd565b610d1d565b60405161040491906130c8565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613330565b610d4c565b005b34801561044257600080fd5b5061044b610e05565b604051610458919061338c565b60405180910390f35b34801561046d57600080fd5b506104886004803603810190610483919061306d565b610e0e565b60405161049591906130c8565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c091906133a7565b610e45565b6040516104d291906130c8565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd91906133a7565b610e65565b60405161050f9190612f02565b60405180910390f35b34801561052457600080fd5b5061052d610e7d565b60405161053a91906130c8565b60405180910390f35b34801561054f57600080fd5b5061056a600480360381019061056591906133a7565b610e90565b60405161057791906130c8565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906133a7565b610eb0565b6040516105b491906130c8565b60405180910390f35b3480156105c957600080fd5b506105d2610ed0565b6040516105df9190612f02565b60405180910390f35b3480156105f457600080fd5b506105fd610ed6565b60405161060a9190612f02565b60405180910390f35b34801561061f57600080fd5b50610628610edc565b60405161063591906130c8565b60405180910390f35b34801561064a57600080fd5b50610665600480360381019061066091906133a7565b610eef565b6040516106729190612f02565b60405180910390f35b34801561068757600080fd5b50610690610f37565b005b34801561069e57600080fd5b506106a7610f4b565b6040516106b6939291906133d4565b60405180910390f35b3480156106cb57600080fd5b506106d4610f63565b6040516106e19190612f02565b60405180910390f35b3480156106f657600080fd5b506106ff610f69565b005b34801561070d57600080fd5b50610716610f9a565b60405161072391906130f2565b60405180910390f35b34801561073857600080fd5b50610741610fc0565b005b34801561074f57600080fd5b5061076a6004803603810190610765919061306d565b611069565b005b34801561077857600080fd5b506107816111eb565b60405161078e91906130f2565b60405180910390f35b3480156107a357600080fd5b506107ac611215565b6040516107b99190612f02565b60405180910390f35b3480156107ce57600080fd5b506107d761121b565b6040516107e49190612fad565b60405180910390f35b3480156107f957600080fd5b506108026112ad565b60405161080f91906130c8565b60405180910390f35b34801561082457600080fd5b5061083f600480360381019061083a919061340b565b6112c0565b005b34801561084d57600080fd5b506108686004803603810190610863919061306d565b611395565b60405161087591906130c8565b60405180910390f35b34801561088a57600080fd5b5061089361140c565b6040516108a091906130f2565b60405180910390f35b3480156108b557600080fd5b506108d060048036038101906108cb919061306d565b611432565b6040516108dd91906130c8565b60405180910390f35b3480156108f257600080fd5b5061090d60048036038101906109089190613438565b611455565b005b34801561091b57600080fd5b506109246114b8565b6040516109319190612f02565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c919061340b565b6114be565b005b34801561096f57600080fd5b5061098a600480360381019061098591906133a7565b6114df565b6040516109979190612f02565b60405180910390f35b3480156109ac57600080fd5b506109c760048036038101906109c29190613478565b6114f7565b005b3480156109d557600080fd5b506109de61152f565b6040516109eb9190612f02565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613330565b611535565b604051610a289190612f02565b60405180910390f35b348015610a3d57600080fd5b50610a586004803603810190610a5391906134b8565b6115bc565b005b348015610a6657600080fd5b50610a6f6115e1565b604051610a7c9190612f02565b60405180910390f35b348015610a9157600080fd5b50610aac6004803603810190610aa791906134e5565b6115e7565b005b348015610aba57600080fd5b50610ad56004803603810190610ad091906133a7565b611632565b005b348015610ae357600080fd5b50610aec6116b5565b604051610af99190613597565b60405180910390f35b348015610b0e57600080fd5b50610b176116db565b604051610b249190612f02565b60405180910390f35b348015610b3957600080fd5b50610b426116e1565b604051610b4f9190612f02565b60405180910390f35b348015610b6457600080fd5b50610b7f6004803603810190610b7a91906133a7565b6116e7565b604051610b8c91906130c8565b60405180910390f35b60105481565b606060038054610baa906135e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd6906135e1565b8015610c235780601f10610bf857610100808354040283529160200191610c23565b820191906000526020600020905b815481529060010190602001808311610c0657829003601f168201915b5050505050905090565b600080610c38611707565b9050610c4581858561170f565b600191505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c7e6118d8565b60005b8251811015610d0e5781600a6000858481518110610ca257610ca1613612565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d0690613670565b915050610c81565b505050565b6000600254905090565b600080610d28611707565b9050610d35858285611956565b610d408585856119e2565b60019150509392505050565b610d546118d8565b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0130837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61170f565b5050565b60006009905090565b600080610e19611707565b9050610e3a818585610e2b8589611535565b610e3591906136b8565b61170f565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b600f60169054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b60185481565b60145481565b600f60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f3f6118d8565b610f496000612708565b565b601a8060000154908060010154908060020154905083565b60125481565b610f716118d8565b610f79610d13565b601281905550610f87610d13565b6011819055506000601a60020181905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fc86118d8565b600f60169054906101000a900460ff1615611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90613738565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60156101000a81548160ff0219169083151502179055506063601a600201819055504360178190555042601881905550565b60006064601e8361107a9190613758565b61108491906137c9565b9050600060646046846110979190613758565b6110a191906137c9565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016111009291906137fa565b6020604051808303816000875af115801561111f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111439190613838565b508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111a19291906137fa565b6020604051808303816000875af11580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e49190613838565b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606004805461122a906135e1565b80601f0160208091040260200160405190810160405280929190818152602001828054611256906135e1565b80156112a35780601f10611278576101008083540402835291602001916112a3565b820191906000526020600020905b81548152906001019060200180831161128657829003601f168201915b5050505050905090565b600f60179054906101000a900460ff1681565b60006064601e836112d19190613758565b6112db91906137c9565b9050600060646046846112ee9190613758565b6112f891906137c9565b905061134582600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b61139081600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b505050565b6000806113a0611707565b905060006113ae8286611535565b9050838110156113f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ea906138d7565b60405180910390fd5b611400828686840361170f565b60019250505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061143d611707565b905061144a8185856119e2565b600191505092915050565b61145d6118d8565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b6114c66118d8565b633b9aca00816114d69190613758565b60108190555050565b600b6020528060005260406000206000915090505481565b6114ff6118d8565b633b9aca008261150f9190613758565b601281905550633b9aca00816115259190613758565b6011819055505050565b60175481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c46118d8565b80600f60156101000a81548160ff02191690831515021790555050565b60135481565b6115ef6118d8565b604051806060016040528084815260200183815260200182815250601a600082015181600001556020820151816001015560408201518160020155905050505050565b61163a6118d8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090613969565b60405180910390fd5b6116b281612708565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b60155481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361177e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611775906139fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613a8d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118cb9190612f02565b60405180910390a3505050565b6118e0611707565b73ffffffffffffffffffffffffffffffffffffffff166118fe6111eb565b73ffffffffffffffffffffffffffffffffffffffff1614611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194b90613af9565b60405180910390fd5b565b60006119628484611535565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119dc57818110156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c590613b65565b60405180910390fd5b6119db848484840361170f565b5b50505050565b60008111611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90613bf7565b60405180910390fd5b600f60149054906101000a900460ff1680611a895750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611add5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611af257611aed8383836128c2565b612703565b600f60169054906101000a900460ff16611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3890613c63565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611be55750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613ccf565b60405180910390fd5b600f60179054906101000a900460ff16158015611c4f575042601854601954611c4d91906136b8565b105b15611cb1576001600f60176101000a81548160ff021916908315150217905550604051806060016040528060148152602001601981526020016000815250601a6000820151816000015560208201518160010155604082015181600201559050505b42601654601854611cc291906136b8565b1115611dbf57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d6f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dba57601254811115611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db090613d3b565b60405180910390fd5b5b611e05565b601254811115611e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfb90613d3b565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146120c357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fef5762015180600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442611efb9190613d5b565b10611f095760006013819055505b60135481600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5791906136b8565b1115611f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8f90613ddb565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fe791906136b8565b925050819055505b42601454600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d91906136b8565b111561207e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207590613e47565b60405180910390fd5b42600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461230a574260165460185461212991906136b8565b1180156121805750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121de576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601154816121eb84610eef565b6121f591906136b8565b1115612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613eb3565b60405180910390fd5b42601454600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228491906136b8565b11156122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc90613e47565b60405180910390fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123b05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156123ca5750426016546018546123c891906136b8565b115b15612428576001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124a3576064601a60010154836124929190613758565b61249c91906137c9565b9050612646565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561254a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612573576064601a60000154836125629190613758565b61256c91906137c9565b9050612645565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561261f5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612644576064601a60020154836126379190613758565b61264191906137c9565b90505b5b5b600f60159054906101000a900460ff1680156126af5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156126c85750600f60149054906101000a900460ff16155b156126d6576126d5612b38565b5b6126ec848483856126e79190613d5b565b6128c2565b6000811115612701576127008430836128c2565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280890613f1f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161283790613f70565b60006040518083038185875af1925050503d8060008114612874576040519150601f19603f3d011682016040523d82523d6000602084013e612879565b606091505b50509050806128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490613ff7565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292890614089565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129979061411b565b60405180910390fd5b6129ab838383612cc9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a28906141ad565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b1f9190612f02565b60405180910390a3612b32848484612cce565b50505050565b600f60149054906101000a900460ff16612cc7576001600f60146101000a81548160ff0219169083151502179055506000612b7230610eef565b90506010548110612caa576000601054905060115460105403612bb75761271060c8612b9c610d13565b612ba69190613758565b612bb091906137c9565b6010819055505b6000479050612bc582612cd3565b60008147612bd39190613d5b565b9050600060648083612be59190613758565b612bef91906137c9565b905060006064600084612c029190613758565b612c0c91906137c9565b9050612c5982600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b612ca481600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ce90919063ffffffff16565b50505050505b506000600f60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff811115612cf057612cef613112565b5b604051908082528060200260200182016040528015612d1e5781602001602082028036833780820191505090505b5090503081600081518110612d3657612d35613612565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0191906141e2565b81600181518110612e1557612e14613612565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612eb3959493929190614308565b600060405180830381600087803b158015612ecd57600080fd5b505af1158015612ee1573d6000803e3d6000fd5b505050505050565b6000819050919050565b612efc81612ee9565b82525050565b6000602082019050612f176000830184612ef3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f57578082015181840152602081019050612f3c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f7f82612f1d565b612f898185612f28565b9350612f99818560208601612f39565b612fa281612f63565b840191505092915050565b60006020820190508181036000830152612fc78184612f74565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061300e82612fe3565b9050919050565b61301e81613003565b811461302957600080fd5b50565b60008135905061303b81613015565b92915050565b61304a81612ee9565b811461305557600080fd5b50565b60008135905061306781613041565b92915050565b6000806040838503121561308457613083612fd9565b5b60006130928582860161302c565b92505060206130a385828601613058565b9150509250929050565b60008115159050919050565b6130c2816130ad565b82525050565b60006020820190506130dd60008301846130b9565b92915050565b6130ec81613003565b82525050565b600060208201905061310760008301846130e3565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61314a82612f63565b810181811067ffffffffffffffff8211171561316957613168613112565b5b80604052505050565b600061317c612fcf565b90506131888282613141565b919050565b600067ffffffffffffffff8211156131a8576131a7613112565b5b602082029050602081019050919050565b600080fd5b60006131d16131cc8461318d565b613172565b905080838252602082019050602084028301858111156131f4576131f36131b9565b5b835b8181101561321d5780613209888261302c565b8452602084019350506020810190506131f6565b5050509392505050565b600082601f83011261323c5761323b61310d565b5b813561324c8482602086016131be565b91505092915050565b61325e816130ad565b811461326957600080fd5b50565b60008135905061327b81613255565b92915050565b6000806040838503121561329857613297612fd9565b5b600083013567ffffffffffffffff8111156132b6576132b5612fde565b5b6132c285828601613227565b92505060206132d38582860161326c565b9150509250929050565b6000806000606084860312156132f6576132f5612fd9565b5b60006133048682870161302c565b93505060206133158682870161302c565b925050604061332686828701613058565b9150509250925092565b6000806040838503121561334757613346612fd9565b5b60006133558582860161302c565b92505060206133668582860161302c565b9150509250929050565b600060ff82169050919050565b61338681613370565b82525050565b60006020820190506133a1600083018461337d565b92915050565b6000602082840312156133bd576133bc612fd9565b5b60006133cb8482850161302c565b91505092915050565b60006060820190506133e96000830186612ef3565b6133f66020830185612ef3565b6134036040830184612ef3565b949350505050565b60006020828403121561342157613420612fd9565b5b600061342f84828501613058565b91505092915050565b6000806040838503121561344f5761344e612fd9565b5b600061345d8582860161302c565b925050602061346e8582860161326c565b9150509250929050565b6000806040838503121561348f5761348e612fd9565b5b600061349d85828601613058565b92505060206134ae85828601613058565b9150509250929050565b6000602082840312156134ce576134cd612fd9565b5b60006134dc8482850161326c565b91505092915050565b6000806000606084860312156134fe576134fd612fd9565b5b600061350c86828701613058565b935050602061351d86828701613058565b925050604061352e86828701613058565b9150509250925092565b6000819050919050565b600061355d61355861355384612fe3565b613538565b612fe3565b9050919050565b600061356f82613542565b9050919050565b600061358182613564565b9050919050565b61359181613576565b82525050565b60006020820190506135ac6000830184613588565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135f957607f821691505b60208210810361360c5761360b6135b2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061367b82612ee9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136ad576136ac613641565b5b600182019050919050565b60006136c382612ee9565b91506136ce83612ee9565b92508282019050808211156136e6576136e5613641565b5b92915050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000613722600f83612f28565b915061372d826136ec565b602082019050919050565b6000602082019050818103600083015261375181613715565b9050919050565b600061376382612ee9565b915061376e83612ee9565b925082820261377c81612ee9565b9150828204841483151761379357613792613641565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137d482612ee9565b91506137df83612ee9565b9250826137ef576137ee61379a565b5b828204905092915050565b600060408201905061380f60008301856130e3565b61381c6020830184612ef3565b9392505050565b60008151905061383281613255565b92915050565b60006020828403121561384e5761384d612fd9565b5b600061385c84828501613823565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006138c1602583612f28565b91506138cc82613865565b604082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613953602683612f28565b915061395e826138f7565b604082019050919050565b6000602082019050818103600083015261398281613946565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139e5602483612f28565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a77602283612f28565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ae3602083612f28565b9150613aee82613aad565b602082019050919050565b60006020820190508181036000830152613b1281613ad6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613b4f601d83612f28565b9150613b5a82613b19565b602082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613be1602983612f28565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613c4d601383612f28565b9150613c5882613c17565b602082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000613cb9601383612f28565b9150613cc482613c83565b602082019050919050565b60006020820190508181036000830152613ce881613cac565b9050919050565b7f4d61785478206c696d6974206578636565646564000000000000000000000000600082015250565b6000613d25601483612f28565b9150613d3082613cef565b602082019050919050565b60006020820190508181036000830152613d5481613d18565b9050919050565b6000613d6682612ee9565b9150613d7183612ee9565b9250828203905081811115613d8957613d88613641565b5b92915050565b7f4561726c792062757965722073656c6c206c696d697420657863656564656400600082015250565b6000613dc5601f83612f28565b9150613dd082613d8f565b602082019050919050565b60006020820190508181036000830152613df481613db8565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b6000613e31600b83612f28565b9150613e3c82613dfb565b602082019050919050565b60006020820190508181036000830152613e6081613e24565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b6000613e9d601583612f28565b9150613ea882613e67565b602082019050919050565b60006020820190508181036000830152613ecc81613e90565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613f09601d83612f28565b9150613f1482613ed3565b602082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b600081905092915050565b50565b6000613f5a600083613f3f565b9150613f6582613f4a565b600082019050919050565b6000613f7b82613f4d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613fe1603a83612f28565b9150613fec82613f85565b604082019050919050565b6000602082019050818103600083015261401081613fd4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614073602583612f28565b915061407e82614017565b604082019050919050565b600060208201905081810360008301526140a281614066565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614105602383612f28565b9150614110826140a9565b604082019050919050565b60006020820190508181036000830152614134816140f8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614197602683612f28565b91506141a28261413b565b604082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b6000815190506141dc81613015565b92915050565b6000602082840312156141f8576141f7612fd9565b5b6000614206848285016141cd565b91505092915050565b6000819050919050565b600061423461422f61422a8461420f565b613538565b612ee9565b9050919050565b61424481614219565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61427f81613003565b82525050565b60006142918383614276565b60208301905092915050565b6000602082019050919050565b60006142b58261424a565b6142bf8185614255565b93506142ca83614266565b8060005b838110156142fb5781516142e28882614285565b97506142ed8361429d565b9250506001810190506142ce565b5085935050505092915050565b600060a08201905061431d6000830188612ef3565b61432a602083018761423b565b818103604083015261433c81866142aa565b905061434b60608301856130e3565b6143586080830184612ef3565b969550505050505056fea2646970667358221220111c3f7b09230c375ea5c67974b23345f3e1034bbe5673f9235eb7290aaf3bc964736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
8576:8388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9427:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2790:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3722:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9215:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16143:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3111:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3931:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15146:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10672:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4234:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8803:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8866:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9358:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8734:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8664:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9759:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9328:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3227:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;946:103;;;;;;;;;;;;;:::i;:::-;;9961:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;9512:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15668:147;;;;;;;;;;;;;:::i;:::-;;9133:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15382:277;;;;;;;;;;;;;:::i;:::-;;16633:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;711:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9796:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2898:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9391:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16363:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4480:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9107:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3362:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15990:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9677:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14853:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9006:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15823:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9726:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14750:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9558:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14975:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1057:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9079:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9462:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9641:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8941:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9427:28;;;;:::o;2790:100::-;2844:13;2877:5;2870:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:100;:::o;3722:201::-;3805:4;3822:13;3838:12;:10;:12::i;:::-;3822:28;;3861:32;3870:5;3877:7;3886:6;3861:8;:32::i;:::-;3911:4;3904:11;;;3722:201;;;;:::o;9215:76::-;;;;;;;;;;;;;:::o;16143:204::-;670:13;:11;:13::i;:::-;16238:9:::1;16234:106;16257:8;:15;16253:1;:19;16234:106;;;16322:6;16293:13;:26;16307:8;16316:1;16307:11;;;;;;;;:::i;:::-;;;;;;;;16293:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16274:3;;;;;:::i;:::-;;;;16234:106;;;;16143:204:::0;;:::o;3111:108::-;3172:7;3199:12;;3192:19;;3111:108;:::o;3931:295::-;4062:4;4079:15;4097:12;:10;:12::i;:::-;4079:30;;4120:38;4136:4;4142:7;4151:6;4120:15;:38::i;:::-;4169:27;4179:4;4185:2;4189:6;4169:9;:27::i;:::-;4214:4;4207:11;;;3931:295;;;;;:::o;15146:224::-;670:13;:11;:13::i;:::-;15254:9:::1;15237:6;;:27;;;;;;;;;;;;;;;;;;15282:7;15275:4;;:14;;;;;;;;;;;;;;;;;;15300:62;15317:4;15332:9;15344:17;15300:8;:62::i;:::-;15146:224:::0;;:::o;10672:92::-;10730:5;10755:1;10748:8;;10672:92;:::o;4234:238::-;4322:4;4339:13;4355:12;:10;:12::i;:::-;4339:28;;4378:64;4387:5;4394:7;4431:10;4403:25;4413:5;4420:7;4403:9;:25::i;:::-;:38;;;;:::i;:::-;4378:8;:64::i;:::-;4460:4;4453:11;;;4234:238;;;;:::o;8803:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;8866:68::-;;;;;;;;;;;;;;;;;:::o;9358:26::-;;;;;;;;;;;;;:::o;8734:62::-;;;;;;;;;;;;;;;;;;;;;;:::o;8664:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;9759:30::-;;;;:::o;9602:32::-;;;;:::o;9328:23::-;;;;;;;;;;;;;:::o;3227:127::-;3301:7;3328:9;:18;3338:7;3328:18;;;;;;;;;;;;;;;;3321:25;;3227:127;;;:::o;946:103::-;670:13;:11;:13::i;:::-;1011:30:::1;1038:1;1011:18;:30::i;:::-;946:103::o:0;9961:33::-;;;;;;;;;;;;;;;;;;;:::o;9512:39::-;;;;:::o;15668:147::-;670:13;:11;:13::i;:::-;15729::::1;:11;:13::i;:::-;15721:5;:21;;;;15765:13;:11;:13::i;:::-;15753:9;:25;;;;15806:1;15789:5;:14;;:18;;;;15668:147::o:0;9133:75::-;;;;;;;;;;;;;:::o;15382:277::-;670:13;:11;:13::i;:::-;15445:14:::1;;;;;;;;;;;15444:15;15436:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;15507:4;15490:14;;:21;;;;;;;;;;;;;;;;;;15536:4;15522:11;;:18;;;;;;;;;;;;;;;;;;15568:2;15551:5;:14;;:19;;;;15595:12;15581:11;:26;;;;15636:15;15618;:33;;;;15382:277::o:0;16633:289::-;16708:15;16740:3;16735:2;16726:6;:11;;;;:::i;:::-;:17;;;;:::i;:::-;16708:35;;16754:15;16786:3;16781:2;16772:6;:11;;;;:::i;:::-;:17;;;;:::i;:::-;16754:35;;16807:8;16800:25;;;16826:15;;;;;;;;;;;16843:7;16800:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16869:8;16862:25;;;16888:16;;;;;;;;;;;16906:7;16862:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16697:225;;16633:289;;:::o;711:87::-;757:7;784:6;;;;;;;;;;;777:13;;711:87;:::o;9796:45::-;;;;:::o;2898:104::-;2954:13;2987:7;2980:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:104;:::o;9391:23::-;;;;;;;;;;;;;:::o;16363:262::-;16421:15;16456:3;16451:2;16439:9;:14;;;;:::i;:::-;:20;;;;:::i;:::-;16421:38;;16470:15;16505:3;16500:2;16488:9;:14;;;;:::i;:::-;:20;;;;:::i;:::-;16470:38;;16519:43;16554:7;16527:15;;;;;;;;;;;16519:34;;;;:43;;;;:::i;:::-;16573:44;16609:7;16581:16;;;;;;;;;;;16573:35;;;;:44;;;;:::i;:::-;16410:215;;16363:262;:::o;4480:436::-;4573:4;4590:13;4606:12;:10;:12::i;:::-;4590:28;;4629:24;4656:25;4666:5;4673:7;4656:9;:25::i;:::-;4629:52;;4720:15;4700:16;:35;;4692:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4813:60;4822:5;4829:7;4857:15;4838:16;:34;4813:8;:60::i;:::-;4904:4;4897:11;;;;4480:436;;;;:::o;9107:19::-;;;;;;;;;;;;;:::o;3362:193::-;3441:4;3458:13;3474:12;:10;:12::i;:::-;3458:28;;3497;3507:5;3514:2;3518:6;3497:9;:28::i;:::-;3543:4;3536:11;;;3362:193;;;;:::o;15990:145::-;670:13;:11;:13::i;:::-;16112:5:::1;16081:18;:28;16100:8;16081:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;15990:145:::0;;:::o;9677:42::-;;;;:::o;14853:110::-;670:13;:11;:13::i;:::-;14950:5:::1;14941:6;:14;;;;:::i;:::-;14925:13;:30;;;;14853:110:::0;:::o;9006:60::-;;;;;;;;;;;;;;;;;:::o;15823:155::-;670:13;:11;:13::i;:::-;15924:5:::1;15915:6;:14;;;;:::i;:::-;15907:5;:22;;;;15965:5;15952:10;:18;;;;:::i;:::-;15940:9;:30;;;;15823:155:::0;;:::o;9726:26::-;;;;:::o;3563:151::-;3652:7;3679:11;:18;3691:5;3679:18;;;;;;;;;;;;;;;:27;3698:7;3679:27;;;;;;;;;;;;;;;;3672:34;;3563:151;;;;:::o;14750:95::-;670:13;:11;:13::i;:::-;14831:6:::1;14817:11;;:20;;;;;;;;;;;;;;;;;;14750:95:::0;:::o;9558:37::-;;;;:::o;14975:159::-;670:13;:11;:13::i;:::-;15088:38:::1;;;;;;;;15094:7;15088:38;;;;15103:8;15088:38;;;;15113:12;15088:38;;::::0;15080:5:::1;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;14975:159:::0;;;:::o;1057:201::-;670:13;:11;:13::i;:::-;1166:1:::1;1146:22;;:8;:22;;::::0;1138:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1222:28;1241:8;1222:18;:28::i;:::-;1057:201:::0;:::o;9079:21::-;;;;;;;;;;;;;:::o;9462:43::-;;;;:::o;9641:29::-;;;;:::o;8941:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;184:98::-;237:7;264:10;257:17;;184:98;:::o;6653:380::-;6806:1;6789:19;;:5;:19;;;6781:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6887:1;6868:21;;:7;:21;;;6860:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6971:6;6941:11;:18;6953:5;6941:18;;;;;;;;;;;;;;;:27;6960:7;6941:27;;;;;;;;;;;;;;;:36;;;;7009:7;6993:32;;7002:5;6993:32;;;7018:6;6993:32;;;;;;:::i;:::-;;;;;;;;6653:380;;;:::o;806:132::-;881:12;:10;:12::i;:::-;870:23;;:7;:5;:7::i;:::-;:23;;;862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;806:132::o;7041:453::-;7176:24;7203:25;7213:5;7220:7;7203:9;:25::i;:::-;7176:52;;7263:17;7243:16;:37;7239:248;;7325:6;7305:16;:26;;7297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7409:51;7418:5;7425:7;7453:6;7434:16;:25;7409:8;:51::i;:::-;7239:248;7165:329;7041:453;;;:::o;10772:2787::-;10888:1;10879:6;:10;10871:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10952:8;;;;;;;;;;;:38;;;;10964:18;:26;10983:6;10964:26;;;;;;;;;;;;;;;;;;;;;;;;;10952:38;:71;;;;10994:18;:29;11013:9;10994:29;;;;;;;;;;;;;;;;;;;;;;;;;10952:71;10948:1913;;;11040:42;11056:6;11064:9;11075:6;11040:15;:42::i;:::-;11097:7;;10948:1913;11154:14;;;;;;;;;;;11146:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11216:13;:21;11230:6;11216:21;;;;;;;;;;;;;;;;;;;;;;;;;11215:22;:51;;;;;11242:13;:24;11256:9;11242:24;;;;;;;;;;;;;;;;;;;;;;;;;11241:25;11215:51;11207:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;11309:11;;;;;;;;;;;11308:12;:69;;;;;11362:15;11344;;11324:17;;:35;;;;:::i;:::-;:53;11308:69;11305:199;;;11411:4;11397:11;;:18;;;;;;;;;;;;;;;;;;11442:16;;;;;;;;11448:2;11442:16;;;;11452:2;11442:16;;;;11456:1;11442:16;;;11434:5;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;11305:199;11571:15;11553;;11535;;:33;;;;:::i;:::-;:51;11532:256;;;11619:4;;;;;;;;;;;11609:14;;:6;:14;;;:46;;;;;11628:16;:27;11645:9;11628:27;;;;;;;;;;;;;;;;;;;;;;;;;11627:28;11609:46;11606:99;;;11675:5;;11665:6;:15;;11657:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11606:99;11532:256;;;11758:5;;11748:6;:15;;11740:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11532:256;11818:4;;;;;;;;;;;11808:14;;:6;:14;;;11805:573;;11846:10;:18;11857:6;11846:18;;;;;;;;;;;;;;;;;;;;;;;;;11843:379;;;11930:6;11909:9;:17;11919:6;11909:17;;;;;;;;;;;;;;;;11891:15;:35;;;;:::i;:::-;:45;11888:126;;11989:1;11964:22;:26;;;;11888:126;12084:22;;12074:6;12044:19;:27;12064:6;12044:27;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;:62;;12036:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;12196:6;12165:19;:27;12185:6;12165:27;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11843:379;12277:15;12268:5;;12248:9;:17;12258:6;12248:17;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;12240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12347:15;12327:9;:17;12337:6;12327:17;;;;;;;;;;;;;;;:35;;;;11805:573;12408:4;;;;;;;;;;;12395:17;;:9;:17;;;12392:458;;12471:15;12453;;12435;;:33;;;;:::i;:::-;:51;:83;;;;;12491:16;:27;12508:9;12491:27;;;;;;;;;;;;;;;;;;;;;;;;;12490:28;12435:83;12432:161;;;12569:4;12542:13;:24;12556:9;12542:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12432:161;12652:9;;12642:6;12619:20;12629:9;12619;:20::i;:::-;:29;;;;:::i;:::-;:42;;12611:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12746:15;12737:5;;12714:9;:20;12724:9;12714:20;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;:47;;12706:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12819:15;12796:9;:20;12806:9;12796:20;;;;;;;;;;;;;;;:38;;;;12392:458;12876:16;:27;12893:9;12876:27;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;12917:4;;;;;;;;;;;12907:14;;:6;:14;;;12876:45;:100;;;;;12961:15;12943;;12925;;:33;;;;:::i;:::-;:51;12876:100;12873:159;;;13016:4;12992:10;:21;13003:9;12992:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12873:159;13052:12;13093:4;;;;;;;;;;;13080:17;;:9;:17;;;13077:244;;13128:3;13115:5;:10;;;13106:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;13099:32;;13077:244;;;13160:4;;;;;;;;;;;13150:14;;:6;:14;;;:46;;;;;13169:16;:27;13186:9;13169:27;;;;;;;;;;;;;;;;;;;;;;;;;13168:28;13150:46;13147:174;;;13226:3;13214:5;:9;;;13205:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;13198:31;;13147:174;;;13258:4;;;;;;;;;;;13248:14;;:6;:14;;;;:35;;;;;13279:4;;;;;;;;;;;13266:17;;:9;:17;;;;13248:35;13245:76;;;13318:3;13301:5;:14;;;13292:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;13285:36;;13245:76;13147:174;13077:244;13339:11;;;;;;;;;;;:32;;;;;13367:4;;;;;;;;;;;13354:17;;:9;:17;;;13339:32;:45;;;;;13376:8;;;;;;;;;;;13375:9;13339:45;13335:61;;;13386:10;:8;:10::i;:::-;13335:61;13409:49;13425:6;13433:9;13453:4;13444:6;:13;;;;:::i;:::-;13409:15;:49::i;:::-;13479:1;13472:4;:8;13469:83;;;13496:44;13512:6;13528:4;13535;13496:15;:44::i;:::-;13469:83;10860:2699;10772:2787;;;;:::o;1266:191::-;1340:16;1359:6;;;;;;;;;;;1340:25;;1385:8;1376:6;;:17;;;;;;;;;;;;;;;;;;1440:8;1409:40;;1430:8;1409:40;;;;;;;;;;;;1329:128;1266:191;:::o;8252:317::-;8367:6;8342:21;:31;;8334:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8421:12;8439:9;:14;;8461:6;8439:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8420:52;;;8491:7;8483:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8323:246;8252:317;;:::o;4924:675::-;5071:1;5055:18;;:4;:18;;;5047:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5148:1;5134:16;;:2;:16;;;5126:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5203:38;5224:4;5230:2;5234:6;5203:20;:38::i;:::-;5254:19;5276:9;:15;5286:4;5276:15;;;;;;;;;;;;;;;;5254:37;;5325:6;5310:11;:21;;5302:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5442:6;5428:11;:20;5410:9;:15;5420:4;5410:15;;;;;;;;;;;;;;;:38;;;;5480:6;5463:9;:13;5473:2;5463:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;5530:2;5515:26;;5524:4;5515:26;;;5534:6;5515:26;;;;;;:::i;:::-;;;;;;;;5554:37;5574:4;5580:2;5584:6;5554:19;:37::i;:::-;5036:563;4924:675;;;:::o;13567:861::-;10040:8;;;;;;;;;;;10035:104;;10076:4;10065:8;;:15;;;;;;;;;;;;;;;;;;13616:23:::1;13642:24;13660:4;13642:9;:24::i;:::-;13616:50;;13700:13;;13681:15;:32;13677:744;;13730:20;13753:13;;13730:36;;13803:9;;13786:13;;:26:::0;13783:74:::1;;13852:5;13846:3;13830:13;:11;:13::i;:::-;:19;;;;:::i;:::-;:27;;;;:::i;:::-;13814:13;:43;;;;13783:74;13874:22;13899:21;13874:46;;13935:30;13952:12;13935:16;:30::i;:::-;13980:20;14027:14;14003:21;:38;;;;:::i;:::-;13980:61;;14056:21;14101:3;14095::::0;14080:12:::1;:18;;;;:::i;:::-;:24;;;;:::i;:::-;14056:48;;14177:21;14220:3;14216:1;14201:12;:16;;;;:::i;:::-;:22;;;;:::i;:::-;14177:46;;14295:49;14330:13;14303:15;;;;;;;;;;;14295:34;;;;:49;;;;:::i;:::-;14359:50;14395:13;14367:16;;;;;;;;;;;14359:35;;;;:50;;;;:::i;:::-;13715:706;;;;;13677:744;13605:823;10122:5:::0;10111:8;;:16;;;;;;;;;;;;;;;;;;10035:104;13567:861::o;7502:125::-;;;;:::o;7633:124::-;;;;:::o;14436:306::-;14502:21;14540:1;14526:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14502:40;;14571:4;14553;14558:1;14553:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14597:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14587:4;14592:1;14587:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14623:6;;;;;;;;;;;:57;;;14681:11;14694:1;14697:4;14711;14718:15;14623:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14491:251;14436:306;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:117::-;4259:1;4256;4249:12;4273:180;4321:77;4318:1;4311:88;4418:4;4415:1;4408:15;4442:4;4439:1;4432:15;4459:281;4542:27;4564:4;4542:27;:::i;:::-;4534:6;4530:40;4672:6;4660:10;4657:22;4636:18;4624:10;4621:34;4618:62;4615:88;;;4683:18;;:::i;:::-;4615:88;4723:10;4719:2;4712:22;4502:238;4459:281;;:::o;4746:129::-;4780:6;4807:20;;:::i;:::-;4797:30;;4836:33;4864:4;4856:6;4836:33;:::i;:::-;4746:129;;;:::o;4881:311::-;4958:4;5048:18;5040:6;5037:30;5034:56;;;5070:18;;:::i;:::-;5034:56;5120:4;5112:6;5108:17;5100:25;;5180:4;5174;5170:15;5162:23;;4881:311;;;:::o;5198:117::-;5307:1;5304;5297:12;5338:710;5434:5;5459:81;5475:64;5532:6;5475:64;:::i;:::-;5459:81;:::i;:::-;5450:90;;5560:5;5589:6;5582:5;5575:21;5623:4;5616:5;5612:16;5605:23;;5676:4;5668:6;5664:17;5656:6;5652:30;5705:3;5697:6;5694:15;5691:122;;;5724:79;;:::i;:::-;5691:122;5839:6;5822:220;5856:6;5851:3;5848:15;5822:220;;;5931:3;5960:37;5993:3;5981:10;5960:37;:::i;:::-;5955:3;5948:50;6027:4;6022:3;6018:14;6011:21;;5898:144;5882:4;5877:3;5873:14;5866:21;;5822:220;;;5826:21;5440:608;;5338:710;;;;;:::o;6071:370::-;6142:5;6191:3;6184:4;6176:6;6172:17;6168:27;6158:122;;6199:79;;:::i;:::-;6158:122;6316:6;6303:20;6341:94;6431:3;6423:6;6416:4;6408:6;6404:17;6341:94;:::i;:::-;6332:103;;6148:293;6071:370;;;;:::o;6447:116::-;6517:21;6532:5;6517:21;:::i;:::-;6510:5;6507:32;6497:60;;6553:1;6550;6543:12;6497:60;6447:116;:::o;6569:133::-;6612:5;6650:6;6637:20;6628:29;;6666:30;6690:5;6666:30;:::i;:::-;6569:133;;;;:::o;6708:678::-;6798:6;6806;6855:2;6843:9;6834:7;6830:23;6826:32;6823:119;;;6861:79;;:::i;:::-;6823:119;7009:1;6998:9;6994:17;6981:31;7039:18;7031:6;7028:30;7025:117;;;7061:79;;:::i;:::-;7025:117;7166:78;7236:7;7227:6;7216:9;7212:22;7166:78;:::i;:::-;7156:88;;6952:302;7293:2;7319:50;7361:7;7352:6;7341:9;7337:22;7319:50;:::i;:::-;7309:60;;7264:115;6708:678;;;;;:::o;7392:619::-;7469:6;7477;7485;7534:2;7522:9;7513:7;7509:23;7505:32;7502:119;;;7540:79;;:::i;:::-;7502:119;7660:1;7685:53;7730:7;7721:6;7710:9;7706:22;7685:53;:::i;:::-;7675:63;;7631:117;7787:2;7813:53;7858:7;7849:6;7838:9;7834:22;7813:53;:::i;:::-;7803:63;;7758:118;7915:2;7941:53;7986:7;7977:6;7966:9;7962:22;7941:53;:::i;:::-;7931:63;;7886:118;7392:619;;;;;:::o;8017:474::-;8085:6;8093;8142:2;8130:9;8121:7;8117:23;8113:32;8110:119;;;8148:79;;:::i;:::-;8110:119;8268:1;8293:53;8338:7;8329:6;8318:9;8314:22;8293:53;:::i;:::-;8283:63;;8239:117;8395:2;8421:53;8466:7;8457:6;8446:9;8442:22;8421:53;:::i;:::-;8411:63;;8366:118;8017:474;;;;;:::o;8497:86::-;8532:7;8572:4;8565:5;8561:16;8550:27;;8497:86;;;:::o;8589:112::-;8672:22;8688:5;8672:22;:::i;:::-;8667:3;8660:35;8589:112;;:::o;8707:214::-;8796:4;8834:2;8823:9;8819:18;8811:26;;8847:67;8911:1;8900:9;8896:17;8887:6;8847:67;:::i;:::-;8707:214;;;;:::o;8927:329::-;8986:6;9035:2;9023:9;9014:7;9010:23;9006:32;9003:119;;;9041:79;;:::i;:::-;9003:119;9161:1;9186:53;9231:7;9222:6;9211:9;9207:22;9186:53;:::i;:::-;9176:63;;9132:117;8927:329;;;;:::o;9262:442::-;9411:4;9449:2;9438:9;9434:18;9426:26;;9462:71;9530:1;9519:9;9515:17;9506:6;9462:71;:::i;:::-;9543:72;9611:2;9600:9;9596:18;9587:6;9543:72;:::i;:::-;9625;9693:2;9682:9;9678:18;9669:6;9625:72;:::i;:::-;9262:442;;;;;;:::o;9710:329::-;9769:6;9818:2;9806:9;9797:7;9793:23;9789:32;9786:119;;;9824:79;;:::i;:::-;9786:119;9944:1;9969:53;10014:7;10005:6;9994:9;9990:22;9969:53;:::i;:::-;9959:63;;9915:117;9710:329;;;;:::o;10045:468::-;10110:6;10118;10167:2;10155:9;10146:7;10142:23;10138:32;10135:119;;;10173:79;;:::i;:::-;10135:119;10293:1;10318:53;10363:7;10354:6;10343:9;10339:22;10318:53;:::i;:::-;10308:63;;10264:117;10420:2;10446:50;10488:7;10479:6;10468:9;10464:22;10446:50;:::i;:::-;10436:60;;10391:115;10045:468;;;;;:::o;10519:474::-;10587:6;10595;10644:2;10632:9;10623:7;10619:23;10615:32;10612:119;;;10650:79;;:::i;:::-;10612:119;10770:1;10795:53;10840:7;10831:6;10820:9;10816:22;10795:53;:::i;:::-;10785:63;;10741:117;10897:2;10923:53;10968:7;10959:6;10948:9;10944:22;10923:53;:::i;:::-;10913:63;;10868:118;10519:474;;;;;:::o;10999:323::-;11055:6;11104:2;11092:9;11083:7;11079:23;11075:32;11072:119;;;11110:79;;:::i;:::-;11072:119;11230:1;11255:50;11297:7;11288:6;11277:9;11273:22;11255:50;:::i;:::-;11245:60;;11201:114;10999:323;;;;:::o;11328:619::-;11405:6;11413;11421;11470:2;11458:9;11449:7;11445:23;11441:32;11438:119;;;11476:79;;:::i;:::-;11438:119;11596:1;11621:53;11666:7;11657:6;11646:9;11642:22;11621:53;:::i;:::-;11611:63;;11567:117;11723:2;11749:53;11794:7;11785:6;11774:9;11770:22;11749:53;:::i;:::-;11739:63;;11694:118;11851:2;11877:53;11922:7;11913:6;11902:9;11898:22;11877:53;:::i;:::-;11867:63;;11822:118;11328:619;;;;;:::o;11953:60::-;11981:3;12002:5;11995:12;;11953:60;;;:::o;12019:142::-;12069:9;12102:53;12120:34;12129:24;12147:5;12129:24;:::i;:::-;12120:34;:::i;:::-;12102:53;:::i;:::-;12089:66;;12019:142;;;:::o;12167:126::-;12217:9;12250:37;12281:5;12250:37;:::i;:::-;12237:50;;12167:126;;;:::o;12299:141::-;12364:9;12397:37;12428:5;12397:37;:::i;:::-;12384:50;;12299:141;;;:::o;12446:161::-;12548:52;12594:5;12548:52;:::i;:::-;12543:3;12536:65;12446:161;;:::o;12613:252::-;12721:4;12759:2;12748:9;12744:18;12736:26;;12772:86;12855:1;12844:9;12840:17;12831:6;12772:86;:::i;:::-;12613:252;;;;:::o;12871:180::-;12919:77;12916:1;12909:88;13016:4;13013:1;13006:15;13040:4;13037:1;13030:15;13057:320;13101:6;13138:1;13132:4;13128:12;13118:22;;13185:1;13179:4;13175:12;13206:18;13196:81;;13262:4;13254:6;13250:17;13240:27;;13196:81;13324:2;13316:6;13313:14;13293:18;13290:38;13287:84;;13343:18;;:::i;:::-;13287:84;13108:269;13057:320;;;:::o;13383:180::-;13431:77;13428:1;13421:88;13528:4;13525:1;13518:15;13552:4;13549:1;13542:15;13569:180;13617:77;13614:1;13607:88;13714:4;13711:1;13704:15;13738:4;13735:1;13728:15;13755:233;13794:3;13817:24;13835:5;13817:24;:::i;:::-;13808:33;;13863:66;13856:5;13853:77;13850:103;;13933:18;;:::i;:::-;13850:103;13980:1;13973:5;13969:13;13962:20;;13755:233;;;:::o;13994:191::-;14034:3;14053:20;14071:1;14053:20;:::i;:::-;14048:25;;14087:20;14105:1;14087:20;:::i;:::-;14082:25;;14130:1;14127;14123:9;14116:16;;14151:3;14148:1;14145:10;14142:36;;;14158:18;;:::i;:::-;14142:36;13994:191;;;;:::o;14191:165::-;14331:17;14327:1;14319:6;14315:14;14308:41;14191:165;:::o;14362:366::-;14504:3;14525:67;14589:2;14584:3;14525:67;:::i;:::-;14518:74;;14601:93;14690:3;14601:93;:::i;:::-;14719:2;14714:3;14710:12;14703:19;;14362:366;;;:::o;14734:419::-;14900:4;14938:2;14927:9;14923:18;14915:26;;14987:9;14981:4;14977:20;14973:1;14962:9;14958:17;14951:47;15015:131;15141:4;15015:131;:::i;:::-;15007:139;;14734:419;;;:::o;15159:410::-;15199:7;15222:20;15240:1;15222:20;:::i;:::-;15217:25;;15256:20;15274:1;15256:20;:::i;:::-;15251:25;;15311:1;15308;15304:9;15333:30;15351:11;15333:30;:::i;:::-;15322:41;;15512:1;15503:7;15499:15;15496:1;15493:22;15473:1;15466:9;15446:83;15423:139;;15542:18;;:::i;:::-;15423:139;15207:362;15159:410;;;;:::o;15575:180::-;15623:77;15620:1;15613:88;15720:4;15717:1;15710:15;15744:4;15741:1;15734:15;15761:185;15801:1;15818:20;15836:1;15818:20;:::i;:::-;15813:25;;15852:20;15870:1;15852:20;:::i;:::-;15847:25;;15891:1;15881:35;;15896:18;;:::i;:::-;15881:35;15938:1;15935;15931:9;15926:14;;15761:185;;;;:::o;15952:332::-;16073:4;16111:2;16100:9;16096:18;16088:26;;16124:71;16192:1;16181:9;16177:17;16168:6;16124:71;:::i;:::-;16205:72;16273:2;16262:9;16258:18;16249:6;16205:72;:::i;:::-;15952:332;;;;;:::o;16290:137::-;16344:5;16375:6;16369:13;16360:22;;16391:30;16415:5;16391:30;:::i;:::-;16290:137;;;;:::o;16433:345::-;16500:6;16549:2;16537:9;16528:7;16524:23;16520:32;16517:119;;;16555:79;;:::i;:::-;16517:119;16675:1;16700:61;16753:7;16744:6;16733:9;16729:22;16700:61;:::i;:::-;16690:71;;16646:125;16433:345;;;;:::o;16784:224::-;16924:34;16920:1;16912:6;16908:14;16901:58;16993:7;16988:2;16980:6;16976:15;16969:32;16784:224;:::o;17014:366::-;17156:3;17177:67;17241:2;17236:3;17177:67;:::i;:::-;17170:74;;17253:93;17342:3;17253:93;:::i;:::-;17371:2;17366:3;17362:12;17355:19;;17014:366;;;:::o;17386:419::-;17552:4;17590:2;17579:9;17575:18;17567:26;;17639:9;17633:4;17629:20;17625:1;17614:9;17610:17;17603:47;17667:131;17793:4;17667:131;:::i;:::-;17659:139;;17386:419;;;:::o;17811:225::-;17951:34;17947:1;17939:6;17935:14;17928:58;18020:8;18015:2;18007:6;18003:15;17996:33;17811:225;:::o;18042:366::-;18184:3;18205:67;18269:2;18264:3;18205:67;:::i;:::-;18198:74;;18281:93;18370:3;18281:93;:::i;:::-;18399:2;18394:3;18390:12;18383:19;;18042:366;;;:::o;18414:419::-;18580:4;18618:2;18607:9;18603:18;18595:26;;18667:9;18661:4;18657:20;18653:1;18642:9;18638:17;18631:47;18695:131;18821:4;18695:131;:::i;:::-;18687:139;;18414:419;;;:::o;18839:223::-;18979:34;18975:1;18967:6;18963:14;18956:58;19048:6;19043:2;19035:6;19031:15;19024:31;18839:223;:::o;19068:366::-;19210:3;19231:67;19295:2;19290:3;19231:67;:::i;:::-;19224:74;;19307:93;19396:3;19307:93;:::i;:::-;19425:2;19420:3;19416:12;19409:19;;19068:366;;;:::o;19440:419::-;19606:4;19644:2;19633:9;19629:18;19621:26;;19693:9;19687:4;19683:20;19679:1;19668:9;19664:17;19657:47;19721:131;19847:4;19721:131;:::i;:::-;19713:139;;19440:419;;;:::o;19865:221::-;20005:34;20001:1;19993:6;19989:14;19982:58;20074:4;20069:2;20061:6;20057:15;20050:29;19865:221;:::o;20092:366::-;20234:3;20255:67;20319:2;20314:3;20255:67;:::i;:::-;20248:74;;20331:93;20420:3;20331:93;:::i;:::-;20449:2;20444:3;20440:12;20433:19;;20092:366;;;:::o;20464:419::-;20630:4;20668:2;20657:9;20653:18;20645:26;;20717:9;20711:4;20707:20;20703:1;20692:9;20688:17;20681:47;20745:131;20871:4;20745:131;:::i;:::-;20737:139;;20464:419;;;:::o;20889:182::-;21029:34;21025:1;21017:6;21013:14;21006:58;20889:182;:::o;21077:366::-;21219:3;21240:67;21304:2;21299:3;21240:67;:::i;:::-;21233:74;;21316:93;21405:3;21316:93;:::i;:::-;21434:2;21429:3;21425:12;21418:19;;21077:366;;;:::o;21449:419::-;21615:4;21653:2;21642:9;21638:18;21630:26;;21702:9;21696:4;21692:20;21688:1;21677:9;21673:17;21666:47;21730:131;21856:4;21730:131;:::i;:::-;21722:139;;21449:419;;;:::o;21874:179::-;22014:31;22010:1;22002:6;21998:14;21991:55;21874:179;:::o;22059:366::-;22201:3;22222:67;22286:2;22281:3;22222:67;:::i;:::-;22215:74;;22298:93;22387:3;22298:93;:::i;:::-;22416:2;22411:3;22407:12;22400:19;;22059:366;;;:::o;22431:419::-;22597:4;22635:2;22624:9;22620:18;22612:26;;22684:9;22678:4;22674:20;22670:1;22659:9;22655:17;22648:47;22712:131;22838:4;22712:131;:::i;:::-;22704:139;;22431:419;;;:::o;22856:228::-;22996:34;22992:1;22984:6;22980:14;22973:58;23065:11;23060:2;23052:6;23048:15;23041:36;22856:228;:::o;23090:366::-;23232:3;23253:67;23317:2;23312:3;23253:67;:::i;:::-;23246:74;;23329:93;23418:3;23329:93;:::i;:::-;23447:2;23442:3;23438:12;23431:19;;23090:366;;;:::o;23462:419::-;23628:4;23666:2;23655:9;23651:18;23643:26;;23715:9;23709:4;23705:20;23701:1;23690:9;23686:17;23679:47;23743:131;23869:4;23743:131;:::i;:::-;23735:139;;23462:419;;;:::o;23887:169::-;24027:21;24023:1;24015:6;24011:14;24004:45;23887:169;:::o;24062:366::-;24204:3;24225:67;24289:2;24284:3;24225:67;:::i;:::-;24218:74;;24301:93;24390:3;24301:93;:::i;:::-;24419:2;24414:3;24410:12;24403:19;;24062:366;;;:::o;24434:419::-;24600:4;24638:2;24627:9;24623:18;24615:26;;24687:9;24681:4;24677:20;24673:1;24662:9;24658:17;24651:47;24715:131;24841:4;24715:131;:::i;:::-;24707:139;;24434:419;;;:::o;24859:169::-;24999:21;24995:1;24987:6;24983:14;24976:45;24859:169;:::o;25034:366::-;25176:3;25197:67;25261:2;25256:3;25197:67;:::i;:::-;25190:74;;25273:93;25362:3;25273:93;:::i;:::-;25391:2;25386:3;25382:12;25375:19;;25034:366;;;:::o;25406:419::-;25572:4;25610:2;25599:9;25595:18;25587:26;;25659:9;25653:4;25649:20;25645:1;25634:9;25630:17;25623:47;25687:131;25813:4;25687:131;:::i;:::-;25679:139;;25406:419;;;:::o;25831:170::-;25971:22;25967:1;25959:6;25955:14;25948:46;25831:170;:::o;26007:366::-;26149:3;26170:67;26234:2;26229:3;26170:67;:::i;:::-;26163:74;;26246:93;26335:3;26246:93;:::i;:::-;26364:2;26359:3;26355:12;26348:19;;26007:366;;;:::o;26379:419::-;26545:4;26583:2;26572:9;26568:18;26560:26;;26632:9;26626:4;26622:20;26618:1;26607:9;26603:17;26596:47;26660:131;26786:4;26660:131;:::i;:::-;26652:139;;26379:419;;;:::o;26804:194::-;26844:4;26864:20;26882:1;26864:20;:::i;:::-;26859:25;;26898:20;26916:1;26898:20;:::i;:::-;26893:25;;26942:1;26939;26935:9;26927:17;;26966:1;26960:4;26957:11;26954:37;;;26971:18;;:::i;:::-;26954:37;26804:194;;;;:::o;27004:181::-;27144:33;27140:1;27132:6;27128:14;27121:57;27004:181;:::o;27191:366::-;27333:3;27354:67;27418:2;27413:3;27354:67;:::i;:::-;27347:74;;27430:93;27519:3;27430:93;:::i;:::-;27548:2;27543:3;27539:12;27532:19;;27191:366;;;:::o;27563:419::-;27729:4;27767:2;27756:9;27752:18;27744:26;;27816:9;27810:4;27806:20;27802:1;27791:9;27787:17;27780:47;27844:131;27970:4;27844:131;:::i;:::-;27836:139;;27563:419;;;:::o;27988:161::-;28128:13;28124:1;28116:6;28112:14;28105:37;27988:161;:::o;28155:366::-;28297:3;28318:67;28382:2;28377:3;28318:67;:::i;:::-;28311:74;;28394:93;28483:3;28394:93;:::i;:::-;28512:2;28507:3;28503:12;28496:19;;28155:366;;;:::o;28527:419::-;28693:4;28731:2;28720:9;28716:18;28708:26;;28780:9;28774:4;28770:20;28766:1;28755:9;28751:17;28744:47;28808:131;28934:4;28808:131;:::i;:::-;28800:139;;28527:419;;;:::o;28952:171::-;29092:23;29088:1;29080:6;29076:14;29069:47;28952:171;:::o;29129:366::-;29271:3;29292:67;29356:2;29351:3;29292:67;:::i;:::-;29285:74;;29368:93;29457:3;29368:93;:::i;:::-;29486:2;29481:3;29477:12;29470:19;;29129:366;;;:::o;29501:419::-;29667:4;29705:2;29694:9;29690:18;29682:26;;29754:9;29748:4;29744:20;29740:1;29729:9;29725:17;29718:47;29782:131;29908:4;29782:131;:::i;:::-;29774:139;;29501:419;;;:::o;29926:179::-;30066:31;30062:1;30054:6;30050:14;30043:55;29926:179;:::o;30111:366::-;30253:3;30274:67;30338:2;30333:3;30274:67;:::i;:::-;30267:74;;30350:93;30439:3;30350:93;:::i;:::-;30468:2;30463:3;30459:12;30452:19;;30111:366;;;:::o;30483:419::-;30649:4;30687:2;30676:9;30672:18;30664:26;;30736:9;30730:4;30726:20;30722:1;30711:9;30707:17;30700:47;30764:131;30890:4;30764:131;:::i;:::-;30756:139;;30483:419;;;:::o;30908:147::-;31009:11;31046:3;31031:18;;30908:147;;;;:::o;31061:114::-;;:::o;31181:398::-;31340:3;31361:83;31442:1;31437:3;31361:83;:::i;:::-;31354:90;;31453:93;31542:3;31453:93;:::i;:::-;31571:1;31566:3;31562:11;31555:18;;31181:398;;;:::o;31585:379::-;31769:3;31791:147;31934:3;31791:147;:::i;:::-;31784:154;;31955:3;31948:10;;31585:379;;;:::o;31970:245::-;32110:34;32106:1;32098:6;32094:14;32087:58;32179:28;32174:2;32166:6;32162:15;32155:53;31970:245;:::o;32221:366::-;32363:3;32384:67;32448:2;32443:3;32384:67;:::i;:::-;32377:74;;32460:93;32549:3;32460:93;:::i;:::-;32578:2;32573:3;32569:12;32562:19;;32221:366;;;:::o;32593:419::-;32759:4;32797:2;32786:9;32782:18;32774:26;;32846:9;32840:4;32836:20;32832:1;32821:9;32817:17;32810:47;32874:131;33000:4;32874:131;:::i;:::-;32866:139;;32593:419;;;:::o;33018:224::-;33158:34;33154:1;33146:6;33142:14;33135:58;33227:7;33222:2;33214:6;33210:15;33203:32;33018:224;:::o;33248:366::-;33390:3;33411:67;33475:2;33470:3;33411:67;:::i;:::-;33404:74;;33487:93;33576:3;33487:93;:::i;:::-;33605:2;33600:3;33596:12;33589:19;;33248:366;;;:::o;33620:419::-;33786:4;33824:2;33813:9;33809:18;33801:26;;33873:9;33867:4;33863:20;33859:1;33848:9;33844:17;33837:47;33901:131;34027:4;33901:131;:::i;:::-;33893:139;;33620:419;;;:::o;34045:222::-;34185:34;34181:1;34173:6;34169:14;34162:58;34254:5;34249:2;34241:6;34237:15;34230:30;34045:222;:::o;34273:366::-;34415:3;34436:67;34500:2;34495:3;34436:67;:::i;:::-;34429:74;;34512:93;34601:3;34512:93;:::i;:::-;34630:2;34625:3;34621:12;34614:19;;34273:366;;;:::o;34645:419::-;34811:4;34849:2;34838:9;34834:18;34826:26;;34898:9;34892:4;34888:20;34884:1;34873:9;34869:17;34862:47;34926:131;35052:4;34926:131;:::i;:::-;34918:139;;34645:419;;;:::o;35070:225::-;35210:34;35206:1;35198:6;35194:14;35187:58;35279:8;35274:2;35266:6;35262:15;35255:33;35070:225;:::o;35301:366::-;35443:3;35464:67;35528:2;35523:3;35464:67;:::i;:::-;35457:74;;35540:93;35629:3;35540:93;:::i;:::-;35658:2;35653:3;35649:12;35642:19;;35301:366;;;:::o;35673:419::-;35839:4;35877:2;35866:9;35862:18;35854:26;;35926:9;35920:4;35916:20;35912:1;35901:9;35897:17;35890:47;35954:131;36080:4;35954:131;:::i;:::-;35946:139;;35673:419;;;:::o;36098:143::-;36155:5;36186:6;36180:13;36171:22;;36202:33;36229:5;36202:33;:::i;:::-;36098:143;;;;:::o;36247:351::-;36317:6;36366:2;36354:9;36345:7;36341:23;36337:32;36334:119;;;36372:79;;:::i;:::-;36334:119;36492:1;36517:64;36573:7;36564:6;36553:9;36549:22;36517:64;:::i;:::-;36507:74;;36463:128;36247:351;;;;:::o;36604:85::-;36649:7;36678:5;36667:16;;36604:85;;;:::o;36695:158::-;36753:9;36786:61;36804:42;36813:32;36839:5;36813:32;:::i;:::-;36804:42;:::i;:::-;36786:61;:::i;:::-;36773:74;;36695:158;;;:::o;36859:147::-;36954:45;36993:5;36954:45;:::i;:::-;36949:3;36942:58;36859:147;;:::o;37012:114::-;37079:6;37113:5;37107:12;37097:22;;37012:114;;;:::o;37132:184::-;37231:11;37265:6;37260:3;37253:19;37305:4;37300:3;37296:14;37281:29;;37132:184;;;;:::o;37322:132::-;37389:4;37412:3;37404:11;;37442:4;37437:3;37433:14;37425:22;;37322:132;;;:::o;37460:108::-;37537:24;37555:5;37537:24;:::i;:::-;37532:3;37525:37;37460:108;;:::o;37574:179::-;37643:10;37664:46;37706:3;37698:6;37664:46;:::i;:::-;37742:4;37737:3;37733:14;37719:28;;37574:179;;;;:::o;37759:113::-;37829:4;37861;37856:3;37852:14;37844:22;;37759:113;;;:::o;37908:732::-;38027:3;38056:54;38104:5;38056:54;:::i;:::-;38126:86;38205:6;38200:3;38126:86;:::i;:::-;38119:93;;38236:56;38286:5;38236:56;:::i;:::-;38315:7;38346:1;38331:284;38356:6;38353:1;38350:13;38331:284;;;38432:6;38426:13;38459:63;38518:3;38503:13;38459:63;:::i;:::-;38452:70;;38545:60;38598:6;38545:60;:::i;:::-;38535:70;;38391:224;38378:1;38375;38371:9;38366:14;;38331:284;;;38335:14;38631:3;38624:10;;38032:608;;;37908:732;;;;:::o;38646:831::-;38909:4;38947:3;38936:9;38932:19;38924:27;;38961:71;39029:1;39018:9;39014:17;39005:6;38961:71;:::i;:::-;39042:80;39118:2;39107:9;39103:18;39094:6;39042:80;:::i;:::-;39169:9;39163:4;39159:20;39154:2;39143:9;39139:18;39132:48;39197:108;39300:4;39291:6;39197:108;:::i;:::-;39189:116;;39315:72;39383:2;39372:9;39368:18;39359:6;39315:72;:::i;:::-;39397:73;39465:3;39454:9;39450:19;39441:6;39397:73;:::i;:::-;38646:831;;;;;;;;:::o
Swarm Source
ipfs://111c3f7b09230c375ea5c67974b23345f3e1034bbe5673f9235eb7290aaf3bc9
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.