ERC-20
NFT
Overview
Max Total Supply
114,517.27572047 COVAL
Holders
1,066 (0.00%)
Total Transfers
-
Market
Price
$0.0026 @ 0.002098 FTM (-5.70%)
Onchain Market Cap
$301.52
Circulating Supply Market Cap
$4,703,247.00
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
ConfigurableERC20
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2021-03-08 */ /* _____ __ _ _ _ / ____| / _(_) | | | | v2 -> Matic Compatible | | ___ _ __ | |_ _ __ _ _ _ _ __ __ _| |__ | | ___ | | / _ \| '_ \| _| |/ _` | | | | '__/ _` | '_ \| |/ _ \ | |___| (_) | | | | | | | (_| | |_| | | | (_| | |_) | | __/ \_____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|_.__/|_|\___| __/ | ______ _____ _____ ___|___/_ | ____| __ \ / ____|__ \ / _ \ | |__ | |__) | | ) | | | | | __| | _ /| | / /| | | | | |____| | \ \| |____ / /_| |_| | |______|_| \_\\_____|____|\___/ By the team that brought you: --- > Circuits of Value (http://circuitsofvalue.com) --- > Emblem Vault (https://emblem.finance) Documentation: --- > Github (https://github.com/EmblemLabs/ConfigurableERC20) UI: --- > (https://emblemlabs.github.io/ConfigurableERC20/) */ // SPDX-License-Identifier: MIT pragma solidity ^0.6.12; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Context { constructor() internal {} // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } } abstract contract Configurable is Context, IERC20 { using SafeMath for uint256; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 internal _totalSupply; address public resolver; address private governance; bool private _transferable = true; bool private _burnable = true; bool private _visible = true; bool private _allowPrivateTransactions = false; bool private _locked = false; bool private _forever = false; uint256 private _lockBlock = 0; string public name; string public symbol; uint8 public decimals; mapping(address => bool) public minters; mapping(address => bool) public viewers; mapping(address => bool) public depositers; function _isGoverner() internal view returns (bool) { return _msgSender() == governance; } function _isViewer() internal view returns (bool) { return viewers[_msgSender()]; } function _isMinter() internal view returns (bool) { return minters[_msgSender()]; } function _isDepositer() internal view returns (bool) { return depositers[_msgSender()]; } function transferable() public view returns (bool) { return _transferable; } function burnable() public view returns (bool) { return _burnable; } function visible() public view returns (bool) { return _visible; } function visibleOrAdmin() public view returns (bool) { return _visible || _isGoverner(); } function allowPrivateTransactions() public view returns (bool) { return _allowPrivateTransactions; } function blockNumberLocked() public view returns (bool) { return _lockBlock != 0 && block.number < _lockBlock; } function locked() public view returns (bool) { return _locked || blockNumberLocked(); } function lockedPermenantly() public view returns (bool) { return locked() && _forever; } function blocksTillUnlock() public view returns (uint256) { if (_lockBlock > block.number) { return _lockBlock.sub(block.number); } else { return 0; } } modifier isTransferable() { require(_transferable, "Contract does not allow transfering"); _; } modifier isBurnable() { require(_burnable, "Contract does not allow burning"); _; } modifier isVisibleOrCanView() { require( _visible || _isViewer() || _isGoverner(), "Contract is private and you are not Governer or on viewers list" ); _; } modifier canSendPrivateOrGoverner() { require( _allowPrivateTransactions || _isGoverner(), "Contract cannot send private transactions" ); _; } modifier onlyOwner() { require(_isGoverner(), "Sender is not Governer"); _; } modifier notLocked() { require(!locked(), "Contract is locked to governance changes"); _; } modifier canMint() { require(_isMinter(), "No Minting Privilages"); _; } modifier canDeposit() { require(_isDepositer(), "No Depositing Privilages"); _; } function unLock() public onlyOwner { require( !lockedPermenantly(), "Contract locked forever to governance changes" ); require( !blockNumberLocked(), "Contract has been locked until a blocknumber" ); require(locked(), "Contract not locked"); _locked = false; } function lockForever() public onlyOwner { require( !lockedPermenantly(), "Contract locked forever to governance changes" ); require( !blockNumberLocked(), "Contract has been locked until a blocknumber" ); _locked = true; _forever = true; } function lockTemporarily() public onlyOwner notLocked { _locked = true; } function lockTemporarilyTillBlock(uint256 blockNumber) public onlyOwner notLocked { require( block.number < blockNumber, "Provided Block numbner is in the past" ); _lockBlock = blockNumber; } function toggleBurnable() public onlyOwner notLocked { _burnable = !_burnable; } function toggleTransferable() public onlyOwner notLocked { _transferable = !_transferable; } function toggleVisibility() public onlyOwner notLocked { _visible = !_visible; } function togglePrivateTransferability() public onlyOwner notLocked { _allowPrivateTransactions = !_allowPrivateTransactions; } function setGovernance(address _governance) public onlyOwner notLocked { _setGovernance(_governance); } /* For compatibility with Ownable */ function transferOwnership(address _governance) public onlyOwner notLocked { _setGovernance(_governance); } function _setGovernance(address _governance) internal { minters[governance] = false; // Remove old owner from minters list viewers[governance] = false; // Remove old owner from viewers list depositers[governance] = false; //Remove old owner from depositer list minters[_governance] = true; // Add new owner to minters list viewers[_governance] = true; // Add new owner to viewers list depositers[_governance] = true; //Add new owner from depositer list governance = _governance; // Set new owner } } contract ERC20 is IERC20, Configurable { using SafeMath for uint256; function totalSupply() public override view isVisibleOrCanView returns (uint256) { return _totalSupply; } function balanceOf(address account) public override view isVisibleOrCanView returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public override view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override isTransferable returns (bool) { _transferFromPrivate(sender, recipient, amount, visible()); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function withdraw(uint256 amount) external { _burn(_msgSender(), amount); } function deposit(address user, bytes calldata depositData) external canDeposit { uint256 amount = abi.decode(depositData, (uint256)); _mint(user, amount); } function _transferFromPrivate( address sender, address recipient, uint256 amount, bool _private ) internal isTransferable returns (bool) { _transferPrivate(sender, recipient, amount, _private); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function transfer(address recipient, uint256 amount) public override isTransferable returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal isTransferable { _transferPrivate(sender, recipient, amount, !visible()); } function _transferPrivate( address sender, address recipient, uint256 amount, bool _private ) internal isTransferable { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); if (!_private) { emit Transfer(sender, recipient, amount); } } function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); if (visible()) { emit Transfer(address(0), account, amount); } } function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); if (visible()) { emit Transfer(account, address(0), amount); } } function _approve( address owner, address spender, uint256 amount ) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; if (visible()) { emit Approval(owner, spender, amount); } } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; return c; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { callOptionalReturn( token, abi.encodeWithSelector(token.transfer.selector, to, value) ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { callOptionalReturn( token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value) ); } function safeApprove( IERC20 token, address spender, uint256 value ) internal { require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, value) ); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require( abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed" ); } } } contract ConfigurableERC20 is ERC20 { using SafeERC20 for IERC20; using Address for address; using SafeMath for uint256; bool initialized = false; constructor() public { require(!initialized, 'Already initialized'); name = "Circuits of Value V2"; symbol = "COVAL"; decimals = 8; _setGovernance(msg.sender); initialized = true; } function init() public { // require(!initialized, 'Already initialized'); // name = "ChangeMe"; // symbol = "CHANGE"; // decimals = 18; // _setGovernance(msg.sender); // initialized = true; } function transfer( address to, uint256 amount, bool _private ) public isTransferable canSendPrivateOrGoverner { _transferPrivate(_msgSender(), to, amount, _private); } function transferFrom( address from, address to, uint256 amount, bool _private ) public isTransferable canSendPrivateOrGoverner { _transferPrivate(from, to, amount, _private); } function mint(address account, uint256 amount) public canMint notLocked { _mint(account, amount); } function burn(uint256 amount) public isBurnable { _burn(_msgSender(), amount); } function changeContractDetails( string calldata _name, string calldata _symbol, uint8 _decimals ) public onlyOwner notLocked { name = _name; symbol = _symbol; decimals = _decimals; } function addMinter(address _minter) public onlyOwner notLocked { minters[_minter] = true; } function removeMinter(address _minter) public onlyOwner notLocked { minters[_minter] = false; } function addViewer(address _viewer) public onlyOwner notLocked { viewers[_viewer] = true; } function removeViewer(address _viewer) public onlyOwner notLocked { viewers[_viewer] = false; } function addDepositer(address _depositer) public onlyOwner notLocked { depositers[_depositer] = true; } function removeDepositer(address _depositer) public onlyOwner notLocked { depositers[_depositer] = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_depositer","type":"address"}],"name":"addDepositer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_viewer","type":"address"}],"name":"addViewer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allowPrivateTransactions","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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockNumberLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blocksTillUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"name":"changeContractDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockForever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockTemporarily","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"lockTemporarilyTillBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedPermenantly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_depositer","type":"address"}],"name":"removeDepositer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_viewer","type":"address"}],"name":"removeViewer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleBurnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"togglePrivateTransferability","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTransferable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleVisibility","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"_private","type":"bool"}],"name":"transfer","outputs":[],"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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"_private","type":"bool"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"viewers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"visible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"visibleOrAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526004805462ffffff60b81b1960ff60b01b1960ff60a81b1960ff60a01b19909316600160a01b1792909216600160a81b1791909116600160b01b171690556000600555600c805460ff191690553480156200005e57600080fd5b50600c5460ff1615620000b8576040805162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6040805180820190915260148082527f4369726375697473206f662056616c75652056320000000000000000000000006020909201918252620000fe91600691620001f7565b506040805180820190915260058082526410d3d5905360da1b60209092019182526200012d91600791620001f7565b506008805460ff191681179055620001453362000158565b600c805460ff1916600117905562000293565b600480546001600160a01b039081166000908152600960208181526040808420805460ff19908116909155865486168552600a808452828620805483169055875487168652600b80855283872080548416905598909616808652938352818520805482166001908117909155958352818520805482168717905596909152909120805490941690911790925580546001600160a01b0319169091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023a57805160ff19168380011785556200026a565b828001600101855582156200026a579182015b828111156200026a5782518255916020019190600101906200024d565b50620002789291506200027c565b5090565b5b808211156200027857600081556001016200027d565b61285d80620002a36000396000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c806395d89b4111610167578063cf2c52cb116100ce578063dd62ed3e11610087578063dd62ed3e1461087c578063e1ad1162146108aa578063e1c7392a146108de578063ed10e33c146108e6578063f2fde38b1461075a578063f46eccc4146108ee576102a0565b8063cf2c52cb14610798578063cf30901214610818578063d1d9891414610820578063d47356a314610846578063d6bfc22f1461086c578063da424e6f14610874576102a0565b8063a69439aa11610120578063a69439aa14610708578063a9059cbb1461072e578063ab033ea91461075a578063af6a6d7914610780578063b3cc59db14610788578063c08c9f9a14610790576102a0565b806395d89b4114610681578063983b2d5614610689578063a0065b5b146106af578063a07c7ce4146106b7578063a2f0d957146106bf578063a457c2d7146106dc576102a0565b8063425a71c01161020b578063601f8cf5116101c4578063601f8cf5146105c15780636384c045146105e75780636f2293ab1461060d57806370a082311461064b57806390f3173b1461067157806392ff0d3114610679576102a0565b8063425a71c0146104bf57806342966c6814610584578063432d6c67146105a157806343918ad8146105a9578063439ec2ee146105b15780634437d99e146105b9576102a0565b80632e1a7d4d1161025d5780632e1a7d4d146103fe5780633092afd51461041b578063313ce56714610441578063395093511461045f5780633bce1d481461048b57806340c10f1914610493576102a0565b806304f3bcec146102a557806306fdde03146102c9578063095ea7b31461034657806317ac10db1461038657806318160ddd146103ae57806323b872dd146103c8575b600080fd5b6102ad610914565b604080516001600160a01b039092168252519081900360200190f35b6102d1610923565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030b5781810151838201526020016102f3565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103726004803603604081101561035c57600080fd5b506001600160a01b0381351690602001356109b1565b604080519115158252519081900360200190f35b6103ac6004803603602081101561039c57600080fd5b50356001600160a01b03166109ce565b005b6103b6610a7d565b60408051918252519081900360200190f35b610372600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610aec565b6103ac6004803603602081101561041457600080fd5b5035610bc5565b6103ac6004803603602081101561043157600080fd5b50356001600160a01b0316610bd9565b610449610c85565b6040805160ff9092168252519081900360200190f35b6103726004803603604081101561047557600080fd5b506001600160a01b038135169060200135610c8e565b610372610cdc565b6103ac600480360360408110156104a957600080fd5b506001600160a01b038135169060200135610cec565b6103ac600480360360608110156104d557600080fd5b8101906020810181356401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b91939092909160208101903564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91935091503560ff16610d8f565b6103ac6004803603602081101561059a57600080fd5b5035610e4e565b610372610eac565b6103ac610ecf565b6103ac610f7b565b6103b661101b565b6103ac600480360360208110156105d757600080fd5b50356001600160a01b0316611043565b610372600480360360208110156105fd57600080fd5b50356001600160a01b03166110f2565b6103ac6004803603608081101561062357600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515611107565b6103b66004803603602081101561066157600080fd5b50356001600160a01b03166111b7565b6103ac61123a565b61037261132d565b6102d161133d565b6103ac6004803603602081101561069f57600080fd5b50356001600160a01b0316611398565b610372611447565b610372611460565b6103ac600480360360208110156106d557600080fd5b5035611470565b610372600480360360408110156106f257600080fd5b506001600160a01b03813516906020013561153e565b6103726004803603602081101561071e57600080fd5b50356001600160a01b03166115a6565b6103726004803603604081101561074457600080fd5b506001600160a01b0381351690602001356115bb565b6103ac6004803603602081101561077057600080fd5b50356001600160a01b0316611618565b6103726116ac565b6103ac6116bc565b610372611768565b6103ac600480360360408110156107ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156107d957600080fd5b8201836020820111156107eb57600080fd5b8035906020019184600183028401116401000000008311171561080d57600080fd5b50909250905061178a565b610372611803565b6103ac6004803603602081101561083657600080fd5b50356001600160a01b0316611821565b6103ac6004803603602081101561085c57600080fd5b50356001600160a01b03166118cd565b6103ac611979565b6103ac611a25565b6103b66004803603604081101561089257600080fd5b506001600160a01b0381358116916020013516611ad1565b6103ac600480360360608110156108c057600080fd5b506001600160a01b0381351690602081013590604001351515611afc565b6103ac611bb2565b6103ac611bb4565b6103726004803603602081101561090457600080fd5b50356001600160a01b0316611ce1565b6003546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b505050505081565b60006109c56109be611cf6565b8484611cfa565b50600192915050565b6109d6611e09565b610a15576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610a1d611803565b15610a595760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b600454600090600160b01b900460ff1680610a9b5750610a9b611e2f565b80610aa95750610aa9611e09565b610ae45760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506002545b90565b600454600090600160a01b900460ff16610b375760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b610b4a848484610b456116ac565b611e5f565b50610bbb84610b57611cf6565b610bb68560405180606001604052806028815260200161270a602891396001600160a01b038a16600090815260016020526040812090610b95611cf6565b6001600160a01b031681526020810191909152604001600020549190611f0b565b611cfa565b5060019392505050565b610bd6610bd0611cf6565b82611fa2565b50565b610be1611e09565b610c20576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610c28611803565b15610c645760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b60085460ff1681565b60006109c5610c9b611cf6565b84610bb68560016000610cac611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061209f565b600454600160b81b900460ff1690565b610cf4612100565b610d3d576040805162461bcd60e51b81526020600482015260156024820152744e6f204d696e74696e672050726976696c6167657360581b604482015290519081900360640190fd5b610d45611803565b15610d815760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610d8b828261210e565b5050565b610d97611e09565b610dd6576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610dde611803565b15610e1a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610e26600686866124ff565b50610e33600784846124ff565b506008805460ff191660ff9290921691909117905550505050565b600454600160a81b900460ff16610bc5576040805162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420646f6573206e6f7420616c6c6f77206275726e696e6700604482015290519081900360640190fd5b600454600090600160b01b900460ff1680610eca5750610eca611e09565b905090565b610ed7611e09565b610f16576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610f1e611803565b15610f5a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b01b198116600160b01b9182900460ff1615909102179055565b610f83611e09565b610fc2576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610fca611803565b156110065760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60c01b1916600160c01b179055565b600043600554111561103b576005546110349043612207565b9050610ae9565b506000610ae9565b61104b611e09565b61108a576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611092611803565b156110ce5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b600b6020526000908152604090205460ff1681565b600454600160a01b900460ff1661114f5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff168061116a575061116a611e09565b6111a55760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b6111b184848484612249565b50505050565b600454600090600160b01b900460ff16806111d557506111d5611e2f565b806111e357506111e3611e09565b61121e5760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506001600160a01b031660009081526020819052604090205490565b611242611e09565b611281576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611289611768565b156112c55760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b6112cd611447565b156113095760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b6004805460ff60c81b1960ff60c01b19909116600160c01b1716600160c81b179055565b600454600160a01b900460ff1690565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b6113a0611e09565b6113df576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6113e7611803565b156114235760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000600554600014158015610eca575050600554431090565b600454600160a81b900460ff1690565b611478611e09565b6114b7576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6114bf611803565b156114fb5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b8043106115395760405162461bcd60e51b81526004018080602001828103825260258152602001806126236025913960400191505060405180910390fd5b600555565b60006109c561154b611cf6565b84610bb6856040518060600160405280602581526020016128036025913960016000611575611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f0b565b600a6020526000908152604090205460ff1681565b600454600090600160a01b900460ff166116065760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6109c5611611611cf6565b84846123f6565b611620611e09565b61165f576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611667611803565b156116a35760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610bd681612452565b600454600160b01b900460ff1690565b6116c4611e09565b611703576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61170b611803565b156117475760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a81b198116600160a81b9182900460ff1615909102179055565b6000611772611803565b8015610eca575050600454600160c81b900460ff1690565b6117926124f1565b6117e3576040805162461bcd60e51b815260206004820152601860248201527f4e6f204465706f736974696e672050726976696c616765730000000000000000604482015290519081900360640190fd5b6000828260208110156117f557600080fd5b503590506111b1848261210e565b600454600090600160c01b900460ff1680610eca5750610eca611447565b611829611e09565b611868576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611870611803565b156118ac5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6118d5611e09565b611914576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61191c611803565b156119585760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19169055565b611981611e09565b6119c0576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6119c8611803565b15611a045760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a01b198116600160a01b9182900460ff1615909102179055565b611a2d611e09565b611a6c576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611a74611803565b15611ab05760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600454600160a01b900460ff16611b445760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff1680611b5f5750611b5f611e09565b611b9a5760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b611bad611ba5611cf6565b848484612249565b505050565b565b611bbc611e09565b611bfb576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611c03611768565b15611c3f5760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b611c47611447565b15611c835760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b611c8b611803565b611cd2576040805162461bcd60e51b815260206004820152601360248201527210dbdb9d1c9858dd081b9bdd081b1bd8dad959606a1b604482015290519081900360640190fd5b6004805460ff60c01b19169055565b60096020526000908152604090205460ff1681565b3390565b6001600160a01b038316611d3f5760405162461bcd60e51b81526004018080602001828103825260248152602001806127b76024913960400191505060405180910390fd5b6001600160a01b038216611d845760405162461bcd60e51b81526004018080602001828103825260228152602001806126016022913960400191505060405180910390fd5b6001600160a01b038084166000908152600160209081526040808320938616835292905220819055611db46116ac565b15611bad57816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6004546000906001600160a01b0316611e20611cf6565b6001600160a01b031614905090565b6000600a6000611e3d611cf6565b6001600160a01b0316815260208101919091526040016000205460ff16905090565b600454600090600160a01b900460ff16611eaa5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611eb685858585612249565b611f0085611ec2611cf6565b610bb68660405180606001604052806028815260200161270a602891396001600160a01b038b16600090815260016020526040812090610b95611cf6565b506001949350505050565b60008184841115611f9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5f578181015183820152602001611f47565b50505050905090810190601f168015611f8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038216611fe75760405162461bcd60e51b81526004018080602001828103825260218152602001806127326021913960400191505060405180910390fd5b612024816040518060600160405280602281526020016125b6602291396001600160a01b0385166000908152602081905260409020549190611f0b565b6001600160a01b03831660009081526020819052604090205560025461204a9082612207565b6002556120556116ac565b15610d8b576040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000828201838110156120f9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600060096000611e3d611cf6565b6001600160a01b038216612169576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254612176908261209f565b6002556001600160a01b03821660009081526020819052604090205461219c908261209f565b6001600160a01b0383166000908152602081905260409020556121bd6116ac565b15610d8b576040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006120f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0b565b600454600160a01b900460ff166122915760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6001600160a01b0384166122d65760405162461bcd60e51b81526004018080602001828103825260258152602001806127926025913960400191505060405180910390fd5b6001600160a01b03831661231b5760405162461bcd60e51b81526004018080602001828103825260238152602001806125936023913960400191505060405180910390fd5b61235882604051806060016040528060268152602001612648602691396001600160a01b0387166000908152602081905260409020549190611f0b565b6001600160a01b038086166000908152602081905260408082209390935590851681522054612387908361209f565b6001600160a01b038416600090815260208190526040902055806111b157826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600454600160a01b900460ff1661243e5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611bad83838361244c6116ac565b15612249565b600480546001600160a01b039081166000908152600960208181526040808420805460ff19908116909155865486168552600a808452828620805483169055875487168652600b80855283872080548416905598909616808652938352818520805482166001908117909155958352818520805482168717905596909152909120805490941690911790925580546001600160a01b0319169091179055565b6000600b6000611e3d611cf6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125405782800160ff1982351617855561256d565b8280016001018555821561256d579182015b8281111561256d578235825591602001919060010190612552565b5061257992915061257d565b5090565b5b80821115612579576000815560010161257e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365436f6e74726163742063616e6e6f742073656e642070726976617465207472616e73616374696f6e7345524332303a20617070726f766520746f20746865207a65726f206164647265737350726f766964656420426c6f636b206e756d626e657220697320696e20746865207061737445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6e7472616374206c6f636b656420666f726576657220746f20676f7665726e616e6365206368616e676573436f6e747261637420646f6573206e6f7420616c6c6f77207472616e73666572696e6753656e646572206973206e6f7420476f7665726e657200000000000000000000436f6e747261637420686173206265656e206c6f636b656420756e74696c206120626c6f636b6e756d62657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f2061646472657373436f6e7472616374206973207072697661746520616e6420796f7520617265206e6f7420476f7665726e6572206f72206f6e2076696577657273206c69737445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436f6e7472616374206973206c6f636b656420746f20676f7665726e616e6365206368616e67657345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbb11a83bf8b1a9495cdf61292cd2f1bab8a639383d0e14c3dfac1ab7996769a64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102a05760003560e01c806395d89b4111610167578063cf2c52cb116100ce578063dd62ed3e11610087578063dd62ed3e1461087c578063e1ad1162146108aa578063e1c7392a146108de578063ed10e33c146108e6578063f2fde38b1461075a578063f46eccc4146108ee576102a0565b8063cf2c52cb14610798578063cf30901214610818578063d1d9891414610820578063d47356a314610846578063d6bfc22f1461086c578063da424e6f14610874576102a0565b8063a69439aa11610120578063a69439aa14610708578063a9059cbb1461072e578063ab033ea91461075a578063af6a6d7914610780578063b3cc59db14610788578063c08c9f9a14610790576102a0565b806395d89b4114610681578063983b2d5614610689578063a0065b5b146106af578063a07c7ce4146106b7578063a2f0d957146106bf578063a457c2d7146106dc576102a0565b8063425a71c01161020b578063601f8cf5116101c4578063601f8cf5146105c15780636384c045146105e75780636f2293ab1461060d57806370a082311461064b57806390f3173b1461067157806392ff0d3114610679576102a0565b8063425a71c0146104bf57806342966c6814610584578063432d6c67146105a157806343918ad8146105a9578063439ec2ee146105b15780634437d99e146105b9576102a0565b80632e1a7d4d1161025d5780632e1a7d4d146103fe5780633092afd51461041b578063313ce56714610441578063395093511461045f5780633bce1d481461048b57806340c10f1914610493576102a0565b806304f3bcec146102a557806306fdde03146102c9578063095ea7b31461034657806317ac10db1461038657806318160ddd146103ae57806323b872dd146103c8575b600080fd5b6102ad610914565b604080516001600160a01b039092168252519081900360200190f35b6102d1610923565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030b5781810151838201526020016102f3565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103726004803603604081101561035c57600080fd5b506001600160a01b0381351690602001356109b1565b604080519115158252519081900360200190f35b6103ac6004803603602081101561039c57600080fd5b50356001600160a01b03166109ce565b005b6103b6610a7d565b60408051918252519081900360200190f35b610372600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610aec565b6103ac6004803603602081101561041457600080fd5b5035610bc5565b6103ac6004803603602081101561043157600080fd5b50356001600160a01b0316610bd9565b610449610c85565b6040805160ff9092168252519081900360200190f35b6103726004803603604081101561047557600080fd5b506001600160a01b038135169060200135610c8e565b610372610cdc565b6103ac600480360360408110156104a957600080fd5b506001600160a01b038135169060200135610cec565b6103ac600480360360608110156104d557600080fd5b8101906020810181356401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b91939092909160208101903564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91935091503560ff16610d8f565b6103ac6004803603602081101561059a57600080fd5b5035610e4e565b610372610eac565b6103ac610ecf565b6103ac610f7b565b6103b661101b565b6103ac600480360360208110156105d757600080fd5b50356001600160a01b0316611043565b610372600480360360208110156105fd57600080fd5b50356001600160a01b03166110f2565b6103ac6004803603608081101561062357600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515611107565b6103b66004803603602081101561066157600080fd5b50356001600160a01b03166111b7565b6103ac61123a565b61037261132d565b6102d161133d565b6103ac6004803603602081101561069f57600080fd5b50356001600160a01b0316611398565b610372611447565b610372611460565b6103ac600480360360208110156106d557600080fd5b5035611470565b610372600480360360408110156106f257600080fd5b506001600160a01b03813516906020013561153e565b6103726004803603602081101561071e57600080fd5b50356001600160a01b03166115a6565b6103726004803603604081101561074457600080fd5b506001600160a01b0381351690602001356115bb565b6103ac6004803603602081101561077057600080fd5b50356001600160a01b0316611618565b6103726116ac565b6103ac6116bc565b610372611768565b6103ac600480360360408110156107ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156107d957600080fd5b8201836020820111156107eb57600080fd5b8035906020019184600183028401116401000000008311171561080d57600080fd5b50909250905061178a565b610372611803565b6103ac6004803603602081101561083657600080fd5b50356001600160a01b0316611821565b6103ac6004803603602081101561085c57600080fd5b50356001600160a01b03166118cd565b6103ac611979565b6103ac611a25565b6103b66004803603604081101561089257600080fd5b506001600160a01b0381358116916020013516611ad1565b6103ac600480360360608110156108c057600080fd5b506001600160a01b0381351690602081013590604001351515611afc565b6103ac611bb2565b6103ac611bb4565b6103726004803603602081101561090457600080fd5b50356001600160a01b0316611ce1565b6003546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b505050505081565b60006109c56109be611cf6565b8484611cfa565b50600192915050565b6109d6611e09565b610a15576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610a1d611803565b15610a595760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b600454600090600160b01b900460ff1680610a9b5750610a9b611e2f565b80610aa95750610aa9611e09565b610ae45760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506002545b90565b600454600090600160a01b900460ff16610b375760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b610b4a848484610b456116ac565b611e5f565b50610bbb84610b57611cf6565b610bb68560405180606001604052806028815260200161270a602891396001600160a01b038a16600090815260016020526040812090610b95611cf6565b6001600160a01b031681526020810191909152604001600020549190611f0b565b611cfa565b5060019392505050565b610bd6610bd0611cf6565b82611fa2565b50565b610be1611e09565b610c20576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610c28611803565b15610c645760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b60085460ff1681565b60006109c5610c9b611cf6565b84610bb68560016000610cac611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061209f565b600454600160b81b900460ff1690565b610cf4612100565b610d3d576040805162461bcd60e51b81526020600482015260156024820152744e6f204d696e74696e672050726976696c6167657360581b604482015290519081900360640190fd5b610d45611803565b15610d815760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610d8b828261210e565b5050565b610d97611e09565b610dd6576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610dde611803565b15610e1a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610e26600686866124ff565b50610e33600784846124ff565b506008805460ff191660ff9290921691909117905550505050565b600454600160a81b900460ff16610bc5576040805162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420646f6573206e6f7420616c6c6f77206275726e696e6700604482015290519081900360640190fd5b600454600090600160b01b900460ff1680610eca5750610eca611e09565b905090565b610ed7611e09565b610f16576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610f1e611803565b15610f5a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b01b198116600160b01b9182900460ff1615909102179055565b610f83611e09565b610fc2576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610fca611803565b156110065760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60c01b1916600160c01b179055565b600043600554111561103b576005546110349043612207565b9050610ae9565b506000610ae9565b61104b611e09565b61108a576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611092611803565b156110ce5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b600b6020526000908152604090205460ff1681565b600454600160a01b900460ff1661114f5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff168061116a575061116a611e09565b6111a55760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b6111b184848484612249565b50505050565b600454600090600160b01b900460ff16806111d557506111d5611e2f565b806111e357506111e3611e09565b61121e5760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506001600160a01b031660009081526020819052604090205490565b611242611e09565b611281576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611289611768565b156112c55760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b6112cd611447565b156113095760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b6004805460ff60c81b1960ff60c01b19909116600160c01b1716600160c81b179055565b600454600160a01b900460ff1690565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b6113a0611e09565b6113df576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6113e7611803565b156114235760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000600554600014158015610eca575050600554431090565b600454600160a81b900460ff1690565b611478611e09565b6114b7576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6114bf611803565b156114fb5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b8043106115395760405162461bcd60e51b81526004018080602001828103825260258152602001806126236025913960400191505060405180910390fd5b600555565b60006109c561154b611cf6565b84610bb6856040518060600160405280602581526020016128036025913960016000611575611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f0b565b600a6020526000908152604090205460ff1681565b600454600090600160a01b900460ff166116065760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6109c5611611611cf6565b84846123f6565b611620611e09565b61165f576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611667611803565b156116a35760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610bd681612452565b600454600160b01b900460ff1690565b6116c4611e09565b611703576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61170b611803565b156117475760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a81b198116600160a81b9182900460ff1615909102179055565b6000611772611803565b8015610eca575050600454600160c81b900460ff1690565b6117926124f1565b6117e3576040805162461bcd60e51b815260206004820152601860248201527f4e6f204465706f736974696e672050726976696c616765730000000000000000604482015290519081900360640190fd5b6000828260208110156117f557600080fd5b503590506111b1848261210e565b600454600090600160c01b900460ff1680610eca5750610eca611447565b611829611e09565b611868576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611870611803565b156118ac5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6118d5611e09565b611914576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61191c611803565b156119585760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19169055565b611981611e09565b6119c0576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6119c8611803565b15611a045760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a01b198116600160a01b9182900460ff1615909102179055565b611a2d611e09565b611a6c576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611a74611803565b15611ab05760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600454600160a01b900460ff16611b445760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff1680611b5f5750611b5f611e09565b611b9a5760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b611bad611ba5611cf6565b848484612249565b505050565b565b611bbc611e09565b611bfb576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611c03611768565b15611c3f5760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b611c47611447565b15611c835760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b611c8b611803565b611cd2576040805162461bcd60e51b815260206004820152601360248201527210dbdb9d1c9858dd081b9bdd081b1bd8dad959606a1b604482015290519081900360640190fd5b6004805460ff60c01b19169055565b60096020526000908152604090205460ff1681565b3390565b6001600160a01b038316611d3f5760405162461bcd60e51b81526004018080602001828103825260248152602001806127b76024913960400191505060405180910390fd5b6001600160a01b038216611d845760405162461bcd60e51b81526004018080602001828103825260228152602001806126016022913960400191505060405180910390fd5b6001600160a01b038084166000908152600160209081526040808320938616835292905220819055611db46116ac565b15611bad57816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6004546000906001600160a01b0316611e20611cf6565b6001600160a01b031614905090565b6000600a6000611e3d611cf6565b6001600160a01b0316815260208101919091526040016000205460ff16905090565b600454600090600160a01b900460ff16611eaa5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611eb685858585612249565b611f0085611ec2611cf6565b610bb68660405180606001604052806028815260200161270a602891396001600160a01b038b16600090815260016020526040812090610b95611cf6565b506001949350505050565b60008184841115611f9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5f578181015183820152602001611f47565b50505050905090810190601f168015611f8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038216611fe75760405162461bcd60e51b81526004018080602001828103825260218152602001806127326021913960400191505060405180910390fd5b612024816040518060600160405280602281526020016125b6602291396001600160a01b0385166000908152602081905260409020549190611f0b565b6001600160a01b03831660009081526020819052604090205560025461204a9082612207565b6002556120556116ac565b15610d8b576040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000828201838110156120f9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600060096000611e3d611cf6565b6001600160a01b038216612169576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254612176908261209f565b6002556001600160a01b03821660009081526020819052604090205461219c908261209f565b6001600160a01b0383166000908152602081905260409020556121bd6116ac565b15610d8b576040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006120f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0b565b600454600160a01b900460ff166122915760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6001600160a01b0384166122d65760405162461bcd60e51b81526004018080602001828103825260258152602001806127926025913960400191505060405180910390fd5b6001600160a01b03831661231b5760405162461bcd60e51b81526004018080602001828103825260238152602001806125936023913960400191505060405180910390fd5b61235882604051806060016040528060268152602001612648602691396001600160a01b0387166000908152602081905260409020549190611f0b565b6001600160a01b038086166000908152602081905260408082209390935590851681522054612387908361209f565b6001600160a01b038416600090815260208190526040902055806111b157826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600454600160a01b900460ff1661243e5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611bad83838361244c6116ac565b15612249565b600480546001600160a01b039081166000908152600960208181526040808420805460ff19908116909155865486168552600a808452828620805483169055875487168652600b80855283872080548416905598909616808652938352818520805482166001908117909155958352818520805482168717905596909152909120805490941690911790925580546001600160a01b0319169091179055565b6000600b6000611e3d611cf6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125405782800160ff1982351617855561256d565b8280016001018555821561256d579182015b8281111561256d578235825591602001919060010190612552565b5061257992915061257d565b5090565b5b80821115612579576000815560010161257e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365436f6e74726163742063616e6e6f742073656e642070726976617465207472616e73616374696f6e7345524332303a20617070726f766520746f20746865207a65726f206164647265737350726f766964656420426c6f636b206e756d626e657220697320696e20746865207061737445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6e7472616374206c6f636b656420666f726576657220746f20676f7665726e616e6365206368616e676573436f6e747261637420646f6573206e6f7420616c6c6f77207472616e73666572696e6753656e646572206973206e6f7420476f7665726e657200000000000000000000436f6e747261637420686173206265656e206c6f636b656420756e74696c206120626c6f636b6e756d62657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f2061646472657373436f6e7472616374206973207072697661746520616e6420796f7520617265206e6f7420476f7665726e6572206f72206f6e2076696577657273206c69737445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436f6e7472616374206973206c6f636b656420746f20676f7665726e616e6365206368616e67657345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbb11a83bf8b1a9495cdf61292cd2f1bab8a639383d0e14c3dfac1ab7996769a64736f6c634300060c0033
Deployed Bytecode Sourcemap
16725:2341:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:23;;;:::i;:::-;;;;-1:-1:-1;;;;;2456:23:0;;;;;;;;;;;;;;2791:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8760:193;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8760:193:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18817:117;;;;;;;;;;;;;;;;-1:-1:-1;18817:117:0;-1:-1:-1;;;;;18817:117:0;;:::i;:::-;;8195:169;;;:::i;:::-;;;;;;;;;;;;;;;;8961:483;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8961:483:0;;;;;;;;;;;;;;;;;:::i;9456:89::-;;;;;;;;;;;;;;;;-1:-1:-1;9456:89:0;;:::i;18466:109::-;;;;;;;;;;;;;;;;-1:-1:-1;18466:109:0;-1:-1:-1;;;;;18466:109:0;;:::i;2843:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10278:283;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10278:283:0;;;;;;;;:::i;3843:114::-;;;:::i;17876:113::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17876:113:0;;;;;;;;:::i;18099:246::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18099:246:0;-1:-1:-1;18099:246:0;;;;:::i;17997:94::-;;;;;;;;;;;;;;;;-1:-1:-1;17997:94:0;;:::i;3731:104::-;;;:::i;6992:94::-;;;:::i;6392:87::-;;;:::i;4318:210::-;;;:::i;18583:105::-;;;;;;;;;;;;;;;;-1:-1:-1;18583:105:0;-1:-1:-1;;;;;18583:105:0;;:::i;2965:42::-;;;;;;;;;;;;;;;;-1:-1:-1;2965:42:0;-1:-1:-1;;;;;2965:42:0;;:::i;17636:232::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17636:232:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;8372:188::-;;;;;;;;;;;;;;;;-1:-1:-1;8372:188:0;-1:-1:-1;;;;;8372:188:0;;:::i;6034:350::-;;;:::i;3455:90::-;;;:::i;2816:20::-;;;:::i;18353:105::-;;;;;;;;;;;;;;;;-1:-1:-1;18353:105:0;-1:-1:-1;;;;;18353:105:0;;:::i;3965:126::-;;;:::i;3553:82::-;;;:::i;6487:281::-;;;;;;;;;;;;;;;;-1:-1:-1;6487:281:0;;:::i;10569:383::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10569:383:0;;;;;;;;:::i;2919:39::-;;;;;;;;;;;;;;;;-1:-1:-1;2919:39:0;-1:-1:-1;;;;;2919:39:0;;:::i;10960:223::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10960:223:0;;;;;;;;:::i;7242:117::-;;;;;;;;;;;;;;;;-1:-1:-1;7242:117:0;-1:-1:-1;;;;;7242:117:0;;:::i;3643:80::-;;;:::i;6776:94::-;;;:::i;4208:102::-;;;:::i;9557:202::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9557:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9557:202:0;;-1:-1:-1;9557:202:0;-1:-1:-1;9557:202:0;:::i;4099:101::-;;;:::i;18696:109::-;;;;;;;;;;;;;;;;-1:-1:-1;18696:109:0;-1:-1:-1;;;;;18696:109:0;;:::i;18942:121::-;;;;;;;;;;;;;;;;-1:-1:-1;18942:121:0;-1:-1:-1;;;;;18942:121:0;;:::i;6878:106::-;;;:::i;7094:140::-;;;:::i;8568:184::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8568:184:0;;;;;;;;;;:::i;17415:213::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17415:213:0;;;;;;;;;;;;;;;:::i;17157:250::-;;;:::i;5655:371::-;;;:::i;2873:39::-;;;;;;;;;;;;;;;;-1:-1:-1;2873:39:0;-1:-1:-1;;;;;2873:39:0;;:::i;2456:23::-;;;-1:-1:-1;;;;;2456:23:0;;:::o;2791:18::-;;;;;;;;;;;;;;;-1:-1:-1;;2791:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8760:193::-;8862:4;8884:39;8893:12;:10;:12::i;:::-;8907:7;8916:6;8884:8;:39::i;:::-;-1:-1:-1;8941:4:0;8760:193;;;;:::o;18817:117::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18897:22:0::2;;::::0;;;:10:::2;:22;::::0;;;;:29;;-1:-1:-1;;18897:29:0::2;18922:4;18897:29;::::0;;18817:117::o;8195:169::-;4839:8;;8312:7;;-1:-1:-1;;;4839:8:0;;;;;:23;;;4851:11;:9;:11::i;:::-;4839:40;;;;4866:13;:11;:13::i;:::-;4817:153;;;;-1:-1:-1;;;4817:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8344:12:0::1;::::0;4981:1:::1;8195:169:::0;:::o;8961:483::-;4581:13;;9108:4;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9125:58:::1;9146:6;9154:9;9165:6;9173:9;:7;:9::i;:::-;9125:20;:58::i;:::-;;9194:220;9217:6;9238:12;:10;:12::i;:::-;9265:138;9321:6;9265:138;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9265:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;9285:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;9265:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9265:33:0;;;:138;:37:::1;:138::i;:::-;9194:8;:220::i;:::-;-1:-1:-1::0;9432:4:0::1;8961:483:::0;;;;;:::o;9456:89::-;9510:27;9516:12;:10;:12::i;:::-;9530:6;9510:5;:27::i;:::-;9456:89;:::o;18466:109::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18543:16:0::2;18562:5;18543:16:::0;;;:7:::2;:16;::::0;;;;:24;;-1:-1:-1;;18543:24:0::2;::::0;;18466:109::o;2843:21::-;;;;;;:::o;10278:283::-;10376:4;10398:133;10421:12;:10;:12::i;:::-;10448:7;10470:50;10509:10;10470:11;:25;10482:12;:10;:12::i;:::-;-1:-1:-1;;;;;10470:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10470:25:0;;;:34;;;;;;;;;;;:38;:50::i;3843:114::-;3924:25;;-1:-1:-1;;;3924:25:0;;;;;3843:114::o;17876:113::-;5474:11;:9;:11::i;:::-;5466:45;;;;;-1:-1:-1;;;5466:45:0;;;;;;;;;;;;-1:-1:-1;;;5466:45:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17959:22:::2;17965:7;17974:6;17959:5;:22::i;:::-;17876:113:::0;;:::o;18099:246::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18267:12:::2;:4;18274:5:::0;;18267:12:::2;:::i;:::-;-1:-1:-1::0;18290:16:0::2;:6;18299:7:::0;;18290:16:::2;:::i;:::-;-1:-1:-1::0;18317:8:0::2;:20:::0;;-1:-1:-1;;18317:20:0::2;;::::0;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;;18099:246:0:o;17997:94::-;4703:9;;-1:-1:-1;;;4703:9:0;;;;4695:53;;;;;-1:-1:-1;;;4695:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3731:104;3802:8;;3778:4;;-1:-1:-1;;;3802:8:0;;;;;:25;;;3814:13;:11;:13::i;:::-;3795:32;;3731:104;:::o;6992:94::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7070:8:::2;::::0;;-1:-1:-1;;;;7058:20:0;::::2;-1:-1:-1::0;;;7070:8:0;;;::::2;;;7069:9;7058:20:::0;;::::2;;::::0;;6992:94::o;6392:87::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6457:7:::2;:14:::0;;-1:-1:-1;;;;6457:14:0::2;-1:-1:-1::0;;;6457:14:0::2;::::0;;6392:87::o;4318:210::-;4367:7;4404:12;4391:10;;:25;4387:134;;;4440:10;;:28;;4455:12;4440:14;:28::i;:::-;4433:35;;;;4387:134;-1:-1:-1;4508:1:0;4501:8;;18583:105;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18657:16:0::2;;::::0;;;:7:::2;:16;::::0;;;;:23;;-1:-1:-1;;18657:23:0::2;18676:4;18657:23;::::0;;18583:105::o;2965:42::-;;;;;;;;;;;;;;;:::o;17636:232::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5067:25:::1;::::0;-1:-1:-1;;;5067:25:0;::::1;;;::::0;:42:::1;;;5096:13;:11;:13::i;:::-;5045:133;;;;-1:-1:-1::0;;;5045:133:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17816:44:::2;17833:4;17839:2;17843:6;17851:8;17816:16;:44::i;:::-;17636:232:::0;;;;:::o;8372:188::-;4839:8;;8502:7;;-1:-1:-1;;;4839:8:0;;;;;:23;;;4851:11;:9;:11::i;:::-;4839:40;;;;4866:13;:11;:13::i;:::-;4817:153;;;;-1:-1:-1;;;4817:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8534:18:0::1;:9;:18:::0;;;::::1;::::0;;;;;;;;8372:188::o;6034:350::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;6108:19:::1;:17;:19::i;:::-;6107:20;6085:115;;;;-1:-1:-1::0;;;6085:115:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6234:19;:17;:19::i;:::-;6233:20;6211:114;;;;-1:-1:-1::0;;;6211:114:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6336:7;:14:::0;;-1:-1:-1;;;;;;;;6336:14:0;;::::1;-1:-1:-1::0;;;6336:14:0::1;6361:15;-1:-1:-1::0;;;6361:15:0::1;::::0;;6034:350::o;3455:90::-;3524:13;;-1:-1:-1;;;3524:13:0;;;;;3455:90::o;2816:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2816:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18353:105;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18427:16:0::2;;::::0;;;:7:::2;:16;::::0;;;;:23;;-1:-1:-1;;18427:23:0::2;18446:4;18427:23;::::0;;18353:105::o;3965:126::-;4015:4;4039:10;;4053:1;4039:15;;:44;;;;-1:-1:-1;;4073:10:0;;4058:12;:25;;3965:126::o;3553:82::-;3618:9;;-1:-1:-1;;;3618:9:0;;;;;3553:82::o;6487:281::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6649:11:::2;6634:12;:26;6612:113;;;;-1:-1:-1::0;;;6612:113:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6736:10;:24:::0;6487:281::o;10569:383::-;10672:4;10694:228;10717:12;:10;:12::i;:::-;10744:7;10766:145;10823:15;10766:145;;;;;;;;;;;;;;;;;:11;:25;10778:12;:10;:12::i;:::-;-1:-1:-1;;;;;10766:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10766:25:0;;;:34;;;;;;;;;;;:145;:38;:145::i;2919:39::-;;;;;;;;;;;;;;;:::o;10960:223::-;4581:13;;11089:4;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11111:42:::1;11121:12;:10;:12::i;:::-;11135:9;11146:6;11111:9;:42::i;7242:117::-:0;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7324:27:::2;7339:11;7324:14;:27::i;3643:80::-:0;3707:8;;-1:-1:-1;;;3707:8:0;;;;;3643:80::o;6776:94::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6853:9:::2;::::0;;-1:-1:-1;;;;6840:22:0;::::2;-1:-1:-1::0;;;6853:9:0;;;::::2;;;6852:10;6840:22:::0;;::::2;;::::0;;6776:94::o;4208:102::-;4258:4;4282:8;:6;:8::i;:::-;:20;;;;-1:-1:-1;;4294:8:0;;-1:-1:-1;;;4294:8:0;;;;;4208:102::o;9557:202::-;5584:14;:12;:14::i;:::-;5576:51;;;;;-1:-1:-1;;;5576:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9670:14:::1;9698:11;;9687:34;;;;;;;::::0;::::1;;-1:-1:-1::0;9687:34:0::1;::::0;-1:-1:-1;9732:19:0::1;9738:4:::0;9687:34;9732:5:::1;:19::i;4099:101::-:0;4162:7;;4138:4;;-1:-1:-1;;;4162:7:0;;;;;:30;;;4173:19;:17;:19::i;18696:109::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18773:16:0::2;18792:5;18773:16:::0;;;:7:::2;:16;::::0;;;;:24;;-1:-1:-1;;18773:24:0::2;::::0;;18696:109::o;18942:121::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;19025:22:0::2;19050:5;19025:22:::0;;;:10:::2;:22;::::0;;;;:30;;-1:-1:-1;;19025:30:0::2;::::0;;18942:121::o;6878:106::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6963:13:::2;::::0;;-1:-1:-1;;;;6946:30:0;::::2;-1:-1:-1::0;;;6963:13:0;;;::::2;;;6962:14;6946:30:::0;;::::2;;::::0;;6878:106::o;7094:140::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7201:25:::2;::::0;;-1:-1:-1;;;;7172:54:0;::::2;-1:-1:-1::0;;;7201:25:0;;;::::2;;;7200:26;7172:54:::0;;::::2;;::::0;;7094:140::o;8568:184::-;-1:-1:-1;;;;;8717:18:0;;;8685:7;8717:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8568:184::o;17415:213::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5067:25:::1;::::0;-1:-1:-1;;;5067:25:0;::::1;;;::::0;:42:::1;;;5096:13;:11;:13::i;:::-;5045:133;;;;-1:-1:-1::0;;;5045:133:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17568:52:::2;17585:12;:10;:12::i;:::-;17599:2;17603:6;17611:8;17568:16;:52::i;:::-;17415:213:::0;;;:::o;17157:250::-;:::o;5655:371::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5724:19:::1;:17;:19::i;:::-;5723:20;5701:115;;;;-1:-1:-1::0;;;5701:115:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5850:19;:17;:19::i;:::-;5849:20;5827:114;;;;-1:-1:-1::0;;;5827:114:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5960:8;:6;:8::i;:::-;5952:40;;;::::0;;-1:-1:-1;;;5952:40:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5952:40:0;;;;;;;;;;;;;::::1;;6003:7;:15:::0;;-1:-1:-1;;;;6003:15:0::1;::::0;;5655:371::o;2873:39::-;;;;;;;;;;;;;;;:::o;2097:98::-;2177:10;2097:98;:::o;12829:413::-;-1:-1:-1;;;;;12957:19:0;;12949:68;;;;-1:-1:-1;;;12949:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13036:21:0;;13028:68;;;;-1:-1:-1;;;13028:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13109:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:36;;;13160:9;:7;:9::i;:::-;13156:79;;;13207:7;-1:-1:-1;;;;;13191:32:0;13200:5;-1:-1:-1;;;;;13191:32:0;;13216:6;13191:32;;;;;;;;;;;;;;;;;;12829:413;;;:::o;3016:104::-;3102:10;;3062:4;;-1:-1:-1;;;;;3102:10:0;3086:12;:10;:12::i;:::-;-1:-1:-1;;;;;3086:26:0;;3079:33;;3016:104;:::o;3128:97::-;3172:4;3196:7;:21;3204:12;:10;:12::i;:::-;-1:-1:-1;;;;;3196:21:0;;;;;;;;;;;;-1:-1:-1;3196:21:0;;;;;-1:-1:-1;3128:97:0;:::o;9767:503::-;4581:13;;9939:4;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9956:53:::1;9973:6;9981:9;9992:6;10000:8;9956:16;:53::i;:::-;10020:220;10043:6;10064:12;:10;:12::i;:::-;10091:138;10147:6;10091:138;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10091:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;10111:12:::1;:10;:12::i;10020:220::-;-1:-1:-1::0;10258:4:0::1;9767:503:::0;;;;;;:::o;13606:226::-;13726:7;13762:12;13754:6;;;;13746:29;;;;-1:-1:-1;;;13746:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13798:5:0;;;13606:226::o;12395:426::-;-1:-1:-1;;;;;12471:21:0;;12463:67;;;;-1:-1:-1;;;12463:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12564:105;12601:6;12564:105;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12564:18:0;;:9;:18;;;;;;;;;;;;:105;:22;:105::i;:::-;-1:-1:-1;;;;;12543:18:0;;:9;:18;;;;;;;;;;:126;12695:12;;:24;;12712:6;12695:16;:24::i;:::-;12680:12;:39;12734:9;:7;:9::i;:::-;12730:84;;;12765:37;;;;;;;;12791:1;;-1:-1:-1;;;;;12765:37:0;;;;;;;;;;;;12395:426;;:::o;13273:181::-;13331:7;13363:5;;;13387:6;;;;13379:46;;;;;-1:-1:-1;;;13379:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13445:1;13273:181;-1:-1:-1;;;13273:181:0:o;3233:97::-;3277:4;3301:7;:21;3309:12;:10;:12::i;12038:349::-;-1:-1:-1;;;;;12114:21:0;;12106:65;;;;;-1:-1:-1;;;12106:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:12;;:24;;12216:6;12199:16;:24::i;:::-;12184:12;:39;-1:-1:-1;;;;;12255:18:0;;:9;:18;;;;;;;;;;;:30;;12278:6;12255:22;:30::i;:::-;-1:-1:-1;;;;;12234:18:0;;:9;:18;;;;;;;;;;:51;12300:9;:7;:9::i;:::-;12296:84;;;12331:37;;;;;;;;-1:-1:-1;;;;;12331:37:0;;;12348:1;;12331:37;;;;;;;;;12038:349;;:::o;13462:136::-;13520:7;13547:43;13551:1;13554;13547:43;;;;;;;;;;;;;;;;;:3;:43::i;11401:629::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11579:20:0;::::1;11571:70;;;;-1:-1:-1::0;;;11571:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11660:23:0;::::1;11652:71;;;;-1:-1:-1::0;;;11652:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11756:108;11792:6;11756:108;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11756:17:0;::::1;:9;:17:::0;;;::::1;::::0;;;;;;;;:108;:21:::1;:108::i;:::-;-1:-1:-1::0;;;;;11736:17:0;;::::1;:9;:17:::0;;;::::1;::::0;;;;;;;:128;;;;11898:20;;::::1;::::0;;;;:32:::1;::::0;11923:6;11898:24:::1;:32::i;:::-;-1:-1:-1::0;;;;;11875:20:0;::::1;:9;:20:::0;;;::::1;::::0;;;;;;:55;11946:8;11941:82:::1;;11993:9;-1:-1:-1::0;;;;;11976:35:0::1;11985:6;-1:-1:-1::0;;;;;11976:35:0::1;;12004:6;11976:35;;;;;;;;;;;;;;;;;;11401:629:::0;;;;:::o;11191:202::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11330:55:::1;11347:6;11355:9;11366:6;11375:9;:7;:9::i;:::-;11374:10;11330:16;:55::i;7542:565::-:0;7615:10;;;-1:-1:-1;;;;;7615:10:0;;;7629:5;7607:19;;;:7;:19;;;;;;;;:27;;-1:-1:-1;;7607:27:0;;;;;;7691:10;;;;7683:19;;:7;:19;;;;;;:27;;;;;;7770:10;;;;7759:22;;:10;:22;;;;;;:30;;;;;;7839:20;;;;;;;;;;;;;:27;;;;7615:10;7839:27;;;;;;7910:20;;;;;;:27;;;;;;;;7981:23;;;;;;;:30;;;;;;;;;;;8058:24;;-1:-1:-1;;;;;;8058:24:0;;;;;;7542:565::o;3342:103::-;3389:4;3413:10;:24;3424:12;:10;:12::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;
Swarm Source
ipfs://dbb11a83bf8b1a9495cdf61292cd2f1bab8a639383d0e14c3dfac1ab7996769a
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.