Token ArbiCheems
Overview ERC20
Price
$0.00 @ 0.000000 ETH
Fully Diluted Market Cap
Total Supply:
92,683,901.512017 CHEEMS
Holders:
1,245 addresses
Contract:
Decimals:
18
Balance
5.893082651740462098 CHEEMSValue
$0.00
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CheemsToken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2021-10-27 */ /** *Submitted for verification at arbiscan.io on 2021-09-08 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; interface IRouter { 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 addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB); function removeLiquidityETH(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountToken, uint amountETH); function removeLiquidityETHSupportingFeeOnTransferTokens(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountETH); function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapTokensForExactTokens(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] memory path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] memory path) external view returns (uint[] memory amounts); } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } contract CheemsToken { string constant public name = "ArbiCheems"; string constant public symbol = "CHEEMS"; uint256 constant public decimals = 18; uint256 public totalSupply; address immutable sushiRouter; uint256 immutable public BIPS_DIVISOR = 10000; uint256 public transferTax = 1200;//12% address public stARBISReceiver; address public treasury; IRouter public router; IERC20 public wETH; IERC20 public lpToken; bool public lpEnabled; mapping(address=>bool) public taxFreeList; mapping(address=>bool) public admins; mapping(address => uint256) balances; mapping(address => mapping(address => uint256)) allowed; event Burn(address who, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); //for permit() bytes32 immutable public DOMAIN_SEPARATOR; // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; mapping(address => uint) public nonces; constructor(uint256 _totalSupply, address _sushiRouter, address _stARBISReceiver, address _treasury) { sushiRouter = _sushiRouter; stARBISReceiver = _stARBISReceiver; treasury = _treasury; totalSupply = _totalSupply; balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); admins[msg.sender]=true; DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes(name)), keccak256(bytes('1')), block.chainid, address(this))); } modifier onlyAdmins() { require(admins[msg.sender], "not a admin"); _; } /** @notice enable sending part of each transfer into LP (only to do once lp pool is setup) @param _router Address of uni v2 compatible router that lp is on (only used in first enable) @param _wETH Address of wETH (only used in first enable) **/ function enableLP( address _router, address _wETH, address _LP) public onlyAdmins { lpEnabled = true; if (address(wETH) == address(0)) { //can only set wETH and router once router = IRouter(_router); wETH = IERC20(_wETH); lpToken = IERC20(_LP); } approve(address(router), totalSupply); wETH.approve(address(router), wETH.totalSupply()); } /** @notice change the tx tax amount @param newTax the new tax amount (1000 = 10%, 100 = 1%, 10 = 0.1%) (dont use weird numbers like 1234 use even nice ones like 1000 or 100 or 1200) */ function setTransferTax(uint256 newTax) public onlyAdmins { require(newTax >=10 && newTax <=2000, "not valid tax"); transferTax = newTax; } function disableLP() public onlyAdmins { lpEnabled = false; } function addToTaxFreeList(address addy) public onlyAdmins { taxFreeList[addy] = true; } function removeFromTaxFreeList(address addy) public onlyAdmins { delete taxFreeList[addy]; } function addAdmin(address addy) public onlyAdmins { admins[addy] = true; } function setSTARBISReceiver(address addy) public onlyAdmins { stARBISReceiver = addy; } function setTreasury(address addy) public onlyAdmins { treasury = addy; } /** @notice Getter to check the current balance of an address @param _owner Address to query the balance of @return Token balance */ function balanceOf(address _owner) external view returns (uint256) { return balances[_owner]; } /** @notice Getter to check the amount of tokens that an owner allowed to a spender @param _owner The address which owns the funds @param _spender The address which will spend the funds @return The amount of tokens still available for the spender */ function allowance( address _owner, address _spender ) external view returns (uint256) { if(_spender == sushiRouter) { return type(uint256).max; } return allowed[_owner][_spender]; } function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external { require(deadline >= block.timestamp, 'CHEEMS: EXPIRED'); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', DOMAIN_SEPARATOR, keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)))); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress != address(0) && recoveredAddress == owner, 'CHEEMS: INVALID_SIGNATURE'); allowed[owner][spender] = value; emit Approval(owner, spender, value); } /** @notice Approve an address to spend the specified amount of tokens on behalf of msg.sender @param _spender The address which will spend the funds. @param _value The amount of tokens to be spent. @return Success boolean */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** shared logic for transfer and transferFrom */ function _transfer(address _from, address _to, uint256 _value) internal { require(balances[_from] >= _value, "Insufficient balance"); unchecked { balances[_from] -= _value; balances[_to] = balances[_to] + _value; } emit Transfer(_from, _to, _value); } /** @notice Transfer tokens to a specified address @param _to The address to transfer to @param _value The amount to be transferred @return Success boolean */ function transfer(address _to, uint256 _value) external returns (bool) { if (taxFreeList[msg.sender] || taxFreeList[_to]) { _transfer(msg.sender, _to, _value); } else { //taxxed tx uint _transferValue = applyTransferTax(_value); _transfer(msg.sender, _to, _transferValue); uint _tax = _value - _transferValue; afterTaxTransfer(msg.sender, _tax); } return true; } /** @notice Transfer tokens from one address to another @param _from The address which you want to send tokens from @param _to The address which you want to transfer to @param _value The amount of tokens to be transferred (before tax) @return Success boolean */ function transferFrom( address _from, address _to, uint256 _value ) external returns (bool) { if(msg.sender != sushiRouter) { require(allowed[_from][msg.sender] >= _value, "Insufficient allowance"); unchecked{ allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value; } } if (taxFreeList[_from] || taxFreeList[_to]) { _transfer(_from, _to, _value); } else { //taxxed tx uint _transferValue = applyTransferTax(_value); _transfer(_from, _to, _transferValue); uint _tax = _value - _transferValue; afterTaxTransfer(_from, _tax); } return true; } function afterTaxTransfer(address _from, uint256 _tax) internal { if (_tax > 10000) { uint256 half = (_tax * 5000) / BIPS_DIVISOR; uint256 quarter = (half * 5000) / BIPS_DIVISOR; //to send to stARBIS & treasury _transfer(_from, stARBISReceiver, quarter); _transfer(_from, treasury, quarter); if (lpEnabled && quarter > BIPS_DIVISOR) { //to burn and LP selfBurn(quarter, _from); _convertRewardTokensToDepositTokens(quarter); } else { //just burn selfBurn(half, _from); } } else { _transfer(msg.sender, stARBISReceiver, _tax); } } /** @notice get the amount that will be transfered after the transfer tax is applied @param amount The amount to apply tax to **/ function applyTransferTax(uint256 amount) public view returns (uint) { return amount - ((amount * transferTax) / BIPS_DIVISOR); } function _convertRewardTokensToDepositTokens(uint amount) internal returns (uint) { uint amountIn = amount / 2; require(amountIn > 0, "amount too low"); // swap half to wETH address[] memory path0 = new address[](2); path0[0] = address(this); path0[1] = address(wETH); uint amountOutToken0 = amountIn; if (path0[0] != path0[path0.length - 1]) { uint[] memory amountsOutToken0 = router.getAmountsOut(amountIn, path0); amountOutToken0 = amountsOutToken0[amountsOutToken0.length - 1]; router.swapExactTokensForTokens(amountIn, amountOutToken0, path0, address(this), block.timestamp); } (,,uint liquidity) = router.addLiquidity( path0[path0.length - 1], address(this), amountOutToken0, amountIn, 0, 0, address(this), block.timestamp ); lpToken.transfer(treasury, liquidity); return liquidity; } /** @notice burn tokens, used by transfer tax and can be called externally but in that case requires token holders approval @param amount The amount to burn @param holder the address to burn from */ function selfBurn(uint256 amount, address holder) internal { require(balances[holder] >= amount, "Insufficient balance to burn"); require(totalSupply >= amount, "Insufficient supply to burn"); unchecked { balances[holder] -= amount; totalSupply -= amount; } } function burn(uint256 _value) public returns (bool) { // Requires that the message sender has enough tokens to burn require(_value <= balances[msg.sender]); // Subtracts _value from callers balance and total supply unchecked { balances[msg.sender] -= _value; totalSupply -= _value; } // Emits burn and transfer events, make sure you have them in your contracts emit Burn(msg.sender, _value); emit Transfer(msg.sender, address(0),_value); // Since you cant actually burn tokens on the blockchain, sending to address 0, which none has the private keys to, removes them from the circulating supply return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"_sushiRouter","type":"address"},{"internalType":"address","name":"_stARBISReceiver","type":"address"},{"internalType":"address","name":"_treasury","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":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","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":"BIPS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"addToTaxFreeList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"admins","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"applyTransferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_wETH","type":"address"},{"internalType":"address","name":"_LP","type":"address"}],"name":"enableLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"removeFromTaxFreeList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"setSTARBISReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stARBISReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxFreeList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wETH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e060405261271060a0526104b06001553480156200001d57600080fd5b5060405162001dd038038062001dd08339810160408190526200004091620001ef565b6001600160601b0319606084901b16608052600280546001600160a01b038481166001600160a01b031992831617909255600380549284169290911691909117905560008481553380825260096020526040808320879055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620000cc9088815260200190565b60405180910390a333600090815260086020908152604091829020805460ff1916600190811790915582518084018452600a81526941726269436865656d7360b01b9083015282518084018452908152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527fb3fe956e26854863039328c984aaea4c9e6da35e99af2b0c9ddcdd1c807a5a43918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f19818403018152919052805160209091012060c052506200024392505050565b80516001600160a01b0381168114620001ea57600080fd5b919050565b600080600080608085870312156200020657600080fd5b845193506200021860208601620001d2565b92506200022860408601620001d2565b91506200023860608601620001d2565b905092959194509250565b60805160601c60a05160c051611b30620002a0600039600081816102fc0152610c1201526000818161043a01528181610e8601528181611065015281816110a0015261111e0152600081816106150152610ecb0152611b306000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806378a75c901161011a578063ab622144116100ad578063da468a751161007c578063da468a75146104e0578063dd62ed3e146104f3578063f0f4426014610506578063f242862114610519578063f887ea401461052c57600080fd5b8063ab62214414610494578063c8799419146104a7578063d505accf146104ba578063d9792489146104cd57600080fd5b80638b525903116100e95780638b5259031461042257806390b7568a1461043557806395d89b411461045c578063a9059cbb1461048157600080fd5b806378a75c90146103ce5780637ecebe00146103d65780638124f7ac146103f6578063834163d8146103ff57600080fd5b80633387602d116101925780635fcbd285116101615780635fcbd2851461035457806361d027b31461037f578063704802751461039257806370a08231146103a557600080fd5b80633387602d146102e45780633644e515146102f757806342966c681461031e578063429b62e51461033157600080fd5b806323b872dd116101ce57806323b872dd1461028e5780632e958906146102a157806330adf81f146102b5578063313ce567146102dc57600080fd5b806306fdde0314610200578063083bda261461023f578063095ea7b31461025457806318160ddd14610277575b600080fd5b6102296040518060400160405280600a81526020016941726269436865656d7360b01b81525081565b604051610236919061196e565b60405180910390f35b61025261024d366004611672565b61053f565b005b6102676102623660046117b9565b61059b565b6040519015158152602001610236565b61028060005481565b604051908152602001610236565b61026761029c36600461170a565b610608565b60065461026790600160a01b900460ff1681565b6102807f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610280601281565b6102526102f23660046116c7565b610762565b6102807f000000000000000000000000000000000000000000000000000000000000000081565b61026761032c3660046118ca565b610917565b61026761033f366004611672565b60086020526000908152604090205460ff1681565b600654610367906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b600354610367906001600160a01b031681565b6102526103a0366004611672565b6109c9565b6102806103b3366004611672565b6001600160a01b031660009081526009602052604090205490565b610252610a1c565b6102806103e4366004611672565b600b6020526000908152604090205481565b61028060015481565b61026761040d366004611672565b60076020526000908152604090205460ff1681565b6102526104303660046118ca565b610a5a565b6102807f000000000000000000000000000000000000000000000000000000000000000081565b61022960405180604001604052806006815260200165434845454d5360d01b81525081565b61026761048f3660046117b9565b610add565b600254610367906001600160a01b031681565b6102526104b5366004611672565b610b64565b6102526104c8366004611746565b610bb4565b6102526104db366004611672565b610e31565b6102806104ee3660046118ca565b610e82565b610280610501366004611694565b610ec7565b610252610514366004611672565b610f38565b600554610367906001600160a01b031681565b600454610367906001600160a01b031681565b3360009081526008602052604090205460ff166105775760405162461bcd60e51b815260040161056e906119c3565b60405180910390fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105f69086815260200190565b60405180910390a35060015b92915050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106d1576001600160a01b0384166000908152600a602090815260408083203384529091529020548211156106a65760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161056e565b6001600160a01b0384166000908152600a602090815260408083203384529091529020805483900390555b6001600160a01b03841660009081526007602052604090205460ff168061071057506001600160a01b03831660009081526007602052604090205460ff165b1561072557610720848484610f89565b610758565b600061073083610e82565b905061073d858583610f89565b60006107498285611a86565b90506107558682611057565b50505b5060019392505050565b3360009081526008602052604090205460ff166107915760405162461bcd60e51b815260040161056e906119c3565b6006805460ff60a01b1916600160a01b1790556005546001600160a01b03166107f257600480546001600160a01b038086166001600160a01b0319928316179092556005805485841690831617905560068054928416929091169190911790555b60045460005461080b916001600160a01b03169061059b565b5060055460048054604080516318160ddd60e01b815290516001600160a01b039485169463095ea7b39493169285926318160ddd9281830192602092829003018186803b15801561085b57600080fd5b505afa15801561086f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089391906118e3565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156108d957600080fd5b505af11580156108ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091191906118a8565b50505050565b3360009081526009602052604081205482111561093357600080fd5b336000818152600960209081526040808320805487900390558254869003909255815192835282018490527fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5910160405180910390a160405182815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001919050565b3360009081526008602052604090205460ff166109f85760405162461bcd60e51b815260040161056e906119c3565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b3360009081526008602052604090205460ff16610a4b5760405162461bcd60e51b815260040161056e906119c3565b6006805460ff60a01b19169055565b3360009081526008602052604090205460ff16610a895760405162461bcd60e51b815260040161056e906119c3565b600a8110158015610a9c57506107d08111155b610ad85760405162461bcd60e51b815260206004820152600d60248201526c0dcdee840ecc2d8d2c840e8c2f609b1b604482015260640161056e565b600155565b3360009081526007602052604081205460ff1680610b1357506001600160a01b03831660009081526007602052604090205460ff165b15610b2857610b23338484610f89565b610b5b565b6000610b3383610e82565b9050610b40338583610f89565b6000610b4c8285611a86565b9050610b583382611057565b50505b50600192915050565b3360009081526008602052604090205460ff16610b935760405162461bcd60e51b815260040161056e906119c3565b6001600160a01b03166000908152600760205260409020805460ff19169055565b42841015610bf65760405162461bcd60e51b815260206004820152600f60248201526e10d211515354ce8811561412549151608a1b604482015260640161056e565b6001600160a01b0387166000908152600b6020526040812080547f0000000000000000000000000000000000000000000000000000000000000000917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9187610c6483611a9d565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610cdd92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610d48573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610d7e5750886001600160a01b0316816001600160a01b0316145b610dca5760405162461bcd60e51b815260206004820152601960248201527f434845454d533a20494e56414c49445f5349474e415455524500000000000000604482015260640161056e565b6001600160a01b038981166000818152600a60209081526040808320948d16808452948252918290208b905590518a81527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050505050505050565b3360009081526008602052604090205460ff16610e605760405162461bcd60e51b815260040161056e906119c3565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60007f000000000000000000000000000000000000000000000000000000000000000060015483610eb39190611a67565b610ebd9190611a45565b6106029083611a86565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610f0c5750600019610602565b506001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3360009081526008602052604090205460ff16610f675760405162461bcd60e51b815260040161056e906119c3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260096020526040902054811115610fe85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015260640161056e565b6001600160a01b03808416600081815260096020526040808220805486900390559285168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061104a9085815260200190565b60405180910390a3505050565b6127108111156111685760007f000000000000000000000000000000000000000000000000000000000000000061109083611388611a67565b61109a9190611a45565b905060007f00000000000000000000000000000000000000000000000000000000000000006110cb83611388611a67565b6110d59190611a45565b6002549091506110f09085906001600160a01b031683610f89565b6003546111089085906001600160a01b031683610f89565b600654600160a01b900460ff16801561114057507f000000000000000000000000000000000000000000000000000000000000000081115b1561115e5761114f8185611184565b61115881611266565b50610911565b6109118285611184565b6002546111809033906001600160a01b031683610f89565b5050565b6001600160a01b0381166000908152600960205260409020548211156111ec5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742062616c616e636520746f206275726e00000000604482015260640161056e565b81600054101561123e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420737570706c7920746f206275726e0000000000604482015260640161056e565b6001600160a01b03166000908152600960205260408120805483900390558054919091039055565b600080611274600284611a45565b9050600081116112b75760405162461bcd60e51b815260206004820152600e60248201526d616d6f756e7420746f6f206c6f7760901b604482015260640161056e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112ec576112ec611ace565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061131d5761131d611ace565b6001600160a01b039092166020928302919091019091015280518290829061134790600190611a86565b8151811061135757611357611ace565b60200260200101516001600160a01b03168260008151811061137b5761137b611ace565b60200260200101516001600160a01b0316146114d6576004805460405163d06ca61f60e01b81526000926001600160a01b039092169163d06ca61f916113c59188918891016119e8565b60006040518083038186803b1580156113dd57600080fd5b505afa1580156113f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141991908101906117e3565b9050806001825161142a9190611a86565b8151811061143a5761143a611ace565b6020908102919091010151600480546040516338ed173960e01b81529294506001600160a01b0316916338ed17399161147d918891879189913091429101611a09565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d391908101906117e3565b50505b60045482516000916001600160a01b03169063e8e337009085906114fc90600190611a86565b8151811061150c5761150c611ace565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201819052604482018690526064820188905260006084830181905260a483015260c48201524260e482015261010401606060405180830381600087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c091906118fc565b60065460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905292955016925063a9059cbb9150604401602060405180830381600087803b15801561161457600080fd5b505af1158015611628573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164c91906118a8565b5095945050505050565b80356001600160a01b038116811461166d57600080fd5b919050565b60006020828403121561168457600080fd5b61168d82611656565b9392505050565b600080604083850312156116a757600080fd5b6116b083611656565b91506116be60208401611656565b90509250929050565b6000806000606084860312156116dc57600080fd5b6116e584611656565b92506116f360208501611656565b915061170160408501611656565b90509250925092565b60008060006060848603121561171f57600080fd5b61172884611656565b925061173660208501611656565b9150604084013590509250925092565b600080600080600080600060e0888a03121561176157600080fd5b61176a88611656565b965061177860208901611656565b95506040880135945060608801359350608088013560ff8116811461179c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156117cc57600080fd5b6117d583611656565b946020939093013593505050565b600060208083850312156117f657600080fd5b825167ffffffffffffffff8082111561180e57600080fd5b818501915085601f83011261182257600080fd5b81518181111561183457611834611ae4565b8060051b604051601f19603f8301168101818110858211171561185957611859611ae4565b604052828152858101935084860182860187018a101561187857600080fd5b600095505b8386101561189b57805185526001959095019493860193860161187d565b5098975050505050505050565b6000602082840312156118ba57600080fd5b8151801515811461168d57600080fd5b6000602082840312156118dc57600080fd5b5035919050565b6000602082840312156118f557600080fd5b5051919050565b60008060006060848603121561191157600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b838110156119635781516001600160a01b03168752958201959082019060010161193e565b509495945050505050565b600060208083528351808285015260005b8181101561199b5785810183015185820160400152820161197f565b818111156119ad576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a3737ba10309030b236b4b760a91b604082015260600190565b828152604060208201526000611a01604083018461192a565b949350505050565b85815284602082015260a060408201526000611a2860a083018661192a565b6001600160a01b0394909416606083015250608001529392505050565b600082611a6257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611a8157611a81611ab8565b500290565b600082821015611a9857611a98611ab8565b500390565b6000600019821415611ab157611ab1611ab8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122049bbb6a6c4434159aa652f57038657e6a8326359b256106a9042265ec513ffdc64736f6c634300080700330000000000000000000000000000000000000000005ca4ec2a79a7f6700000000000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506000000000000000000000000a3bf87488c1257f8dd555b3df85cd0546074d93b000000000000000000000000b0b4bd94d656353a30773ac883591ddbabc0c0ba
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806378a75c901161011a578063ab622144116100ad578063da468a751161007c578063da468a75146104e0578063dd62ed3e146104f3578063f0f4426014610506578063f242862114610519578063f887ea401461052c57600080fd5b8063ab62214414610494578063c8799419146104a7578063d505accf146104ba578063d9792489146104cd57600080fd5b80638b525903116100e95780638b5259031461042257806390b7568a1461043557806395d89b411461045c578063a9059cbb1461048157600080fd5b806378a75c90146103ce5780637ecebe00146103d65780638124f7ac146103f6578063834163d8146103ff57600080fd5b80633387602d116101925780635fcbd285116101615780635fcbd2851461035457806361d027b31461037f578063704802751461039257806370a08231146103a557600080fd5b80633387602d146102e45780633644e515146102f757806342966c681461031e578063429b62e51461033157600080fd5b806323b872dd116101ce57806323b872dd1461028e5780632e958906146102a157806330adf81f146102b5578063313ce567146102dc57600080fd5b806306fdde0314610200578063083bda261461023f578063095ea7b31461025457806318160ddd14610277575b600080fd5b6102296040518060400160405280600a81526020016941726269436865656d7360b01b81525081565b604051610236919061196e565b60405180910390f35b61025261024d366004611672565b61053f565b005b6102676102623660046117b9565b61059b565b6040519015158152602001610236565b61028060005481565b604051908152602001610236565b61026761029c36600461170a565b610608565b60065461026790600160a01b900460ff1681565b6102807f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610280601281565b6102526102f23660046116c7565b610762565b6102807f1d55790637b3accd603f83a54bf332b76684b8f31264eba72c5d8f30d333579781565b61026761032c3660046118ca565b610917565b61026761033f366004611672565b60086020526000908152604090205460ff1681565b600654610367906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b600354610367906001600160a01b031681565b6102526103a0366004611672565b6109c9565b6102806103b3366004611672565b6001600160a01b031660009081526009602052604090205490565b610252610a1c565b6102806103e4366004611672565b600b6020526000908152604090205481565b61028060015481565b61026761040d366004611672565b60076020526000908152604090205460ff1681565b6102526104303660046118ca565b610a5a565b6102807f000000000000000000000000000000000000000000000000000000000000271081565b61022960405180604001604052806006815260200165434845454d5360d01b81525081565b61026761048f3660046117b9565b610add565b600254610367906001600160a01b031681565b6102526104b5366004611672565b610b64565b6102526104c8366004611746565b610bb4565b6102526104db366004611672565b610e31565b6102806104ee3660046118ca565b610e82565b610280610501366004611694565b610ec7565b610252610514366004611672565b610f38565b600554610367906001600160a01b031681565b600454610367906001600160a01b031681565b3360009081526008602052604090205460ff166105775760405162461bcd60e51b815260040161056e906119c3565b60405180910390fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105f69086815260200190565b60405180910390a35060015b92915050565b6000336001600160a01b037f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b4799750616146106d1576001600160a01b0384166000908152600a602090815260408083203384529091529020548211156106a65760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161056e565b6001600160a01b0384166000908152600a602090815260408083203384529091529020805483900390555b6001600160a01b03841660009081526007602052604090205460ff168061071057506001600160a01b03831660009081526007602052604090205460ff165b1561072557610720848484610f89565b610758565b600061073083610e82565b905061073d858583610f89565b60006107498285611a86565b90506107558682611057565b50505b5060019392505050565b3360009081526008602052604090205460ff166107915760405162461bcd60e51b815260040161056e906119c3565b6006805460ff60a01b1916600160a01b1790556005546001600160a01b03166107f257600480546001600160a01b038086166001600160a01b0319928316179092556005805485841690831617905560068054928416929091169190911790555b60045460005461080b916001600160a01b03169061059b565b5060055460048054604080516318160ddd60e01b815290516001600160a01b039485169463095ea7b39493169285926318160ddd9281830192602092829003018186803b15801561085b57600080fd5b505afa15801561086f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089391906118e3565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156108d957600080fd5b505af11580156108ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091191906118a8565b50505050565b3360009081526009602052604081205482111561093357600080fd5b336000818152600960209081526040808320805487900390558254869003909255815192835282018490527fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5910160405180910390a160405182815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001919050565b3360009081526008602052604090205460ff166109f85760405162461bcd60e51b815260040161056e906119c3565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b3360009081526008602052604090205460ff16610a4b5760405162461bcd60e51b815260040161056e906119c3565b6006805460ff60a01b19169055565b3360009081526008602052604090205460ff16610a895760405162461bcd60e51b815260040161056e906119c3565b600a8110158015610a9c57506107d08111155b610ad85760405162461bcd60e51b815260206004820152600d60248201526c0dcdee840ecc2d8d2c840e8c2f609b1b604482015260640161056e565b600155565b3360009081526007602052604081205460ff1680610b1357506001600160a01b03831660009081526007602052604090205460ff165b15610b2857610b23338484610f89565b610b5b565b6000610b3383610e82565b9050610b40338583610f89565b6000610b4c8285611a86565b9050610b583382611057565b50505b50600192915050565b3360009081526008602052604090205460ff16610b935760405162461bcd60e51b815260040161056e906119c3565b6001600160a01b03166000908152600760205260409020805460ff19169055565b42841015610bf65760405162461bcd60e51b815260206004820152600f60248201526e10d211515354ce8811561412549151608a1b604482015260640161056e565b6001600160a01b0387166000908152600b6020526040812080547f1d55790637b3accd603f83a54bf332b76684b8f31264eba72c5d8f30d3335797917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9187610c6483611a9d565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610cdd92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610d48573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610d7e5750886001600160a01b0316816001600160a01b0316145b610dca5760405162461bcd60e51b815260206004820152601960248201527f434845454d533a20494e56414c49445f5349474e415455524500000000000000604482015260640161056e565b6001600160a01b038981166000818152600a60209081526040808320948d16808452948252918290208b905590518a81527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050505050505050565b3360009081526008602052604090205460ff16610e605760405162461bcd60e51b815260040161056e906119c3565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60007f000000000000000000000000000000000000000000000000000000000000271060015483610eb39190611a67565b610ebd9190611a45565b6106029083611a86565b60007f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b479975066001600160a01b0316826001600160a01b03161415610f0c5750600019610602565b506001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3360009081526008602052604090205460ff16610f675760405162461bcd60e51b815260040161056e906119c3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260096020526040902054811115610fe85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015260640161056e565b6001600160a01b03808416600081815260096020526040808220805486900390559285168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061104a9085815260200190565b60405180910390a3505050565b6127108111156111685760007f000000000000000000000000000000000000000000000000000000000000271061109083611388611a67565b61109a9190611a45565b905060007f00000000000000000000000000000000000000000000000000000000000027106110cb83611388611a67565b6110d59190611a45565b6002549091506110f09085906001600160a01b031683610f89565b6003546111089085906001600160a01b031683610f89565b600654600160a01b900460ff16801561114057507f000000000000000000000000000000000000000000000000000000000000271081115b1561115e5761114f8185611184565b61115881611266565b50610911565b6109118285611184565b6002546111809033906001600160a01b031683610f89565b5050565b6001600160a01b0381166000908152600960205260409020548211156111ec5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742062616c616e636520746f206275726e00000000604482015260640161056e565b81600054101561123e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420737570706c7920746f206275726e0000000000604482015260640161056e565b6001600160a01b03166000908152600960205260408120805483900390558054919091039055565b600080611274600284611a45565b9050600081116112b75760405162461bcd60e51b815260206004820152600e60248201526d616d6f756e7420746f6f206c6f7760901b604482015260640161056e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112ec576112ec611ace565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061131d5761131d611ace565b6001600160a01b039092166020928302919091019091015280518290829061134790600190611a86565b8151811061135757611357611ace565b60200260200101516001600160a01b03168260008151811061137b5761137b611ace565b60200260200101516001600160a01b0316146114d6576004805460405163d06ca61f60e01b81526000926001600160a01b039092169163d06ca61f916113c59188918891016119e8565b60006040518083038186803b1580156113dd57600080fd5b505afa1580156113f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141991908101906117e3565b9050806001825161142a9190611a86565b8151811061143a5761143a611ace565b6020908102919091010151600480546040516338ed173960e01b81529294506001600160a01b0316916338ed17399161147d918891879189913091429101611a09565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d391908101906117e3565b50505b60045482516000916001600160a01b03169063e8e337009085906114fc90600190611a86565b8151811061150c5761150c611ace565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201819052604482018690526064820188905260006084830181905260a483015260c48201524260e482015261010401606060405180830381600087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c091906118fc565b60065460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905292955016925063a9059cbb9150604401602060405180830381600087803b15801561161457600080fd5b505af1158015611628573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164c91906118a8565b5095945050505050565b80356001600160a01b038116811461166d57600080fd5b919050565b60006020828403121561168457600080fd5b61168d82611656565b9392505050565b600080604083850312156116a757600080fd5b6116b083611656565b91506116be60208401611656565b90509250929050565b6000806000606084860312156116dc57600080fd5b6116e584611656565b92506116f360208501611656565b915061170160408501611656565b90509250925092565b60008060006060848603121561171f57600080fd5b61172884611656565b925061173660208501611656565b9150604084013590509250925092565b600080600080600080600060e0888a03121561176157600080fd5b61176a88611656565b965061177860208901611656565b95506040880135945060608801359350608088013560ff8116811461179c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156117cc57600080fd5b6117d583611656565b946020939093013593505050565b600060208083850312156117f657600080fd5b825167ffffffffffffffff8082111561180e57600080fd5b818501915085601f83011261182257600080fd5b81518181111561183457611834611ae4565b8060051b604051601f19603f8301168101818110858211171561185957611859611ae4565b604052828152858101935084860182860187018a101561187857600080fd5b600095505b8386101561189b57805185526001959095019493860193860161187d565b5098975050505050505050565b6000602082840312156118ba57600080fd5b8151801515811461168d57600080fd5b6000602082840312156118dc57600080fd5b5035919050565b6000602082840312156118f557600080fd5b5051919050565b60008060006060848603121561191157600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b838110156119635781516001600160a01b03168752958201959082019060010161193e565b509495945050505050565b600060208083528351808285015260005b8181101561199b5785810183015185820160400152820161197f565b818111156119ad576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a3737ba10309030b236b4b760a91b604082015260600190565b828152604060208201526000611a01604083018461192a565b949350505050565b85815284602082015260a060408201526000611a2860a083018661192a565b6001600160a01b0394909416606083015250608001529392505050565b600082611a6257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611a8157611a81611ab8565b500290565b600082821015611a9857611a98611ab8565b500390565b6000600019821415611ab157611ab1611ab8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122049bbb6a6c4434159aa652f57038657e6a8326359b256106a9042265ec513ffdc64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000005ca4ec2a79a7f6700000000000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506000000000000000000000000a3bf87488c1257f8dd555b3df85cd0546074d93b000000000000000000000000b0b4bd94d656353a30773ac883591ddbabc0c0ba
-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 112000000000000000000000000
Arg [1] : _sushiRouter (address): 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
Arg [2] : _stARBISReceiver (address): 0xA3Bf87488c1257f8DD555b3DF85CD0546074D93b
Arg [3] : _treasury (address): 0xB0B4bd94D656353a30773Ac883591DDBaBC0c0bA
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000005ca4ec2a79a7f670000000
Arg [1] : 0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506
Arg [2] : 000000000000000000000000a3bf87488c1257f8dd555b3df85cd0546074d93b
Arg [3] : 000000000000000000000000b0b4bd94d656353a30773ac883591ddbabc0c0ba
Deployed ByteCode Sourcemap
6588:11389:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6616:42;;;;;;;;;;;;;;;-1:-1:-1;;;6616:42:0;;;;;;;;;;;;:::i;:::-;;;;;;;;9858:101;;;;;;:::i;:::-;;:::i;:::-;;12234:206;;;;;;:::i;:::-;;:::i;:::-;;;6645:14:1;;6638:22;6620:41;;6608:2;6593:18;12234:206:0;6480:187:1;6756:26:0;;;;;;;;;6818:25:1;;;6806:2;6791:18;6756:26:0;6672:177:1;13843:769:0;;;;;;:::i;:::-;;:::i;7070:21::-;;;;;-1:-1:-1;;;7070:21:0;;;;;;7680:108;;7722:66;7680:108;;6712:37;;6747:2;6712:37;;8934:448;;;;;;:::i;:::-;;:::i;7527:41::-;;;;;17226:748;;;;;;:::i;:::-;;:::i;7146:36::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7042:21;;;;;-1:-1:-1;;;;;7042:21:0;;;;;;-1:-1:-1;;;;;5392:32:1;;;5374:51;;5362:2;5347:18;7042:21:0;5228:203:1;6959:23:0;;;;;-1:-1:-1;;;;;6959:23:0;;;10083:88;;;;;;:::i;:::-;;:::i;10556:109::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10641:16:0;10614:7;10641:16;;;:8;:16;;;;;;;10556:109;9775:75;;;:::i;7795:38::-;;;;;;:::i;:::-;;;;;;;;;;;;;;6877:33;;;;;;7098:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9605:162;;;;;;:::i;:::-;;:::i;6825:45::-;;;;;6665:40;;;;;;;;;;;;;;;-1:-1:-1;;;6665:40:0;;;;;13036:481;;;;;;:::i;:::-;;:::i;6922:30::-;;;;;-1:-1:-1;;;;;6922:30:0;;;9967:106;;;;;;:::i;:::-;;:::i;11260:693::-;;;;;;:::i;:::-;;:::i;10179:101::-;;;;;;:::i;:::-;;:::i;15553:143::-;;;;;;:::i;:::-;;:::i;10970:282::-;;;;;;:::i;:::-;;:::i;10288:87::-;;;;;;:::i;:::-;;:::i;7017:18::-;;;;;-1:-1:-1;;;;;7017:18:0;;;6989:21;;;;;-1:-1:-1;;;;;6989:21:0;;;9858:101;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9927:17:0::1;;::::0;;;:11:::1;:17;::::0;;;;:24;;-1:-1:-1;;9927:24:0::1;9947:4;9927:24;::::0;;9858:101::o;12234:206::-;12326:10;12301:4;12318:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;12318:29:0;;;;;;;;;;:38;;;12372;12301:4;;12318:29;;12372:38;;;;12350:6;6818:25:1;;6806:2;6791:18;;6672:177;12372:38:0;;;;;;;;-1:-1:-1;12428:4:0;12234:206;;;;;:::o;13843:769::-;13979:4;14004:10;-1:-1:-1;;;;;14018:11:0;14004:25;;14001:220;;-1:-1:-1;;;;;14054:14:0;;;;;;:7;:14;;;;;;;;14069:10;14054:26;;;;;;;;:36;-1:-1:-1;14054:36:0;14046:71;;;;-1:-1:-1;;;14046:71:0;;9800:2:1;14046:71:0;;;9782:21:1;9839:2;9819:18;;;9812:30;-1:-1:-1;;;9858:18:1;;;9851:52;9920:18;;14046:71:0;9598:346:1;14046:71:0;-1:-1:-1;;;;;14172:14:0;;;;;;:7;:14;;;;;;;;14187:10;14172:26;;;;;;;;;:35;;;14143:64;;14001:220;-1:-1:-1;;;;;14237:18:0;;;;;;:11;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;14259:16:0;;;;;;:11;:16;;;;;;;;14237:38;14233:350;;;14292:29;14302:5;14309:3;14314:6;14292:9;:29::i;:::-;14233:350;;;14389:19;14411:24;14428:6;14411:16;:24::i;:::-;14389:46;;14448:37;14458:5;14465:3;14470:14;14448:9;:37::i;:::-;14496:9;14508:23;14517:14;14508:6;:23;:::i;:::-;14496:35;;14542:29;14559:5;14566:4;14542:16;:29::i;:::-;14339:244;;14233:350;-1:-1:-1;14600:4:0;13843:769;;;;;:::o;8934:448::-;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;9027:9:::1;:16:::0;;-1:-1:-1;;;;9027:16:0::1;-1:-1:-1::0;;;9027:16:0::1;::::0;;9068:4:::1;::::0;-1:-1:-1;;;;;9068:4:0::1;9056:205;;9153:6;:25:::0;;-1:-1:-1;;;;;9153:25:0;;::::1;-1:-1:-1::0;;;;;;9153:25:0;;::::1;;::::0;;;9193:4:::1;:20:::0;;;;::::1;::::0;;::::1;;::::0;;9228:7:::1;:21:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;9056:205:::1;9289:6;::::0;::::1;9298:11:::0;9273:37:::1;::::0;-1:-1:-1;;;;;9289:6:0::1;::::0;9273:7:::1;:37::i;:::-;-1:-1:-1::0;9321:4:0::1;::::0;9342:6:::1;::::0;;9351:18:::1;::::0;;-1:-1:-1;;;9351:18:0;;;;-1:-1:-1;;;;;9321:4:0;;::::1;::::0;:12:::1;::::0;9342:6;::::1;::::0;9321:4;;9351:16:::1;::::0;:18;;::::1;::::0;::::1;::::0;;;;;;9321:4;9351:18;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9321:49;::::0;-1:-1:-1;;;;;;9321:49:0::1;::::0;;;;;;-1:-1:-1;;;;;6393:32:1;;;9321:49:0::1;::::0;::::1;6375:51:1::0;6442:18;;;6435:34;6348:18;;9321:49:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8934:448:::0;;;:::o;17226:748::-;17392:10;17272:4;17383:20;;;:8;:20;;;;;;17373:30;;;17365:39;;;;;;17519:10;17510:20;;;;:8;:20;;;;;;;;:30;;;;;;;17556:21;;;;;;;;17693:24;;6375:51:1;;;6442:18;;6435:34;;;17693:24:0;;6348:18:1;17693:24:0;;;;;;;17733:39;;6818:25:1;;;17762:1:0;;17742:10;;17733:39;;6806:2:1;6791:18;17733:39:0;;;;;;;-1:-1:-1;17958:4:0;;17226:748;-1:-1:-1;17226:748:0:o;10083:88::-;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10144:12:0::1;;::::0;;;:6:::1;:12;::::0;;;;:19;;-1:-1:-1;;10144:19:0::1;10159:4;10144:19;::::0;;10083:88::o;9775:75::-;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;9825:9:::1;:17:::0;;-1:-1:-1;;;;9825:17:0::1;::::0;;9775:75::o;9605:162::-;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;9691:2:::1;9682:6;:11;;:28;;;;;9706:4;9697:6;:13;;9682:28;9674:54;;;::::0;-1:-1:-1;;;9674:54:0;;9102:2:1;9674:54:0::1;::::0;::::1;9084:21:1::0;9141:2;9121:18;;;9114:30;-1:-1:-1;;;9160:18:1;;;9153:43;9213:18;;9674:54:0::1;8900:337:1::0;9674:54:0::1;9739:11;:20:::0;9605:162::o;13036:481::-;13134:10;13101:4;13122:23;;;:11;:23;;;;;;;;;:43;;-1:-1:-1;;;;;;13149:16:0;;;;;;:11;:16;;;;;;;;13122:43;13118:370;;;13182:34;13192:10;13204:3;13209:6;13182:9;:34::i;:::-;13118:370;;;13274:19;13296:24;13313:6;13296:16;:24::i;:::-;13274:46;;13335:42;13345:10;13357:3;13362:14;13335:9;:42::i;:::-;13392:9;13404:23;13413:14;13404:6;:23;:::i;:::-;13392:35;;13442:34;13459:10;13471:4;13442:16;:34::i;:::-;13234:254;;13118:370;-1:-1:-1;13505:4:0;13036:481;;;;:::o;9967:106::-;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10048:17:0::1;;::::0;;;:11:::1;:17;::::0;;;;10041:24;;-1:-1:-1;;10041:24:0::1;::::0;;9967:106::o;11260:693::-;11406:15;11394:8;:27;;11386:55;;;;-1:-1:-1;;;11386:55:0;;11537:2:1;11386:55:0;;;11519:21:1;11576:2;11556:18;;;11549:30;-1:-1:-1;;;11595:18:1;;;11588:45;11650:18;;11386:55:0;11335:339:1;11386:55:0;-1:-1:-1;;;;;11653:13:0;;11452:14;11653:13;;;:6;:13;;;;;:15;;11557:16;;7722:66;;11630:5;;11637:7;;11646:5;;11452:14;11653:15;;;:::i;:::-;;;;-1:-1:-1;11602:77:0;;;;;;7141:25:1;;;;-1:-1:-1;;;;;7240:15:1;;;7220:18;;;7213:43;7292:15;;;;7272:18;;;7265:43;7324:18;;;7317:34;7367:19;;;7360:35;7411:19;;;7404:35;;;7113:19;;11602:77:0;;;;;;;;;;;;11592:88;;;;;;11493:188;;;;;;;;-1:-1:-1;;;5089:27:1;;5141:1;5132:11;;5125:27;;;;5177:2;5168:12;;5161:28;5214:2;5205:12;;4831:392;11493:188:0;;;;-1:-1:-1;;11493:188:0;;;;;;;;;11469:213;;11493:188;11469:213;;;;11693:24;11720:26;;;;;;;;;7677:25:1;;;7750:4;7738:17;;7718:18;;;7711:45;;;;7772:18;;;7765:34;;;7815:18;;;7808:34;;;11469:213:0;;-1:-1:-1;11693:24:0;11720:26;;7649:19:1;;11720:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11720:26:0;;-1:-1:-1;;11720:26:0;;;-1:-1:-1;;;;;;;11765:30:0;;;;;;:59;;;11819:5;-1:-1:-1;;;;;11799:25:0;:16;-1:-1:-1;;;;;11799:25:0;;11765:59;11757:97;;;;-1:-1:-1;;;11757:97:0;;10500:2:1;11757:97:0;;;10482:21:1;10539:2;10519:18;;;10512:30;10578:27;10558:18;;;10551:55;10623:18;;11757:97:0;10298:349:1;11757:97:0;-1:-1:-1;;;;;11867:14:0;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;:31;;;11914;;6818:25:1;;;11914:31:0;;6791:18:1;11914:31:0;;;;;;;11375:578;;11260:693;;;;;;;:::o;10179:101::-;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;10250:15:::1;:22:::0;;-1:-1:-1;;;;;;10250:22:0::1;-1:-1:-1::0;;;;;10250:22:0;;;::::1;::::0;;;::::1;::::0;;10179:101::o;15553:143::-;15616:4;15675:12;15660:11;;15651:6;:20;;;;:::i;:::-;15650:37;;;;:::i;:::-;15640:48;;:6;:48;:::i;10970:282::-;11098:7;11138:11;-1:-1:-1;;;;;11126:23:0;:8;-1:-1:-1;;;;;11126:23:0;;11123:79;;;-1:-1:-1;;;11166:24:0;;11123:79;-1:-1:-1;;;;;;11219:15:0;;;;;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;10970:282::o;10288:87::-;8592:10;8585:18;;;;:6;:18;;;;;;;;8577:42;;;;-1:-1:-1;;;8577:42:0;;;;;;;:::i;:::-;10352:8:::1;:15:::0;;-1:-1:-1;;;;;;10352:15:0::1;-1:-1:-1::0;;;;;10352:15:0;;;::::1;::::0;;;::::1;::::0;;10288:87::o;12503:319::-;-1:-1:-1;;;;;12594:15:0;;;;;;:8;:15;;;;;;:25;-1:-1:-1;12594:25:0;12586:58;;;;-1:-1:-1;;;12586:58:0;;10151:2:1;12586:58:0;;;10133:21:1;10190:2;10170:18;;;10163:30;-1:-1:-1;;;10209:18:1;;;10202:50;10269:18;;12586:58:0;9949:344:1;12586:58:0;-1:-1:-1;;;;;12680:15:0;;;;;;;:8;:15;;;;;;:25;;;;;;;12737:13;;;;;;;;;;;;:22;;12721:38;;12786:28;;;;;;12699:6;6818:25:1;;6806:2;6791:18;;6672:177;12786:28:0;;;;;;;;12503:319;;;:::o;14620:764::-;14706:5;14699:4;:12;14695:682;;;14728:12;14759;14744:11;:4;14751;14744:11;:::i;:::-;14743:28;;;;:::i;:::-;14728:43;-1:-1:-1;14786:15:0;14820:12;14805:11;14728:43;14812:4;14805:11;:::i;:::-;14804:28;;;;:::i;:::-;14909:15;;14786:46;;-1:-1:-1;14892:42:0;;14902:5;;-1:-1:-1;;;;;14909:15:0;14786:46;14892:9;:42::i;:::-;14966:8;;14949:35;;14959:5;;-1:-1:-1;;;;;14966:8:0;14976:7;14949:9;:35::i;:::-;15003:9;;-1:-1:-1;;;15003:9:0;;;;:35;;;;;15026:12;15016:7;:22;15003:35;14999:290;;;15095:24;15104:7;15113:5;15095:8;:24::i;:::-;15138:44;15174:7;15138:35;:44::i;:::-;;14999:290;;;15252:21;15261:4;15267:5;15252:8;:21::i;14695:682::-;15343:15;;15321:44;;15331:10;;-1:-1:-1;;;;;15343:15:0;15360:4;15321:9;:44::i;:::-;14620:764;;:::o;16884:334::-;-1:-1:-1;;;;;16962:16:0;;;;;;:8;:16;;;;;;:26;-1:-1:-1;16962:26:0;16954:67;;;;-1:-1:-1;;;16954:67:0;;11881:2:1;16954:67:0;;;11863:21:1;11920:2;11900:18;;;11893:30;11959;11939:18;;;11932:58;12007:18;;16954:67:0;11679:352:1;16954:67:0;17060:6;17045:11;;:21;;17037:61;;;;-1:-1:-1;;;17037:61:0;;9444:2:1;17037:61:0;;;9426:21:1;9483:2;9463:18;;;9456:30;9522:29;9502:18;;;9495:57;9569:18;;17037:61:0;9242:351:1;17037:61:0;-1:-1:-1;;;;;17135:16:0;;;;;:8;:16;;;;;:26;;;;;;;17177:21;;;;;;;;16884:334::o;15704:926::-;15780:4;;15809:10;15818:1;15809:6;:10;:::i;:::-;15793:26;;15845:1;15834:8;:12;15826:39;;;;-1:-1:-1;;;15826:39:0;;10854:2:1;15826:39:0;;;10836:21:1;10893:2;10873:18;;;10866:30;-1:-1:-1;;;10912:18:1;;;10905:44;10966:18;;15826:39:0;10652:338:1;15826:39:0;15927:16;;;15941:1;15927:16;;;;;;;;15902:22;;15927:16;;;;;;;;;;-1:-1:-1;15927:16:0;15902:41;;15969:4;15950:5;15956:1;15950:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15950:24:0;;;:8;;;;;;;;;:24;16000:4;;15981:8;;16000:4;;;15981:5;;16000:4;;15981:8;;;;;;:::i;:::-;-1:-1:-1;;;;;15981:24:0;;;:8;;;;;;;;;;;:24;16074:12;;16037:8;;16068:5;;16074:16;;16089:1;;16074:16;:::i;:::-;16068:23;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;16056:35:0;:5;16062:1;16056:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;16056:35:0;;16052:306;;16135:6;;;:37;;-1:-1:-1;;;16135:37:0;;16102:30;;-1:-1:-1;;;;;16135:6:0;;;;:20;;:37;;16156:8;;16166:5;;16135:37;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16135:37:0;;;;;;;;;;;;:::i;:::-;16102:70;;16199:16;16242:1;16216:16;:23;:27;;;;:::i;:::-;16199:45;;;;;;;;:::i;:::-;;;;;;;;;;;16253:6;;;:97;;-1:-1:-1;;;16253:97:0;;16199:45;;-1:-1:-1;;;;;;16253:6:0;;:31;;:97;;16285:8;;16199:45;;16312:5;;16327:4;;16334:15;;16253:97;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16253:97:0;;;;;;;;;;;;:::i;:::-;;16093:265;16052:306;16387:6;;16421:12;;16369:14;;-1:-1:-1;;;;;16387:6:0;;:19;;16415:5;;16421:16;;16387:6;;16421:16;:::i;:::-;16415:23;;;;;;;;:::i;:::-;;;;;;;;;;;16387:166;;-1:-1:-1;;;;;;16387:166:0;;;;;;;-1:-1:-1;;;;;5851:15:1;;;16387:166:0;;;5833:34:1;16448:4:0;5883:18:1;;;5876:43;;;5935:18;;;5928:34;;;5978:18;;;5971:34;;;16496:1:0;6021:19:1;;;6014:35;;;6065:19;;;6058:35;6109:19;;;6102:44;16531:15:0;6162:19:1;;;6155:35;5767:19;;16387:166:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16562:7;;16579:8;;16562:37;;-1:-1:-1;;;16562:37:0;;-1:-1:-1;;;;;16579:8:0;;;16562:37;;;6375:51:1;6442:18;;;6435:34;;;16366:187:0;;-1:-1:-1;16562:7:0;;-1:-1:-1;16562:16:0;;-1:-1:-1;6348:18:1;;16562:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16615:9:0;15704:926;-1:-1:-1;;;;;15704:926:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:334::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;938:38;972:2;961:9;957:18;938:38;:::i;:::-;928:48;;648:334;;;;;:::o;987:328::-;1064:6;1072;1080;1133:2;1121:9;1112:7;1108:23;1104:32;1101:52;;;1149:1;1146;1139:12;1101:52;1172:29;1191:9;1172:29;:::i;:::-;1162:39;;1220:38;1254:2;1243:9;1239:18;1220:38;:::i;:::-;1210:48;;1305:2;1294:9;1290:18;1277:32;1267:42;;987:328;;;;;:::o;1320:693::-;1431:6;1439;1447;1455;1463;1471;1479;1532:3;1520:9;1511:7;1507:23;1503:33;1500:53;;;1549:1;1546;1539:12;1500:53;1572:29;1591:9;1572:29;:::i;:::-;1562:39;;1620:38;1654:2;1643:9;1639:18;1620:38;:::i;:::-;1610:48;;1705:2;1694:9;1690:18;1677:32;1667:42;;1756:2;1745:9;1741:18;1728:32;1718:42;;1810:3;1799:9;1795:19;1782:33;1855:4;1848:5;1844:16;1837:5;1834:27;1824:55;;1875:1;1872;1865:12;1824:55;1320:693;;;;-1:-1:-1;1320:693:1;;;;1898:5;1950:3;1935:19;;1922:33;;-1:-1:-1;2002:3:1;1987:19;;;1974:33;;1320:693;-1:-1:-1;;1320:693:1:o;2018:254::-;2086:6;2094;2147:2;2135:9;2126:7;2122:23;2118:32;2115:52;;;2163:1;2160;2153:12;2115:52;2186:29;2205:9;2186:29;:::i;:::-;2176:39;2262:2;2247:18;;;;2234:32;;-1:-1:-1;;;2018:254:1:o;2277:1116::-;2372:6;2403:2;2446;2434:9;2425:7;2421:23;2417:32;2414:52;;;2462:1;2459;2452:12;2414:52;2495:9;2489:16;2524:18;2565:2;2557:6;2554:14;2551:34;;;2581:1;2578;2571:12;2551:34;2619:6;2608:9;2604:22;2594:32;;2664:7;2657:4;2653:2;2649:13;2645:27;2635:55;;2686:1;2683;2676:12;2635:55;2715:2;2709:9;2737:2;2733;2730:10;2727:36;;;2743:18;;:::i;:::-;2789:2;2786:1;2782:10;2821:2;2815:9;2884:2;2880:7;2875:2;2871;2867:11;2863:25;2855:6;2851:38;2939:6;2927:10;2924:22;2919:2;2907:10;2904:18;2901:46;2898:72;;;2950:18;;:::i;:::-;2986:2;2979:22;3036:18;;;3070:15;;;;-1:-1:-1;3105:11:1;;;3135;;;3131:20;;3128:33;-1:-1:-1;3125:53:1;;;3174:1;3171;3164:12;3125:53;3196:1;3187:10;;3206:156;3220:2;3217:1;3214:9;3206:156;;;3277:10;;3265:23;;3238:1;3231:9;;;;;3308:12;;;;3340;;3206:156;;;-1:-1:-1;3381:6:1;2277:1116;-1:-1:-1;;;;;;;;2277:1116:1:o;3398:277::-;3465:6;3518:2;3506:9;3497:7;3493:23;3489:32;3486:52;;;3534:1;3531;3524:12;3486:52;3566:9;3560:16;3619:5;3612:13;3605:21;3598:5;3595:32;3585:60;;3641:1;3638;3631:12;3680:180;3739:6;3792:2;3780:9;3771:7;3767:23;3763:32;3760:52;;;3808:1;3805;3798:12;3760:52;-1:-1:-1;3831:23:1;;3680:180;-1:-1:-1;3680:180:1:o;3865:184::-;3935:6;3988:2;3976:9;3967:7;3963:23;3959:32;3956:52;;;4004:1;4001;3994:12;3956:52;-1:-1:-1;4027:16:1;;3865:184;-1:-1:-1;3865:184:1:o;4054:306::-;4142:6;4150;4158;4211:2;4199:9;4190:7;4186:23;4182:32;4179:52;;;4227:1;4224;4217:12;4179:52;4256:9;4250:16;4240:26;;4306:2;4295:9;4291:18;4285:25;4275:35;;4350:2;4339:9;4335:18;4329:25;4319:35;;4054:306;;;;;:::o;4365:461::-;4418:3;4456:5;4450:12;4483:6;4478:3;4471:19;4509:4;4538:2;4533:3;4529:12;4522:19;;4575:2;4568:5;4564:14;4596:1;4606:195;4620:6;4617:1;4614:13;4606:195;;;4685:13;;-1:-1:-1;;;;;4681:39:1;4669:52;;4741:12;;;;4776:15;;;;4717:1;4635:9;4606:195;;;-1:-1:-1;4817:3:1;;4365:461;-1:-1:-1;;;;;4365:461:1:o;8298:597::-;8410:4;8439:2;8468;8457:9;8450:21;8500:6;8494:13;8543:6;8538:2;8527:9;8523:18;8516:34;8568:1;8578:140;8592:6;8589:1;8586:13;8578:140;;;8687:14;;;8683:23;;8677:30;8653:17;;;8672:2;8649:26;8642:66;8607:10;;8578:140;;;8736:6;8733:1;8730:13;8727:91;;;8806:1;8801:2;8792:6;8781:9;8777:22;8773:31;8766:42;8727:91;-1:-1:-1;8879:2:1;8858:15;-1:-1:-1;;8854:29:1;8839:45;;;;8886:2;8835:54;;8298:597;-1:-1:-1;;;8298:597:1:o;10995:335::-;11197:2;11179:21;;;11236:2;11216:18;;;11209:30;-1:-1:-1;;;11270:2:1;11255:18;;11248:41;11321:2;11306:18;;10995:335::o;12218:332::-;12425:6;12414:9;12407:25;12468:2;12463;12452:9;12448:18;12441:30;12388:4;12488:56;12540:2;12529:9;12525:18;12517:6;12488:56;:::i;:::-;12480:64;12218:332;-1:-1:-1;;;;12218:332:1:o;12555:574::-;12846:6;12835:9;12828:25;12889:6;12884:2;12873:9;12869:18;12862:34;12932:3;12927:2;12916:9;12912:18;12905:31;12809:4;12953:57;13005:3;12994:9;12990:19;12982:6;12953:57;:::i;:::-;-1:-1:-1;;;;;13046:32:1;;;;13041:2;13026:18;;13019:60;-1:-1:-1;13110:3:1;13095:19;13088:35;12945:65;12555:574;-1:-1:-1;;;12555:574:1:o;13134:217::-;13174:1;13200;13190:132;;13244:10;13239:3;13235:20;13232:1;13225:31;13279:4;13276:1;13269:15;13307:4;13304:1;13297:15;13190:132;-1:-1:-1;13336:9:1;;13134:217::o;13356:168::-;13396:7;13462:1;13458;13454:6;13450:14;13447:1;13444:21;13439:1;13432:9;13425:17;13421:45;13418:71;;;13469:18;;:::i;:::-;-1:-1:-1;13509:9:1;;13356:168::o;13529:125::-;13569:4;13597:1;13594;13591:8;13588:34;;;13602:18;;:::i;:::-;-1:-1:-1;13639:9:1;;13529:125::o;13659:135::-;13698:3;-1:-1:-1;;13719:17:1;;13716:43;;;13739:18;;:::i;:::-;-1:-1:-1;13786:1:1;13775:13;;13659:135::o;13799:127::-;13860:10;13855:3;13851:20;13848:1;13841:31;13891:4;13888:1;13881:15;13915:4;13912:1;13905:15;13931:127;13992:10;13987:3;13983:20;13980:1;13973:31;14023:4;14020:1;14013:15;14047:4;14044:1;14037:15;14063:127;14124:10;14119:3;14115:20;14112:1;14105:31;14155:4;14152:1;14145:15;14179:4;14176:1;14169:15
Metadata Hash
ipfs://49bbb6a6c4434159aa652f57038657e6a8326359b256106a9042265ec513ffdc