Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ProphecyTOKEN
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-24 */ // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; contract ProphecyStorage { /** WARNING: NEVER RE-ORDER VARIABLES! * Always double-check that new variables are added APPEND-ONLY. * Re-ordering variables can permanently BREAK the deployed proxy contract. */ bool public initialized; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; mapping(address => bool) public blacklist; uint256 internal _totalSupply; string public constant name = "ProphecyTOKEN"; string public constant symbol = "PRY"; uint256 public baretax; uint8 public constant decimals = 18; address public admin; uint256 internal constant deci = 1e18; bool internal getpause; } // File: contracts/Proxiable.sol pragma solidity ^0.6.0; contract Proxiable { // Code position in storage is keccak256("PROXIABLE") = "0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7" function updateCodeAddress(address newAddress) internal { require( bytes32( 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7 ) == Proxiable(newAddress).proxiableUUID(), "Not compatible" ); assembly { // solium-disable-line sstore( 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7, newAddress ) } } function proxiableUUID() public pure returns (bytes32) { return 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7; } } // File: contracts/Prophecy.sol /** *Submitted for verification at USDerscan.io on 2020-10-09 */ pragma solidity ^0.6.0; interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whUSDer the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whUSDer the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this mUSDod brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/USDereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whUSDer the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor() internal {} 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/USDereum/solidity/issues/2691 return msg.data; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract LibraryLock is ProphecyStorage { // Ensures no one can manipulate the Logic Contract once it is deployed. // PARITY WALLET HACK PREVENTION modifier delegatedOnly() { require( initialized == true, "The library is locked. No direct 'call' is allowed." ); _; } function initialize() internal { initialized = true; } } contract ProphecyTOKEN is ProphecyStorage, Context, IERC20, Proxiable, LibraryLock { using SafeMath for uint256; event ChangeBaretax(uint256 baretax); event AdminChanged(address admin); event CodeUpdated(address indexed newCode); function initialize(uint256 _totalsupply) public { require(!initialized, "The library has already been initialized."); LibraryLock.initialize(); admin = msg.sender; baretax = 1 * deci; _totalSupply = _totalsupply; _balances[msg.sender] = _totalSupply; } /// @dev Update the logic contract code function updateCode(address newCode) external onlyAdmin delegatedOnly { updateCodeAddress(newCode); emit CodeUpdated(newCode); } function setBaretax(uint256 _baretax) external onlyAdmin() ispaused() { require( _baretax < baretax, "the baretax should be greater than previous baretax" ); baretax = _baretax; emit ChangeBaretax(baretax); } function totalSupply() public override view returns (uint256) { return _totalSupply.mul(baretax).div(deci); } function setTotalSupply(uint256 inputTotalsupply) external onlyAdmin() { require( inputTotalsupply < totalSupply(), "the input total supply is not greater than present total supply" ); baretax = (inputTotalsupply.mul(deci)).div(_totalSupply); emit ChangeBaretax(baretax); } function balanceOf(address account) public override view returns (uint256) { uint256 externalAmt; externalAmt = _balances[account].mul(baretax).div(deci); return externalAmt; } function transfer(address recipient, uint256 amount) public virtual override Notblacklist(msg.sender) Notblacklist(recipient) ispaused() returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public virtual override view returns (uint256) { return _allowances[owner][spender]; } // The current setup works when bareTax = 1e18. Approve / Allowance logic needs to be updated when bareTax is reduced. function approve(address spender, uint256 amount) public virtual override Notblacklist(spender) Notblacklist(msg.sender) ispaused() returns (bool) { _approve(msg.sender, spender, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public Notblacklist(spender) Notblacklist(msg.sender) ispaused() returns (bool) { uint256 externalAmt = allowance(_msgSender(),spender) ; _approve(_msgSender(), spender, externalAmt.add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public Notblacklist(spender) Notblacklist(msg.sender) ispaused() returns (bool) { uint256 externalAmt = allowance(_msgSender(),spender) ; _approve(_msgSender(), spender, externalAmt.sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override Notblacklist(sender) Notblacklist(msg.sender) Notblacklist(recipient) ispaused() returns (bool) { uint256 externalAmt = allowance(sender,_msgSender()); _transfer(sender, recipient, amount); _approve( sender, _msgSender(), externalAmt.sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _transfer( address sender, address recipient, uint256 externalAmt ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 internalAmt = externalAmt.mul(deci).div(baretax); _balances[sender] = _balances[sender].sub( internalAmt, "ERC20: transfer internalAmt exceeds balance" ); _balances[recipient] = _balances[recipient].add(internalAmt); emit Transfer(sender, recipient, externalAmt); } function burn(address burnFrom, uint256 amount) public virtual onlyAdmin() ispaused() returns (bool) { uint256 internalAmt; uint256 externalAmt = amount; internalAmt = externalAmt.mul(deci).div(baretax); _burn(burnFrom, internalAmt, externalAmt); return true; } function _burn( address account, uint256 internalAmt, uint256 externalAmt ) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub( internalAmt, "ERC20: burn internaAmt exceeds balance" ); _totalSupply = _totalSupply.sub(internalAmt); emit Transfer(account, address(0), externalAmt); } function _approve( address owner, address spender, uint256 externalAmt ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = externalAmt; emit Approval(owner, spender,externalAmt); } function TransferOwnerShip(address account) public onlyAdmin() { require(account != address(0), "account cannot be zero address"); require(msg.sender == admin, "you are not the admin"); admin = account; emit AdminChanged(admin); } function pause() external onlyAdmin() { getpause = true; } function unpause() external onlyAdmin() { getpause = false; } // pause unpause modifier ispaused() { require(getpause == false, "the contract is paused"); _; } modifier onlyAdmin() { require(msg.sender == admin, "you are not the admin"); _; } modifier Notblacklist(address account) { require(!blacklist[account], "account is blacklisted"); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"baretax","type":"uint256"}],"name":"ChangeBaretax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newCode","type":"address"}],"name":"CodeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"TransferOwnerShip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baretax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"burnFrom","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalsupply","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_baretax","type":"uint256"}],"name":"setBaretax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"inputTotalsupply","type":"uint256"}],"name":"setTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCode","type":"address"}],"name":"updateCode","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50613052806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638456cb59116100c3578063b1eb34681161007c578063b1eb346814610654578063dd62ed3e14610698578063f7ea7a3d14610710578063f851a4401461073e578063f9f92be414610772578063fe4b84df146107cc57610158565b80638456cb591461046d57806395d89b41146104775780639dc29fac146104fa578063a2de0b941461055e578063a457c2d71461058c578063a9059cbb146105f057610158565b8063395093511161011557806339509351146103275780633f4ba83a1461038b578063469519541461039557806352d1902d146103d957806358bf8840146103f757806370a082311461041557610158565b806306fdde031461015d578063095ea7b3146101e0578063158ef93e1461024457806318160ddd1461026457806323b872dd14610282578063313ce56714610306575b600080fd5b6101656107fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610833565b60405180821515815260200191505060405180910390f35b61024c610a57565b60405180821515815260200191505060405180910390f35b61026c610a68565b6040518082815260200191505060405180910390f35b6102ee6004803603606081101561029857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa0565b60405180821515815260200191505060405180910390f35b61030e610ddb565b604051808260ff16815260200191505060405180910390f35b6103736004803603604081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de0565b60405180821515815260200191505060405180910390f35b610393611033565b005b6103d7600480360360208110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611113565b005b6103e161128f565b6040518082815260200191505060405180910390f35b6103ff6112ba565b6040518082815260200191505060405180910390f35b6104576004803603602081101561042b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c0565b6040518082815260200191505060405180910390f35b61047561133c565b005b61047f61141c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104bf5780820151818401526020810190506104a4565b50505050905090810190601f1680156104ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105466004803603604081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611455565b60405180821515815260200191505060405180910390f35b61058a6004803603602081101561057457600080fd5b81019080803590602001909291905050506115f1565b005b6105d8600480360360408110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117da565b60405180821515815260200191505060405180910390f35b61063c6004803603604081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a47565b60405180821515815260200191505060405180910390f35b6106966004803603602081101561066a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6b565b005b6106fa600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f47565b6040518082815260200191505060405180910390f35b61073c6004803603602081101561072657600080fd5b8101908080359060200190929190505050611fce565b005b610746612161565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107b46004803603602081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612187565b60405180821515815260200191505060405180910390f35b6107f8600480360360208110156107e257600080fd5b81019080803590602001909291905050506121a7565b005b6040518060400160405280600d81526020017f50726f7068656379544f4b454e0000000000000000000000000000000000000081525081565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610a40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b610a4b3386866122b6565b60019250505092915050565b60008054906101000a900460ff1681565b6000610a9b670de0b6b3a7640000610a8d6005546004546124ad90919063ffffffff16565b61253390919063ffffffff16565b905090565b600083600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b84600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ce5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610d6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000610d8188610d7c61257d565b611f47565b9050610d8e888888612585565b610dcc88610d9a61257d565b610dc789604051806060016040528060288152602001612ec160289139866128739092919063ffffffff16565b6122b6565b60019450505050509392505050565b601281565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610fed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000611000610ffa61257d565b87611f47565b905061102661100d61257d565b87611021888561293390919063ffffffff16565b6122b6565b6001935050505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6000600660146101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001151560008054906101000a900460ff16151514611240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f626033913960400191505060405180910390fd5b611249816129bb565b8073ffffffffffffffffffffffffffffffffffffffff167f34459cf4c63f38e9b4af4ff8f74035bad6157484e669ffde70188afdf9917c6860405160405180910390a250565b60007fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b905090565b60055481565b600080611331670de0b6b3a7640000611323600554600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ad90919063ffffffff16565b61253390919063ffffffff16565b905080915050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001600660146101000a81548160ff021916908315150217905550565b6040518060400160405280600381526020017f505259000000000000000000000000000000000000000000000000000000000081525081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff161515146115a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000808390506115d86005546115ca670de0b6b3a7640000846124ad90919063ffffffff16565b61253390919063ffffffff16565b91506115e5858383612af9565b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff1615151461173d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6005548110611797576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f2f6033913960400191505060405180910390fd5b806005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561189d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561195e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff161515146119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b60006119fa6119f461257d565b87611f47565b9050611a3a611a0761257d565b87611a3588604051806060016040528060258152602001612ff860259139866128739092919063ffffffff16565b6122b6565b6001935050505092915050565b600033600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b83600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611c54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b611c5f338686612585565b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6163636f756e742063616e6e6f74206265207a65726f2061646472657373000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b612099610a68565b81106120f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612fb9603f913960400191505060405180910390fd5b61211f600454612111670de0b6b3a7640000846124ad90919063ffffffff16565b61253390919063ffffffff16565b6005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900460ff161561220b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612e776029913960400191505060405180910390fd5b612213612cb4565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a764000060010260058190555080600481905550600454600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612f956024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e2f6022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000808314156124c0576000905061252d565b60008284029050828482816124d157fe5b0414612528576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ea06021913960400191505060405180910390fd5b809150505b92915050565b600061257583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cd0565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561260b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612f0a6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612de16023913960400191505060405180910390fd5b60006126c26005546126b4670de0b6b3a7640000856124ad90919063ffffffff16565b61253390919063ffffffff16565b9050612730816040518060600160405280602b8152602001612e04602b9139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128739092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c581600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b6000838311158290612920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128e55780820151818401526020810190506128ca565b50505050905090810190601f1680156129125780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156129b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b8073ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0157600080fd5b505afa158015612a15573d6000803e3d6000fd5b505050506040513d6020811015612a2b57600080fd5b81019080805190602001909291905050507fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b14612ad3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420636f6d70617469626c6500000000000000000000000000000000000081525060200191505060405180910390fd5b807fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf75550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ee96021913960400191505060405180910390fd5b612beb82604051806060016040528060268152602001612e5160269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128739092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4382600454612d9690919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60016000806101000a81548160ff021916908315150217905550565b60008083118290612d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d41578082015181840152602081019050612d26565b50505050905090810190601f168015612d6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612d8857fe5b049050809150509392505050565b6000612dd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612873565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a207472616e7366657220696e7465726e616c416d7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e20696e7465726e61416d7420657863656564732062616c616e6365546865206c6962726172792068617320616c7265616479206265656e20696e697469616c697a65642e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737374686520626172657461782073686f756c642062652067726561746572207468616e2070726576696f75732062617265746178546865206c696272617279206973206c6f636b65642e204e6f20646972656374202763616c6c2720697320616c6c6f7765642e45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737374686520696e70757420746f74616c20737570706c79206973206e6f742067726561746572207468616e2070726573656e7420746f74616c20737570706c7945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220967b8a2934dbd96a7c20fd8cae333f83d187773e31d044cd74096fa6e84bef4864736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638456cb59116100c3578063b1eb34681161007c578063b1eb346814610654578063dd62ed3e14610698578063f7ea7a3d14610710578063f851a4401461073e578063f9f92be414610772578063fe4b84df146107cc57610158565b80638456cb591461046d57806395d89b41146104775780639dc29fac146104fa578063a2de0b941461055e578063a457c2d71461058c578063a9059cbb146105f057610158565b8063395093511161011557806339509351146103275780633f4ba83a1461038b578063469519541461039557806352d1902d146103d957806358bf8840146103f757806370a082311461041557610158565b806306fdde031461015d578063095ea7b3146101e0578063158ef93e1461024457806318160ddd1461026457806323b872dd14610282578063313ce56714610306575b600080fd5b6101656107fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610833565b60405180821515815260200191505060405180910390f35b61024c610a57565b60405180821515815260200191505060405180910390f35b61026c610a68565b6040518082815260200191505060405180910390f35b6102ee6004803603606081101561029857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa0565b60405180821515815260200191505060405180910390f35b61030e610ddb565b604051808260ff16815260200191505060405180910390f35b6103736004803603604081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de0565b60405180821515815260200191505060405180910390f35b610393611033565b005b6103d7600480360360208110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611113565b005b6103e161128f565b6040518082815260200191505060405180910390f35b6103ff6112ba565b6040518082815260200191505060405180910390f35b6104576004803603602081101561042b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c0565b6040518082815260200191505060405180910390f35b61047561133c565b005b61047f61141c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104bf5780820151818401526020810190506104a4565b50505050905090810190601f1680156104ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105466004803603604081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611455565b60405180821515815260200191505060405180910390f35b61058a6004803603602081101561057457600080fd5b81019080803590602001909291905050506115f1565b005b6105d8600480360360408110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117da565b60405180821515815260200191505060405180910390f35b61063c6004803603604081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a47565b60405180821515815260200191505060405180910390f35b6106966004803603602081101561066a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6b565b005b6106fa600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f47565b6040518082815260200191505060405180910390f35b61073c6004803603602081101561072657600080fd5b8101908080359060200190929190505050611fce565b005b610746612161565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107b46004803603602081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612187565b60405180821515815260200191505060405180910390f35b6107f8600480360360208110156107e257600080fd5b81019080803590602001909291905050506121a7565b005b6040518060400160405280600d81526020017f50726f7068656379544f4b454e0000000000000000000000000000000000000081525081565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610a40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b610a4b3386866122b6565b60019250505092915050565b60008054906101000a900460ff1681565b6000610a9b670de0b6b3a7640000610a8d6005546004546124ad90919063ffffffff16565b61253390919063ffffffff16565b905090565b600083600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b84600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ce5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610d6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000610d8188610d7c61257d565b611f47565b9050610d8e888888612585565b610dcc88610d9a61257d565b610dc789604051806060016040528060288152602001612ec160289139866128739092919063ffffffff16565b6122b6565b60019450505050509392505050565b601281565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610fed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000611000610ffa61257d565b87611f47565b905061102661100d61257d565b87611021888561293390919063ffffffff16565b6122b6565b6001935050505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6000600660146101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001151560008054906101000a900460ff16151514611240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f626033913960400191505060405180910390fd5b611249816129bb565b8073ffffffffffffffffffffffffffffffffffffffff167f34459cf4c63f38e9b4af4ff8f74035bad6157484e669ffde70188afdf9917c6860405160405180910390a250565b60007fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b905090565b60055481565b600080611331670de0b6b3a7640000611323600554600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ad90919063ffffffff16565b61253390919063ffffffff16565b905080915050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001600660146101000a81548160ff021916908315150217905550565b6040518060400160405280600381526020017f505259000000000000000000000000000000000000000000000000000000000081525081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff161515146115a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000808390506115d86005546115ca670de0b6b3a7640000846124ad90919063ffffffff16565b61253390919063ffffffff16565b91506115e5858383612af9565b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff1615151461173d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6005548110611797576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612f2f6033913960400191505060405180910390fd5b806005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561189d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561195e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff161515146119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b60006119fa6119f461257d565b87611f47565b9050611a3a611a0761257d565b87611a3588604051806060016040528060258152602001612ff860259139866128739092919063ffffffff16565b6122b6565b6001935050505092915050565b600033600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b83600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611c54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b611c5f338686612585565b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6163636f756e742063616e6e6f74206265207a65726f2061646472657373000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b612099610a68565b81106120f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612fb9603f913960400191505060405180910390fd5b61211f600454612111670de0b6b3a7640000846124ad90919063ffffffff16565b61253390919063ffffffff16565b6005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900460ff161561220b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612e776029913960400191505060405180910390fd5b612213612cb4565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a764000060010260058190555080600481905550600454600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612f956024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e2f6022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000808314156124c0576000905061252d565b60008284029050828482816124d157fe5b0414612528576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ea06021913960400191505060405180910390fd5b809150505b92915050565b600061257583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cd0565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561260b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612f0a6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612de16023913960400191505060405180910390fd5b60006126c26005546126b4670de0b6b3a7640000856124ad90919063ffffffff16565b61253390919063ffffffff16565b9050612730816040518060600160405280602b8152602001612e04602b9139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128739092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c581600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b6000838311158290612920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128e55780820151818401526020810190506128ca565b50505050905090810190601f1680156129125780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156129b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b8073ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0157600080fd5b505afa158015612a15573d6000803e3d6000fd5b505050506040513d6020811015612a2b57600080fd5b81019080805190602001909291905050507fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b14612ad3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420636f6d70617469626c6500000000000000000000000000000000000081525060200191505060405180910390fd5b807fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf75550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ee96021913960400191505060405180910390fd5b612beb82604051806060016040528060268152602001612e5160269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128739092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4382600454612d9690919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60016000806101000a81548160ff021916908315150217905550565b60008083118290612d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d41578082015181840152602081019050612d26565b50505050905090810190601f168015612d6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612d8857fe5b049050809150509392505050565b6000612dd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612873565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a207472616e7366657220696e7465726e616c416d7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e20696e7465726e61416d7420657863656564732062616c616e6365546865206c6962726172792068617320616c7265616479206265656e20696e697469616c697a65642e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737374686520626172657461782073686f756c642062652067726561746572207468616e2070726576696f75732062617265746178546865206c696272617279206973206c6f636b65642e204e6f20646972656374202763616c6c2720697320616c6c6f7765642e45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737374686520696e70757420746f74616c20737570706c79206973206e6f742067726561746572207468616e2070726573656e7420746f74616c20737570706c7945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220967b8a2934dbd96a7c20fd8cae333f83d187773e31d044cd74096fa6e84bef4864736f6c634300060c0033
Deployed Bytecode Sourcemap
10421:7791:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;555:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12865:295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;303:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11519:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14837:652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;680:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13577:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17754:75;;;:::i;:::-;;11045:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1559:160;;;:::i;:::-;;;;;;;;;;;;;;;;;;;651:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11998:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17674:72;;;:::i;:::-;;607:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16145:363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11204:307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14430:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12214:301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17395:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12526:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11650:340;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;722:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;467:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10680:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;555:45;;;;;;;;;;;;;;;;;;;:::o;12865:295::-;13069:4;12988:7;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13019:10:::1;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17912:5:::2;17900:17;;:8;;;;;;;;;;;:17;;;17892:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;13093:37:::3;13102:10;13114:7;13123:6;13093:8;:37::i;:::-;13148:4;13141:11;;18200:1:::1;12865:295:::0;;;;;:::o;303:23::-;;;;;;;;;;;;:::o;11519:123::-;11572:7;11599:35;782:4;11599:25;11616:7;;11599:12;;:16;;:25;;;;:::i;:::-;:29;;:35;;;;:::i;:::-;11592:42;;11519:123;:::o;14837:652::-;15130:4;15017:6;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15047:10:::1;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15081:9:::2;18144;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;17912:5:::3;17900:17;;:8;;;;;;;;;;;:17;;;17892:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;15152:19:::4;15174:30;15184:6;15191:12;:10;:12::i;:::-;15174:9;:30::i;:::-;15152:52;;15215:36;15225:6;15233:9;15244:6;15215:9;:36::i;:::-;15262:197;15285:6;15306:12;:10;:12::i;:::-;15332:116;15366:6;15332:116;;;;;;;;;;;;;;;;;:11;:15;;:116;;;;;:::i;:::-;15262:8;:197::i;:::-;15477:4;15470:11;;;18200:1:::2;::::1;14837:652:::0;;;;;;:::o;680:35::-;713:2;680:35;:::o;13577:350::-;13754:4;13671:7;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13702:10:::1;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17912:5:::2;17900:17;;:8;;;;;;;;;;;:17;;;17892:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;13772:19:::3;13794:31;13804:12;:10;:12::i;:::-;13817:7;13794:9;:31::i;:::-;13772:53;;13837:60;13846:12;:10;:12::i;:::-;13860:7;13869:27;13885:10;13869:11;:15;;:27;;;;:::i;:::-;13837:8;:60::i;:::-;13915:4;13908:11;;;18200:1:::1;13577:350:::0;;;;;:::o;17754:75::-;18026:5;;;;;;;;;;;18012:19;;:10;:19;;;18004:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17816:5:::1;17805:8;;:16;;;;;;;;;;;;;;;;;;17754:75::o:0;11045:151::-;18026:5;;;;;;;;;;;18012:19;;:10;:19;;;18004:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10237:4:::1;10222:19;;:11;::::0;::::1;;;;;;;;:19;;;10200:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11126:26:::2;11144:7;11126:17;:26::i;:::-;11180:7;11168:20;;;;;;;;;;;;11045:151:::0;:::o;1559:160::-;1605:7;1645:66;1625:86;;;;1559:160;:::o;651:22::-;;;;:::o;11998:208::-;12064:7;12084:19;12128:41;782:4;12128:31;12151:7;;12128:9;:18;12138:7;12128:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;:35;;:41;;;;:::i;:::-;12114:55;;12187:11;12180:18;;;11998:208;;;:::o;17674:72::-;18026:5;;;;;;;;;;;18012:19;;:10;:19;;;18004:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17734:4:::1;17723:8;;:15;;;;;;;;;;;;;;;;;;17674:72::o:0;607:37::-;;;;;;;;;;;;;;;;;;;:::o;16145:363::-;16285:4;18026:5;;;;;;;;;;;18012:19;;:10;:19;;;18004:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17912:5:::1;17900:17;;:8;;;;;;;;;;;:17;;;17892:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16307:19:::2;16337::::0;16359:6:::2;16337:28;;16390:34;16416:7;;16390:21;782:4;16390:11;:15;;:21;;;;:::i;:::-;:25;;:34;;;;:::i;:::-;16376:48;;16437:41;16443:8;16453:11;16466;16437:5;:41::i;:::-;16496:4;16489:11;;;;16145:363:::0;;;;:::o;11204:307::-;18026:5;;;;;;;;;;;18012:19;;:10;:19;;;18004:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17912:5:::1;17900:17;;:8;;;;;;;;;;;:17;;;17892:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11350:7:::2;;11339:8;:18;11317:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11457:8;11447:7;:18;;;;11481:22;11495:7;;11481:22;;;;;;;;;;;;;;;;;;11204:307:::0;:::o;14430:399::-;14611:4;14529:7;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14560:10:::1;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17912:5:::2;17900:17;;:8;;;;;;;;;;;:17;;;17892:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;14628:19:::3;14650:31;14660:12;:10;:12::i;:::-;14673:7;14650:9;:31::i;:::-;14628:53;;14693:106;14702:12;:10;:12::i;:::-;14716:7;14725:73;14741:15;14725:73;;;;;;;;;;;;;;;;;:11;:15;;:73;;;;;:::i;:::-;14693:8;:106::i;:::-;14817:4;14810:11;;;18200:1:::1;14430:399:::0;;;;;:::o;12214:301::-;12423:4;12340:10;18144:9;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12374:9:::1;18144;:18;18154:7;18144:18;;;;;;;;;;;;;;;;;;;;;;;;;18143:19;18135:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17912:5:::2;17900:17;;:8;;;;;;;;;;;:17;;;17892:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;12445:40:::3;12455:10;12467:9;12478:6;12445:9;:40::i;:::-;12503:4;12496:11;;18200:1:::1;12214:301:::0;;;;;:::o;17395:271::-;18026:5;;;;;;;;;;;18012:19;;:10;:19;;;18004:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17496:1:::1;17477:21;;:7;:21;;;;17469:64;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17566:5;;;;;;;;;;;17552:19;;:10;:19;;;17544:53;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17616:7;17608:5;;:15;;;;;;;;;;;;;;;;;;17639:19;17652:5;;;;;;;;;;;17639:19;;;;;;;;;;;;;;;;;;;;17395:271:::0;:::o;12526:208::-;12660:7;12699:11;:18;12711:5;12699:18;;;;;;;;;;;;;;;:27;12718:7;12699:27;;;;;;;;;;;;;;;;12692:34;;12526:208;;;;:::o;11650:340::-;18026:5;;;;;;;;;;;18012:19;;:10;:19;;;18004:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11773:13:::1;:11;:13::i;:::-;11754:16;:32;11732:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11898:46;11931:12;;11899:26;782:4;11899:16;:20;;:26;;;;:::i;:::-;11898:32;;:46;;;;:::i;:::-;11888:7;:56;;;;11960:22;11974:7;;11960:22;;;;;;;;;;;;;;;;;;11650:340:::0;:::o;722:20::-;;;;;;;;;;;;;:::o;467:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;10680:312::-;10749:11;;;;;;;;;;10748:12;10740:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10817:24;:22;:24::i;:::-;10860:10;10852:5;;:18;;;;;;;;;;;;;;;;;;782:4;10891:1;:8;10881:7;:18;;;;10925:12;10910;:27;;;;10972:12;;10948:9;:21;10958:10;10948:21;;;;;;;;;;;;;;;:36;;;;10680:312;:::o;16995:392::-;17153:1;17136:19;;:5;:19;;;;17128:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17234:1;17215:21;;:7;:21;;;;17207:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17316:11;17286;:18;17298:5;17286:18;;;;;;;;;;;;;;;:27;17305:7;17286:27;;;;;;;;;;;;;;;:41;;;;17359:7;17343:36;;17352:5;17343:36;;;17367:11;17343:36;;;;;;;;;;;;;;;;;;16995:392;;;:::o;6790:471::-;6848:7;7098:1;7093;:6;7089:47;;;7123:1;7116:8;;;;7089:47;7148:9;7164:1;7160;:5;7148:17;;7193:1;7188;7184;:5;;;;;;:10;7176:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7252:1;7245:8;;;6790:471;;;;;:::o;7729:132::-;7787:7;7814:39;7818:1;7821;7814:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7807:46;;7729:132;;;;:::o;4833:98::-;4878:15;4913:10;4906:17;;4833:98;:::o;15497:640::-;15660:1;15642:20;;:6;:20;;;;15634:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15744:1;15723:23;;:9;:23;;;;15715:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15797:19;15819:34;15845:7;;15819:21;782:4;15819:11;:15;;:21;;;;:::i;:::-;:25;;:34;;;;:::i;:::-;15797:56;;15884:118;15920:11;15884:118;;;;;;;;;;;;;;;;;:9;:17;15894:6;15884:17;;;;;;;;;;;;;;;;:21;;:118;;;;;:::i;:::-;15864:9;:17;15874:6;15864:17;;;;;;;;;;;;;;;:138;;;;16036:37;16061:11;16036:9;:20;16046:9;16036:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;16013:9;:20;16023:9;16013:20;;;;;;;;;;;;;;;:60;;;;16106:9;16089:40;;16098:6;16089:40;;;16117:11;16089:40;;;;;;;;;;;;;;;;;;15497:640;;;;:::o;6313:226::-;6433:7;6466:1;6461;:6;;6469:12;6453:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6493:9;6509:1;6505;:5;6493:17;;6530:1;6523:8;;;6313:226;;;;;:::o;5426:181::-;5484:7;5504:9;5520:1;5516;:5;5504:17;;5545:1;5540;:6;;5532:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:1;5591:8;;;5426:181;;;;:::o;1048:503::-;1258:10;1248:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1163:66;1137:107;;:148;1115:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:10;1423:66;1398:135;1347:197;:::o;16516:472::-;16679:1;16660:21;;:7;:21;;;;16652:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16753:114;16790:11;16753:114;;;;;;;;;;;;;;;;;:9;:18;16763:7;16753:18;;;;;;;;;;;;;;;;:22;;:114;;;;;:::i;:::-;16732:9;:18;16742:7;16732:18;;;;;;;;;;;;;;;:135;;;;16893:29;16910:11;16893:12;;:16;;:29;;;;:::i;:::-;16878:12;:44;;;;16964:1;16938:42;;16947:7;16938:42;;;16968:11;16938:42;;;;;;;;;;;;;;;;;;16516:472;;;:::o;10346:68::-;10402:4;10388:11;;:18;;;;;;;;;;;;;;;;;;10346:68::o;8349:379::-;8469:7;8568:1;8564;:5;8571:12;8556:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8595:9;8611:1;8607;:5;;;;;;8595:17;;8719:1;8712:8;;;8349:379;;;;;:::o;5882:136::-;5940:7;5967:43;5971:1;5974;5967:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5960:50;;5882:136;;;;:::o
Swarm Source
ipfs://967b8a2934dbd96a7c20fd8cae333f83d187773e31d044cd74096fa6e84bef48
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.