Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 14 from a total of 14 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 11448242 | 1495 days ago | IN | 0 ETH | 0.00232147 | ||||
Add Stamper | 11427754 | 1499 days ago | IN | 0 ETH | 0.0034875 | ||||
Add Oracle | 11427751 | 1499 days ago | IN | 0 ETH | 0.00348412 | ||||
Set Exchange Fac... | 11416035 | 1500 days ago | IN | 0 ETH | 0.00326685 | ||||
Set Liquidity To... | 11416021 | 1500 days ago | IN | 0 ETH | 0.0032637 | ||||
Add Liquidity To... | 11416019 | 1500 days ago | IN | 0 ETH | 0.00349125 | ||||
Set Incentives A... | 11416018 | 1500 days ago | IN | 0 ETH | 0.00326197 | ||||
Set Voting Addre... | 11415988 | 1500 days ago | IN | 0 ETH | 0.00327015 | ||||
Set Fs Token Add... | 11415986 | 1500 days ago | IN | 0 ETH | 0.0032694 | ||||
Set Fs Token Pro... | 11415984 | 1500 days ago | IN | 0 ETH | 0.00327172 | ||||
Set Message Proc... | 11415982 | 1500 days ago | IN | 0 ETH | 0.00326527 | ||||
Set Replay Track... | 11415977 | 1500 days ago | IN | 0 ETH | 0.003267 | ||||
Set Wallet Addre... | 11415973 | 1500 days ago | IN | 0 ETH | 0.0032718 | ||||
Set Weth Address | 11415971 | 1500 days ago | IN | 0 ETH | 0.0032652 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Registry
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-22 */ // File: @openzeppelin/contracts/GSN/Context.sol pragma solidity ^0.5.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: @openzeppelin/contracts/ownership/Ownable.sol pragma solidity ^0.5.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: contracts/registry/IRegistry.sol pragma solidity ^0.5.17; contract IRegistry { function getVotingAddress() public view returns (address); function getExchangeFactoryAddress() public view returns (address); function getWethAddress() public view returns (address); function getMessageProcessorAddress() public view returns (address); function getFsTokenAddress() public view returns (address); function getFsTokenProxyAdminAddress() public view returns (address); function getIncentivesAddress() public view returns (address); function getWalletAddress() public view returns (address payable); function getReplayTrackerAddress() public view returns (address); function getLiquidityTokenFactoryAddress() public view returns (address); function hasLiquidityTokensnapshotAccess(address sender) public view returns (bool); function hasWalletAccess(address sender) public view returns (bool); function removeWalletAccess(address _walletAccessor) public; function isValidOracleAddress(address oracleAddress) public view returns (bool); function isValidVerifierAddress(address verifierAddress) public view returns (bool); function isValidStamperAddress(address stamperAddress) public view returns (bool); function isExchange(address exchangeAddress) public view returns (bool); function addExchange(address _exchange) public; function removeExchange(address _exchange) public; function updateVotingAddress(address _address) public; } // File: contracts/registry/IRegistryUpdateConsumer.sol pragma solidity ^0.5.17; // Implemented by objects that need to know about registry updates. interface IRegistryUpdateConsumer { function onRegistryRefresh() external; } // File: contracts/registry/Registry.sol pragma solidity ^0.5.17; // The registry maintains references to all parts of the system contract Registry is IRegistry, Ownable { event ExchangeAdded(address exchangeAddress); event ExchangeRemoved(address exchangeAddress); event OracleAdded(address oracle); event OracleRemoved(address oracle); event VerifierAdded(address verifier); event VerifierRemoved(address verifier); event LiquidityTokenSnapshotAccessAdded(address accessor); event LiquidityTokenSnapshotAccessRemoved(address accessor); event StamperAdded(address stamper); event StamperRemoved(address stamper); event WalletAccessAdded(address accessor); event WalletAccessRemoved(address accessor); // List of known exchanges address[] public exchanges; // A mapping of known exchanges mapping(address => bool) public exchangeMapping; // Whether or not a given address is an oracle mapping(address => bool) public isOracle; // Whether or not a given address is a verifier mapping(address => bool) public isVerifier; // Whether or not a given address is a stamper mapping(address => bool) public isStamper; // Whether or not an address is allowed to take a snapshot of liquidity tokens mapping(address => bool) public liquidityTokenSnapshotAccess; // Whether or not an address has access to the wallet mapping(address => bool) public walletAccessMapping; address private exchangeFactoryAddress; address private fstTokenAddress; address private fsTokenProxyAdminAddress; address private incentivesAddress; address private liquidityTokenFactoryAddress; address private messageProcessorAddress; address private replayTrackerAddress; address private votingAddress; address payable private walletAddress; address private wethAddress; modifier onlyVotingSystem() { require(isVotingSystem(), "Only voting system"); _; } modifier onlyOwnerOrVotingSystem() { require(isVotingSystem() || isOwner(), "Only owner or voting system"); _; } modifier onlyOwnerOrExchangeFactory() { require(isExchangeFactory() || isOwner(), "Only owner or exchange factory"); _; } modifier onlyOwnerOrExchangeFactoryOrVotingSystem() { require(isVotingSystem() || isExchangeFactory() || isOwner(), "Only owner or exchange factory"); _; } function isVotingSystem() private view returns (bool) { return msg.sender == votingAddress; } function isExchangeFactory() private view returns (bool) { return msg.sender == exchangeFactoryAddress; } function getVotingAddress() public view returns (address) { return votingAddress; } function setVotingAddress(address _newAddress) public onlyOwner { votingAddress = _newAddress; } function getExchangeFactoryAddress() public view returns (address) { return exchangeFactoryAddress; } function setExchangeFactoryAddress(address _newAddress) public onlyOwner { exchangeFactoryAddress = _newAddress; } function getLiquidityTokenFactoryAddress() public view returns (address) { return liquidityTokenFactoryAddress; } function setLiquidityTokenFactoryAddress(address _newAddress) public onlyOwner { liquidityTokenFactoryAddress = _newAddress; } function getWethAddress() public view returns (address) { return wethAddress; } function setWethAddress(address _newAddress) public onlyOwner { wethAddress = _newAddress; } function getMessageProcessorAddress() public view returns (address) { return messageProcessorAddress; } function setMessageProcessorAddress(address _newAddress) public onlyOwner { messageProcessorAddress = _newAddress; } function getFsTokenAddress() public view returns (address) { return fstTokenAddress; } function setFsTokenAddress(address _newAddress) public onlyOwner { fstTokenAddress = _newAddress; } function getFsTokenProxyAdminAddress() public view returns (address) { return fsTokenProxyAdminAddress; } function setFsTokenProxyAdminAddress(address _newAddress) public onlyOwner { fsTokenProxyAdminAddress = _newAddress; } function getIncentivesAddress() public view returns (address) { return incentivesAddress; } function setIncentivesAddress(address _newAddress) public onlyOwner { incentivesAddress = _newAddress; } function getWalletAddress() public view returns (address payable) { return walletAddress; } function setWalletAddress(address payable _newAddress) public onlyOwner { walletAddress = _newAddress; } function getReplayTrackerAddress() public view returns (address) { return replayTrackerAddress; } function setReplayTrackerAddress(address _newAddress) public onlyOwner { replayTrackerAddress = _newAddress; } function updateExchangeFactoryAddress(address _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); exchangeFactoryAddress = _newAddress; doFireRegistryUpdateEvent(); } function updateFsTokenAddress(address _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); fstTokenAddress = _newAddress; doFireRegistryUpdateEvent(); } function updateFsTokenProxyAdminAddress(address _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); fsTokenProxyAdminAddress = _newAddress; doFireRegistryUpdateEvent(); } function updateIncentivesAddress(address _newAddress) public onlyVotingSystem { // We decided to not remove wallet access for the old address to allow for // a gradual switch over requireNonZeroAddress(_newAddress); incentivesAddress = _newAddress; doAddLiquidityTokensnapshotAccess(incentivesAddress); doFireRegistryUpdateEvent(); } function updateMessageProcessorAddress(address _newAddress) public onlyVotingSystem { // We decided to not remove wallet access for the old address to allow for // a gradual switch over requireNonZeroAddress(_newAddress); messageProcessorAddress = _newAddress; doAddWalletAccess(_newAddress); doFireRegistryUpdateEvent(); } function updateLiquidityTokenFactoryAddress(address _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); liquidityTokenFactoryAddress = _newAddress; doFireRegistryUpdateEvent(); } function updateReplayTrackerAddress(address _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); replayTrackerAddress = _newAddress; doFireRegistryUpdateEvent(); } function updateVotingAddress(address _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); votingAddress = _newAddress; doFireRegistryUpdateEvent(); } function updateWalletAddress(address payable _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); walletAddress = _newAddress; doFireRegistryUpdateEvent(); } function updateWethAddress(address _newAddress) public onlyVotingSystem { requireNonZeroAddress(_newAddress); wethAddress = _newAddress; doFireRegistryUpdateEvent(); } function fireRegistryUpdateEvent() public onlyOwner { doFireRegistryUpdateEvent(); } function doFireRegistryUpdateEvent() private { callIfNonZero(replayTrackerAddress); callIfNonZero(messageProcessorAddress); callIfNonZero(exchangeFactoryAddress); callIfNonZero(walletAddress); callIfNonZero(incentivesAddress); for (uint256 i = 0; i < exchanges.length; i++) { callIfNonZero(exchanges[i]); } } function callIfNonZero(address a) private { if (a != address(0)) { IRegistryUpdateConsumer(a).onRegistryRefresh(); } } function hasWalletAccess(address _sender) public view returns (bool) { return walletAccessMapping[_sender]; } function addWalletAccess(address _walletAccessor) public onlyOwnerOrVotingSystem { doAddWalletAccess(_walletAccessor); } function doAddWalletAccess(address _walletAccessor) private { requireNonZeroAddress(_walletAccessor); require(!walletAccessMapping[_walletAccessor], "Already present"); walletAccessMapping[_walletAccessor] = true; emit WalletAccessAdded(_walletAccessor); } function removeWalletAccess(address _walletAccessor) public onlyOwnerOrExchangeFactoryOrVotingSystem { require(walletAccessMapping[_walletAccessor], "No wallet access"); delete walletAccessMapping[_walletAccessor]; emit WalletAccessRemoved(_walletAccessor); } function hasLiquidityTokensnapshotAccess(address _sender) public view returns (bool) { return liquidityTokenSnapshotAccess[_sender]; } function addLiquidityTokensnapshotAccess(address _snapshotAccessor) public onlyOwnerOrVotingSystem { doAddLiquidityTokensnapshotAccess(_snapshotAccessor); } function doAddLiquidityTokensnapshotAccess(address _snapshotAccessor) private { requireNonZeroAddress(_snapshotAccessor); require(!liquidityTokenSnapshotAccess[_snapshotAccessor], "Already present"); liquidityTokenSnapshotAccess[_snapshotAccessor] = true; emit LiquidityTokenSnapshotAccessAdded(_snapshotAccessor); } function removeLiquidityTokensnapshotAccess(address _snapshotAccessor) public onlyOwnerOrExchangeFactoryOrVotingSystem { require(liquidityTokenSnapshotAccess[_snapshotAccessor], "No snapshot access"); delete liquidityTokenSnapshotAccess[_snapshotAccessor]; emit LiquidityTokenSnapshotAccessRemoved(_snapshotAccessor); } function isValidOracleAddress(address oracleAddress) public view returns (bool) { return isOracle[oracleAddress]; } function isValidVerifierAddress(address verifierAddress) public view returns (bool) { return isVerifier[verifierAddress]; } function isValidStamperAddress(address verifierAddress) public view returns (bool) { return isStamper[verifierAddress]; } function addOracle(address _toAdd) public onlyOwnerOrVotingSystem { requireNonZeroAddress(_toAdd); require(!isOracle[_toAdd], "Already present"); isOracle[_toAdd] = true; emit OracleAdded(_toAdd); } function removeOracle(address _toRemove) public onlyOwnerOrVotingSystem { require(isOracle[_toRemove], "Not an oracle"); delete isOracle[_toRemove]; emit OracleRemoved(_toRemove); } function addVerifier(address _toAdd) public onlyOwnerOrVotingSystem { requireNonZeroAddress(_toAdd); require(!isVerifier[_toAdd], "Already present"); isVerifier[_toAdd] = true; emit VerifierAdded(_toAdd); } function removeVerifier(address _toRemove) public onlyOwnerOrVotingSystem { require(isVerifier[_toRemove], "Not a verifier"); delete isVerifier[_toRemove]; emit VerifierRemoved(_toRemove); } function addStamper(address _toAdd) public onlyOwnerOrVotingSystem { requireNonZeroAddress(_toAdd); require(!isStamper[_toAdd], "Already present"); isStamper[_toAdd] = true; emit StamperAdded(_toAdd); } function removeStamper(address _toRemove) public onlyOwnerOrVotingSystem { require(isStamper[_toRemove], "Not a stamper"); delete isStamper[_toRemove]; emit StamperRemoved(_toRemove); } function isExchange(address exchangeAddress) public view returns (bool) { return exchangeMapping[exchangeAddress]; } function addExchange(address _exchange) public onlyOwnerOrExchangeFactoryOrVotingSystem { requireNonZeroAddress(_exchange); require(!exchangeMapping[_exchange], "Already added"); doAddWalletAccess(_exchange); exchanges.push(_exchange); exchangeMapping[_exchange] = true; emit ExchangeAdded(_exchange); } function removeExchange(address _exchange) public onlyOwnerOrExchangeFactoryOrVotingSystem { require(exchangeMapping[_exchange], "Not an exchange"); removeWalletAccess(_exchange); delete exchangeMapping[_exchange]; removeExchangeFromArray(_exchange); emit ExchangeRemoved(_exchange); } function removeExchangeFromArray(address exchange) private { require(exchanges.length > 0, "No elements"); int256 index = getIndexOf(exchange); require(index >= 0, "Exchange not found"); // copy last entry into the slot in which we found the address exchanges[uint256(index)] = exchanges[exchanges.length - 1]; // remove last element exchanges.pop(); } function getIndexOf(address exchange) private view returns (int256) { for (uint256 index = 0; index < exchanges.length; index++) { if (exchanges[index] == exchange) { return int256(index); } } return -1; } function requireNonZeroAddress(address a) private pure { require(a != address(0), "address must be non zero"); } function getExchanges() public view returns (address[] memory) { return exchanges; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"exchangeAddress","type":"address"}],"name":"ExchangeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"exchangeAddress","type":"address"}],"name":"ExchangeRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"accessor","type":"address"}],"name":"LiquidityTokenSnapshotAccessAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"accessor","type":"address"}],"name":"LiquidityTokenSnapshotAccessRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracle","type":"address"}],"name":"OracleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracle","type":"address"}],"name":"OracleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stamper","type":"address"}],"name":"StamperAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stamper","type":"address"}],"name":"StamperRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"verifier","type":"address"}],"name":"VerifierAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"verifier","type":"address"}],"name":"VerifierRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"accessor","type":"address"}],"name":"WalletAccessAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"accessor","type":"address"}],"name":"WalletAccessRemoved","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"_exchange","type":"address"}],"name":"addExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_snapshotAccessor","type":"address"}],"name":"addLiquidityTokensnapshotAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAdd","type":"address"}],"name":"addOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAdd","type":"address"}],"name":"addStamper","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAdd","type":"address"}],"name":"addVerifier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_walletAccessor","type":"address"}],"name":"addWalletAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exchangeMapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"exchanges","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"fireRegistryUpdateEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getExchangeFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExchanges","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getFsTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getFsTokenProxyAdminAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIncentivesAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLiquidityTokenFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMessageProcessorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReplayTrackerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getVotingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWethAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"hasLiquidityTokensnapshotAccess","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"hasWalletAccess","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"exchangeAddress","type":"address"}],"name":"isExchange","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isStamper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"oracleAddress","type":"address"}],"name":"isValidOracleAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"verifierAddress","type":"address"}],"name":"isValidStamperAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"verifierAddress","type":"address"}],"name":"isValidVerifierAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isVerifier","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityTokenSnapshotAccess","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_exchange","type":"address"}],"name":"removeExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_snapshotAccessor","type":"address"}],"name":"removeLiquidityTokensnapshotAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toRemove","type":"address"}],"name":"removeOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toRemove","type":"address"}],"name":"removeStamper","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toRemove","type":"address"}],"name":"removeVerifier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_walletAccessor","type":"address"}],"name":"removeWalletAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setExchangeFactoryAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setFsTokenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setFsTokenProxyAdminAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setIncentivesAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setLiquidityTokenFactoryAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setMessageProcessorAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setReplayTrackerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setVotingAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newAddress","type":"address"}],"name":"setWalletAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setWethAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateExchangeFactoryAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateFsTokenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateFsTokenProxyAdminAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateIncentivesAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateLiquidityTokenFactoryAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateMessageProcessorAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateReplayTrackerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateVotingAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newAddress","type":"address"}],"name":"updateWalletAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateWethAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletAccessMapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b612970806100796000396000f3fe608060405234801561001057600080fd5b506004361061032e5760003560e01c80638857a16b116101b4578063ae24e857116100fa578063debafcc61161009d578063debafcc6146109e6578063df5dd1a514610a0c578063f037ee7114610a32578063f2fde38b14610a3a578063fbcd952314610a60578063fc9170e014610a86578063fdc85fc414610aac578063ffddacf414610ad25761032e565b8063ae24e857146108d4578063b8023cc1146108fa578063bd1a6a9f14610920578063c061135614610946578063c93c266e1461096c578063ca2dfd0a14610992578063db379686146109b8578063dc5d7046146109de5761032e565b8063987c52de11610162578063987c52de146107c257806399bd068e146107e8578063a2600e371461080e578063a96e242314610816578063a97e5c931461083c578063aa10ce2214610862578063aa2070c214610888578063ac1a386a146108ae5761032e565b80638857a16b146107305780638da5cb5b146107385780638e0be369146107405780638f1061b1146107665780638f32d59b1461078c5780639000b3d61461079457806394d23144146107ba5761032e565b80632f1d84c311610279578063417677fd11610227578063417677fd1461063c57806347b30922146106445780635862c1461461066a57806362e2ddc8146106905780636743996d146106b6578063715018a6146106dc5780637a6cfcab146106e457806383f20e041461070a5761032e565b80632f1d84c31461056e578063324ed7891461059457806333105218146105ba5780633560ccb5146105e057806335f0b915146106065780633c1fad111461062c578063410e232e146106345761032e565b80631e2e3a6b116102e15780631e2e3a6b146104515780632320abbc146104a957806323a7b42a146104cf5780632525a6ed146104d7578063253e902f146104fd5780632839fc29146105055780632b85fdb3146105225780632dccc8e3146105485761032e565b806236d2d31461033357806304d2dec61461036d578063098ca058146103915780630a6dc7ba146103b9578063103fb188146103df578063123421c314610405578063159171491461042b575b600080fd5b6103596004803603602081101561034957600080fd5b50356001600160a01b0316610af8565b604080519115158252519081900360200190f35b610375610b1a565b604080516001600160a01b039092168252519081900360200190f35b6103b7600480360360208110156103a757600080fd5b50356001600160a01b0316610b29565b005b6103b7600480360360208110156103cf57600080fd5b50356001600160a01b0316610b92565b6103b7600480360360208110156103f557600080fd5b50356001600160a01b0316610c08565b6103b76004803603602081101561041b57600080fd5b50356001600160a01b0316610c71565b6103b76004803603602081101561044157600080fd5b50356001600160a01b0316610d7b565b610459610de4565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561049557818101518382015260200161047d565b505050509050019250505060405180910390f35b6103b7600480360360208110156104bf57600080fd5b50356001600160a01b0316610e46565b610375610eaf565b6103b7600480360360208110156104ed57600080fd5b50356001600160a01b0316610ebe565b610375610f27565b6103756004803603602081101561051b57600080fd5b5035610f36565b6103596004803603602081101561053857600080fd5b50356001600160a01b0316610f5d565b6103596004803603602081101561055e57600080fd5b50356001600160a01b0316610f72565b6103596004803603602081101561058457600080fd5b50356001600160a01b0316610f90565b6103b7600480360360208110156105aa57600080fd5b50356001600160a01b0316610fae565b610359600480360360208110156105d057600080fd5b50356001600160a01b031661102a565b6103b7600480360360208110156105f657600080fd5b50356001600160a01b031661103f565b6103b76004803603602081101561061c57600080fd5b50356001600160a01b03166110ba565b610375611118565b610375611127565b610375611136565b6103596004803603602081101561065a57600080fd5b50356001600160a01b0316611145565b6103b76004803603602081101561068057600080fd5b50356001600160a01b0316611163565b610359600480360360208110156106a657600080fd5b50356001600160a01b031661127e565b6103b7600480360360208110156106cc57600080fd5b50356001600160a01b0316611293565b6103b76112fc565b6103b7600480360360208110156106fa57600080fd5b50356001600160a01b031661138d565b6103b76004803603602081101561072057600080fd5b50356001600160a01b03166113f6565b610375611469565b610375611478565b6103b76004803603602081101561075657600080fd5b50356001600160a01b0316611487565b6103b76004803603602081101561077c57600080fd5b50356001600160a01b03166115ba565b61035961162d565b6103b7600480360360208110156107aa57600080fd5b50356001600160a01b0316611651565b6103b761176a565b610359600480360360208110156107d857600080fd5b50356001600160a01b03166117bb565b6103b7600480360360208110156107fe57600080fd5b50356001600160a01b03166117d0565b6103756118ed565b6103b76004803603602081101561082c57600080fd5b50356001600160a01b03166118fc565b6103596004803603602081101561085257600080fd5b50356001600160a01b0316611965565b6103b76004803603602081101561087857600080fd5b50356001600160a01b031661197a565b6103596004803603602081101561089e57600080fd5b50356001600160a01b0316611ae6565b6103b7600480360360208110156108c457600080fd5b50356001600160a01b0316611afb565b6103b7600480360360208110156108ea57600080fd5b50356001600160a01b0316611b64565b6103b76004803603602081101561091057600080fd5b50356001600160a01b0316611bd7565b6103596004803603602081101561093657600080fd5b50356001600160a01b0316611c4a565b6103b76004803603602081101561095c57600080fd5b50356001600160a01b0316611c68565b6103b76004803603602081101561098257600080fd5b50356001600160a01b0316611d81565b6103b7600480360360208110156109a857600080fd5b50356001600160a01b0316611df4565b610359600480360360208110156109ce57600080fd5b50356001600160a01b0316611eff565b610375611f1d565b6103b7600480360360208110156109fc57600080fd5b50356001600160a01b0316611f2c565b6103b760048036036020811015610a2257600080fd5b50356001600160a01b0316611f9f565b6103756120b7565b6103b760048036036020811015610a5057600080fd5b50356001600160a01b03166120c6565b6103b760048036036020811015610a7657600080fd5b50356001600160a01b0316612116565b6103b760048036036020811015610a9c57600080fd5b50356001600160a01b0316612174565b6103b760048036036020811015610ac257600080fd5b50356001600160a01b03166121e7565b6103b760048036036020811015610ae857600080fd5b50356001600160a01b03166122f1565b6001600160a01b03811660009081526002602052604090205460ff165b919050565b6010546001600160a01b031690565b610b3161162d565b610b70576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b610b9a61235a565b610bd9576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b610be28161236b565b601180546001600160a01b0319166001600160a01b038316179055610c056123c1565b50565b610c1061162d565b610c4f576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b610c7961235a565b80610c875750610c8761162d565b610cc6576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16610d23576040805162461bcd60e51b815260206004820152600d60248201526c2737ba10309039ba30b6b832b960991b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19169055815192835290517f4beae228e6b545add08040bdcbe95ac160f357a3806cb707f058dd9a7ecad14b9281900390910190a150565b610d8361162d565b610dc2576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60606001805480602002602001604051908101604052809291908181526020018280548015610e3c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e1e575b5050505050905090565b610e4e61162d565b610e8d576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b031690565b610ec661162d565b610f05576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600c546001600160a01b031690565b60018181548110610f4357fe5b6000918252602090912001546001600160a01b0316905081565b60066020526000908152604090205460ff1681565b6001600160a01b031660009081526006602052604090205460ff1690565b6001600160a01b031660009081526003602052604090205460ff1690565b610fb661235a565b610ff5576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b610ffe8161236b565b600d80546001600160a01b0319166001600160a01b03831617905561102281612469565b610c056123c1565b60046020526000908152604090205460ff1681565b61104761235a565b611086576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b61108f8161236b565b600b80546001600160a01b0319166001600160a01b038381169190911791829055611022911661252d565b6110c261235a565b806110d057506110d061162d565b61110f576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b610c0581612469565b6008546001600160a01b031690565b600a546001600160a01b031690565b600e546001600160a01b031690565b6001600160a01b031660009081526004602052604090205460ff1690565b61116b61235a565b8061117957506111796125f1565b80611187575061118761162d565b6111c6576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff16611226576040805162461bcd60e51b815260206004820152601060248201526f4e6f2077616c6c65742061636365737360801b604482015290519081900360640190fd5b6001600160a01b038116600081815260076020908152604091829020805460ff19169055815192835290517fa0f61915ba9906b0b8802a80d5fda8e1d55629838771583d514e37710e3129af9281900390910190a150565b60076020526000908152604090205460ff1681565b61129b61162d565b6112da576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b61130461162d565b611343576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61139561162d565b6113d4576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6113fe61235a565b61143d576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b6114468161236b565b600e80546001600160a01b0319166001600160a01b038316179055610c056123c1565b600d546001600160a01b031690565b6000546001600160a01b031690565b61148f61235a565b8061149d575061149d6125f1565b806114ab57506114ab61162d565b6114ea576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff16611549576040805162461bcd60e51b815260206004820152600f60248201526e4e6f7420616e2065786368616e676560881b604482015290519081900360640190fd5b61155281611163565b6001600160a01b0381166000908152600260205260409020805460ff1916905561157b81612602565b604080516001600160a01b038316815290517ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb9181900360200190a150565b6115c261235a565b611601576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b61160a8161236b565b600880546001600160a01b0319166001600160a01b038316179055610c056123c1565b600080546001600160a01b0316611642612733565b6001600160a01b031614905090565b61165961235a565b80611667575061166761162d565b6116a6576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6116af8161236b565b6001600160a01b03811660009081526004602052604090205460ff161561170f576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19166001179055815192835290517f6d05492139c5ea989514a5d2150c028041e5c087e2a39967f67dc7d2655adb819281900390910190a150565b61177261162d565b6117b1576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b6117b96123c1565b565b60056020526000908152604090205460ff1681565b6117d861235a565b806117e657506117e66125f1565b806117f457506117f461162d565b611833576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526006602052604090205460ff16611895576040805162461bcd60e51b81526020600482015260126024820152714e6f20736e617073686f742061636365737360701b604482015290519081900360640190fd5b6001600160a01b038116600081815260066020908152604091829020805460ff19169055815192835290517f3126140200a8c34220605ad6a22f5e16f17d7d4c6adc667739934512cad740c79281900390910190a150565b6009546001600160a01b031690565b61190461162d565b611943576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b60036020526000908152604090205460ff1681565b61198261235a565b8061199057506119906125f1565b8061199e575061199e61162d565b6119dd576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6119e68161236b565b6001600160a01b03811660009081526002602052604090205460ff1615611a44576040805162461bcd60e51b815260206004820152600d60248201526c105b1c9958591e481859191959609a1b604482015290519081900360640190fd5b611a4d81612469565b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155600081815260026020908152604091829020805460ff19169094179093558051918252517f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e1929181900390910190a150565b60026020526000908152604090205460ff1681565b611b0361162d565b611b42576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b611b6c61235a565b611bab576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611bb48161236b565b600c80546001600160a01b0319166001600160a01b038316179055610c056123c1565b611bdf61235a565b611c1e576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611c278161236b565b600980546001600160a01b0319166001600160a01b038316179055610c056123c1565b6001600160a01b031660009081526005602052604090205460ff1690565b611c7061235a565b80611c7e5750611c7e61162d565b611cbd576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b611cc68161236b565b6001600160a01b03811660009081526005602052604090205460ff1615611d26576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517f0883618c75e7b225f35e381167c9b846b5182239953a9ed269f20d717a9804229281900390910190a150565b611d8961235a565b611dc8576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611dd18161236b565b601080546001600160a01b0319166001600160a01b038316179055610c056123c1565b611dfc61235a565b80611e0a5750611e0a61162d565b611e49576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff16611ea7576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1030903b32b934b334b2b960911b604482015290519081900360640190fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19169055815192835290517f44a3cd4eb5cc5748f6169df057b1cb2ae4c383e87cd94663c430e095d4cba4249281900390910190a150565b6001600160a01b031660009081526007602052604090205460ff1690565b600b546001600160a01b031690565b611f3461235a565b611f73576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611f7c8161236b565b600f80546001600160a01b0319166001600160a01b038316179055610c056123c1565b611fa761235a565b80611fb55750611fb561162d565b611ff4576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b611ffd8161236b565b6001600160a01b03811660009081526003602052604090205460ff161561205d576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260036020908152604091829020805460ff19166001179055815192835290517e47706786c922d17b39285dc59d696bafea72c0b003d3841ae1202076f4c2e49281900390910190a150565b600f546001600160a01b031690565b6120ce61162d565b61210d576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b610c0581612737565b61211e61235a565b8061212c575061212c61162d565b61216b576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b610c058161252d565b61217c61235a565b6121bb576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b6121c48161236b565b600a80546001600160a01b0319166001600160a01b038316179055610c056123c1565b6121ef61235a565b806121fd57506121fd61162d565b61223c576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205460ff16612299576040805162461bcd60e51b815260206004820152600d60248201526c4e6f7420616e206f7261636c6560981b604482015290519081900360640190fd5b6001600160a01b038116600081815260036020908152604091829020805460ff19169055815192835290517f9c8e7d83025bef8a04c664b2f753f64b8814bdb7e27291d7e50935f18cc3c7129281900390910190a150565b6122f961162d565b612338576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b0316331490565b6001600160a01b038116610c05576040805162461bcd60e51b815260206004820152601860248201527761646472657373206d757374206265206e6f6e207a65726f60401b604482015290519081900360640190fd5b600e546123d6906001600160a01b03166127d7565b600d546123eb906001600160a01b03166127d7565b600854612400906001600160a01b03166127d7565b601054612415906001600160a01b03166127d7565b600b5461242a906001600160a01b03166127d7565b60005b600154811015610c05576124616001828154811061244757fe5b6000918252602090912001546001600160a01b03166127d7565b60010161242d565b6124728161236b565b6001600160a01b03811660009081526007602052604090205460ff16156124d2576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260076020908152604091829020805460ff19166001179055815192835290517fc480c51712bef2b844e389f071c197a17d781f3ed80e7f20232ec6219486d16e9281900390910190a150565b6125368161236b565b6001600160a01b03811660009081526006602052604090205460ff1615612596576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260066020908152604091829020805460ff19166001179055815192835290517f8e06f524ef544b112d4891d2383cba25ff5d410ef2c0e8b0b9148a51b2fcda6a9281900390910190a150565b6008546001600160a01b0316331490565b600154612644576040805162461bcd60e51b815260206004820152600b60248201526a4e6f20656c656d656e747360a81b604482015290519081900360640190fd5b600061264f8261283c565b9050600081121561269c576040805162461bcd60e51b8152602060048201526012602482015271115e18da185b99d9481b9bdd08199bdd5b9960721b604482015290519081900360640190fd5b6001805460001981019081106126ae57fe5b600091825260209091200154600180546001600160a01b0390921691839081106126d457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061270d57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b3390565b6001600160a01b03811661277c5760405162461bcd60e51b81526004018080602001828103825260268152602001806128966026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811615610c0557806001600160a01b0316631830d22c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561282157600080fd5b505af1158015612835573d6000803e3d6000fd5b5050505050565b6000805b60015481101561288b57826001600160a01b03166001828154811061286157fe5b6000918252602090912001546001600160a01b03161415612883579050610b15565b600101612840565b506000199291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724f6e6c79206f776e6572206f7220766f74696e672073797374656d00000000004f6e6c79206f776e6572206f722065786368616e676520666163746f727900004f6e6c7920766f74696e672073797374656d0000000000000000000000000000a265627a7a72315820426d52e3cb3bf3b82232390119c21f7e0ae889b8a04ddbb715c776679aa54e1664736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061032e5760003560e01c80638857a16b116101b4578063ae24e857116100fa578063debafcc61161009d578063debafcc6146109e6578063df5dd1a514610a0c578063f037ee7114610a32578063f2fde38b14610a3a578063fbcd952314610a60578063fc9170e014610a86578063fdc85fc414610aac578063ffddacf414610ad25761032e565b8063ae24e857146108d4578063b8023cc1146108fa578063bd1a6a9f14610920578063c061135614610946578063c93c266e1461096c578063ca2dfd0a14610992578063db379686146109b8578063dc5d7046146109de5761032e565b8063987c52de11610162578063987c52de146107c257806399bd068e146107e8578063a2600e371461080e578063a96e242314610816578063a97e5c931461083c578063aa10ce2214610862578063aa2070c214610888578063ac1a386a146108ae5761032e565b80638857a16b146107305780638da5cb5b146107385780638e0be369146107405780638f1061b1146107665780638f32d59b1461078c5780639000b3d61461079457806394d23144146107ba5761032e565b80632f1d84c311610279578063417677fd11610227578063417677fd1461063c57806347b30922146106445780635862c1461461066a57806362e2ddc8146106905780636743996d146106b6578063715018a6146106dc5780637a6cfcab146106e457806383f20e041461070a5761032e565b80632f1d84c31461056e578063324ed7891461059457806333105218146105ba5780633560ccb5146105e057806335f0b915146106065780633c1fad111461062c578063410e232e146106345761032e565b80631e2e3a6b116102e15780631e2e3a6b146104515780632320abbc146104a957806323a7b42a146104cf5780632525a6ed146104d7578063253e902f146104fd5780632839fc29146105055780632b85fdb3146105225780632dccc8e3146105485761032e565b806236d2d31461033357806304d2dec61461036d578063098ca058146103915780630a6dc7ba146103b9578063103fb188146103df578063123421c314610405578063159171491461042b575b600080fd5b6103596004803603602081101561034957600080fd5b50356001600160a01b0316610af8565b604080519115158252519081900360200190f35b610375610b1a565b604080516001600160a01b039092168252519081900360200190f35b6103b7600480360360208110156103a757600080fd5b50356001600160a01b0316610b29565b005b6103b7600480360360208110156103cf57600080fd5b50356001600160a01b0316610b92565b6103b7600480360360208110156103f557600080fd5b50356001600160a01b0316610c08565b6103b76004803603602081101561041b57600080fd5b50356001600160a01b0316610c71565b6103b76004803603602081101561044157600080fd5b50356001600160a01b0316610d7b565b610459610de4565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561049557818101518382015260200161047d565b505050509050019250505060405180910390f35b6103b7600480360360208110156104bf57600080fd5b50356001600160a01b0316610e46565b610375610eaf565b6103b7600480360360208110156104ed57600080fd5b50356001600160a01b0316610ebe565b610375610f27565b6103756004803603602081101561051b57600080fd5b5035610f36565b6103596004803603602081101561053857600080fd5b50356001600160a01b0316610f5d565b6103596004803603602081101561055e57600080fd5b50356001600160a01b0316610f72565b6103596004803603602081101561058457600080fd5b50356001600160a01b0316610f90565b6103b7600480360360208110156105aa57600080fd5b50356001600160a01b0316610fae565b610359600480360360208110156105d057600080fd5b50356001600160a01b031661102a565b6103b7600480360360208110156105f657600080fd5b50356001600160a01b031661103f565b6103b76004803603602081101561061c57600080fd5b50356001600160a01b03166110ba565b610375611118565b610375611127565b610375611136565b6103596004803603602081101561065a57600080fd5b50356001600160a01b0316611145565b6103b76004803603602081101561068057600080fd5b50356001600160a01b0316611163565b610359600480360360208110156106a657600080fd5b50356001600160a01b031661127e565b6103b7600480360360208110156106cc57600080fd5b50356001600160a01b0316611293565b6103b76112fc565b6103b7600480360360208110156106fa57600080fd5b50356001600160a01b031661138d565b6103b76004803603602081101561072057600080fd5b50356001600160a01b03166113f6565b610375611469565b610375611478565b6103b76004803603602081101561075657600080fd5b50356001600160a01b0316611487565b6103b76004803603602081101561077c57600080fd5b50356001600160a01b03166115ba565b61035961162d565b6103b7600480360360208110156107aa57600080fd5b50356001600160a01b0316611651565b6103b761176a565b610359600480360360208110156107d857600080fd5b50356001600160a01b03166117bb565b6103b7600480360360208110156107fe57600080fd5b50356001600160a01b03166117d0565b6103756118ed565b6103b76004803603602081101561082c57600080fd5b50356001600160a01b03166118fc565b6103596004803603602081101561085257600080fd5b50356001600160a01b0316611965565b6103b76004803603602081101561087857600080fd5b50356001600160a01b031661197a565b6103596004803603602081101561089e57600080fd5b50356001600160a01b0316611ae6565b6103b7600480360360208110156108c457600080fd5b50356001600160a01b0316611afb565b6103b7600480360360208110156108ea57600080fd5b50356001600160a01b0316611b64565b6103b76004803603602081101561091057600080fd5b50356001600160a01b0316611bd7565b6103596004803603602081101561093657600080fd5b50356001600160a01b0316611c4a565b6103b76004803603602081101561095c57600080fd5b50356001600160a01b0316611c68565b6103b76004803603602081101561098257600080fd5b50356001600160a01b0316611d81565b6103b7600480360360208110156109a857600080fd5b50356001600160a01b0316611df4565b610359600480360360208110156109ce57600080fd5b50356001600160a01b0316611eff565b610375611f1d565b6103b7600480360360208110156109fc57600080fd5b50356001600160a01b0316611f2c565b6103b760048036036020811015610a2257600080fd5b50356001600160a01b0316611f9f565b6103756120b7565b6103b760048036036020811015610a5057600080fd5b50356001600160a01b03166120c6565b6103b760048036036020811015610a7657600080fd5b50356001600160a01b0316612116565b6103b760048036036020811015610a9c57600080fd5b50356001600160a01b0316612174565b6103b760048036036020811015610ac257600080fd5b50356001600160a01b03166121e7565b6103b760048036036020811015610ae857600080fd5b50356001600160a01b03166122f1565b6001600160a01b03811660009081526002602052604090205460ff165b919050565b6010546001600160a01b031690565b610b3161162d565b610b70576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b610b9a61235a565b610bd9576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b610be28161236b565b601180546001600160a01b0319166001600160a01b038316179055610c056123c1565b50565b610c1061162d565b610c4f576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b610c7961235a565b80610c875750610c8761162d565b610cc6576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16610d23576040805162461bcd60e51b815260206004820152600d60248201526c2737ba10309039ba30b6b832b960991b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19169055815192835290517f4beae228e6b545add08040bdcbe95ac160f357a3806cb707f058dd9a7ecad14b9281900390910190a150565b610d8361162d565b610dc2576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60606001805480602002602001604051908101604052809291908181526020018280548015610e3c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e1e575b5050505050905090565b610e4e61162d565b610e8d576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b031690565b610ec661162d565b610f05576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600c546001600160a01b031690565b60018181548110610f4357fe5b6000918252602090912001546001600160a01b0316905081565b60066020526000908152604090205460ff1681565b6001600160a01b031660009081526006602052604090205460ff1690565b6001600160a01b031660009081526003602052604090205460ff1690565b610fb661235a565b610ff5576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b610ffe8161236b565b600d80546001600160a01b0319166001600160a01b03831617905561102281612469565b610c056123c1565b60046020526000908152604090205460ff1681565b61104761235a565b611086576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b61108f8161236b565b600b80546001600160a01b0319166001600160a01b038381169190911791829055611022911661252d565b6110c261235a565b806110d057506110d061162d565b61110f576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b610c0581612469565b6008546001600160a01b031690565b600a546001600160a01b031690565b600e546001600160a01b031690565b6001600160a01b031660009081526004602052604090205460ff1690565b61116b61235a565b8061117957506111796125f1565b80611187575061118761162d565b6111c6576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff16611226576040805162461bcd60e51b815260206004820152601060248201526f4e6f2077616c6c65742061636365737360801b604482015290519081900360640190fd5b6001600160a01b038116600081815260076020908152604091829020805460ff19169055815192835290517fa0f61915ba9906b0b8802a80d5fda8e1d55629838771583d514e37710e3129af9281900390910190a150565b60076020526000908152604090205460ff1681565b61129b61162d565b6112da576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b61130461162d565b611343576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61139561162d565b6113d4576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6113fe61235a565b61143d576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b6114468161236b565b600e80546001600160a01b0319166001600160a01b038316179055610c056123c1565b600d546001600160a01b031690565b6000546001600160a01b031690565b61148f61235a565b8061149d575061149d6125f1565b806114ab57506114ab61162d565b6114ea576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff16611549576040805162461bcd60e51b815260206004820152600f60248201526e4e6f7420616e2065786368616e676560881b604482015290519081900360640190fd5b61155281611163565b6001600160a01b0381166000908152600260205260409020805460ff1916905561157b81612602565b604080516001600160a01b038316815290517ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb9181900360200190a150565b6115c261235a565b611601576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b61160a8161236b565b600880546001600160a01b0319166001600160a01b038316179055610c056123c1565b600080546001600160a01b0316611642612733565b6001600160a01b031614905090565b61165961235a565b80611667575061166761162d565b6116a6576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6116af8161236b565b6001600160a01b03811660009081526004602052604090205460ff161561170f576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19166001179055815192835290517f6d05492139c5ea989514a5d2150c028041e5c087e2a39967f67dc7d2655adb819281900390910190a150565b61177261162d565b6117b1576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b6117b96123c1565b565b60056020526000908152604090205460ff1681565b6117d861235a565b806117e657506117e66125f1565b806117f457506117f461162d565b611833576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526006602052604090205460ff16611895576040805162461bcd60e51b81526020600482015260126024820152714e6f20736e617073686f742061636365737360701b604482015290519081900360640190fd5b6001600160a01b038116600081815260066020908152604091829020805460ff19169055815192835290517f3126140200a8c34220605ad6a22f5e16f17d7d4c6adc667739934512cad740c79281900390910190a150565b6009546001600160a01b031690565b61190461162d565b611943576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b60036020526000908152604090205460ff1681565b61198261235a565b8061199057506119906125f1565b8061199e575061199e61162d565b6119dd576040805162461bcd60e51b815260206004820152601e60248201526000805160206128fc833981519152604482015290519081900360640190fd5b6119e68161236b565b6001600160a01b03811660009081526002602052604090205460ff1615611a44576040805162461bcd60e51b815260206004820152600d60248201526c105b1c9958591e481859191959609a1b604482015290519081900360640190fd5b611a4d81612469565b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155600081815260026020908152604091829020805460ff19169094179093558051918252517f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e1929181900390910190a150565b60026020526000908152604090205460ff1681565b611b0361162d565b611b42576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b611b6c61235a565b611bab576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611bb48161236b565b600c80546001600160a01b0319166001600160a01b038316179055610c056123c1565b611bdf61235a565b611c1e576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611c278161236b565b600980546001600160a01b0319166001600160a01b038316179055610c056123c1565b6001600160a01b031660009081526005602052604090205460ff1690565b611c7061235a565b80611c7e5750611c7e61162d565b611cbd576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b611cc68161236b565b6001600160a01b03811660009081526005602052604090205460ff1615611d26576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517f0883618c75e7b225f35e381167c9b846b5182239953a9ed269f20d717a9804229281900390910190a150565b611d8961235a565b611dc8576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611dd18161236b565b601080546001600160a01b0319166001600160a01b038316179055610c056123c1565b611dfc61235a565b80611e0a5750611e0a61162d565b611e49576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff16611ea7576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1030903b32b934b334b2b960911b604482015290519081900360640190fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19169055815192835290517f44a3cd4eb5cc5748f6169df057b1cb2ae4c383e87cd94663c430e095d4cba4249281900390910190a150565b6001600160a01b031660009081526007602052604090205460ff1690565b600b546001600160a01b031690565b611f3461235a565b611f73576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b611f7c8161236b565b600f80546001600160a01b0319166001600160a01b038316179055610c056123c1565b611fa761235a565b80611fb55750611fb561162d565b611ff4576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b611ffd8161236b565b6001600160a01b03811660009081526003602052604090205460ff161561205d576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260036020908152604091829020805460ff19166001179055815192835290517e47706786c922d17b39285dc59d696bafea72c0b003d3841ae1202076f4c2e49281900390910190a150565b600f546001600160a01b031690565b6120ce61162d565b61210d576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b610c0581612737565b61211e61235a565b8061212c575061212c61162d565b61216b576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b610c058161252d565b61217c61235a565b6121bb576040805162461bcd60e51b8152602060048201526012602482015260008051602061291c833981519152604482015290519081900360640190fd5b6121c48161236b565b600a80546001600160a01b0319166001600160a01b038316179055610c056123c1565b6121ef61235a565b806121fd57506121fd61162d565b61223c576040805162461bcd60e51b815260206004820152601b60248201526000805160206128dc833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205460ff16612299576040805162461bcd60e51b815260206004820152600d60248201526c4e6f7420616e206f7261636c6560981b604482015290519081900360640190fd5b6001600160a01b038116600081815260036020908152604091829020805460ff19169055815192835290517f9c8e7d83025bef8a04c664b2f753f64b8814bdb7e27291d7e50935f18cc3c7129281900390910190a150565b6122f961162d565b612338576040805162461bcd60e51b815260206004820181905260248201526000805160206128bc833981519152604482015290519081900360640190fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b0316331490565b6001600160a01b038116610c05576040805162461bcd60e51b815260206004820152601860248201527761646472657373206d757374206265206e6f6e207a65726f60401b604482015290519081900360640190fd5b600e546123d6906001600160a01b03166127d7565b600d546123eb906001600160a01b03166127d7565b600854612400906001600160a01b03166127d7565b601054612415906001600160a01b03166127d7565b600b5461242a906001600160a01b03166127d7565b60005b600154811015610c05576124616001828154811061244757fe5b6000918252602090912001546001600160a01b03166127d7565b60010161242d565b6124728161236b565b6001600160a01b03811660009081526007602052604090205460ff16156124d2576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260076020908152604091829020805460ff19166001179055815192835290517fc480c51712bef2b844e389f071c197a17d781f3ed80e7f20232ec6219486d16e9281900390910190a150565b6125368161236b565b6001600160a01b03811660009081526006602052604090205460ff1615612596576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c1c995cd95b9d608a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260066020908152604091829020805460ff19166001179055815192835290517f8e06f524ef544b112d4891d2383cba25ff5d410ef2c0e8b0b9148a51b2fcda6a9281900390910190a150565b6008546001600160a01b0316331490565b600154612644576040805162461bcd60e51b815260206004820152600b60248201526a4e6f20656c656d656e747360a81b604482015290519081900360640190fd5b600061264f8261283c565b9050600081121561269c576040805162461bcd60e51b8152602060048201526012602482015271115e18da185b99d9481b9bdd08199bdd5b9960721b604482015290519081900360640190fd5b6001805460001981019081106126ae57fe5b600091825260209091200154600180546001600160a01b0390921691839081106126d457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061270d57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b3390565b6001600160a01b03811661277c5760405162461bcd60e51b81526004018080602001828103825260268152602001806128966026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811615610c0557806001600160a01b0316631830d22c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561282157600080fd5b505af1158015612835573d6000803e3d6000fd5b5050505050565b6000805b60015481101561288b57826001600160a01b03166001828154811061286157fe5b6000918252602090912001546001600160a01b03161415612883579050610b15565b600101612840565b506000199291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724f6e6c79206f776e6572206f7220766f74696e672073797374656d00000000004f6e6c79206f776e6572206f722065786368616e676520666163746f727900004f6e6c7920766f74696e672073797374656d0000000000000000000000000000a265627a7a72315820426d52e3cb3bf3b82232390119c21f7e0ae889b8a04ddbb715c776679aa54e1664736f6c63430005110032
Deployed Bytecode Sourcemap
5676:13961:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5676:13961:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17821:130;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17821:130:0;-1:-1:-1;;;;;17821:130:0;;:::i;:::-;;;;;;;;;;;;;;;;;;10283:105;;;:::i;:::-;;;;-1:-1:-1;;;;;10283:105:0;;;;;;;;;;;;;;8922:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8922:140:0;-1:-1:-1;;;;;8922:140:0;;:::i;:::-;;13135:199;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13135:199:0;-1:-1:-1;;;;;13135:199:0;;:::i;10641:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10641:124:0;-1:-1:-1;;;;;10641:124:0;;:::i;17596:217::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17596:217:0;-1:-1:-1;;;;;17596:217:0;;:::i;9656:113::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9656:113:0;-1:-1:-1;;;;;9656:113:0;;:::i;19536:98::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;19536:98:0;;;;;;;;;;;;;;;;;10157:118;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10157:118:0;-1:-1:-1;;;;;10157:118:0;;:::i;9070:93::-;;;:::i;9410:130::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9410:130:0;-1:-1:-1;;;;;9410:130:0;;:::i;8787:127::-;;;:::i;6347:26::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6347:26:0;;:::i;6856:60::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6856:60:0;-1:-1:-1;;;;;6856:60:0;;:::i;14886:148::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14886:148:0;-1:-1:-1;;;;;14886:148:0;;:::i;15967:129::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15967:129:0;-1:-1:-1;;;;;15967:129:0;;:::i;11849:382::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11849:382:0;-1:-1:-1;;;;;11849:382:0;;:::i;6623:42::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6623:42:0;-1:-1:-1;;;;;6623:42:0;;:::i;11449:392::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11449:392:0;-1:-1:-1;;;;;11449:392:0;;:::i;14140:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14140:134:0;-1:-1:-1;;;;;14140:134:0;;:::i;8528:115::-;;;:::i;9777:119::-;;;:::i;10522:111::-;;;:::i;16104:137::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16104:137:0;-1:-1:-1;;;;;16104:137:0;;:::i;14587:291::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14587:291:0;-1:-1:-1;;;;;14587:291:0;;:::i;6982:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6982:51:0;-1:-1:-1;;;;;6982:51:0;;:::i;8651:128::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8651:128:0;-1:-1:-1;;;;;8651:128:0;;:::i;2963:140::-;;;:::i;8410:110::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8410:110:0;-1:-1:-1;;;;;8410:110:0;;:::i;12480:217::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12480:217:0;-1:-1:-1;;;;;12480:217:0;;:::i;9285:117::-;;;:::i;2152:79::-;;;:::i;18329:339::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18329:339:0;-1:-1:-1;;;;;18329:339:0;;:::i;10773:221::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10773:221:0;-1:-1:-1;;;;;10773:221:0;;:::i;2518:94::-;;;:::i;16860:247::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16860:247:0;-1:-1:-1;;;;;16860:247:0;;:::i;13342:98::-;;;:::i;6724:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6724:41:0;-1:-1:-1;;;;;6724:41:0;;:::i;15585:374::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15585:374:0;-1:-1:-1;;;;;15585:374:0;;:::i;9548:100::-;;;:::i;9171:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9171:106:0;-1:-1:-1;;;;;9171:106:0;;:::i;6523:40::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6523:40:0;-1:-1:-1;;;;;6523:40:0;;:::i;17959:362::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17959:362:0;-1:-1:-1;;;;;17959:362:0;;:::i;6417:47::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6417:47:0;-1:-1:-1;;;;;6417:47:0;;:::i;10396:118::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10396:118:0;-1:-1:-1;;;;;10396:118:0;;:::i;12239:233::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12239:233:0;-1:-1:-1;;;;;12239:233:0;;:::i;11002:206::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11002:206:0;-1:-1:-1;;;;;11002:206:0;;:::i;16249:135::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16249:135:0;-1:-1:-1;;;;;16249:135:0;;:::i;17345:243::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17345:243:0;-1:-1:-1;;;;;17345:243:0;;:::i;12916:211::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12916:211:0;-1:-1:-1;;;;;12916:211:0;;:::i;17115:222::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17115:222:0;-1:-1:-1;;;;;17115:222:0;;:::i;14009:123::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14009:123:0;-1:-1:-1;;;;;14009:123:0;;:::i;10044:105::-;;;:::i;12705:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12705:203:0;-1:-1:-1;;;;;12705:203:0;;:::i;16392:239::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16392:239:0;-1:-1:-1;;;;;16392:239:0;;:::i;8305:97::-;;;:::i;3258:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3258:109:0;-1:-1:-1;;;;;3258:109:0;;:::i;15042:170::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15042:170:0;-1:-1:-1;;;;;15042:170:0;;:::i;11216:225::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11216:225:0;-1:-1:-1;;;;;11216:225:0;;:::i;16639:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16639:213:0;-1:-1:-1;;;;;16639:213:0;;:::i;9904:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9904:132:0;-1:-1:-1;;;;;9904:132:0;;:::i;17821:130::-;-1:-1:-1;;;;;17911:32:0;;17887:4;17911:32;;;:15;:32;;;;;;;;17821:130;;;;:::o;10283:105::-;10367:13;;-1:-1:-1;;;;;10367:13:0;10283:105;:::o;8922:140::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;9012:28;:42;;-1:-1:-1;;;;;;9012:42:0;-1:-1:-1;;;;;9012:42:0;;;;;;;;;;8922:140::o;13135:199::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;13218:34;13240:11;13218:21;:34::i;:::-;13263:11;:25;;-1:-1:-1;;;;;;13263:25:0;-1:-1:-1;;;;;13263:25:0;;;;;13299:27;:25;:27::i;:::-;13135:199;:::o;10641:124::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;10723:20;:34;;-1:-1:-1;;;;;;10723:34:0;-1:-1:-1;;;;;10723:34:0;;;;;;;;;;10641:124::o;17596:217::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17688:20:0;;;;;;:9;:20;;;;;;;;17680:46;;;;;-1:-1:-1;;;17680:46:0;;;;;;;;;;;;-1:-1:-1;;;17680:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17744:20:0;;;;;;:9;:20;;;;;;;;;17737:27;;-1:-1:-1;;17737:27:0;;;17780:25;;;;;;;;;;;;;;;;;17596:217;:::o;9656:113::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;9732:15;:29;;-1:-1:-1;;;;;;9732:29:0;-1:-1:-1;;;;;9732:29:0;;;;;;;;;;9656:113::o;19536:98::-;19581:16;19617:9;19610:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19610:16:0;;;;;;;;;;;;;;;;;;;;;;;19536:98;:::o;10157:118::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;10236:17;:31;;-1:-1:-1;;;;;;10236:31:0;-1:-1:-1;;;;;10236:31:0;;;;;;;;;;10157:118::o;9070:93::-;9144:11;;-1:-1:-1;;;;;9144:11:0;9070:93;:::o;9410:130::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;9495:23;:37;;-1:-1:-1;;;;;;9495:37:0;-1:-1:-1;;;;;9495:37:0;;;;;;;;;;9410:130::o;8787:127::-;8878:28;;-1:-1:-1;;;;;8878:28:0;8787:127;:::o;6347:26::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6347:26:0;;-1:-1:-1;6347:26:0;:::o;6856:60::-;;;;;;;;;;;;;;;:::o;14886:148::-;-1:-1:-1;;;;;14989:37:0;14965:4;14989:37;;;:28;:37;;;;;;;;;14886:148::o;15967:129::-;-1:-1:-1;;;;;16065:23:0;16041:4;16065:23;;;:8;:23;;;;;;;;;15967:129::o;11849:382::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;12062:34;12084:11;12062:21;:34::i;:::-;12107:23;:37;;-1:-1:-1;;;;;;12107:37:0;-1:-1:-1;;;;;12107:37:0;;;;;12155:30;12107:37;12155:17;:30::i;:::-;12196:27;:25;:27::i;6623:42::-;;;;;;;;;;;;;;;:::o;11449:392::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;11656:34;11678:11;11656:21;:34::i;:::-;11701:17;:31;;-1:-1:-1;;;;;;11701:31:0;-1:-1:-1;;;;;11701:31:0;;;;;;;;;;;11743:52;;11777:17;11743:33;:52::i;14140:134::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;14232:34;14250:15;14232:17;:34::i;8528:115::-;8613:22;;-1:-1:-1;;;;;8613:22:0;8528:115;:::o;9777:119::-;9864:24;;-1:-1:-1;;;;;9864:24:0;9777:119;:::o;10522:111::-;10605:20;;-1:-1:-1;;;;;10605:20:0;10522:111;:::o;16104:137::-;-1:-1:-1;;;;;16206:27:0;16182:4;16206:27;;;:10;:27;;;;;;;;;16104:137::o;14587:291::-;7948:16;:14;:16::i;:::-;:39;;;;7968:19;:17;:19::i;:::-;7948:52;;;;7991:9;:7;:9::i;:::-;7940:95;;;;;-1:-1:-1;;;7940:95:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7940:95:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14707:36:0;;;;;;:19;:36;;;;;;;;14699:65;;;;;-1:-1:-1;;;14699:65:0;;;;;;;;;;;;-1:-1:-1;;;14699:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14782:36:0;;;;;;:19;:36;;;;;;;;;14775:43;;-1:-1:-1;;14775:43:0;;;14834:36;;;;;;;;;;;;;;;;;14587:291;:::o;6982:51::-;;;;;;;;;;;;;;;:::o;8651:128::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;8735:22;:36;;-1:-1:-1;;;;;;8735:36:0;-1:-1:-1;;;;;8735:36:0;;;;;;;;;;8651:128::o;2963:140::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;3062:1;3046:6;;3025:40;;-1:-1:-1;;;;;3046:6:0;;;;3025:40;;3062:1;;3025:40;3093:1;3076:19;;-1:-1:-1;;;;;;3076:19:0;;;2963:140::o;8410:110::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;8485:13;:27;;-1:-1:-1;;;;;;8485:27:0;-1:-1:-1;;;;;8485:27:0;;;;;;;;;;8410:110::o;12480:217::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;12572:34;12594:11;12572:21;:34::i;:::-;12617:20;:34;;-1:-1:-1;;;;;;12617:34:0;-1:-1:-1;;;;;12617:34:0;;;;;12662:27;:25;:27::i;9285:117::-;9371:23;;-1:-1:-1;;;;;9371:23:0;9285:117;:::o;2152:79::-;2190:7;2217:6;-1:-1:-1;;;;;2217:6:0;2152:79;:::o;18329:339::-;7948:16;:14;:16::i;:::-;:39;;;;7968:19;:17;:19::i;:::-;7948:52;;;;7991:9;:7;:9::i;:::-;7940:95;;;;;-1:-1:-1;;;7940:95:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7940:95:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18439:26:0;;;;;;:15;:26;;;;;;;;18431:54;;;;;-1:-1:-1;;;18431:54:0;;;;;;;;;;;;-1:-1:-1;;;18431:54:0;;;;;;;;;;;;;;;18496:29;18515:9;18496:18;:29::i;:::-;-1:-1:-1;;;;;18545:26:0;;;;;;:15;:26;;;;;18538:33;;-1:-1:-1;;18538:33:0;;;18584:34;18561:9;18584:23;:34::i;:::-;18634:26;;;-1:-1:-1;;;;;18634:26:0;;;;;;;;;;;;;;;18329:339;:::o;10773:221::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;10867:34;10889:11;10867:21;:34::i;:::-;10912:22;:36;;-1:-1:-1;;;;;;10912:36:0;-1:-1:-1;;;;;10912:36:0;;;;;10959:27;:25;:27::i;2518:94::-;2558:4;2598:6;;-1:-1:-1;;;;;2598:6:0;2582:12;:10;:12::i;:::-;-1:-1:-1;;;;;2582:22:0;;2575:29;;2518:94;:::o;16860:247::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;16939:29;16961:6;16939:21;:29::i;:::-;-1:-1:-1;;;;;16988:18:0;;;;;;:10;:18;;;;;;;;16987:19;16979:47;;;;;-1:-1:-1;;;16979:47:0;;;;;;;;;;;;-1:-1:-1;;;16979:47:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17037:18:0;;;;;;:10;:18;;;;;;;;;:25;;-1:-1:-1;;17037:25:0;17058:4;17037:25;;;17078:21;;;;;;;;;;;;;;;;;16860:247;:::o;13342:98::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;13405:27;:25;:27::i;:::-;13342:98::o;6724:41::-;;;;;;;;;;;;;;;:::o;15585:374::-;7948:16;:14;:16::i;:::-;:39;;;;7968:19;:17;:19::i;:::-;7948:52;;;;7991:9;:7;:9::i;:::-;7940:95;;;;;-1:-1:-1;;;7940:95:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7940:95:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15746:47:0;;;;;;:28;:47;;;;;;;;15738:78;;;;;-1:-1:-1;;;15738:78:0;;;;;;;;;;;;-1:-1:-1;;;15738:78:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15834:47:0;;;;;;:28;:47;;;;;;;;;15827:54;;-1:-1:-1;;15827:54:0;;;15897;;;;;;;;;;;;;;;;;15585:374;:::o;9548:100::-;9625:15;;-1:-1:-1;;;;;9625:15:0;9548:100;:::o;9171:106::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;9244:11;:25;;-1:-1:-1;;;;;;9244:25:0;-1:-1:-1;;;;;9244:25:0;;;;;;;;;;9171:106::o;6523:40::-;;;;;;;;;;;;;;;:::o;17959:362::-;7948:16;:14;:16::i;:::-;:39;;;;7968:19;:17;:19::i;:::-;7948:52;;;;7991:9;:7;:9::i;:::-;7940:95;;;;;-1:-1:-1;;;7940:95:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7940:95:0;;;;;;;;;;;;;;;18058:32;18080:9;18058:21;:32::i;:::-;-1:-1:-1;;;;;18110:26:0;;;;;;:15;:26;;;;;;;;18109:27;18101:53;;;;;-1:-1:-1;;;18101:53:0;;;;;;;;;;;;-1:-1:-1;;;18101:53:0;;;;;;;;;;;;;;;18165:28;18183:9;18165:17;:28::i;:::-;18204:9;27:10:-1;;23:18;;;45:23;;18204:25:0;;;;-1:-1:-1;;;;;;18204:25:0;-1:-1:-1;;;;;18204:25:0;;;;;;;;-1:-1:-1;18240:26:0;;;:15;18204:25;18240:26;;;;;;;;:33;;-1:-1:-1;;18240:33:0;;;;;;;18289:24;;;;;;;;;;;;;;;;;17959:362;:::o;6417:47::-;;;;;;;;;;;;;;;:::o;10396:118::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;10479:13;:27;;-1:-1:-1;;;;;;10479:27:0;-1:-1:-1;;;;;10479:27:0;;;;;;;;;;10396:118::o;12239:233::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;12339:34;12361:11;12339:21;:34::i;:::-;12384:28;:42;;-1:-1:-1;;;;;;12384:42:0;-1:-1:-1;;;;;12384:42:0;;;;;12437:27;:25;:27::i;11002:206::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;11088:34;11110:11;11088:21;:34::i;:::-;11133:15;:29;;-1:-1:-1;;;;;;11133:29:0;-1:-1:-1;;;;;11133:29:0;;;;;11173:27;:25;:27::i;16249:135::-;-1:-1:-1;;;;;16350:26:0;16326:4;16350:26;;;:9;:26;;;;;;;;;16249:135::o;17345:243::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;17423:29;17445:6;17423:21;:29::i;:::-;-1:-1:-1;;;;;17472:17:0;;;;;;:9;:17;;;;;;;;17471:18;17463:46;;;;;-1:-1:-1;;;17463:46:0;;;;;;;;;;;;-1:-1:-1;;;17463:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17520:17:0;;;;;;:9;:17;;;;;;;;;:24;;-1:-1:-1;;17520:24:0;17540:4;17520:24;;;17560:20;;;;;;;;;;;;;;;;;17345:243;:::o;12916:211::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;13009:34;13031:11;13009:21;:34::i;:::-;13054:13;:27;;-1:-1:-1;;;;;;13054:27:0;-1:-1:-1;;;;;13054:27:0;;;;;13092;:25;:27::i;17115:222::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17208:21:0;;;;;;:10;:21;;;;;;;;17200:48;;;;;-1:-1:-1;;;17200:48:0;;;;;;;;;;;;-1:-1:-1;;;17200:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17266:21:0;;;;;;:10;:21;;;;;;;;;17259:28;;-1:-1:-1;;17259:28:0;;;17303:26;;;;;;;;;;;;;;;;;17115:222;:::o;14009:123::-;-1:-1:-1;;;;;14096:28:0;14072:4;14096:28;;;:19;:28;;;;;;;;;14009:123::o;10044:105::-;10124:17;;-1:-1:-1;;;;;10124:17:0;10044:105;:::o;12705:203::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;12790:34;12812:11;12790:21;:34::i;:::-;12835:13;:27;;-1:-1:-1;;;;;;12835:27:0;-1:-1:-1;;;;;12835:27:0;;;;;12873;:25;:27::i;16392:239::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;16469:29;16491:6;16469:21;:29::i;:::-;-1:-1:-1;;;;;16518:16:0;;;;;;:8;:16;;;;;;;;16517:17;16509:45;;;;;-1:-1:-1;;;16509:45:0;;;;;;;;;;;;-1:-1:-1;;;16509:45:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16565:16:0;;;;;;:8;:16;;;;;;;;;:23;;-1:-1:-1;;16565:23:0;16584:4;16565:23;;;16604:19;;;;;;;;;;;;;;;;;16392:239;:::o;8305:97::-;8381:13;;-1:-1:-1;;;;;8381:13:0;8305:97;:::o;3258:109::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;3331:28;3350:8;3331:18;:28::i;15042:170::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;15152:52;15186:17;15152:33;:52::i;11216:225::-;7515:16;:14;:16::i;:::-;7507:47;;;;;-1:-1:-1;;;7507:47:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7507:47:0;;;;;;;;;;;;;;;11312:34;11334:11;11312:21;:34::i;:::-;11357:24;:38;;-1:-1:-1;;;;;;11357:38:0;-1:-1:-1;;;;;11357:38:0;;;;;11406:27;:25;:27::i;16639:213::-;7636:16;:14;:16::i;:::-;:29;;;;7656:9;:7;:9::i;:::-;7628:69;;;;;-1:-1:-1;;;7628:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7628:69:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16730:19:0;;;;;;:8;:19;;;;;;;;16722:45;;;;;-1:-1:-1;;;16722:45:0;;;;;;;;;;;;-1:-1:-1;;;16722:45:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16785:19:0;;;;;;:8;:19;;;;;;;;;16778:26;;-1:-1:-1;;16778:26:0;;;16820:24;;;;;;;;;;;;;;;;;16639:213;:::o;9904:132::-;2364:9;:7;:9::i;:::-;2356:54;;;;;-1:-1:-1;;;2356:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2356:54:0;;;;;;;;;;;;;;;9990:24;:38;;-1:-1:-1;;;;;;9990:38:0;-1:-1:-1;;;;;9990:38:0;;;;;;;;;;9904:132::o;8063:107::-;8149:13;;-1:-1:-1;;;;;8149:13:0;8135:10;:27;;8063:107::o;19402:126::-;-1:-1:-1;;;;;19476:15:0;;19468:52;;;;;-1:-1:-1;;;19468:52:0;;;;;;;;;;;;-1:-1:-1;;;19468:52:0;;;;;;;;;;;;;;13448:391;13518:20;;13504:35;;-1:-1:-1;;;;;13518:20:0;13504:13;:35::i;:::-;13564:23;;13550:38;;-1:-1:-1;;;;;13564:23:0;13550:13;:38::i;:::-;13613:22;;13599:37;;-1:-1:-1;;;;;13613:22:0;13599:13;:37::i;:::-;13661:13;;13647:28;;-1:-1:-1;;;;;13661:13:0;13647;:28::i;:::-;13700:17;;13686:32;;-1:-1:-1;;;;;13700:17:0;13686:13;:32::i;:::-;13736:9;13731:101;13755:9;:16;13751:20;;13731:101;;;13793:27;13807:9;13817:1;13807:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13807:12:0;13793:13;:27::i;:::-;13773:3;;13731:101;;14282:297;14353:38;14375:15;14353:21;:38::i;:::-;-1:-1:-1;;;;;14411:36:0;;;;;;:19;:36;;;;;;;;14410:37;14402:65;;;;;-1:-1:-1;;;14402:65:0;;;;;;;;;;;;-1:-1:-1;;;14402:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14478:36:0;;;;;;:19;:36;;;;;;;;;:43;;-1:-1:-1;;14478:43:0;14517:4;14478:43;;;14537:34;;;;;;;;;;;;;;;;;14282:297;:::o;15220:357::-;15309:40;15331:17;15309:21;:40::i;:::-;-1:-1:-1;;;;;15369:47:0;;;;;;:28;:47;;;;;;;;15368:48;15360:76;;;;;-1:-1:-1;;;15360:76:0;;;;;;;;;;;;-1:-1:-1;;;15360:76:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15447:47:0;;;;;;:28;:47;;;;;;;;;:54;;-1:-1:-1;;15447:54:0;15497:4;15447:54;;;15517:52;;;;;;;;;;;;;;;;;15220:357;:::o;8178:119::-;8267:22;;-1:-1:-1;;;;;8267:22:0;8253:10;:36;;8178:119::o;18676:428::-;18754:9;:16;18746:44;;;;;-1:-1:-1;;;18746:44:0;;;;;;;;;;;;-1:-1:-1;;;18746:44:0;;;;;;;;;;;;;;;18803:12;18818:20;18829:8;18818:10;:20::i;:::-;18803:35;;18868:1;18859:5;:10;;18851:41;;;;;-1:-1:-1;;;18851:41:0;;;;;;;;;;;;-1:-1:-1;;;18851:41:0;;;;;;;;;;;;;;;19005:9;19015:16;;-1:-1:-1;;19015:20:0;;;19005:31;;;;;;;;;;;;;;;;;18977:25;;-1:-1:-1;;;;;19005:31:0;;;;18995:5;;18977:25;;;;;;;;;;;;;;:59;;;;;-1:-1:-1;;;;;18977:59:0;;;;;-1:-1:-1;;;;;18977:59:0;;;;;;19081:9;:15;;;;;;;;;;;;;;;;-1:-1:-1;;19081:15:0;;;;;-1:-1:-1;;;;;;19081:15:0;;;;;;-1:-1:-1;;18676:428:0:o;858:98::-;938:10;858:98;:::o;3473:229::-;-1:-1:-1;;;;;3547:22:0;;3539:73;;;;-1:-1:-1;;;3539:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3649:6;;;3628:38;;-1:-1:-1;;;;;3628:38:0;;;;3649:6;;;3628:38;;;3677:6;:17;;-1:-1:-1;;;;;;3677:17:0;-1:-1:-1;;;;;3677:17:0;;;;;;;;;;3473:229::o;13847:154::-;-1:-1:-1;;;;;13904:15:0;;;13900:94;;13960:1;-1:-1:-1;;;;;13936:44:0;;:46;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13936:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13936:46:0;;;;13847:154;:::o;19112:282::-;19172:6;;19191:174;19223:9;:16;19215:24;;19191:174;;;19289:8;-1:-1:-1;;;;;19269:28:0;:9;19279:5;19269:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19269:16:0;:28;19265:89;;;19332:5;-1:-1:-1;19318:20:0;;19265:89;19241:7;;19191:174;;;-1:-1:-1;;;19384:2:0;19112:282;-1:-1:-1;;19112:282:0:o
Swarm Source
bzzr://426d52e3cb3bf3b82232390119c21f7e0ae889b8a04ddbb715c776679aa54e16
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.