ERC-20
Overview
Max Total Supply
1,000,000,000 KIKOS
Holders
7
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,573,906.719634575266956421 KIKOSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KiyokoSan
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-15 */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.9; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Ownable { address internal owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(msg.sender == owner, "not owner"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } interface Dist { function swap() external; } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract KiyokoSan is ERC20, Ownable { // Events event SetMaxWallet(uint256 maxWalletToken); event SetFees(uint256 DevFee); event SetSwapBackSettings(bool enabled, uint256 swapThreshold); event SetIsFeeExempt(address holder, bool enabled); event SetIsTxLimitExempt(address holder, bool enabled); event SetFeeReceiver(address DevWallet); event StuckBalanceSent(uint256 amountETH, address recipient); // Mappings mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; // Basic Contract Info string constant _name = "KIYOKOSAN"; string constant _symbol = "KIKOS"; uint8 constant _decimals = 18; uint256 _totalSupply = 1000000000 * (10 ** _decimals); // Max wallet uint256 public _maxWalletSize = (_totalSupply * 25) / 1000; uint256 public _maxTxSize = (_totalSupply * 25) / 1000; // Fee receiver uint256 public DevFeeBuy = 10; uint256 public KiyokoSanFeeBuy = 10; uint256 public LiquidityFeeBuy = 30; uint256 public DevFeeSell = 10; uint256 public KiyokoSanFeeSell = 10; uint256 public LiquidityFeeSell = 30; uint256 public TotalBase = DevFeeBuy + DevFeeSell + KiyokoSanFeeBuy + KiyokoSanFeeSell + LiquidityFeeBuy + LiquidityFeeSell; // Fee receiver & Dead Wallet address public DevWallet; address public KiyokoSanWallet; address constant private DEAD = 0x000000000000000000000000000000000000dEaD; // Router IDEXRouter public router; address public pair; address public Liq = 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8; address public dist; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 10000 * 3; // 0.3% bool public isTradingEnabled = false; address public tradingEnablerRole; uint256 public tradingTimestamp; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor(address _dev, address _kiyokosan, address _dist) Ownable(msg.sender) { router = IDEXRouter(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; DevWallet = _dev; KiyokoSanWallet = _kiyokosan; dist = _dist; isFeeExempt[_owner] = true; isTxLimitExempt[_owner] = true; isFeeExempt[KiyokoSanWallet] = true; isTxLimitExempt[KiyokoSanWallet] = true; isFeeExempt[dist] = true; isTxLimitExempt[dist] = true; tradingEnablerRole = _owner; tradingTimestamp = block.timestamp; _balances[DevWallet] = _totalSupply * 100 / 100; emit Transfer(address(0), DevWallet, _totalSupply * 100 / 100); } receive() external payable { } // Basic Internal Functions function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } //////////////////////////////////////////////// function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - (amount); } return _transferFrom(sender, recipient, amount); } function getPair() public onlyOwner { pair = IDEXFactory(router.factory()).getPair(address(this), Liq); if (pair == address(0)) {pair = IDEXFactory(router.factory()).createPair(address(this), Liq);} } function renounceTradingEnablerRole() public { require(tradingEnablerRole == msg.sender, 'incompatible role!'); tradingEnablerRole = address(0x0); } function setIsTradingEnabled(bool _isTradingEnabled) public { require(tradingEnablerRole == msg.sender, 'incompatible role!'); isTradingEnabled = _isTradingEnabled; tradingTimestamp = block.timestamp; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount);} require(isFeeExempt[sender] || isFeeExempt[recipient] || isTradingEnabled, "Not authorized to trade yet"); // Checks max transaction limit if (sender != owner && sender != KiyokoSanWallet && recipient != owner && recipient != DEAD && recipient != pair) { require(isTxLimitExempt[recipient] || (amount <= _maxTxSize && _balances[recipient] + amount <= _maxWalletSize), "Transfer amount exceeds the MaxWallet size."); } //Exchange tokens if(shouldSwapBack()){swapBack();} _balances[sender] = _balances[sender] - amount; //Check if should Take Fee uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient] + (amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } // Internal Functions function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if (sender == pair && recipient != pair) { feeAmount = amount * (DevFeeBuy + KiyokoSanFeeBuy + LiquidityFeeBuy) / 1000; } if (sender != pair && recipient == pair) { feeAmount = amount * (DevFeeSell + KiyokoSanFeeSell + LiquidityFeeSell) / 1000; } if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)] + (feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount - (feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 amountToLiq = balanceOf(address(this)) * (LiquidityFeeBuy + LiquidityFeeSell) / (2 * TotalBase); uint256 amountToSwap = balanceOf(address(this)) - amountToLiq; address[] memory path = new address[](2); path[0] = address(this); path[1] = Liq; router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amountToSwap, 0, path, dist, block.timestamp + 5 minutes); _balances[address(this)] = _balances[address(this)] - amountToLiq; _balances[dist] = _balances[dist] + amountToLiq; emit Transfer(address(this), dist, amountToLiq); Dist(dist).swap(); } // External Functions function setMaxWalletAndTx(uint256 _maxWalletSize_, uint256 _maxTxSize_) external onlyOwner { require(_maxWalletSize_ >= _totalSupply / 1000 && _maxTxSize_ >= _totalSupply / 1000, "Can't set MaxWallet or Tx below 0.1%"); _maxWalletSize = _maxWalletSize_; _maxTxSize = _maxTxSize_; emit SetMaxWallet(_maxWalletSize); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; emit SetIsFeeExempt(holder, exempt); } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; emit SetIsTxLimitExempt(holder, exempt); } function setFees(uint256 _DevFeeBuy, uint256 _KiyokoSanFeeBuy, uint256 _LiquidityFeeBuy, uint256 _DevFeeSell, uint256 _KiyokoSanFeeSell, uint256 _LiquidityFeeSell) external onlyOwner { require(_DevFeeBuy + _KiyokoSanFeeBuy + _LiquidityFeeBuy <= 330 && _DevFeeSell + _KiyokoSanFeeSell + _LiquidityFeeSell <= 330, "Total fees must be equal to or less than 33%"); DevFeeBuy = _DevFeeBuy; KiyokoSanFeeBuy = _KiyokoSanFeeBuy; LiquidityFeeBuy = _LiquidityFeeBuy; DevFeeSell = _DevFeeSell; KiyokoSanFeeSell = _KiyokoSanFeeSell; LiquidityFeeSell = _LiquidityFeeSell; TotalBase = DevFeeBuy + DevFeeSell + KiyokoSanFeeBuy + KiyokoSanFeeSell + LiquidityFeeBuy + LiquidityFeeSell; emit SetFees(DevFeeBuy); } function setFeeReceiver(address _DevWallet, address _KiyokoSanWallet) external onlyOwner { DevWallet = _DevWallet; KiyokoSanWallet = _KiyokoSanWallet; emit SetFeeReceiver(DevWallet); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { require(_amount >= 1, "Can't set SwapThreshold to ZERO"); swapEnabled = _enabled; swapThreshold = _amount; emit SetSwapBackSettings(swapEnabled, swapThreshold); } function initSwapBack() public onlyOwner { swapBack(); } // Stuck Balance Function function ClearStuckBalance() external { require(DevWallet == msg.sender, 'not dev wallet'); uint256 _bal = _balances[address(this)]; if (_bal > 0) { _balances[DevWallet] = _balances[DevWallet] + _bal; _balances[address(this)] = 0; emit Transfer(address(this), DevWallet, _bal); } uint256 _ethBal = address(this).balance; if (_ethBal > 0) { payable(DevWallet).transfer(_ethBal); emit StuckBalanceSent(_ethBal, DevWallet); } } function withdrawToken(address _token) public { ERC20(_token).transfer(DevWallet, ERC20(_token).balanceOf(address(this))); } function getSelfAddress() public view returns(address) { return address(this); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_dev","type":"address"},{"internalType":"address","name":"_kiyokosan","type":"address"},{"internalType":"address","name":"_dist","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":false,"internalType":"address","name":"DevWallet","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"DevFee","type":"uint256"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsTxLimitExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletToken","type":"uint256"}],"name":"SetMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"StuckBalanceSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ClearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KiyokoSanFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KiyokoSanFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KiyokoSanWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Liq","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSelfAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceTradingEnablerRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_DevWallet","type":"address"},{"internalType":"address","name":"_KiyokoSanWallet","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_DevFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_KiyokoSanFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_LiquidityFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_DevFeeSell","type":"uint256"},{"internalType":"uint256","name":"_KiyokoSanFeeSell","type":"uint256"},{"internalType":"uint256","name":"_LiquidityFeeSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isTradingEnabled","type":"bool"}],"name":"setIsTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize_","type":"uint256"},{"internalType":"uint256","name":"_maxTxSize_","type":"uint256"}],"name":"setMaxWalletAndTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","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":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnablerRole","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a620000149190620009ae565b633b9aca00620000259190620009ff565b6007556103e860196007546200003c9190620009ff565b62000048919062000a79565b6008556103e860196007546200005f9190620009ff565b6200006b919062000a79565b600955600a8055600a600b55601e600c55600a600d55600a600e55601e600f55600f54600c54600e54600b54600d54600a54620000a9919062000ab1565b620000b5919062000ab1565b620000c1919062000ab1565b620000cd919062000ab1565b620000d9919062000ab1565b60105573ff970a61a04b1ca14834a43f5de4533ebddb5cc8601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601660146101000a81548160ff021916908315150217905550600361271060075462000160919062000a79565b6200016c9190620009ff565b6017556000601860006101000a81548160ff0219169083151502179055503480156200019757600080fd5b5060405162004fbf38038062004fbf8339818101604052810190620001bd919062000b56565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050731b02da8cb0d097eb8d57a175b88c7d8b47997506601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042601981905550606480600754620006f29190620009ff565b620006fe919062000a79565b60036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606480600754620007e79190620009ff565b620007f3919062000a79565b60405162000802919062000bc3565b60405180910390a35050505062000be0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008a2578086048111156200087a576200087962000814565b5b60018516156200088a5780820291505b80810290506200089a8562000843565b94506200085a565b94509492505050565b600082620008bd576001905062000990565b81620008cd576000905062000990565b8160018114620008e65760028114620008f15762000927565b600191505062000990565b60ff84111562000906576200090562000814565b5b8360020a91508482111562000920576200091f62000814565b5b5062000990565b5060208310610133831016604e8410600b8410161715620009615782820a9050838111156200095b576200095a62000814565b5b62000990565b62000970848484600162000850565b925090508184048111156200098a576200098962000814565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009bb8262000997565b9150620009c883620009a1565b9250620009f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008ab565b905092915050565b600062000a0c8262000997565b915062000a198362000997565b925082820262000a298162000997565b9150828204841483151762000a435762000a4262000814565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a868262000997565b915062000a938362000997565b92508262000aa65762000aa562000a4a565b5b828204905092915050565b600062000abe8262000997565b915062000acb8362000997565b925082820190508082111562000ae65762000ae562000814565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b1e8262000af1565b9050919050565b62000b308162000b11565b811462000b3c57600080fd5b50565b60008151905062000b508162000b25565b92915050565b60008060006060848603121562000b725762000b7162000aec565b5b600062000b828682870162000b3f565b935050602062000b958682870162000b3f565b925050604062000ba88682870162000b3f565b9150509250925092565b62000bbd8162000997565b82525050565b600060208201905062000bda600083018462000bb2565b92915050565b6143cf8062000bf06000396000f3fe6080604052600436106102975760003560e01c8063769b3fdd1161015a578063b115e4df116100c1578063e66db25e1161007a578063e66db25e146109f7578063f2fde38b14610a20578063f556fcdb14610a49578063f84ba65d14610a74578063f887ea4014610a9d578063fe7369a814610ac85761029e565b8063b115e4df146108f9578063c1f1b1b514610924578063cbdcfd811461093b578063da23545914610966578063dd62ed3e14610991578063df20fd49146109ce5761029e565b806390a9ac3f1161011357806390a9ac3f1461080d57806395d89b411461082457806399ab04a71461084f578063a2d57df114610866578063a8aa1b3114610891578063a9059cbb146108bc5761029e565b8063769b3fdd146106fd57806386f6c3c114610728578063893d20e814610751578063894760691461077c5780638b42507f146107a55780638f9a55c0146107e25761029e565b8063511b5f61116101fe57806365406481116101b757806365406481146105ed578063658d4b7f146106165780636ddd17131461063f5780636f65cfa31461066a57806370a082311461069557806374db3302146106d25761029e565b8063511b5f61146104db578063559ef2251461050657806356382ab31461052f578063571ac8b01461055a5780635be0499b146105975780636295c649146105c25761029e565b806325348b051161025057806325348b05146103c95780632f54bf6e146103e05780632fe76bc21461041d578063313ce567146104485780633f4218e01461047357806340c39c09146104b05761029e565b80630445b667146102a3578063064a59d0146102ce57806306fdde03146102f9578063095ea7b31461032457806318160ddd1461036157806323b872dd1461038c5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610af3565b6040516102c591906135a5565b60405180910390f35b3480156102da57600080fd5b506102e3610af9565b6040516102f091906135db565b60405180910390f35b34801561030557600080fd5b5061030e610b0c565b60405161031b9190613686565b60405180910390f35b34801561033057600080fd5b5061034b60048036038101906103469190613737565b610b49565b60405161035891906135db565b60405180910390f35b34801561036d57600080fd5b50610376610c3b565b60405161038391906135a5565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613777565b610c45565b6040516103c091906135db565b60405180910390f35b3480156103d557600080fd5b506103de610e07565b005b3480156103ec57600080fd5b50610407600480360381019061040291906137ca565b61115a565b60405161041491906135db565b60405180910390f35b34801561042957600080fd5b506104326111b3565b60405161043f91906135a5565b60405180910390f35b34801561045457600080fd5b5061045d6111b9565b60405161046a9190613813565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906137ca565b6111c2565b6040516104a791906135db565b60405180910390f35b3480156104bc57600080fd5b506104c56111e2565b6040516104d291906135a5565b60405180910390f35b3480156104e757600080fd5b506104f06111e8565b6040516104fd91906135a5565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061385a565b6111ee565b005b34801561053b57600080fd5b506105446112a2565b6040516105519190613896565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c91906137ca565b6112c8565b60405161058e91906135db565b60405180910390f35b3480156105a357600080fd5b506105ac6112fb565b6040516105b991906135a5565b60405180910390f35b3480156105ce57600080fd5b506105d7611301565b6040516105e491906135a5565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906138b1565b611307565b005b34801561062257600080fd5b5061063d600480360381019061063891906138f1565b61144d565b005b34801561064b57600080fd5b5061065461156f565b60405161066191906135db565b60405180910390f35b34801561067657600080fd5b5061067f611582565b60405161068c91906135a5565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b791906137ca565b611588565b6040516106c991906135a5565b60405180910390f35b3480156106de57600080fd5b506106e76115d1565b6040516106f491906135a5565b60405180910390f35b34801561070957600080fd5b506107126115d7565b60405161071f91906135a5565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a9190613931565b6115dd565b005b34801561075d57600080fd5b5061076661179f565b6040516107739190613896565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e91906137ca565b6117c8565b005b3480156107b157600080fd5b506107cc60048036038101906107c791906137ca565b6118e5565b6040516107d991906135db565b60405180910390f35b3480156107ee57600080fd5b506107f7611905565b60405161080491906135a5565b60405180910390f35b34801561081957600080fd5b5061082261190b565b005b34801561083057600080fd5b506108396119a3565b6040516108469190613686565b60405180910390f35b34801561085b57600080fd5b506108646119e0565b005b34801561087257600080fd5b5061087b611ab4565b6040516108889190613896565b60405180910390f35b34801561089d57600080fd5b506108a6611ada565b6040516108b39190613896565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de9190613737565b611b00565b6040516108f091906135db565b60405180910390f35b34801561090557600080fd5b5061090e611b15565b60405161091b9190613896565b60405180910390f35b34801561093057600080fd5b50610939611b3b565b005b34801561094757600080fd5b50610950611f00565b60405161095d9190613896565b60405180910390f35b34801561097257600080fd5b5061097b611f26565b60405161098891906135a5565b60405180910390f35b34801561099d57600080fd5b506109b860048036038101906109b391906139be565b611f2c565b6040516109c591906135a5565b60405180910390f35b3480156109da57600080fd5b506109f560048036038101906109f091906139fe565b611fb3565b005b348015610a0357600080fd5b50610a1e6004803603810190610a1991906139be565b6120f4565b005b348015610a2c57600080fd5b50610a476004803603810190610a4291906137ca565b612261565b005b348015610a5557600080fd5b50610a5e61241b565b604051610a6b9190613896565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a9691906138f1565b612423565b005b348015610aa957600080fd5b50610ab2612545565b604051610abf9190613a9d565b60405180910390f35b348015610ad457600080fd5b50610add61256b565b604051610aea9190613896565b60405180910390f35b60175481565b601860009054906101000a900460ff1681565b60606040518060400160405280600981526020017f4b49594f4b4f53414e0000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c2991906135a5565b60405180910390a36001905092915050565b6000600754905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610df35781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d729190613ae7565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dfe848484612591565b90509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613b67565b60405180910390fd5b6000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611083578060036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f519190613b87565b60036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107a91906135a5565b60405180910390a35b6000479050600081111561115657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110f9573d6000803e3d6000fd5b507f98be19c3f4396a31e2a152c079eecc8fe940dcc3538dfe8fdc516e83567e976781601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161114d929190613bbb565b60405180910390a15b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600f5481565b60006012905090565b60056020528060005260406000206000915054906101000a900460ff1681565b60195481565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590613c30565b60405180910390fd5b80601860006101000a81548160ff0219169083151502179055504260198190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112f4827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b49565b9050919050565b60105481565b600d5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90613c9c565b60405180910390fd5b6103e86007546113a59190613ceb565b82101580156113c357506103e86007546113bf9190613ceb565b8110155b611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613d8e565b60405180910390fd5b81600881905550806009819055507fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf63618660085460405161144191906135a5565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613c9c565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d698282604051611563929190613dae565b60405180910390a15050565b601660149054906101000a900460ff1681565b600b5481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600e5481565b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290613c9c565b60405180910390fd5b61014a84868861167b9190613b87565b6116859190613b87565b111580156116ab575061014a81838561169e9190613b87565b6116a89190613b87565b11155b6116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190613e49565b60405180910390fd5b85600a8190555084600b8190555083600c8190555082600d8190555081600e8190555080600f81905550600f54600c54600e54600b54600d54600a546117309190613b87565b61173a9190613b87565b6117449190613b87565b61174e9190613b87565b6117589190613b87565b6010819055507fa142c987774756b13db02cb5b530db2fa8a680ce74f42d87f33148e3f7098ebb600a5460405161178f91906135a5565b60405180910390a1505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118409190613896565b602060405180830381865afa15801561185d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118819190613e7e565b6040518363ffffffff1660e01b815260040161189e929190613eab565b6020604051808303816000875af11580156118bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e19190613ee9565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199090613c9c565b60405180910390fd5b6119a1612b17565b565b60606040518060400160405280600581526020017f4b494b4f53000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff16601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6790613c30565b60405180910390fd5b6000601860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b0d338484612591565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613c9c565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613f2b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611cb6929190613f58565b602060405180830381865afa158015611cd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf79190613f2b565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611efe57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1e9190613f2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611e7a929190613f58565b6020604051808303816000875af1158015611e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebd9190613f2b565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b565b601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890613c9c565b60405180910390fd5b6001811015612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613fcd565b60405180910390fd5b81601660146101000a81548160ff021916908315150217905550806017819055507f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd934601660149054906101000a900460ff166017546040516120e8929190613fed565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990613c9c565b60405180910390fd5b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516122559190613896565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e690613c9c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590614088565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600030905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a890613c9c565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba8282604051612539929190613dae565b60405180910390a15050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a60009054906101000a900460ff16156125ba576125b3848484612fe6565b9050612b10565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061265b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126725750601860009054906101000a900460ff165b6126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a8906140f4565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561275b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127b3575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127ed575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561293e57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128fe575060095482111580156128fd575060085482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fa9190613b87565b11155b5b61293d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293490614186565b60405180910390fd5b5b612946613174565b1561295457612953612b17565b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299f9190613ae7565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006129ed8561324b565b15806129ff57506129fd8461324b565b155b612a1357612a0e8585856132a2565b612a15565b825b905080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a629190613b87565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b0291906135a5565b60405180910390a360019150505b9392505050565b6001601a60006101000a81548160ff02191690831515021790555060006010546002612b4391906141a6565b600f54600c54612b539190613b87565b612b5c30611588565b612b6691906141a6565b612b709190613ceb565b9050600081612b7e30611588565b612b889190613ae7565b90506000600267ffffffffffffffff811115612ba757612ba66141e8565b5b604051908082528060200260200182016040528015612bd55781602001602082028036833780820191505090505b5090503081600081518110612bed57612bec614217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c5e57612c5d614217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661012c42612d0b9190613b87565b6040518663ffffffff1660e01b8152600401612d2b95949392919061433f565b600060405180830381600087803b158015612d4557600080fd5b505af1158015612d59573d6000803e3d6000fd5b5050505082600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da89190613ae7565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e589190613b87565b60036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f3c91906135a5565b60405180910390a3601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638119c0656040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612fae57600080fd5b505af1158015612fc2573d6000803e3d6000fd5b505050505050506000601a60006101000a81548160ff021916908315150217905550565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130339190613ae7565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c19190613b87565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161316191906135a5565b60405180910390a3600190509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131e15750601a60009054906101000a900460ff16155b80156131f95750601660149054906101000a900460ff165b80156132465750601754600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156133545750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613391576103e8600c54600b54600a5461336f9190613b87565b6133799190613b87565b8461338491906141a6565b61338e9190613ceb565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561343c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15613479576103e8600f54600e54600d546134579190613b87565b6134619190613b87565b8461346c91906141a6565b6134769190613ceb565b90505b60008111156135765780600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134cd9190613b87565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161356d91906135a5565b60405180910390a35b80836135829190613ae7565b9150509392505050565b6000819050919050565b61359f8161358c565b82525050565b60006020820190506135ba6000830184613596565b92915050565b60008115159050919050565b6135d5816135c0565b82525050565b60006020820190506135f060008301846135cc565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613630578082015181840152602081019050613615565b60008484015250505050565b6000601f19601f8301169050919050565b6000613658826135f6565b6136628185613601565b9350613672818560208601613612565b61367b8161363c565b840191505092915050565b600060208201905081810360008301526136a0818461364d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136d8826136ad565b9050919050565b6136e8816136cd565b81146136f357600080fd5b50565b600081359050613705816136df565b92915050565b6137148161358c565b811461371f57600080fd5b50565b6000813590506137318161370b565b92915050565b6000806040838503121561374e5761374d6136a8565b5b600061375c858286016136f6565b925050602061376d85828601613722565b9150509250929050565b6000806000606084860312156137905761378f6136a8565b5b600061379e868287016136f6565b93505060206137af868287016136f6565b92505060406137c086828701613722565b9150509250925092565b6000602082840312156137e0576137df6136a8565b5b60006137ee848285016136f6565b91505092915050565b600060ff82169050919050565b61380d816137f7565b82525050565b60006020820190506138286000830184613804565b92915050565b613837816135c0565b811461384257600080fd5b50565b6000813590506138548161382e565b92915050565b6000602082840312156138705761386f6136a8565b5b600061387e84828501613845565b91505092915050565b613890816136cd565b82525050565b60006020820190506138ab6000830184613887565b92915050565b600080604083850312156138c8576138c76136a8565b5b60006138d685828601613722565b92505060206138e785828601613722565b9150509250929050565b60008060408385031215613908576139076136a8565b5b6000613916858286016136f6565b925050602061392785828601613845565b9150509250929050565b60008060008060008060c0878903121561394e5761394d6136a8565b5b600061395c89828a01613722565b965050602061396d89828a01613722565b955050604061397e89828a01613722565b945050606061398f89828a01613722565b93505060806139a089828a01613722565b92505060a06139b189828a01613722565b9150509295509295509295565b600080604083850312156139d5576139d46136a8565b5b60006139e3858286016136f6565b92505060206139f4858286016136f6565b9150509250929050565b60008060408385031215613a1557613a146136a8565b5b6000613a2385828601613845565b9250506020613a3485828601613722565b9150509250929050565b6000819050919050565b6000613a63613a5e613a59846136ad565b613a3e565b6136ad565b9050919050565b6000613a7582613a48565b9050919050565b6000613a8782613a6a565b9050919050565b613a9781613a7c565b82525050565b6000602082019050613ab26000830184613a8e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613af28261358c565b9150613afd8361358c565b9250828203905081811115613b1557613b14613ab8565b5b92915050565b7f6e6f74206465762077616c6c6574000000000000000000000000000000000000600082015250565b6000613b51600e83613601565b9150613b5c82613b1b565b602082019050919050565b60006020820190508181036000830152613b8081613b44565b9050919050565b6000613b928261358c565b9150613b9d8361358c565b9250828201905080821115613bb557613bb4613ab8565b5b92915050565b6000604082019050613bd06000830185613596565b613bdd6020830184613887565b9392505050565b7f696e636f6d70617469626c6520726f6c65210000000000000000000000000000600082015250565b6000613c1a601283613601565b9150613c2582613be4565b602082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000613c86600983613601565b9150613c9182613c50565b602082019050919050565b60006020820190508181036000830152613cb581613c79565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cf68261358c565b9150613d018361358c565b925082613d1157613d10613cbc565b5b828204905092915050565b7f43616e277420736574204d617857616c6c6574206f722054782062656c6f772060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b6000613d78602483613601565b9150613d8382613d1c565b604082019050919050565b60006020820190508181036000830152613da781613d6b565b9050919050565b6000604082019050613dc36000830185613887565b613dd060208301846135cc565b9392505050565b7f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60008201527f657373207468616e203333250000000000000000000000000000000000000000602082015250565b6000613e33602c83613601565b9150613e3e82613dd7565b604082019050919050565b60006020820190508181036000830152613e6281613e26565b9050919050565b600081519050613e788161370b565b92915050565b600060208284031215613e9457613e936136a8565b5b6000613ea284828501613e69565b91505092915050565b6000604082019050613ec06000830185613887565b613ecd6020830184613596565b9392505050565b600081519050613ee38161382e565b92915050565b600060208284031215613eff57613efe6136a8565b5b6000613f0d84828501613ed4565b91505092915050565b600081519050613f25816136df565b92915050565b600060208284031215613f4157613f406136a8565b5b6000613f4f84828501613f16565b91505092915050565b6000604082019050613f6d6000830185613887565b613f7a6020830184613887565b9392505050565b7f43616e27742073657420537761705468726573686f6c6420746f205a45524f00600082015250565b6000613fb7601f83613601565b9150613fc282613f81565b602082019050919050565b60006020820190508181036000830152613fe681613faa565b9050919050565b600060408201905061400260008301856135cc565b61400f6020830184613596565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614072602683613601565b915061407d82614016565b604082019050919050565b600060208201905081810360008301526140a181614065565b9050919050565b7f4e6f7420617574686f72697a656420746f207472616465207965740000000000600082015250565b60006140de601b83613601565b91506140e9826140a8565b602082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865204d61785760008201527f616c6c65742073697a652e000000000000000000000000000000000000000000602082015250565b6000614170602b83613601565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b60006141b18261358c565b91506141bc8361358c565b92508282026141ca8161358c565b915082820484148315176141e1576141e0613ab8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061426b61426661426184614246565b613a3e565b61358c565b9050919050565b61427b81614250565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142b6816136cd565b82525050565b60006142c883836142ad565b60208301905092915050565b6000602082019050919050565b60006142ec82614281565b6142f6818561428c565b93506143018361429d565b8060005b8381101561433257815161431988826142bc565b9750614324836142d4565b925050600181019050614305565b5085935050505092915050565b600060a0820190506143546000830188613596565b6143616020830187614272565b818103604083015261437381866142e1565b90506143826060830185613887565b61438f6080830184613596565b969550505050505056fea264697066735822122015405bcfe3042ee68f7b0d9c7570daf6a89a6267643994715bc95b906a1ae0f264736f6c63430008110033000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78
Deployed Bytecode
0x6080604052600436106102975760003560e01c8063769b3fdd1161015a578063b115e4df116100c1578063e66db25e1161007a578063e66db25e146109f7578063f2fde38b14610a20578063f556fcdb14610a49578063f84ba65d14610a74578063f887ea4014610a9d578063fe7369a814610ac85761029e565b8063b115e4df146108f9578063c1f1b1b514610924578063cbdcfd811461093b578063da23545914610966578063dd62ed3e14610991578063df20fd49146109ce5761029e565b806390a9ac3f1161011357806390a9ac3f1461080d57806395d89b411461082457806399ab04a71461084f578063a2d57df114610866578063a8aa1b3114610891578063a9059cbb146108bc5761029e565b8063769b3fdd146106fd57806386f6c3c114610728578063893d20e814610751578063894760691461077c5780638b42507f146107a55780638f9a55c0146107e25761029e565b8063511b5f61116101fe57806365406481116101b757806365406481146105ed578063658d4b7f146106165780636ddd17131461063f5780636f65cfa31461066a57806370a082311461069557806374db3302146106d25761029e565b8063511b5f61146104db578063559ef2251461050657806356382ab31461052f578063571ac8b01461055a5780635be0499b146105975780636295c649146105c25761029e565b806325348b051161025057806325348b05146103c95780632f54bf6e146103e05780632fe76bc21461041d578063313ce567146104485780633f4218e01461047357806340c39c09146104b05761029e565b80630445b667146102a3578063064a59d0146102ce57806306fdde03146102f9578063095ea7b31461032457806318160ddd1461036157806323b872dd1461038c5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610af3565b6040516102c591906135a5565b60405180910390f35b3480156102da57600080fd5b506102e3610af9565b6040516102f091906135db565b60405180910390f35b34801561030557600080fd5b5061030e610b0c565b60405161031b9190613686565b60405180910390f35b34801561033057600080fd5b5061034b60048036038101906103469190613737565b610b49565b60405161035891906135db565b60405180910390f35b34801561036d57600080fd5b50610376610c3b565b60405161038391906135a5565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613777565b610c45565b6040516103c091906135db565b60405180910390f35b3480156103d557600080fd5b506103de610e07565b005b3480156103ec57600080fd5b50610407600480360381019061040291906137ca565b61115a565b60405161041491906135db565b60405180910390f35b34801561042957600080fd5b506104326111b3565b60405161043f91906135a5565b60405180910390f35b34801561045457600080fd5b5061045d6111b9565b60405161046a9190613813565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906137ca565b6111c2565b6040516104a791906135db565b60405180910390f35b3480156104bc57600080fd5b506104c56111e2565b6040516104d291906135a5565b60405180910390f35b3480156104e757600080fd5b506104f06111e8565b6040516104fd91906135a5565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061385a565b6111ee565b005b34801561053b57600080fd5b506105446112a2565b6040516105519190613896565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c91906137ca565b6112c8565b60405161058e91906135db565b60405180910390f35b3480156105a357600080fd5b506105ac6112fb565b6040516105b991906135a5565b60405180910390f35b3480156105ce57600080fd5b506105d7611301565b6040516105e491906135a5565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906138b1565b611307565b005b34801561062257600080fd5b5061063d600480360381019061063891906138f1565b61144d565b005b34801561064b57600080fd5b5061065461156f565b60405161066191906135db565b60405180910390f35b34801561067657600080fd5b5061067f611582565b60405161068c91906135a5565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b791906137ca565b611588565b6040516106c991906135a5565b60405180910390f35b3480156106de57600080fd5b506106e76115d1565b6040516106f491906135a5565b60405180910390f35b34801561070957600080fd5b506107126115d7565b60405161071f91906135a5565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a9190613931565b6115dd565b005b34801561075d57600080fd5b5061076661179f565b6040516107739190613896565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e91906137ca565b6117c8565b005b3480156107b157600080fd5b506107cc60048036038101906107c791906137ca565b6118e5565b6040516107d991906135db565b60405180910390f35b3480156107ee57600080fd5b506107f7611905565b60405161080491906135a5565b60405180910390f35b34801561081957600080fd5b5061082261190b565b005b34801561083057600080fd5b506108396119a3565b6040516108469190613686565b60405180910390f35b34801561085b57600080fd5b506108646119e0565b005b34801561087257600080fd5b5061087b611ab4565b6040516108889190613896565b60405180910390f35b34801561089d57600080fd5b506108a6611ada565b6040516108b39190613896565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de9190613737565b611b00565b6040516108f091906135db565b60405180910390f35b34801561090557600080fd5b5061090e611b15565b60405161091b9190613896565b60405180910390f35b34801561093057600080fd5b50610939611b3b565b005b34801561094757600080fd5b50610950611f00565b60405161095d9190613896565b60405180910390f35b34801561097257600080fd5b5061097b611f26565b60405161098891906135a5565b60405180910390f35b34801561099d57600080fd5b506109b860048036038101906109b391906139be565b611f2c565b6040516109c591906135a5565b60405180910390f35b3480156109da57600080fd5b506109f560048036038101906109f091906139fe565b611fb3565b005b348015610a0357600080fd5b50610a1e6004803603810190610a1991906139be565b6120f4565b005b348015610a2c57600080fd5b50610a476004803603810190610a4291906137ca565b612261565b005b348015610a5557600080fd5b50610a5e61241b565b604051610a6b9190613896565b60405180910390f35b348015610a8057600080fd5b50610a9b6004803603810190610a9691906138f1565b612423565b005b348015610aa957600080fd5b50610ab2612545565b604051610abf9190613a9d565b60405180910390f35b348015610ad457600080fd5b50610add61256b565b604051610aea9190613896565b60405180910390f35b60175481565b601860009054906101000a900460ff1681565b60606040518060400160405280600981526020017f4b49594f4b4f53414e0000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c2991906135a5565b60405180910390a36001905092915050565b6000600754905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610df35781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d729190613ae7565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dfe848484612591565b90509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613b67565b60405180910390fd5b6000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611083578060036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f519190613b87565b60036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161107a91906135a5565b60405180910390a35b6000479050600081111561115657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110f9573d6000803e3d6000fd5b507f98be19c3f4396a31e2a152c079eecc8fe940dcc3538dfe8fdc516e83567e976781601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161114d929190613bbb565b60405180910390a15b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600f5481565b60006012905090565b60056020528060005260406000206000915054906101000a900460ff1681565b60195481565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590613c30565b60405180910390fd5b80601860006101000a81548160ff0219169083151502179055504260198190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112f4827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b49565b9050919050565b60105481565b600d5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90613c9c565b60405180910390fd5b6103e86007546113a59190613ceb565b82101580156113c357506103e86007546113bf9190613ceb565b8110155b611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613d8e565b60405180910390fd5b81600881905550806009819055507fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf63618660085460405161144191906135a5565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613c9c565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d698282604051611563929190613dae565b60405180910390a15050565b601660149054906101000a900460ff1681565b600b5481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600e5481565b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290613c9c565b60405180910390fd5b61014a84868861167b9190613b87565b6116859190613b87565b111580156116ab575061014a81838561169e9190613b87565b6116a89190613b87565b11155b6116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190613e49565b60405180910390fd5b85600a8190555084600b8190555083600c8190555082600d8190555081600e8190555080600f81905550600f54600c54600e54600b54600d54600a546117309190613b87565b61173a9190613b87565b6117449190613b87565b61174e9190613b87565b6117589190613b87565b6010819055507fa142c987774756b13db02cb5b530db2fa8a680ce74f42d87f33148e3f7098ebb600a5460405161178f91906135a5565b60405180910390a1505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118409190613896565b602060405180830381865afa15801561185d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118819190613e7e565b6040518363ffffffff1660e01b815260040161189e929190613eab565b6020604051808303816000875af11580156118bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e19190613ee9565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199090613c9c565b60405180910390fd5b6119a1612b17565b565b60606040518060400160405280600581526020017f4b494b4f53000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff16601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6790613c30565b60405180910390fd5b6000601860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b0d338484612591565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613c9c565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613f2b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611cb6929190613f58565b602060405180830381865afa158015611cd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf79190613f2b565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611efe57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1e9190613f2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611e7a929190613f58565b6020604051808303816000875af1158015611e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebd9190613f2b565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b565b601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890613c9c565b60405180910390fd5b6001811015612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613fcd565b60405180910390fd5b81601660146101000a81548160ff021916908315150217905550806017819055507f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd934601660149054906101000a900460ff166017546040516120e8929190613fed565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990613c9c565b60405180910390fd5b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516122559190613896565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e690613c9c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590614088565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600030905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a890613c9c565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba8282604051612539929190613dae565b60405180910390a15050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a60009054906101000a900460ff16156125ba576125b3848484612fe6565b9050612b10565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061265b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126725750601860009054906101000a900460ff165b6126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a8906140f4565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561275b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127b3575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127ed575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561293e57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128fe575060095482111580156128fd575060085482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fa9190613b87565b11155b5b61293d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293490614186565b60405180910390fd5b5b612946613174565b1561295457612953612b17565b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299f9190613ae7565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006129ed8561324b565b15806129ff57506129fd8461324b565b155b612a1357612a0e8585856132a2565b612a15565b825b905080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a629190613b87565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b0291906135a5565b60405180910390a360019150505b9392505050565b6001601a60006101000a81548160ff02191690831515021790555060006010546002612b4391906141a6565b600f54600c54612b539190613b87565b612b5c30611588565b612b6691906141a6565b612b709190613ceb565b9050600081612b7e30611588565b612b889190613ae7565b90506000600267ffffffffffffffff811115612ba757612ba66141e8565b5b604051908082528060200260200182016040528015612bd55781602001602082028036833780820191505090505b5090503081600081518110612bed57612bec614217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c5e57612c5d614217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661012c42612d0b9190613b87565b6040518663ffffffff1660e01b8152600401612d2b95949392919061433f565b600060405180830381600087803b158015612d4557600080fd5b505af1158015612d59573d6000803e3d6000fd5b5050505082600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da89190613ae7565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e589190613b87565b60036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f3c91906135a5565b60405180910390a3601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638119c0656040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612fae57600080fd5b505af1158015612fc2573d6000803e3d6000fd5b505050505050506000601a60006101000a81548160ff021916908315150217905550565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130339190613ae7565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c19190613b87565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161316191906135a5565b60405180910390a3600190509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131e15750601a60009054906101000a900460ff16155b80156131f95750601660149054906101000a900460ff165b80156132465750601754600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156133545750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613391576103e8600c54600b54600a5461336f9190613b87565b6133799190613b87565b8461338491906141a6565b61338e9190613ceb565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561343c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15613479576103e8600f54600e54600d546134579190613b87565b6134619190613b87565b8461346c91906141a6565b6134769190613ceb565b90505b60008111156135765780600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134cd9190613b87565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161356d91906135a5565b60405180910390a35b80836135829190613ae7565b9150509392505050565b6000819050919050565b61359f8161358c565b82525050565b60006020820190506135ba6000830184613596565b92915050565b60008115159050919050565b6135d5816135c0565b82525050565b60006020820190506135f060008301846135cc565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613630578082015181840152602081019050613615565b60008484015250505050565b6000601f19601f8301169050919050565b6000613658826135f6565b6136628185613601565b9350613672818560208601613612565b61367b8161363c565b840191505092915050565b600060208201905081810360008301526136a0818461364d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136d8826136ad565b9050919050565b6136e8816136cd565b81146136f357600080fd5b50565b600081359050613705816136df565b92915050565b6137148161358c565b811461371f57600080fd5b50565b6000813590506137318161370b565b92915050565b6000806040838503121561374e5761374d6136a8565b5b600061375c858286016136f6565b925050602061376d85828601613722565b9150509250929050565b6000806000606084860312156137905761378f6136a8565b5b600061379e868287016136f6565b93505060206137af868287016136f6565b92505060406137c086828701613722565b9150509250925092565b6000602082840312156137e0576137df6136a8565b5b60006137ee848285016136f6565b91505092915050565b600060ff82169050919050565b61380d816137f7565b82525050565b60006020820190506138286000830184613804565b92915050565b613837816135c0565b811461384257600080fd5b50565b6000813590506138548161382e565b92915050565b6000602082840312156138705761386f6136a8565b5b600061387e84828501613845565b91505092915050565b613890816136cd565b82525050565b60006020820190506138ab6000830184613887565b92915050565b600080604083850312156138c8576138c76136a8565b5b60006138d685828601613722565b92505060206138e785828601613722565b9150509250929050565b60008060408385031215613908576139076136a8565b5b6000613916858286016136f6565b925050602061392785828601613845565b9150509250929050565b60008060008060008060c0878903121561394e5761394d6136a8565b5b600061395c89828a01613722565b965050602061396d89828a01613722565b955050604061397e89828a01613722565b945050606061398f89828a01613722565b93505060806139a089828a01613722565b92505060a06139b189828a01613722565b9150509295509295509295565b600080604083850312156139d5576139d46136a8565b5b60006139e3858286016136f6565b92505060206139f4858286016136f6565b9150509250929050565b60008060408385031215613a1557613a146136a8565b5b6000613a2385828601613845565b9250506020613a3485828601613722565b9150509250929050565b6000819050919050565b6000613a63613a5e613a59846136ad565b613a3e565b6136ad565b9050919050565b6000613a7582613a48565b9050919050565b6000613a8782613a6a565b9050919050565b613a9781613a7c565b82525050565b6000602082019050613ab26000830184613a8e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613af28261358c565b9150613afd8361358c565b9250828203905081811115613b1557613b14613ab8565b5b92915050565b7f6e6f74206465762077616c6c6574000000000000000000000000000000000000600082015250565b6000613b51600e83613601565b9150613b5c82613b1b565b602082019050919050565b60006020820190508181036000830152613b8081613b44565b9050919050565b6000613b928261358c565b9150613b9d8361358c565b9250828201905080821115613bb557613bb4613ab8565b5b92915050565b6000604082019050613bd06000830185613596565b613bdd6020830184613887565b9392505050565b7f696e636f6d70617469626c6520726f6c65210000000000000000000000000000600082015250565b6000613c1a601283613601565b9150613c2582613be4565b602082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000613c86600983613601565b9150613c9182613c50565b602082019050919050565b60006020820190508181036000830152613cb581613c79565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cf68261358c565b9150613d018361358c565b925082613d1157613d10613cbc565b5b828204905092915050565b7f43616e277420736574204d617857616c6c6574206f722054782062656c6f772060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b6000613d78602483613601565b9150613d8382613d1c565b604082019050919050565b60006020820190508181036000830152613da781613d6b565b9050919050565b6000604082019050613dc36000830185613887565b613dd060208301846135cc565b9392505050565b7f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60008201527f657373207468616e203333250000000000000000000000000000000000000000602082015250565b6000613e33602c83613601565b9150613e3e82613dd7565b604082019050919050565b60006020820190508181036000830152613e6281613e26565b9050919050565b600081519050613e788161370b565b92915050565b600060208284031215613e9457613e936136a8565b5b6000613ea284828501613e69565b91505092915050565b6000604082019050613ec06000830185613887565b613ecd6020830184613596565b9392505050565b600081519050613ee38161382e565b92915050565b600060208284031215613eff57613efe6136a8565b5b6000613f0d84828501613ed4565b91505092915050565b600081519050613f25816136df565b92915050565b600060208284031215613f4157613f406136a8565b5b6000613f4f84828501613f16565b91505092915050565b6000604082019050613f6d6000830185613887565b613f7a6020830184613887565b9392505050565b7f43616e27742073657420537761705468726573686f6c6420746f205a45524f00600082015250565b6000613fb7601f83613601565b9150613fc282613f81565b602082019050919050565b60006020820190508181036000830152613fe681613faa565b9050919050565b600060408201905061400260008301856135cc565b61400f6020830184613596565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614072602683613601565b915061407d82614016565b604082019050919050565b600060208201905081810360008301526140a181614065565b9050919050565b7f4e6f7420617574686f72697a656420746f207472616465207965740000000000600082015250565b60006140de601b83613601565b91506140e9826140a8565b602082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865204d61785760008201527f616c6c65742073697a652e000000000000000000000000000000000000000000602082015250565b6000614170602b83613601565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b60006141b18261358c565b91506141bc8361358c565b92508282026141ca8161358c565b915082820484148315176141e1576141e0613ab8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061426b61426661426184614246565b613a3e565b61358c565b9050919050565b61427b81614250565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142b6816136cd565b82525050565b60006142c883836142ad565b60208301905092915050565b6000602082019050919050565b60006142ec82614281565b6142f6818561428c565b93506143018361429d565b8060005b8381101561433257815161431988826142bc565b9750614324836142d4565b925050600181019050614305565b5085935050505092915050565b600060a0820190506143546000830188613596565b6143616020830187614272565b818103604083015261437381866142e1565b90506143826060830185613887565b61438f6080830184613596565b969550505050505056fea264697066735822122015405bcfe3042ee68f7b0d9c7570daf6a89a6267643994715bc95b906a1ae0f264736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78
-----Decoded View---------------
Arg [0] : _dev (address): 0xEd4103A7C6C7712afb99649378b1473629C0cd78
Arg [1] : _kiyokosan (address): 0xEd4103A7C6C7712afb99649378b1473629C0cd78
Arg [2] : _dist (address): 0xEd4103A7C6C7712afb99649378b1473629C0cd78
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78
Arg [1] : 000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78
Arg [2] : 000000000000000000000000ed4103a7c6c7712afb99649378b1473629c0cd78
Deployed Bytecode Sourcemap
2916:11563:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4761:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4834:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6228:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6650:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5958:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7222:345;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13651:575;;;;;;;;;;;;;:::i;:::-;;1376:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4189:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6052:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3494:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4917:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3899:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7985:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4432:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6874:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4234:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4109:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11474:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11840:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4724:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4023:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6398:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4146:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4065:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12198:817;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6314:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14234:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3545:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3834:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13540:74;;;;;;;;;;;;;:::i;:::-;;6138:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7806:171;;;;;;;;;;;;;:::i;:::-;;4694:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4598;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7004:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4401:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7575:223;;;;;;;;;;;;;:::i;:::-;;4877:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6509:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13247:285;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13023:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1487:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14380:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12013:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4567:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4624:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4761:55;;;;:::o;4834:36::-;;;;;;;;;;;;;:::o;6228:80::-;6276:13;6300:5;;;;;;;;;;;;;;;;;6293:12;;6228:80;:::o;6650:216::-;6725:4;6777:6;6742:11;:23;6754:10;6742:23;;;;;;;;;;;;;;;:32;6766:7;6742:32;;;;;;;;;;;;;;;:41;;;;6820:7;6799:37;;6808:10;6799:37;;;6829:6;6799:37;;;;;;:::i;:::-;;;;;;;;6854:4;6847:11;;6650:216;;;;:::o;5958:88::-;6013:7;6031:12;;6024:19;;5958:88;:::o;7222:345::-;7322:4;7377:17;7342:11;:19;7354:6;7342:19;;;;;;;;;;;;;;;:31;7362:10;7342:31;;;;;;;;;;;;;;;;:52;7339:159;;7479:6;7444:11;:19;7456:6;7444:19;;;;;;;;;;;;;;;:31;7464:10;7444:31;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;7410:11;:19;7422:6;7410:19;;;;;;;;;;;;;;;:31;7430:10;7410:31;;;;;;;;;;;;;;;:76;;;;7339:159;7517:40;7531:6;7539:9;7550:6;7517:13;:40::i;:::-;7510:47;;7222:345;;;;;:::o;13651:575::-;13723:10;13710:23;;:9;;;;;;;;;;;:23;;;13702:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13765:12;13780:9;:24;13798:4;13780:24;;;;;;;;;;;;;;;;13765:39;;13826:1;13819:4;:8;13815:194;;;13890:4;13867:9;:20;13877:9;;;;;;;;;;;13867:20;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;13844:9;:20;13854:9;;;;;;;;;;;13844:20;;;;;;;;;;;;;;;:50;;;;13936:1;13909:9;:24;13927:4;13909:24;;;;;;;;;;;;;;;:28;;;;13981:9;;;;;;;;;;;13957:40;;13974:4;13957:40;;;13992:4;13957:40;;;;;;:::i;:::-;;;;;;;;13815:194;14021:15;14039:21;14021:39;;14087:1;14077:7;:11;14073:144;;;14113:9;;;;;;;;;;;14105:27;;:36;14133:7;14105:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14161;14178:7;14187:9;;;;;;;;;;;14161:36;;;;;;;:::i;:::-;;;;;;;;14073:144;13689:537;;13651:575::o;1376:103::-;1431:4;1466:5;;;;;;;;;;;1455:16;;:7;:16;;;1448:23;;1376:103;;;:::o;4189:36::-;;;;:::o;6052:80::-;6104:5;3739:2;6113:16;;6052:80;:::o;3494:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;4917:31::-;;;;:::o;3899:54::-;;;;:::o;7985:234::-;8086:10;8064:32;;:18;;;;;;;;;;;:32;;;8056:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8149:17;8130:16;;:36;;;;;;;;;;;;;;;;;;8196:15;8177:16;:34;;;;7985:234;:::o;4432:30::-;;;;;;;;;;;;;:::o;6874:122::-;6929:4;6953:35;6961:7;6970:17;6953:7;:35::i;:::-;6946:42;;6874:122;;;:::o;4234:123::-;;;;:::o;4109:30::-;;;;:::o;11474:358::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11619:4:::1;11604:12;;:19;;;;:::i;:::-;11585:15;:38;;:76;;;;;11657:4;11642:12;;:19;;;;:::i;:::-;11627:11;:34;;11585:76;11577:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;11730:15;11713:14;:32;;;;11769:11;11756:10;:24;;;;11796:28;11809:14;;11796:28;;;;;;:::i;:::-;;;;;;;;11474:358:::0;;:::o;11840:165::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11945:6:::1;11923:11;:19;11935:6;11923:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11967:30;11982:6;11990;11967:30;;;;;;;:::i;:::-;;;;;;;;11840:165:::0;;:::o;4724:30::-;;;;;;;;;;;;;:::o;4023:35::-;;;;:::o;6398:105::-;6464:7;6482:9;:18;6492:7;6482:18;;;;;;;;;;;;;;;;6475:25;;6398:105;;;:::o;4146:36::-;;;;:::o;4065:35::-;;;;:::o;12198:817::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12472:3:::1;12452:16;12433;12420:10;:29;;;;:::i;:::-;:48;;;;:::i;:::-;:55;;:117;;;;;12534:3;12513:17;12493;12479:11;:31;;;;:::i;:::-;:51;;;;:::i;:::-;:58;;12420:117;12412:174;;;;;;;;;;;;:::i;:::-;;;;;;;;;12611:10;12599:9;:22;;;;12650:16;12632:15;:34;;;;12695:16;12677:15;:34;;;;12737:11;12724:10;:24;;;;12778:17;12759:16;:36;;;;12825:17;12806:16;:36;;;;12947:16;;12929:15;;12910:16;;12892:15;;12879:10;;12867:9;;:22;;;;:::i;:::-;:40;;;;:::i;:::-;:59;;;;:::i;:::-;:77;;;;:::i;:::-;:96;;;;:::i;:::-;12855:9;:108;;;;12989:18;12997:9;;12989:18;;;;;;:::i;:::-;;;;;;;;12198:817:::0;;;;;;:::o;6314:78::-;6366:7;6384:5;;;;;;;;;;;6377:12;;6314:78;:::o;14234:138::-;14297:6;14291:22;;;14314:9;;;;;;;;;;;14331:6;14325:23;;;14357:4;14325:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14291:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14234:138;:::o;3545:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3834:58::-;;;;:::o;13540:74::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;13594:10:::1;:8;:10::i;:::-;13540:74::o:0;6138:84::-;6188:13;6212:7;;;;;;;;;;;;;;;;;6205:14;;6138:84;:::o;7806:171::-;7892:10;7870:32;;:18;;;;;;;;;;;:32;;;7862:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7965:3;7936:18;;:33;;;;;;;;;;;;;;;;;;7806:171::o;4694:19::-;;;;;;;;;;;;;:::o;4598:::-;;;;;;;;;;;;;:::o;7004:156::-;7084:4;7108:44;7122:10;7134:9;7145:6;7108:13;:44::i;:::-;7101:51;;7004:156;;;;:::o;4401:24::-;;;;;;;;;;;;;:::o;7575:223::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7641:6:::1;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7629:37;;;7675:4;7682:3;;;;;;;;;;;7629:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7622:4;;:64;;;;;;;;;;;;;;;;;;7717:1;7701:18;;:4;;;;;;;;;;;:18;;::::0;7697:94:::1;;7741:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7729:40;;;7778:4;7785:3;;;;;;;;;;;7729:60;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7722:4;;:67;;;;;;;;;;;;;;;;;;7697:94;7575:223::o:0;4877:33::-;;;;;;;;;;;;;:::o;3987:29::-;;;;:::o;6509:133::-;6593:7;6611:11;:19;6623:6;6611:19;;;;;;;;;;;;;;;:28;6631:7;6611:28;;;;;;;;;;;;;;;;6604:35;;6509:133;;;;:::o;13247:285::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;13357:1:::1;13346:7;:12;;13338:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13419:8;13405:11;;:22;;;;;;;;;;;;;;;;;;13454:7;13438:13;:23;;;;13477:47;13497:11;;;;;;;;;;;13510:13;;13477:47;;;;;;;:::i;:::-;;;;;;;;13247:285:::0;;:::o;13023:216::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;13135:10:::1;13123:9;;:22;;;;;;;;;;;;;;;;;;13174:16;13156:15;;:34;;;;;;;;;;;;;;;;;;13206:25;13221:9;;;;;;;;;;;13206:25;;;;;;:::i;:::-;;;;;;;;13023:216:::0;;:::o;1487:242::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;1596:1:::1;1576:22;;:8;:22;;::::0;1568:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1685:8;1657:37;;1678:5;::::0;::::1;;;;;;;;1657:37;;;;;;;;;;;;1713:8;1705:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1487:242:::0;:::o;14380:94::-;14426:7;14461:4;14446:20;;14380:94;:::o;12013:177::-;1328:5;;;;;;;;;;1314:19;;:10;:19;;;1306:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12126:6:::1;12100:15;:23;12116:6;12100:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12148:34;12167:6;12175;12148:34;;;;;;;:::i;:::-;;;;;;;;12013:177:::0;;:::o;4567:24::-;;;;;;;;;;;;;:::o;4624:63::-;;;;;;;;;;;;;:::o;8227:1148::-;8319:4;8341:6;;;;;;;;;;;8338:62;;;8357:41;8372:6;8380:9;8391:6;8357:14;:41::i;:::-;8350:48;;;;8338:62;8436:11;:19;8448:6;8436:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;8459:11;:22;8471:9;8459:22;;;;;;;;;;;;;;;;;;;;;;;;;8436:45;:65;;;;8485:16;;;;;;;;;;;8436:65;8428:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;8601:5;;;;;;;;;;8591:15;;:6;:15;;;;:44;;;;;8620:15;;;;;;;;;;;8610:25;;:6;:25;;;;8591:44;:66;;;;;8652:5;;;;;;;;;;8639:18;;:9;:18;;;;8591:66;:87;;;;;4501:42;8661:17;;:9;:17;;;;8591:87;:108;;;;;8695:4;;;;;;;;;;;8682:17;;:9;:17;;;;8591:108;8587:311;;;8735:15;:26;8751:9;8735:26;;;;;;;;;;;;;;;;;;;;;;;;;:103;;;;8776:10;;8766:6;:20;;:71;;;;;8823:14;;8813:6;8790:9;:20;8800:9;8790:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;8766:71;8735:103;8727:159;;;;;;;;;;;;:::i;:::-;;;;;;;;;8587:311;8948:16;:14;:16::i;:::-;8945:33;;;8966:10;:8;:10::i;:::-;8945:33;9030:6;9010:9;:17;9020:6;9010:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;8990:9;:17;9000:6;8990:17;;;;;;;;;;;;;;;:46;;;;9085:22;9112:21;9126:6;9112:13;:21::i;:::-;9111:22;:51;;;;9138:24;9152:9;9138:13;:24::i;:::-;9137:25;9111:51;9110:99;;9175:34;9183:6;9191:9;9202:6;9175:7;:34::i;:::-;9110:99;;;9166:6;9110:99;9085:124;;9267:14;9243:9;:20;9253:9;9243:20;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;9220:9;:20;9230:9;9220:20;;;;;;;;;;;;;;;:62;;;;9317:9;9300:43;;9309:6;9300:43;;;9328:14;9300:43;;;;;;:::i;:::-;;;;;;;;9363:4;9356:11;;;8227:1148;;;;;;:::o;10734:706::-;5006:4;4997:6;;:13;;;;;;;;;;;;;;;;;;10785:19:::1;10878:9;;10874:1;:13;;;;:::i;:::-;10853:16;;10835:15;;:34;;;;:::i;:::-;10807:24;10825:4;10807:9;:24::i;:::-;:63;;;;:::i;:::-;:81;;;;:::i;:::-;10785:103;;10899:20;10949:11;10922:24;10940:4;10922:9;:24::i;:::-;:38;;;;:::i;:::-;10899:61;;10973:21;11011:1;10997:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10973:40;;11042:4;11024;11029:1;11024:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11068:3;;;;;;;;;;;11058:4;11063:1;11058:7;;;;;;;;:::i;:::-;;;;;;;:13;;;;;;;;;::::0;::::1;11084:6;;;;;;;;;;;:60;;;11145:12;11159:1;11162:4;11168;;;;;;;;;;;11192:9;11174:15;:27;;;;:::i;:::-;11084:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11269:11;11242:9;:24;11260:4;11242:24;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;11215:9;:24;11233:4;11215:24;;;;;;;;;;;;;;;:65;;;;11327:11;11309:9;:15;11319:4;;;;;;;;;;;11309:15;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;11291:9;:15;11301:4;;;;;;;;;;;11291:15;;;;;;;;;;;;;;;:47;;;;11378:4;;;;;;;;;;;11354:42;;11371:4;11354:42;;;11384:11;11354:42;;;;;;:::i;:::-;;;;;;;;11414:4;;;;;;;;;;;11409:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10772:668;;;5024:5:::0;5015:6;;:14;;;;;;;;;;;;;;;;;;10734:706::o;9387:300::-;9480:4;9537:6;9517:9;:17;9527:6;9517:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9497:9;:17;9507:6;9497:17;;;;;;;;;;;;;;;:46;;;;9600:6;9577:9;:20;9587:9;9577:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;9554:9;:20;9564:9;9554:20;;;;;;;;;;;;;;;:52;;;;9639:9;9622:35;;9631:6;9622:35;;;9650:6;9622:35;;;;;;:::i;:::-;;;;;;;;9675:4;9668:11;;9387:300;;;;;:::o;10529:197::-;10578:4;10616;;;;;;;;;;;10602:18;;:10;:18;;;;:38;;;;;10634:6;;;;;;;;;;;10633:7;10602:38;:62;;;;;10653:11;;;;;;;;;;;10602:62;:116;;;;;10705:13;;10677:9;:24;10695:4;10677:24;;;;;;;;;;;;;;;;:41;;10602:116;10595:123;;10529:197;:::o;9720:114::-;9782:4;9807:11;:19;9819:6;9807:19;;;;;;;;;;;;;;;;;;;;;;;;;9806:20;9799:27;;9720:114;;;:::o;9842:679::-;9928:7;9953:17;9973:1;9953:21;;10001:4;;;;;;;;;;;9991:14;;:6;:14;;;:35;;;;;10022:4;;;;;;;;;;;10009:17;;:9;:17;;;;9991:35;9987:143;;;10114:4;10095:15;;10077;;10065:9;;:27;;;;:::i;:::-;:45;;;;:::i;:::-;10055:6;:56;;;;:::i;:::-;:63;;;;:::i;:::-;10043:75;;9987:143;10145:4;;;;;;;;;;;10135:14;;:6;:14;;;;:35;;;;;10166:4;;;;;;;;;;;10153:17;;:9;:17;;;10135:35;10131:146;;;10261:4;10241:16;;10222;;10209:10;;:29;;;;:::i;:::-;:48;;;;:::i;:::-;10199:6;:59;;;;:::i;:::-;:66;;;;:::i;:::-;10187:78;;10131:146;10305:1;10293:9;:13;10289:185;;;10378:9;10350;:24;10368:4;10350:24;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;10323:9;:24;10341:4;10323:24;;;;;;;;;;;;;;;:65;;;;10433:4;10408:42;;10417:6;10408:42;;;10440:9;10408:42;;;;;;:::i;:::-;;;;;;;;10289:185;10503:9;10493:6;:20;;;;:::i;:::-;10486:27;;;9842:679;;;;;:::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:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;869:99::-;921:6;955:5;949:12;939:22;;869:99;;;:::o;974:169::-;1058:11;1092:6;1087:3;1080:19;1132:4;1127:3;1123:14;1108:29;;974:169;;;;:::o;1149:246::-;1230:1;1240:113;1254:6;1251:1;1248:13;1240:113;;;1339:1;1334:3;1330:11;1324:18;1320:1;1315:3;1311:11;1304:39;1276:2;1273:1;1269:10;1264:15;;1240:113;;;1387:1;1378:6;1373:3;1369:16;1362:27;1211:184;1149:246;;;:::o;1401:102::-;1442:6;1493:2;1489:7;1484:2;1477:5;1473:14;1469:28;1459:38;;1401:102;;;:::o;1509:377::-;1597:3;1625:39;1658:5;1625:39;:::i;:::-;1680:71;1744:6;1739:3;1680:71;:::i;:::-;1673:78;;1760:65;1818:6;1813:3;1806:4;1799:5;1795:16;1760:65;:::i;:::-;1850:29;1872:6;1850:29;:::i;:::-;1845:3;1841:39;1834:46;;1601:285;1509:377;;;;:::o;1892:313::-;2005:4;2043:2;2032:9;2028:18;2020:26;;2092:9;2086:4;2082:20;2078:1;2067:9;2063:17;2056:47;2120:78;2193:4;2184:6;2120:78;:::i;:::-;2112:86;;1892:313;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:323::-;5505:6;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:50;5747:7;5738:6;5727:9;5723:22;5705:50;:::i;:::-;5695:60;;5651:114;5449:323;;;;:::o;5778:118::-;5865:24;5883:5;5865:24;:::i;:::-;5860:3;5853:37;5778:118;;:::o;5902:222::-;5995:4;6033:2;6022:9;6018:18;6010:26;;6046:71;6114:1;6103:9;6099:17;6090:6;6046:71;:::i;:::-;5902:222;;;;:::o;6130:474::-;6198:6;6206;6255:2;6243:9;6234:7;6230:23;6226:32;6223:119;;;6261:79;;:::i;:::-;6223:119;6381:1;6406:53;6451:7;6442:6;6431:9;6427:22;6406:53;:::i;:::-;6396:63;;6352:117;6508:2;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6479:118;6130:474;;;;;:::o;6610:468::-;6675:6;6683;6732:2;6720:9;6711:7;6707:23;6703:32;6700:119;;;6738:79;;:::i;:::-;6700:119;6858:1;6883:53;6928:7;6919:6;6908:9;6904:22;6883:53;:::i;:::-;6873:63;;6829:117;6985:2;7011:50;7053:7;7044:6;7033:9;7029:22;7011:50;:::i;:::-;7001:60;;6956:115;6610:468;;;;;:::o;7084:1057::-;7188:6;7196;7204;7212;7220;7228;7277:3;7265:9;7256:7;7252:23;7248:33;7245:120;;;7284:79;;:::i;:::-;7245:120;7404:1;7429:53;7474:7;7465:6;7454:9;7450:22;7429:53;:::i;:::-;7419:63;;7375:117;7531:2;7557:53;7602:7;7593:6;7582:9;7578:22;7557:53;:::i;:::-;7547:63;;7502:118;7659:2;7685:53;7730:7;7721:6;7710:9;7706:22;7685:53;:::i;:::-;7675:63;;7630:118;7787:2;7813:53;7858:7;7849:6;7838:9;7834:22;7813:53;:::i;:::-;7803:63;;7758:118;7915:3;7942:53;7987:7;7978:6;7967:9;7963:22;7942:53;:::i;:::-;7932:63;;7886:119;8044:3;8071:53;8116:7;8107:6;8096:9;8092:22;8071:53;:::i;:::-;8061:63;;8015:119;7084:1057;;;;;;;;:::o;8147:474::-;8215:6;8223;8272:2;8260:9;8251:7;8247:23;8243:32;8240:119;;;8278:79;;:::i;:::-;8240:119;8398:1;8423:53;8468:7;8459:6;8448:9;8444:22;8423:53;:::i;:::-;8413:63;;8369:117;8525:2;8551:53;8596:7;8587:6;8576:9;8572:22;8551:53;:::i;:::-;8541:63;;8496:118;8147:474;;;;;:::o;8627:468::-;8692:6;8700;8749:2;8737:9;8728:7;8724:23;8720:32;8717:119;;;8755:79;;:::i;:::-;8717:119;8875:1;8900:50;8942:7;8933:6;8922:9;8918:22;8900:50;:::i;:::-;8890:60;;8846:114;8999:2;9025:53;9070:7;9061:6;9050:9;9046:22;9025:53;:::i;:::-;9015:63;;8970:118;8627:468;;;;;:::o;9101:60::-;9129:3;9150:5;9143:12;;9101:60;;;:::o;9167:142::-;9217:9;9250:53;9268:34;9277:24;9295:5;9277:24;:::i;:::-;9268:34;:::i;:::-;9250:53;:::i;:::-;9237:66;;9167:142;;;:::o;9315:126::-;9365:9;9398:37;9429:5;9398:37;:::i;:::-;9385:50;;9315:126;;;:::o;9447:144::-;9515:9;9548:37;9579:5;9548:37;:::i;:::-;9535:50;;9447:144;;;:::o;9597:167::-;9702:55;9751:5;9702:55;:::i;:::-;9697:3;9690:68;9597:167;;:::o;9770:258::-;9881:4;9919:2;9908:9;9904:18;9896:26;;9932:89;10018:1;10007:9;10003:17;9994:6;9932:89;:::i;:::-;9770:258;;;;:::o;10034:180::-;10082:77;10079:1;10072:88;10179:4;10176:1;10169:15;10203:4;10200:1;10193:15;10220:194;10260:4;10280:20;10298:1;10280:20;:::i;:::-;10275:25;;10314:20;10332:1;10314:20;:::i;:::-;10309:25;;10358:1;10355;10351:9;10343:17;;10382:1;10376:4;10373:11;10370:37;;;10387:18;;:::i;:::-;10370:37;10220:194;;;;:::o;10420:164::-;10560:16;10556:1;10548:6;10544:14;10537:40;10420:164;:::o;10590:366::-;10732:3;10753:67;10817:2;10812:3;10753:67;:::i;:::-;10746:74;;10829:93;10918:3;10829:93;:::i;:::-;10947:2;10942:3;10938:12;10931:19;;10590:366;;;:::o;10962:419::-;11128:4;11166:2;11155:9;11151:18;11143:26;;11215:9;11209:4;11205:20;11201:1;11190:9;11186:17;11179:47;11243:131;11369:4;11243:131;:::i;:::-;11235:139;;10962:419;;;:::o;11387:191::-;11427:3;11446:20;11464:1;11446:20;:::i;:::-;11441:25;;11480:20;11498:1;11480:20;:::i;:::-;11475:25;;11523:1;11520;11516:9;11509:16;;11544:3;11541:1;11538:10;11535:36;;;11551:18;;:::i;:::-;11535:36;11387:191;;;;:::o;11584:332::-;11705:4;11743:2;11732:9;11728:18;11720:26;;11756:71;11824:1;11813:9;11809:17;11800:6;11756:71;:::i;:::-;11837:72;11905:2;11894:9;11890:18;11881:6;11837:72;:::i;:::-;11584:332;;;;;:::o;11922:168::-;12062:20;12058:1;12050:6;12046:14;12039:44;11922:168;:::o;12096:366::-;12238:3;12259:67;12323:2;12318:3;12259:67;:::i;:::-;12252:74;;12335:93;12424:3;12335:93;:::i;:::-;12453:2;12448:3;12444:12;12437:19;;12096:366;;;:::o;12468:419::-;12634:4;12672:2;12661:9;12657:18;12649:26;;12721:9;12715:4;12711:20;12707:1;12696:9;12692:17;12685:47;12749:131;12875:4;12749:131;:::i;:::-;12741:139;;12468:419;;;:::o;12893:159::-;13033:11;13029:1;13021:6;13017:14;13010:35;12893:159;:::o;13058:365::-;13200:3;13221:66;13285:1;13280:3;13221:66;:::i;:::-;13214:73;;13296:93;13385:3;13296:93;:::i;:::-;13414:2;13409:3;13405:12;13398:19;;13058:365;;;:::o;13429:419::-;13595:4;13633:2;13622:9;13618:18;13610:26;;13682:9;13676:4;13672:20;13668:1;13657:9;13653:17;13646:47;13710:131;13836:4;13710:131;:::i;:::-;13702:139;;13429:419;;;:::o;13854:180::-;13902:77;13899:1;13892:88;13999:4;13996:1;13989:15;14023:4;14020:1;14013:15;14040:185;14080:1;14097:20;14115:1;14097:20;:::i;:::-;14092:25;;14131:20;14149:1;14131:20;:::i;:::-;14126:25;;14170:1;14160:35;;14175:18;;:::i;:::-;14160:35;14217:1;14214;14210:9;14205:14;;14040:185;;;;:::o;14231:223::-;14371:34;14367:1;14359:6;14355:14;14348:58;14440:6;14435:2;14427:6;14423:15;14416:31;14231:223;:::o;14460:366::-;14602:3;14623:67;14687:2;14682:3;14623:67;:::i;:::-;14616:74;;14699:93;14788:3;14699:93;:::i;:::-;14817:2;14812:3;14808:12;14801:19;;14460:366;;;:::o;14832:419::-;14998:4;15036:2;15025:9;15021:18;15013:26;;15085:9;15079:4;15075:20;15071:1;15060:9;15056:17;15049:47;15113:131;15239:4;15113:131;:::i;:::-;15105:139;;14832:419;;;:::o;15257:320::-;15372:4;15410:2;15399:9;15395:18;15387:26;;15423:71;15491:1;15480:9;15476:17;15467:6;15423:71;:::i;:::-;15504:66;15566:2;15555:9;15551:18;15542:6;15504:66;:::i;:::-;15257:320;;;;;:::o;15583:231::-;15723:34;15719:1;15711:6;15707:14;15700:58;15792:14;15787:2;15779:6;15775:15;15768:39;15583:231;:::o;15820:366::-;15962:3;15983:67;16047:2;16042:3;15983:67;:::i;:::-;15976:74;;16059:93;16148:3;16059:93;:::i;:::-;16177:2;16172:3;16168:12;16161:19;;15820:366;;;:::o;16192:419::-;16358:4;16396:2;16385:9;16381:18;16373:26;;16445:9;16439:4;16435:20;16431:1;16420:9;16416:17;16409:47;16473:131;16599:4;16473:131;:::i;:::-;16465:139;;16192:419;;;:::o;16617:143::-;16674:5;16705:6;16699:13;16690:22;;16721:33;16748:5;16721:33;:::i;:::-;16617:143;;;;:::o;16766:351::-;16836:6;16885:2;16873:9;16864:7;16860:23;16856:32;16853:119;;;16891:79;;:::i;:::-;16853:119;17011:1;17036:64;17092:7;17083:6;17072:9;17068:22;17036:64;:::i;:::-;17026:74;;16982:128;16766:351;;;;:::o;17123:332::-;17244:4;17282:2;17271:9;17267:18;17259:26;;17295:71;17363:1;17352:9;17348:17;17339:6;17295:71;:::i;:::-;17376:72;17444:2;17433:9;17429:18;17420:6;17376:72;:::i;:::-;17123:332;;;;;:::o;17461:137::-;17515:5;17546:6;17540:13;17531:22;;17562:30;17586:5;17562:30;:::i;:::-;17461:137;;;;:::o;17604:345::-;17671:6;17720:2;17708:9;17699:7;17695:23;17691:32;17688:119;;;17726:79;;:::i;:::-;17688:119;17846:1;17871:61;17924:7;17915:6;17904:9;17900:22;17871:61;:::i;:::-;17861:71;;17817:125;17604:345;;;;:::o;17955:143::-;18012:5;18043:6;18037:13;18028:22;;18059:33;18086:5;18059:33;:::i;:::-;17955:143;;;;:::o;18104:351::-;18174:6;18223:2;18211:9;18202:7;18198:23;18194:32;18191:119;;;18229:79;;:::i;:::-;18191:119;18349:1;18374:64;18430:7;18421:6;18410:9;18406:22;18374:64;:::i;:::-;18364:74;;18320:128;18104:351;;;;:::o;18461:332::-;18582:4;18620:2;18609:9;18605:18;18597:26;;18633:71;18701:1;18690:9;18686:17;18677:6;18633:71;:::i;:::-;18714:72;18782:2;18771:9;18767:18;18758:6;18714:72;:::i;:::-;18461:332;;;;;:::o;18799:181::-;18939:33;18935:1;18927:6;18923:14;18916:57;18799:181;:::o;18986:366::-;19128:3;19149:67;19213:2;19208:3;19149:67;:::i;:::-;19142:74;;19225:93;19314:3;19225:93;:::i;:::-;19343:2;19338:3;19334:12;19327:19;;18986:366;;;:::o;19358:419::-;19524:4;19562:2;19551:9;19547:18;19539:26;;19611:9;19605:4;19601:20;19597:1;19586:9;19582:17;19575:47;19639:131;19765:4;19639:131;:::i;:::-;19631:139;;19358:419;;;:::o;19783:320::-;19898:4;19936:2;19925:9;19921:18;19913:26;;19949:65;20011:1;20000:9;19996:17;19987:6;19949:65;:::i;:::-;20024:72;20092:2;20081:9;20077:18;20068:6;20024:72;:::i;:::-;19783:320;;;;;:::o;20109:225::-;20249:34;20245:1;20237:6;20233:14;20226:58;20318:8;20313:2;20305:6;20301:15;20294:33;20109:225;:::o;20340:366::-;20482:3;20503:67;20567:2;20562:3;20503:67;:::i;:::-;20496:74;;20579:93;20668:3;20579:93;:::i;:::-;20697:2;20692:3;20688:12;20681:19;;20340:366;;;:::o;20712:419::-;20878:4;20916:2;20905:9;20901:18;20893:26;;20965:9;20959:4;20955:20;20951:1;20940:9;20936:17;20929:47;20993:131;21119:4;20993:131;:::i;:::-;20985:139;;20712:419;;;:::o;21137:177::-;21277:29;21273:1;21265:6;21261:14;21254:53;21137:177;:::o;21320:366::-;21462:3;21483:67;21547:2;21542:3;21483:67;:::i;:::-;21476:74;;21559:93;21648:3;21559:93;:::i;:::-;21677:2;21672:3;21668:12;21661:19;;21320:366;;;:::o;21692:419::-;21858:4;21896:2;21885:9;21881:18;21873:26;;21945:9;21939:4;21935:20;21931:1;21920:9;21916:17;21909:47;21973:131;22099:4;21973:131;:::i;:::-;21965:139;;21692:419;;;:::o;22117:230::-;22257:34;22253:1;22245:6;22241:14;22234:58;22326:13;22321:2;22313:6;22309:15;22302:38;22117:230;:::o;22353:366::-;22495:3;22516:67;22580:2;22575:3;22516:67;:::i;:::-;22509:74;;22592:93;22681:3;22592:93;:::i;:::-;22710:2;22705:3;22701:12;22694:19;;22353:366;;;:::o;22725:419::-;22891:4;22929:2;22918:9;22914:18;22906:26;;22978:9;22972:4;22968:20;22964:1;22953:9;22949:17;22942:47;23006:131;23132:4;23006:131;:::i;:::-;22998:139;;22725:419;;;:::o;23150:410::-;23190:7;23213:20;23231:1;23213:20;:::i;:::-;23208:25;;23247:20;23265:1;23247:20;:::i;:::-;23242:25;;23302:1;23299;23295:9;23324:30;23342:11;23324:30;:::i;:::-;23313:41;;23503:1;23494:7;23490:15;23487:1;23484:22;23464:1;23457:9;23437:83;23414:139;;23533:18;;:::i;:::-;23414:139;23198:362;23150:410;;;;:::o;23566:180::-;23614:77;23611:1;23604:88;23711:4;23708:1;23701:15;23735:4;23732:1;23725:15;23752:180;23800:77;23797:1;23790:88;23897:4;23894:1;23887:15;23921:4;23918:1;23911:15;23938:85;23983:7;24012:5;24001:16;;23938:85;;;:::o;24029:158::-;24087:9;24120:61;24138:42;24147:32;24173:5;24147:32;:::i;:::-;24138:42;:::i;:::-;24120:61;:::i;:::-;24107:74;;24029:158;;;:::o;24193:147::-;24288:45;24327:5;24288:45;:::i;:::-;24283:3;24276:58;24193:147;;:::o;24346:114::-;24413:6;24447:5;24441:12;24431:22;;24346:114;;;:::o;24466:184::-;24565:11;24599:6;24594:3;24587:19;24639:4;24634:3;24630:14;24615:29;;24466:184;;;;:::o;24656:132::-;24723:4;24746:3;24738:11;;24776:4;24771:3;24767:14;24759:22;;24656:132;;;:::o;24794:108::-;24871:24;24889:5;24871:24;:::i;:::-;24866:3;24859:37;24794:108;;:::o;24908:179::-;24977:10;24998:46;25040:3;25032:6;24998:46;:::i;:::-;25076:4;25071:3;25067:14;25053:28;;24908:179;;;;:::o;25093:113::-;25163:4;25195;25190:3;25186:14;25178:22;;25093:113;;;:::o;25242:732::-;25361:3;25390:54;25438:5;25390:54;:::i;:::-;25460:86;25539:6;25534:3;25460:86;:::i;:::-;25453:93;;25570:56;25620:5;25570:56;:::i;:::-;25649:7;25680:1;25665:284;25690:6;25687:1;25684:13;25665:284;;;25766:6;25760:13;25793:63;25852:3;25837:13;25793:63;:::i;:::-;25786:70;;25879:60;25932:6;25879:60;:::i;:::-;25869:70;;25725:224;25712:1;25709;25705:9;25700:14;;25665:284;;;25669:14;25965:3;25958:10;;25366:608;;;25242:732;;;;:::o;25980:831::-;26243:4;26281:3;26270:9;26266:19;26258:27;;26295:71;26363:1;26352:9;26348:17;26339:6;26295:71;:::i;:::-;26376:80;26452:2;26441:9;26437:18;26428:6;26376:80;:::i;:::-;26503:9;26497:4;26493:20;26488:2;26477:9;26473:18;26466:48;26531:108;26634:4;26625:6;26531:108;:::i;:::-;26523:116;;26649:72;26717:2;26706:9;26702:18;26693:6;26649:72;:::i;:::-;26731:73;26799:3;26788:9;26784:19;26775:6;26731:73;:::i;:::-;25980:831;;;;;;;;:::o
Swarm Source
ipfs://15405bcfe3042ee68f7b0d9c7570daf6a89a6267643994715bc95b906a1ae0f2
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.