Token Canary
Overview ERC20
Price
$0.00 @ 0.000017 AVAX (+0.17%)
Fully Diluted Market Cap
Total Supply:
562,000,000 CNR
Holders:
2,562 addresses
Transfers:
-
Contract:
Decimals:
18
Official Site:
[ Download CSV Export ]
[ Download CSV Export ]
OVERVIEW
Canary Exchange is a decentralized exchange (DEX) which runs on Avalanche.Market
Volume (24H) | : | $7.71 |
Market Capitalization | : | $0.00 |
Circulating Supply | : | 0.00 CNR |
Market Data Source: Coinmarketcap |
Update? Click here to update the token ICO / general information
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CNR
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-09 */ // Sources flattened with hardhat v2.2.0 https://hardhat.org // File contracts/SafeMath.sol // SPDX-License-Identifier: MIT pragma solidity ^0.5.16; // From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol // Subject to the MIT license. /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ 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 addition of two unsigned integers, reverting with custom message on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, errorMessage); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction underflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ 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 multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b, string memory errorMessage) 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, errorMessage); 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; } } // File contracts/CNR.sol pragma solidity ^0.5.16; pragma experimental ABIEncoderV2; contract CNR { /// @notice EIP-20 token name for this token string public constant name = "Canary"; /// @notice EIP-20 token symbol for this token string public constant symbol = "CNR"; /// @notice EIP-20 token decimals for this token uint8 public constant decimals = 18; /// @notice Total number of tokens in circulation uint public totalSupply = 570_000_000e18; // 570 million CNR /// @notice Allowance amounts on behalf of others mapping (address => mapping (address => uint96)) internal allowances; /// @notice Official record of token balances for each account mapping (address => uint96) internal balances; /// @notice A record of each accounts delegate mapping (address => address) public delegates; /// @notice A checkpoint for marking number of votes from a given block struct Checkpoint { uint32 fromBlock; uint96 votes; } /// @notice A record of votes checkpoints for each account, by index mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; /// @notice The number of checkpoints for each account mapping (address => uint32) public numCheckpoints; /// @notice The EIP-712 typehash for the contract's domain bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); /// @notice The EIP-712 typehash for the delegation struct used by the contract bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); /// @notice The EIP-712 typehash for the permit struct used by the contract bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); /// @notice A record of states for signing / validating signatures mapping (address => uint) public nonces; /// @notice An event thats emitted when an account changes its delegate event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); /// @notice An event thats emitted when a delegate account's vote balance changes event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); /// @notice The standard EIP-20 transfer event event Transfer(address indexed from, address indexed to, uint256 amount); /// @notice The standard EIP-20 approval event event Approval(address indexed owner, address indexed spender, uint256 amount); event TokensBurned(address addr, uint amount, string desc); /** * @notice Construct a new CNR token * @param account The initial account to grant all the tokens */ constructor(address account) public { balances[account] = uint96(totalSupply); emit Transfer(address(0), account, totalSupply); } /** * @notice Get the number of tokens `spender` is approved to spend on behalf of `account` * @param account The address of the account holding the funds * @param spender The address of the account spending the funds * @return The number of tokens approved */ function allowance(address account, address spender) external view returns (uint) { return allowances[account][spender]; } /** * @notice Approve `spender` to transfer up to `amount` from `src` * @dev This will overwrite the approval amount for `spender` * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve) * @param spender The address of the account which may transfer tokens * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) * @return Whether or not the approval succeeded */ function approve(address spender, uint rawAmount) external returns (bool) { uint96 amount; if (rawAmount == uint(-1)) { amount = uint96(-1); } else { amount = safe96(rawAmount, "CNR::approve: amount exceeds 96 bits"); } allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } /** * @notice Triggers an approval from owner to spends * @param owner The address to approve from * @param spender The address to be approved * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) * @param deadline The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external { uint96 amount; if (rawAmount == uint(-1)) { amount = uint96(-1); } else { amount = safe96(rawAmount, "CNR::permit: amount exceeds 96 bits"); } bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "CNR::permit: invalid signature"); require(signatory == owner, "CNR::permit: unauthorized"); require(now <= deadline, "CNR::permit: signature expired"); allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @notice Get the number of tokens held by the `account` * @param account The address of the account to get the balance of * @return The number of tokens held */ function balanceOf(address account) external view returns (uint) { return balances[account]; } /** * @notice Transfer `amount` tokens from `msg.sender` to `dst` * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transfer(address dst, uint rawAmount) external returns (bool) { uint96 amount = safe96(rawAmount, "CNR::transfer: amount exceeds 96 bits"); _transferTokens(msg.sender, dst, amount); return true; } function burn(uint256 amount, string calldata desc) external { _burn(msg.sender, amount, desc); } function _burn(address account, uint256 amount, string memory desc) internal { require(givelen(desc) < 20,"CNR::desc exceeds length"); require(amount != 0, "CNR::Burn: amount cant be 0"); require(amount <= balances[account], "CNR::Burn: no balance"); uint96 amountf = safe96(amount, "CNR::approve: amount exceeds 96 bits"); totalSupply = sub256(totalSupply, amount, "CNR::suberror"); balances[account] = sub96(balances[account], amountf, "CNR::suberror"); emit TokensBurned(account, amount, desc); emit Transfer(account, address(0), amount); } /** * @notice Transfer `amount` tokens from `src` to `dst` * @param src The address of the source account * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transferFrom(address src, address dst, uint rawAmount) external returns (bool) { address spender = msg.sender; uint96 spenderAllowance = allowances[src][spender]; uint96 amount = safe96(rawAmount, "CNR::approve: amount exceeds 96 bits"); if (spender != src && spenderAllowance != uint96(-1)) { uint96 newAllowance = sub96(spenderAllowance, amount, "CNR::transferFrom: transfer amount exceeds spender allowance"); allowances[src][spender] = newAllowance; emit Approval(src, spender, newAllowance); } _transferTokens(src, dst, amount); return true; } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegatee The address to delegate votes to */ function delegate(address delegatee) public { return _delegate(msg.sender, delegatee); } /** * @notice Delegates votes from signatory to `delegatee` * @param delegatee The address to delegate votes to * @param nonce The contract state required to match the signature * @param expiry The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public { bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "CNR::delegateBySig: invalid signature"); require(nonce == nonces[signatory]++, "CNR::delegateBySig: invalid nonce"); require(now <= expiry, "CNR::delegateBySig: signature expired"); return _delegate(signatory, delegatee); } /** * @notice Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint96) { uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } /** * @notice Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint blockNumber) public view returns (uint96) { require(blockNumber < block.number, "CNR::getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = delegates[delegator]; uint96 delegatorBalance = balances[delegator]; delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _transferTokens(address src, address dst, uint96 amount) internal { require(src != address(0), "CNR::_transferTokens: cannot transfer from the zero address"); require(dst != address(0), "CNR::_transferTokens: cannot transfer to the zero address"); balances[src] = sub96(balances[src], amount, "CNR::_transferTokens: transfer amount exceeds balance"); balances[dst] = add96(balances[dst], amount, "CNR::_transferTokens: transfer amount overflows"); emit Transfer(src, dst, amount); _moveDelegates(delegates[src], delegates[dst], amount); } function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { uint32 srcRepNum = numCheckpoints[srcRep]; uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint96 srcRepNew = sub96(srcRepOld, amount, "CNR::_moveVotes: vote amount underflows"); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { uint32 dstRepNum = numCheckpoints[dstRep]; uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint96 dstRepNew = add96(dstRepOld, amount, "CNR::_moveVotes: vote amount overflows"); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal { uint32 blockNumber = safe32(block.number, "CNR::_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } function safe96(uint n, string memory errorMessage) internal pure returns (uint96) { require(n < 2**96, errorMessage); return uint96(n); } function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { uint96 c = a + b; require(c >= a, errorMessage); return c; } function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { require(b <= a, errorMessage); return a - b; } function sub256(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function givelen(string memory s) internal returns (uint256) { return bytes(s).length; } function getChainId() internal pure returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"desc","type":"string"}],"name":"TokensBurned","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"desc","type":"string"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526b01d77e31ea7449187a0000006000553480156200002157600080fd5b5060405162003d3e38038062003d3e83398181016040526200004791908101906200013f565b600054600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040516200011991906200017c565b60405180910390a350620001f1565b6000815190506200013981620001d7565b92915050565b6000602082840312156200015257600080fd5b6000620001628482850162000128565b91505092915050565b6200017681620001cd565b82525050565b60006020820190506200019360008301846200016b565b92915050565b6000620001a682620001ad565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620001e28162000199565b8114620001ee57600080fd5b50565b613b3d80620002016000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637641e6f3116100b8578063b4b5ea571161007c578063b4b5ea57146103b3578063c3cda520146103e3578063d505accf146103ff578063dd62ed3e1461041b578063e7a324dc1461044b578063f1127ed81461046957610142565b80637641e6f3146102e9578063782d6fe1146103055780637ecebe001461033557806395d89b4114610365578063a9059cbb1461038357610142565b806330adf81f1161010a57806330adf81f14610201578063313ce5671461021f578063587cde1e1461023d5780635c19a95c1461026d5780636fcfff451461028957806370a08231146102b957610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806320606b70146101b357806323b872dd146101d1575b600080fd5b61014f61049a565b60405161015c9190613545565b60405180910390f35b61017f600480360361017a9190810190612b14565b6104d3565b60405161018c91906133df565b60405180910390f35b61019d610666565b6040516101aa9190613709565b60405180910390f35b6101bb61066c565b6040516101c891906133fa565b60405180910390f35b6101eb60048036036101e69190810190612a27565b610683565b6040516101f891906133df565b60405180910390f35b610209610917565b60405161021691906133fa565b60405180910390f35b61022761092e565b6040516102349190613768565b60405180910390f35b610257600480360361025291908101906129c2565b610933565b6040516102649190613386565b60405180910390f35b610287600480360361028291908101906129c2565b610966565b005b6102a3600480360361029e91908101906129c2565b610973565b6040516102b09190613724565b60405180910390f35b6102d360048036036102ce91908101906129c2565b610996565b6040516102e09190613709565b60405180910390f35b61030360048036036102fe9190810190612c15565b610a05565b005b61031f600480360361031a9190810190612b14565b610a59565b60405161032c919061379e565b60405180910390f35b61034f600480360361034a91908101906129c2565b610e6c565b60405161035c9190613709565b60405180910390f35b61036d610e84565b60405161037a9190613545565b60405180910390f35b61039d60048036036103989190810190612b14565b610ebd565b6040516103aa91906133df565b60405180910390f35b6103cd60048036036103c891908101906129c2565b610efa565b6040516103da919061379e565b60405180910390f35b6103fd60048036036103f89190810190612b50565b610fe8565b005b61041960048036036104149190810190612a76565b61128b565b005b610435600480360361043091908101906129eb565b6116dd565b6040516104429190613709565b60405180910390f35b61045361178a565b60405161046091906133fa565b60405180910390f35b610483600480360361047e9190810190612bd9565b6117a1565b60405161049192919061373f565b60405180910390f35b6040518060400160405280600681526020017f43616e617279000000000000000000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610526577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061054b565b610548836040518060600160405280602481526020016139c5602491396117fa565b90505b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516106539190613783565b60405180910390a3600191505092915050565b60005481565b6040516106789061335c565b604051809103902081565b6000803390506000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1690506000610746856040518060600160405280602481526020016139c5602491396117fa565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156107c057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156108fe5760006107ea83836040518060600160405280603c8152602001613a8a603c9139611858565b905080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108f49190613783565b60405180910390a3505b6109098787836118c9565b600193505050509392505050565b60405161092390613347565b604051809103902081565b601281565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109703382611caa565b50565b60056020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b610a54338484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e6a565b505050565b6000438210610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a94906135e9565b60405180910390fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610b0a576000915050610e66565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610c0c57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610e66565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610c8d576000915050610e66565b600080905060006001830390505b8163ffffffff168163ffffffff161115610de8576000600283830363ffffffff1681610cc357fe5b0482039050610cd06128e1565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610dc057806020015195505050505050610e66565b86816000015163ffffffff161015610dda57819350610de1565b6001820392505b5050610c9b565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60066020528060005260406000206000915090505481565b6040518060400160405280600381526020017f434e52000000000000000000000000000000000000000000000000000000000081525081565b600080610ee283604051806060016040528060258152602001613a65602591396117fa565b9050610eef3385836118c9565b600191505092915050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610f64576000610fe0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000604051610ff69061335c565b60405180910390206040518060400160405280600681526020017f43616e6172790000000000000000000000000000000000000000000000000000815250805190602001206110436121ba565b3060405160200161105794939291906134bb565b604051602081830303815290604052805190602001209050600060405161107d90613371565b604051809103902088888860405160200161109b9493929190613476565b604051602081830303815290604052805190602001209050600082826040516020016110c8929190613310565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516111059493929190613500565b6020604051602081039080840390855afa158015611127573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906135c9565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122990613609565b60405180910390fd5b87421115611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126c90613589565b60405180910390fd5b61127f818b611caa565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8614156112dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050611302565b6112ff8660405180606001604052806023815260200161396f602391396117fa565b90505b60006040516113109061335c565b60405180910390206040518060400160405280600681526020017f43616e61727900000000000000000000000000000000000000000000000000008152508051906020012061135d6121ba565b3060405160200161137194939291906134bb565b604051602081830303815290604052805190602001209050600060405161139790613347565b60405180910390208a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161140696959493929190613415565b60405160208183030381529060405280519060200120905060008282604051602001611433929190613310565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516114709493929190613500565b6020604051602081039080840390855afa158015611492573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590613669565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611573906136e9565b60405180910390fd5b884211156115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b6906135a9565b60405180910390fd5b84600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516116c79190613783565b60405180910390a3505050505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b60405161179690613371565b604051809103902081565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c010000000000000000000000008310829061184e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118459190613567565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff16111582906118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b39190613567565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193090613629565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090613649565b60405180910390fd5b611a23600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1682604051806060016040528060358152602001613ac660359139611858565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b0a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280602f8152602001613a36602f91396121c7565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd49190613783565b60405180910390a3611ca5600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361223d565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611e6482848361223d565b50505050565b6014611e7582612538565b10611eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eac90613689565b60405180910390fd5b6000821415611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef0906136c9565b60405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16821115611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f98906136a9565b60405180910390fd5b6000611fc5836040518060600160405280602481526020016139c5602491396117fa565b9050612009600054846040518060400160405280600d81526020017f434e523a3a7375626572726f7200000000000000000000000000000000000000815250612543565b6000819055506120a6600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060400160405280600d81526020017f434e523a3a7375626572726f7200000000000000000000000000000000000000815250611858565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507ffad31924d655455395c87544c8aa1ffdb5a7505a22a3c2e03f28003b6556a75f848484604051612146939291906133a1565b60405180910390a1600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121ac9190613709565b60405180910390a350505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390612231576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122289190613567565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561228757506000816bffffffffffffffffffffffff16115b1561253357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123df576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161232a5760006123a6565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006123cd82856040518060600160405280602781526020016139e960279139611858565b90506123db86848484612598565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612532576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161247d5760006124f9565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006125208285604051806060016040528060268152602001613a10602691396121c7565b905061252e85848484612598565b5050505b5b505050565b600081519050919050565b600083831115829061258b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125829190613567565b60405180910390fd5b5082840390509392505050565b60006125bc436040518060600160405280603381526020016139926033913961288b565b905060008463ffffffff1611801561265157508063ffffffff16600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156126ec5781600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612834565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161287c9291906137b9565b60405180910390a25050505050565b6000640100000000831082906128d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ce9190613567565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b60008135905061291e816138fb565b92915050565b60008135905061293381613912565b92915050565b60008083601f84011261294b57600080fd5b8235905067ffffffffffffffff81111561296457600080fd5b60208301915083600182028301111561297c57600080fd5b9250929050565b60008135905061299281613929565b92915050565b6000813590506129a781613940565b92915050565b6000813590506129bc81613957565b92915050565b6000602082840312156129d457600080fd5b60006129e28482850161290f565b91505092915050565b600080604083850312156129fe57600080fd5b6000612a0c8582860161290f565b9250506020612a1d8582860161290f565b9150509250929050565b600080600060608486031215612a3c57600080fd5b6000612a4a8682870161290f565b9350506020612a5b8682870161290f565b9250506040612a6c86828701612983565b9150509250925092565b600080600080600080600060e0888a031215612a9157600080fd5b6000612a9f8a828b0161290f565b9750506020612ab08a828b0161290f565b9650506040612ac18a828b01612983565b9550506060612ad28a828b01612983565b9450506080612ae38a828b016129ad565b93505060a0612af48a828b01612924565b92505060c0612b058a828b01612924565b91505092959891949750929550565b60008060408385031215612b2757600080fd5b6000612b358582860161290f565b9250506020612b4685828601612983565b9150509250929050565b60008060008060008060c08789031215612b6957600080fd5b6000612b7789828a0161290f565b9650506020612b8889828a01612983565b9550506040612b9989828a01612983565b9450506060612baa89828a016129ad565b9350506080612bbb89828a01612924565b92505060a0612bcc89828a01612924565b9150509295509295509295565b60008060408385031215612bec57600080fd5b6000612bfa8582860161290f565b9250506020612c0b85828601612998565b9150509250929050565b600080600060408486031215612c2a57600080fd5b6000612c3886828701612983565b935050602084013567ffffffffffffffff811115612c5557600080fd5b612c6186828701612939565b92509250509250925092565b612c7681613814565b82525050565b612c8581613826565b82525050565b612c9481613832565b82525050565b612cab612ca682613832565b6138e0565b82525050565b6000612cbc826137ed565b612cc681856137f8565b9350612cd68185602086016138ad565b612cdf816138ea565b840191505092915050565b6000612cf5826137e2565b612cff81856137f8565b9350612d0f8185602086016138ad565b612d18816138ea565b840191505092915050565b6000612d306025836137f8565b91507f434e523a3a64656c656761746542795369673a207369676e617475726520657860008301527f70697265640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d96601e836137f8565b91507f434e523a3a7065726d69743a207369676e6174757265206578706972656400006000830152602082019050919050565b6000612dd6600283613809565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612e166025836137f8565b91507f434e523a3a64656c656761746542795369673a20696e76616c6964207369676e60008301527f61747572650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e7c605283613809565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b6000612f086026836137f8565b91507f434e523a3a6765745072696f72566f7465733a206e6f7420796574206465746560008301527f726d696e656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f6e604383613809565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b6000612ffa6021836137f8565b91507f434e523a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613060603b836137f8565b91507f434e523a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e736665722066726f6d20746865207a65726f206164647265737300000000006020830152604082019050919050565b60006130c66039836137f8565b91507f434e523a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e7366657220746f20746865207a65726f2061646472657373000000000000006020830152604082019050919050565b600061312c601e836137f8565b91507f434e523a3a7065726d69743a20696e76616c6964207369676e617475726500006000830152602082019050919050565b600061316c6018836137f8565b91507f434e523a3a646573632065786365656473206c656e67746800000000000000006000830152602082019050919050565b60006131ac603a83613809565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b60006132126015836137f8565b91507f434e523a3a4275726e3a206e6f2062616c616e636500000000000000000000006000830152602082019050919050565b6000613252601b836137f8565b91507f434e523a3a4275726e3a20616d6f756e742063616e74206265203000000000006000830152602082019050919050565b60006132926019836137f8565b91507f434e523a3a7065726d69743a20756e617574686f72697a6564000000000000006000830152602082019050919050565b6132ce8161385c565b82525050565b6132dd81613866565b82525050565b6132ec81613876565b82525050565b6132fb8161389b565b82525050565b61330a81613883565b82525050565b600061331b82612dc9565b91506133278285612c9a565b6020820191506133378284612c9a565b6020820191508190509392505050565b600061335282612e6f565b9150819050919050565b600061336782612f61565b9150819050919050565b600061337c8261319f565b9150819050919050565b600060208201905061339b6000830184612c6d565b92915050565b60006060820190506133b66000830186612c6d565b6133c360208301856132c5565b81810360408301526133d58184612cb1565b9050949350505050565b60006020820190506133f46000830184612c7c565b92915050565b600060208201905061340f6000830184612c8b565b92915050565b600060c08201905061342a6000830189612c8b565b6134376020830188612c6d565b6134446040830187612c6d565b61345160608301866132c5565b61345e60808301856132c5565b61346b60a08301846132c5565b979650505050505050565b600060808201905061348b6000830187612c8b565b6134986020830186612c6d565b6134a560408301856132c5565b6134b260608301846132c5565b95945050505050565b60006080820190506134d06000830187612c8b565b6134dd6020830186612c8b565b6134ea60408301856132c5565b6134f76060830184612c6d565b95945050505050565b60006080820190506135156000830187612c8b565b61352260208301866132e3565b61352f6040830185612c8b565b61353c6060830184612c8b565b95945050505050565b6000602082019050818103600083015261355f8184612cea565b905092915050565b600060208201905081810360008301526135818184612cb1565b905092915050565b600060208201905081810360008301526135a281612d23565b9050919050565b600060208201905081810360008301526135c281612d89565b9050919050565b600060208201905081810360008301526135e281612e09565b9050919050565b6000602082019050818103600083015261360281612efb565b9050919050565b6000602082019050818103600083015261362281612fed565b9050919050565b6000602082019050818103600083015261364281613053565b9050919050565b60006020820190508181036000830152613662816130b9565b9050919050565b600060208201905081810360008301526136828161311f565b9050919050565b600060208201905081810360008301526136a28161315f565b9050919050565b600060208201905081810360008301526136c281613205565b9050919050565b600060208201905081810360008301526136e281613245565b9050919050565b6000602082019050818103600083015261370281613285565b9050919050565b600060208201905061371e60008301846132c5565b92915050565b600060208201905061373960008301846132d4565b92915050565b600060408201905061375460008301856132d4565b6137616020830184613301565b9392505050565b600060208201905061377d60008301846132e3565b92915050565b600060208201905061379860008301846132f2565b92915050565b60006020820190506137b36000830184613301565b92915050565b60006040820190506137ce60008301856132f2565b6137db60208301846132f2565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061381f8261383c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b60006138a682613883565b9050919050565b60005b838110156138cb5780820151818401526020810190506138b0565b838111156138da576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61390481613814565b811461390f57600080fd5b50565b61391b81613832565b811461392657600080fd5b50565b6139328161385c565b811461393d57600080fd5b50565b61394981613866565b811461395457600080fd5b50565b61396081613876565b811461396b57600080fd5b5056fe434e523a3a7065726d69743a20616d6f756e7420657863656564732039362062697473434e523a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473434e523a3a617070726f76653a20616d6f756e7420657863656564732039362062697473434e523a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773434e523a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773434e523a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773434e523a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473434e523a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365434e523a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a365627a7a72315820741aabdc2a5db55c1094c469bd4a67c8a616ed783d0ed3afe4502d53ca679e6b6c6578706572696d656e74616cf564736f6c63430005100040000000000000000000000000da17025e88c493184ebbbc1d281436725962dc49
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000da17025e88c493184ebbbc1d281436725962dc49
-----Decoded View---------------
Arg [0] : account (address): 0xda17025e88c493184ebbbc1d281436725962dc49
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000da17025e88c493184ebbbc1d281436725962dc49
Deployed ByteCode Sourcemap
6829:15672:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6829:15672:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6899:38;;;:::i;:::-;;;;;;;;;;;;;;;;10725:418;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7197:40;;;:::i;:::-;;;;;;;;;;;;;;;;8121:122;;;:::i;:::-;;;;;;;;;;;;;;;;14552:670;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8544:137;;;:::i;:::-;;;;;;;;;;;;;;;;7098:35;;;:::i;:::-;;;;;;;;;;;;;;;;7571:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15370:102;;;;;;;;;;;;;;;;:::i;:::-;;7999:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12886:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13503:111;;;;;;;;;;;;;;;;:::i;:::-;;17546:1217;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8762:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6998:37;;;:::i;:::-;;;;;;;;;;;;;;;;13258:237;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16893:222;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15906:786;;;;;;;;;;;;;;;;:::i;:::-;;11633:1050;;;;;;;;;;;;;;;;:::i;:::-;;10111:136;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8337:117;;;:::i;:::-;;;;;;;;;;;;;;;;7860:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6899:38;;;;;;;;;;;;;;;;;;;:::o;10725:418::-;10793:4;10810:13;10856:2;10838:9;:21;10834:172;;;10892:2;10876:19;;10834:172;;;10937:57;10944:9;10937:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;10928:66;;10834:172;11052:6;11018:10;:22;11029:10;11018:22;;;;;;;;;;;;;;;:31;11041:7;11018:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11097:7;11076:37;;11085:10;11076:37;;;11106:6;11076:37;;;;;;;;;;;;;;;11131:4;11124:11;;;10725:418;;;;:::o;7197:40::-;;;;:::o;8121:122::-;8163:80;;;;;;;;;;;;;;8121:122;:::o;14552:670::-;14634:4;14651:15;14669:10;14651:28;;14690:23;14716:10;:15;14727:3;14716:15;;;;;;;;;;;;;;;:24;14732:7;14716:24;;;;;;;;;;;;;;;;;;;;;;;;;14690:50;;14751:13;14767:57;14774:9;14767:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;14751:73;;14852:3;14841:14;;:7;:14;;;;:48;;;;;14886:2;14859:30;;:16;:30;;;;14841:48;14837:310;;;14906:19;14928:95;14934:16;14952:6;14928:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;14906:117;;15065:12;15038:10;:15;15049:3;15038:15;;;;;;;;;;;;;;;:24;15054:7;15038:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15113:7;15099:36;;15108:3;15099:36;;;15122:12;15099:36;;;;;;;;;;;;;;;14837:310;;15159:33;15175:3;15180;15185:6;15159:15;:33::i;:::-;15210:4;15203:11;;;;;14552:670;;;;;:::o;8544:137::-;8586:95;;;;;;;;;;;;;;8544:137;:::o;7098:35::-;7131:2;7098:35;:::o;7571:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15370:102::-;15432:32;15442:10;15454:9;15432;:32::i;:::-;15370:102;:::o;7999:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12886:108::-;12945:4;12969:8;:17;12978:7;12969:17;;;;;;;;;;;;;;;;;;;;;;;;;12962:24;;;;12886:108;;;:::o;13503:111::-;13575:31;13581:10;13593:6;13601:4;;13575:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13575:31:0;;;;;;:5;:31::i;:::-;13503:111;;;:::o;17546:1217::-;17625:6;17666:12;17652:11;:26;17644:77;;;;;;;;;;;;;;;;;;;;;;17734:19;17756:14;:23;17771:7;17756:23;;;;;;;;;;;;;;;;;;;;;;;;;17734:45;;17810:1;17794:12;:17;;;17790:58;;;17835:1;17828:8;;;;;17790:58;17960:11;17908;:20;17920:7;17908:20;;;;;;;;;;;;;;;:38;17944:1;17929:12;:16;17908:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;17904:147;;17995:11;:20;18007:7;17995:20;;;;;;;;;;;;;;;:38;18031:1;18016:12;:16;17995:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;17988:51;;;;;17904:147;18148:11;18112;:20;18124:7;18112:20;;;;;;;;;;;;;;;:23;18133:1;18112:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;18108:88;;;18183:1;18176:8;;;;;18108:88;18208:12;18223:1;18208:16;;18235:12;18265:1;18250:12;:16;18235:31;;18277:428;18292:5;18284:13;;:5;:13;;;18277:428;;;18314:13;18356:1;18347:5;18339;:13;18338:19;;;;;;;;18330:5;:27;18314:43;;18399:20;;:::i;:::-;18422:11;:20;18434:7;18422:20;;;;;;;;;;;;;;;:28;18443:6;18422:28;;;;;;;;;;;;;;;18399:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18485:11;18469:2;:12;;;:27;;;18465:229;;;18524:2;:8;;;18517:15;;;;;;;;;18465:229;18573:11;18558:2;:12;;;:26;;;18554:140;;;18613:6;18605:14;;18554:140;;;18677:1;18668:6;:10;18660:18;;18554:140;18277:428;;;;;18722:11;:20;18734:7;18722:20;;;;;;;;;;;;;;;:27;18743:5;18722:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;18715:40;;;;;17546:1217;;;;;:::o;8762:39::-;;;;;;;;;;;;;;;;;:::o;6998:37::-;;;;;;;;;;;;;;;;;;;:::o;13258:237::-;13323:4;13340:13;13356:58;13363:9;13356:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;13340:74;;13425:40;13441:10;13453:3;13458:6;13425:15;:40::i;:::-;13483:4;13476:11;;;13258:237;;;;:::o;16893:222::-;16958:6;16977:19;16999:14;:23;17014:7;16999:23;;;;;;;;;;;;;;;;;;;;;;;;;16977:45;;17055:1;17040:12;:16;;;:67;;17106:1;17040:67;;;17059:11;:20;17071:7;17059:20;;;;;;;;;;;;;;;:38;17095:1;17080:12;:16;17059:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;17040:67;17033:74;;;16893:222;;;:::o;15906:786::-;16022:23;8163:80;;;;;;;;;;;;;;16102:4;;;;;;;;;;;;;;;;;16086:22;;;;;;16110:12;:10;:12::i;:::-;16132:4;16058:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16058:80:0;;;16048:91;;;;;;16022:117;;16150:18;8383:71;;;;;;;;;;;;;;16213:9;16224:5;16231:6;16181:57;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16181:57:0;;;16171:68;;;;;;16150:89;;16250:14;16306:15;16323:10;16277:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16277:57:0;;;16267:68;;;;;;16250:85;;16346:17;16366:26;16376:6;16384:1;16387;16390;16366:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16366:26:0;;;;;;;;16346:46;;16432:1;16411:23;;:9;:23;;;;16403:73;;;;;;;;;;;;;;;;;;;;;;16504:6;:17;16511:9;16504:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;16495:5;:28;16487:74;;;;;;;;;;;;;;;;;;;;;;16587:6;16580:3;:13;;16572:63;;;;;;;;;;;;;;;;;;;;;;16653:31;16663:9;16674;16653;:31::i;:::-;16646:38;;;;15906:786;;;;;;:::o;11633:1050::-;11763:13;11809:2;11791:9;:21;11787:171;;;11845:2;11829:19;;11787:171;;;11890:56;11897:9;11890:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;11881:65;;11787:171;11970:23;8163:80;;;;;;;;;;;;;;12050:4;;;;;;;;;;;;;;;;;12034:22;;;;;;12058:12;:10;:12::i;:::-;12080:4;12006:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12006:80:0;;;11996:91;;;;;;11970:117;;12098:18;8586:95;;;;;;;;;;;;;;12157:5;12164:7;12173:9;12184:6;:13;12191:5;12184:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;12201:8;12129:81;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12129:81:0;;;12119:92;;;;;;12098:113;;12222:14;12278:15;12295:10;12249:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12249:57:0;;;12239:68;;;;;;12222:85;;12318:17;12338:26;12348:6;12356:1;12359;12362;12338:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12338:26:0;;;;;;;;12318:46;;12404:1;12383:23;;:9;:23;;;;12375:66;;;;;;;;;;;;;;;;;;;;;;12473:5;12460:18;;:9;:18;;;12452:56;;;;;;;;;;;;;;;;;;;;;;12534:8;12527:3;:15;;12519:58;;;;;;;;;;;;;;;;;;;;;;12619:6;12590:10;:17;12601:5;12590:17;;;;;;;;;;;;;;;:26;12608:7;12590:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12659:7;12643:32;;12652:5;12643:32;;;12668:6;12643:32;;;;;;;;;;;;;;;11633:1050;;;;;;;;;;;;:::o;10111:136::-;10187:4;10211:10;:19;10222:7;10211:19;;;;;;;;;;;;;;;:28;10231:7;10211:28;;;;;;;;;;;;;;;;;;;;;;;;;10204:35;;;;10111:136;;;;:::o;8337:117::-;8383:71;;;;;;;;;;;;;;8337:117;:::o;7860:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21522:161::-;21597:6;21628:5;21624:1;:9;21635:12;21616:32;;;;;;;;;;;;;;;;;;;;;;;;;21673:1;21659:16;;21522:161;;;;:::o;21887:165::-;21973:6;22005:1;22000:6;;:1;:6;;;;22008:12;21992:29;;;;;;;;;;;;;;;;;;;;;;;;;22043:1;22039;:5;22032:12;;21887:165;;;;;:::o;19154:610::-;19263:1;19248:17;;:3;:17;;;;19240:89;;;;;;;;;;;;;;;;;;;;;;19363:1;19348:17;;:3;:17;;;;19340:87;;;;;;;;;;;;;;;;;;;;;;19456:85;19462:8;:13;19471:3;19462:13;;;;;;;;;;;;;;;;;;;;;;;;;19477:6;19456:85;;;;;;;;;;;;;;;;;:5;:85::i;:::-;19440:8;:13;19449:3;19440:13;;;;;;;;;;;;;;;;:101;;;;;;;;;;;;;;;;;;19568:79;19574:8;:13;19583:3;19574:13;;;;;;;;;;;;;;;;;;;;;;;;;19589:6;19568:79;;;;;;;;;;;;;;;;;:5;:79::i;:::-;19552:8;:13;19561:3;19552:13;;;;;;;;;;;;;;;;:95;;;;;;;;;;;;;;;;;;19677:3;19663:26;;19672:3;19663:26;;;19682:6;19663:26;;;;;;;;;;;;;;;19702:54;19717:9;:14;19727:3;19717:14;;;;;;;;;;;;;;;;;;;;;;;;;19733:9;:14;19743:3;19733:14;;;;;;;;;;;;;;;;;;;;;;;;;19749:6;19702:14;:54::i;:::-;19154:610;;;:::o;18771:375::-;18848:23;18874:9;:20;18884:9;18874:20;;;;;;;;;;;;;;;;;;;;;;;;;18848:46;;18905:23;18931:8;:19;18940:9;18931:19;;;;;;;;;;;;;;;;;;;;;;;;;18905:45;;18984:9;18961;:20;18971:9;18961:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19055:9;19011:54;;19038:15;19011:54;;19027:9;19011:54;;;;;;;;;;;;19078:60;19093:15;19110:9;19121:16;19078:14;:60::i;:::-;18771:375;;;;:::o;13622:620::-;13734:2;13718:13;13726:4;13718:7;:13::i;:::-;:18;13710:54;;;;;;;;;;;;;;;;;;;;;;13793:1;13783:6;:11;;13775:51;;;;;;;;;;;;;;;;;;;;;;13855:8;:17;13864:7;13855:17;;;;;;;;;;;;;;;;;;;;;;;;;13845:27;;:6;:27;;13837:61;;;;;;;;;;;;;;;;;;;;;;13909:14;13926:54;13933:6;13926:54;;;;;;;;;;;;;;;;;:6;:54::i;:::-;13909:71;;14005:44;14012:11;;14025:6;14005:44;;;;;;;;;;;;;;;;;:6;:44::i;:::-;13991:11;:58;;;;14080:50;14086:8;:17;14095:7;14086:17;;;;;;;;;;;;;;;;;;;;;;;;;14105:7;14080:50;;;;;;;;;;;;;;;;;:5;:50::i;:::-;14060:8;:17;14069:7;14060:17;;;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;14146:35;14159:7;14168:6;14176:4;14146:35;;;;;;;;;;;;;;;;;14223:1;14197:37;;14206:7;14197:37;;;14227:6;14197:37;;;;;;;;;;;;;;;13622:620;;;;:::o;22345:153::-;22390:4;22407:15;22455:9;22444:20;;22483:7;22476:14;;;22345:153;:::o;21691:188::-;21777:6;21796:8;21811:1;21807;:5;21796:16;;21836:1;21831:6;;:1;:6;;;;21839:12;21823:29;;;;;;;;;;;;;;;;;;;;;;;;;21870:1;21863:8;;;21691:188;;;;;:::o;19772:937::-;19877:6;19867:16;;:6;:16;;;;:30;;;;;19896:1;19887:6;:10;;;19867:30;19863:839;;;19936:1;19918:20;;:6;:20;;;19914:381;;19959:16;19978:14;:22;19993:6;19978:22;;;;;;;;;;;;;;;;;;;;;;;;;19959:41;;20019:16;20050:1;20038:9;:13;;;:60;;20097:1;20038:60;;;20054:11;:19;20066:6;20054:19;;;;;;;;;;;;;;;:34;20086:1;20074:9;:13;20054:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;20038:60;20019:79;;20117:16;20136:67;20142:9;20153:6;20136:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;20117:86;;20222:57;20239:6;20247:9;20258;20269;20222:16;:57::i;:::-;19914:381;;;;20333:1;20315:20;;:6;:20;;;20311:380;;20356:16;20375:14;:22;20390:6;20375:22;;;;;;;;;;;;;;;;;;;;;;;;;20356:41;;20416:16;20447:1;20435:9;:13;;;:60;;20494:1;20435:60;;;20451:11;:19;20463:6;20451:19;;;;;;;;;;;;;;;:34;20483:1;20471:9;:13;20451:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;20435:60;20416:79;;20514:16;20533:66;20539:9;20550:6;20533:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;20514:85;;20618:57;20635:6;20643:9;20654;20665;20618:16;:57::i;:::-;20311:380;;;;19863:839;19772:937;;;:::o;22235:102::-;22287:7;22320:1;22314:15;22307:22;;22235:102;;;:::o;22058:169::-;22147:7;22180:1;22175;:6;;22183:12;22167:29;;;;;;;;;;;;;;;;;;;;;;;;;22218:1;22214;:5;22207:12;;22058:169;;;;;:::o;20717:628::-;20835:18;20856:75;20863:12;20856:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;20835:96;;20961:1;20946:12;:16;;;:85;;;;;21020:11;20966:65;;:11;:22;20978:9;20966:22;;;;;;;;;;;;;;;:40;21004:1;20989:12;:16;20966:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;20946:85;20942:329;;;21095:8;21046:11;:22;21058:9;21046:22;;;;;;;;;;;;;;;:40;21084:1;21069:12;:16;21046:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;20942:329;;;21171:33;;;;;;;;21182:11;21171:33;;;;;;21195:8;21171:33;;;;;21132:11;:22;21144:9;21132:22;;;;;;;;;;;;;;;:36;21155:12;21132:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21260:1;21245:12;:16;21217:14;:25;21232:9;21217:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;20942:329;21307:9;21286:51;;;21318:8;21328;21286:51;;;;;;;;;;;;;;;;20717:628;;;;;:::o;21353:161::-;21428:6;21459:5;21455:1;:9;21466:12;21447:32;;;;;;;;;;;;;;;;;;;;;;;;;21504:1;21490:16;;21353:161;;;;:::o;6829:15672::-;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:130;;222:6;209:20;200:29;;234:33;261:5;234:33;;;194:78;;;;;294:337;;;409:3;402:4;394:6;390:17;386:27;376:2;;427:1;424;417:12;376:2;460:6;447:20;437:30;;487:18;479:6;476:30;473:2;;;519:1;516;509:12;473:2;553:4;545:6;541:17;529:29;;604:3;596:4;588:6;584:17;574:8;570:32;567:41;564:2;;;621:1;618;611:12;564:2;369:262;;;;;;639:130;;719:6;706:20;697:29;;731:33;758:5;731:33;;;691:78;;;;;776:128;;855:6;842:20;833:29;;867:32;893:5;867:32;;;827:77;;;;;911:126;;989:6;976:20;967:29;;1001:31;1026:5;1001:31;;;961:76;;;;;1044:241;;1148:2;1136:9;1127:7;1123:23;1119:32;1116:2;;;1164:1;1161;1154:12;1116:2;1199:1;1216:53;1261:7;1252:6;1241:9;1237:22;1216:53;;;1206:63;;1178:97;1110:175;;;;;1292:366;;;1413:2;1401:9;1392:7;1388:23;1384:32;1381:2;;;1429:1;1426;1419:12;1381:2;1464:1;1481:53;1526:7;1517:6;1506:9;1502:22;1481:53;;;1471:63;;1443:97;1571:2;1589:53;1634:7;1625:6;1614:9;1610:22;1589:53;;;1579:63;;1550:98;1375:283;;;;;;1665:491;;;;1803:2;1791:9;1782:7;1778:23;1774:32;1771:2;;;1819:1;1816;1809:12;1771:2;1854:1;1871:53;1916:7;1907:6;1896:9;1892:22;1871:53;;;1861:63;;1833:97;1961:2;1979:53;2024:7;2015:6;2004:9;2000:22;1979:53;;;1969:63;;1940:98;2069:2;2087:53;2132:7;2123:6;2112:9;2108:22;2087:53;;;2077:63;;2048:98;1765:391;;;;;;2163:991;;;;;;;;2367:3;2355:9;2346:7;2342:23;2338:33;2335:2;;;2384:1;2381;2374:12;2335:2;2419:1;2436:53;2481:7;2472:6;2461:9;2457:22;2436:53;;;2426:63;;2398:97;2526:2;2544:53;2589:7;2580:6;2569:9;2565:22;2544:53;;;2534:63;;2505:98;2634:2;2652:53;2697:7;2688:6;2677:9;2673:22;2652:53;;;2642:63;;2613:98;2742:2;2760:53;2805:7;2796:6;2785:9;2781:22;2760:53;;;2750:63;;2721:98;2850:3;2869:51;2912:7;2903:6;2892:9;2888:22;2869:51;;;2859:61;;2829:97;2957:3;2976:53;3021:7;3012:6;3001:9;2997:22;2976:53;;;2966:63;;2936:99;3066:3;3085:53;3130:7;3121:6;3110:9;3106:22;3085:53;;;3075:63;;3045:99;2329:825;;;;;;;;;;;3161:366;;;3282:2;3270:9;3261:7;3257:23;3253:32;3250:2;;;3298:1;3295;3288:12;3250:2;3333:1;3350:53;3395:7;3386:6;3375:9;3371:22;3350:53;;;3340:63;;3312:97;3440:2;3458:53;3503:7;3494:6;3483:9;3479:22;3458:53;;;3448:63;;3419:98;3244:283;;;;;;3534:865;;;;;;;3721:3;3709:9;3700:7;3696:23;3692:33;3689:2;;;3738:1;3735;3728:12;3689:2;3773:1;3790:53;3835:7;3826:6;3815:9;3811:22;3790:53;;;3780:63;;3752:97;3880:2;3898:53;3943:7;3934:6;3923:9;3919:22;3898:53;;;3888:63;;3859:98;3988:2;4006:53;4051:7;4042:6;4031:9;4027:22;4006:53;;;3996:63;;3967:98;4096:2;4114:51;4157:7;4148:6;4137:9;4133:22;4114:51;;;4104:61;;4075:96;4202:3;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;;;4211:63;;4181:99;4311:3;4330:53;4375:7;4366:6;4355:9;4351:22;4330:53;;;4320:63;;4290:99;3683:716;;;;;;;;;4406:364;;;4526:2;4514:9;4505:7;4501:23;4497:32;4494:2;;;4542:1;4539;4532:12;4494:2;4577:1;4594:53;4639:7;4630:6;4619:9;4615:22;4594:53;;;4584:63;;4556:97;4684:2;4702:52;4746:7;4737:6;4726:9;4722:22;4702:52;;;4692:62;;4663:97;4488:282;;;;;;4777:492;;;;4918:2;4906:9;4897:7;4893:23;4889:32;4886:2;;;4934:1;4931;4924:12;4886:2;4969:1;4986:53;5031:7;5022:6;5011:9;5007:22;4986:53;;;4976:63;;4948:97;5104:2;5093:9;5089:18;5076:32;5128:18;5120:6;5117:30;5114:2;;;5160:1;5157;5150:12;5114:2;5188:65;5245:7;5236:6;5225:9;5221:22;5188:65;;;5178:75;;;;5055:204;4880:389;;;;;;5276:113;5359:24;5377:5;5359:24;;;5354:3;5347:37;5341:48;;;5396:104;5473:21;5488:5;5473:21;;;5468:3;5461:34;5455:45;;;5507:113;5590:24;5608:5;5590:24;;;5585:3;5578:37;5572:48;;;5627:152;5728:45;5748:24;5766:5;5748:24;;;5728:45;;;5723:3;5716:58;5710:69;;;5786:347;;5898:39;5931:5;5898:39;;;5949:71;6013:6;6008:3;5949:71;;;5942:78;;6025:52;6070:6;6065:3;6058:4;6051:5;6047:16;6025:52;;;6098:29;6120:6;6098:29;;;6093:3;6089:39;6082:46;;5878:255;;;;;;6140:339;;6248:35;6277:5;6248:35;;;6295:71;6359:6;6354:3;6295:71;;;6288:78;;6371:52;6416:6;6411:3;6404:4;6397:5;6393:16;6371:52;;;6444:29;6466:6;6444:29;;;6439:3;6435:39;6428:46;;6228:251;;;;;;6487:374;;6647:67;6711:2;6706:3;6647:67;;;6640:74;;6747:34;6743:1;6738:3;6734:11;6727:55;6816:7;6811:2;6806:3;6802:12;6795:29;6852:2;6847:3;6843:12;6836:19;;6633:228;;;;6870:330;;7030:67;7094:2;7089:3;7030:67;;;7023:74;;7130:32;7126:1;7121:3;7117:11;7110:53;7191:2;7186:3;7182:12;7175:19;;7016:184;;;;7209:398;;7387:84;7469:1;7464:3;7387:84;;;7380:91;;7504:66;7500:1;7495:3;7491:11;7484:87;7599:1;7594:3;7590:11;7583:18;;7373:234;;;;7616:374;;7776:67;7840:2;7835:3;7776:67;;;7769:74;;7876:34;7872:1;7867:3;7863:11;7856:55;7945:7;7940:2;7935:3;7931:12;7924:29;7981:2;7976:3;7972:12;7965:19;;7762:228;;;;7999:492;;8177:85;8259:2;8254:3;8177:85;;;8170:92;;8295:34;8291:1;8286:3;8282:11;8275:55;8364:34;8359:2;8354:3;8350:12;8343:56;8433:20;8428:2;8423:3;8419:12;8412:42;8482:2;8477:3;8473:12;8466:19;;8163:328;;;;8500:375;;8660:67;8724:2;8719:3;8660:67;;;8653:74;;8760:34;8756:1;8751:3;8747:11;8740:55;8829:8;8824:2;8819:3;8815:12;8808:30;8866:2;8861:3;8857:12;8850:19;;8646:229;;;;8884:477;;9062:85;9144:2;9139:3;9062:85;;;9055:92;;9180:34;9176:1;9171:3;9167:11;9160:55;9249:34;9244:2;9239:3;9235:12;9228:56;9318:5;9313:2;9308:3;9304:12;9297:27;9352:2;9347:3;9343:12;9336:19;;9048:313;;;;9370:370;;9530:67;9594:2;9589:3;9530:67;;;9523:74;;9630:34;9626:1;9621:3;9617:11;9610:55;9699:3;9694:2;9689:3;9685:12;9678:25;9731:2;9726:3;9722:12;9715:19;;9516:224;;;;9749:396;;9909:67;9973:2;9968:3;9909:67;;;9902:74;;10009:34;10005:1;10000:3;9996:11;9989:55;10078:29;10073:2;10068:3;10064:12;10057:51;10136:2;10131:3;10127:12;10120:19;;9895:250;;;;10154:394;;10314:67;10378:2;10373:3;10314:67;;;10307:74;;10414:34;10410:1;10405:3;10401:11;10394:55;10483:27;10478:2;10473:3;10469:12;10462:49;10539:2;10534:3;10530:12;10523:19;;10300:248;;;;10557:330;;10717:67;10781:2;10776:3;10717:67;;;10710:74;;10817:32;10813:1;10808:3;10804:11;10797:53;10878:2;10873:3;10869:12;10862:19;;10703:184;;;;10896:324;;11056:67;11120:2;11115:3;11056:67;;;11049:74;;11156:26;11152:1;11147:3;11143:11;11136:47;11211:2;11206:3;11202:12;11195:19;;11042:178;;;;11229:431;;11407:85;11489:2;11484:3;11407:85;;;11400:92;;11525:34;11521:1;11516:3;11512:11;11505:55;11594:28;11589:2;11584:3;11580:12;11573:50;11651:2;11646:3;11642:12;11635:19;;11393:267;;;;11669:321;;11829:67;11893:2;11888:3;11829:67;;;11822:74;;11929:23;11925:1;11920:3;11916:11;11909:44;11981:2;11976:3;11972:12;11965:19;;11815:175;;;;11999:327;;12159:67;12223:2;12218:3;12159:67;;;12152:74;;12259:29;12255:1;12250:3;12246:11;12239:50;12317:2;12312:3;12308:12;12301:19;;12145:181;;;;12335:325;;12495:67;12559:2;12554:3;12495:67;;;12488:74;;12595:27;12591:1;12586:3;12582:11;12575:48;12651:2;12646:3;12642:12;12635:19;;12481:179;;;;12668:113;12751:24;12769:5;12751:24;;;12746:3;12739:37;12733:48;;;12788:110;12869:23;12886:5;12869:23;;;12864:3;12857:36;12851:47;;;12905:107;12984:22;13000:5;12984:22;;;12979:3;12972:35;12966:46;;;13019:124;13101:36;13131:5;13101:36;;;13096:3;13089:49;13083:60;;;13150:110;13231:23;13248:5;13231:23;;;13226:3;13219:36;13213:47;;;13267:650;;13522:148;13666:3;13522:148;;;13515:155;;13681:75;13752:3;13743:6;13681:75;;;13778:2;13773:3;13769:12;13762:19;;13792:75;13863:3;13854:6;13792:75;;;13889:2;13884:3;13880:12;13873:19;;13909:3;13902:10;;13503:414;;;;;;13924:372;;14123:148;14267:3;14123:148;;;14116:155;;14288:3;14281:10;;14104:192;;;;14303:372;;14502:148;14646:3;14502:148;;;14495:155;;14667:3;14660:10;;14483:192;;;;14682:372;;14881:148;15025:3;14881:148;;;14874:155;;15046:3;15039:10;;14862:192;;;;15061:213;;15179:2;15168:9;15164:18;15156:26;;15193:71;15261:1;15250:9;15246:17;15237:6;15193:71;;;15150:124;;;;;15281:523;;15475:2;15464:9;15460:18;15452:26;;15489:71;15557:1;15546:9;15542:17;15533:6;15489:71;;;15571:72;15639:2;15628:9;15624:18;15615:6;15571:72;;;15691:9;15685:4;15681:20;15676:2;15665:9;15661:18;15654:48;15716:78;15789:4;15780:6;15716:78;;;15708:86;;15446:358;;;;;;;15811:201;;15923:2;15912:9;15908:18;15900:26;;15937:65;15999:1;15988:9;15984:17;15975:6;15937:65;;;15894:118;;;;;16019:213;;16137:2;16126:9;16122:18;16114:26;;16151:71;16219:1;16208:9;16204:17;16195:6;16151:71;;;16108:124;;;;;16239:771;;16497:3;16486:9;16482:19;16474:27;;16512:71;16580:1;16569:9;16565:17;16556:6;16512:71;;;16594:72;16662:2;16651:9;16647:18;16638:6;16594:72;;;16677;16745:2;16734:9;16730:18;16721:6;16677:72;;;16760;16828:2;16817:9;16813:18;16804:6;16760:72;;;16843:73;16911:3;16900:9;16896:19;16887:6;16843:73;;;16927;16995:3;16984:9;16980:19;16971:6;16927:73;;;16468:542;;;;;;;;;;17017:547;;17219:3;17208:9;17204:19;17196:27;;17234:71;17302:1;17291:9;17287:17;17278:6;17234:71;;;17316:72;17384:2;17373:9;17369:18;17360:6;17316:72;;;17399;17467:2;17456:9;17452:18;17443:6;17399:72;;;17482;17550:2;17539:9;17535:18;17526:6;17482:72;;;17190:374;;;;;;;;17571:547;;17773:3;17762:9;17758:19;17750:27;;17788:71;17856:1;17845:9;17841:17;17832:6;17788:71;;;17870:72;17938:2;17927:9;17923:18;17914:6;17870:72;;;17953;18021:2;18010:9;18006:18;17997:6;17953:72;;;18036;18104:2;18093:9;18089:18;18080:6;18036:72;;;17744:374;;;;;;;;18125:539;;18323:3;18312:9;18308:19;18300:27;;18338:71;18406:1;18395:9;18391:17;18382:6;18338:71;;;18420:68;18484:2;18473:9;18469:18;18460:6;18420:68;;;18499:72;18567:2;18556:9;18552:18;18543:6;18499:72;;;18582;18650:2;18639:9;18635:18;18626:6;18582:72;;;18294:370;;;;;;;;18671:293;;18805:2;18794:9;18790:18;18782:26;;18855:9;18849:4;18845:20;18841:1;18830:9;18826:17;18819:47;18880:74;18949:4;18940:6;18880:74;;;18872:82;;18776:188;;;;;18971:301;;19109:2;19098:9;19094:18;19086:26;;19159:9;19153:4;19149:20;19145:1;19134:9;19130:17;19123:47;19184:78;19257:4;19248:6;19184:78;;;19176:86;;19080:192;;;;;19279:407;;19470:2;19459:9;19455:18;19447:26;;19520:9;19514:4;19510:20;19506:1;19495:9;19491:17;19484:47;19545:131;19671:4;19545:131;;;19537:139;;19441:245;;;;19693:407;;19884:2;19873:9;19869:18;19861:26;;19934:9;19928:4;19924:20;19920:1;19909:9;19905:17;19898:47;19959:131;20085:4;19959:131;;;19951:139;;19855:245;;;;20107:407;;20298:2;20287:9;20283:18;20275:26;;20348:9;20342:4;20338:20;20334:1;20323:9;20319:17;20312:47;20373:131;20499:4;20373:131;;;20365:139;;20269:245;;;;20521:407;;20712:2;20701:9;20697:18;20689:26;;20762:9;20756:4;20752:20;20748:1;20737:9;20733:17;20726:47;20787:131;20913:4;20787:131;;;20779:139;;20683:245;;;;20935:407;;21126:2;21115:9;21111:18;21103:26;;21176:9;21170:4;21166:20;21162:1;21151:9;21147:17;21140:47;21201:131;21327:4;21201:131;;;21193:139;;21097:245;;;;21349:407;;21540:2;21529:9;21525:18;21517:26;;21590:9;21584:4;21580:20;21576:1;21565:9;21561:17;21554:47;21615:131;21741:4;21615:131;;;21607:139;;21511:245;;;;21763:407;;21954:2;21943:9;21939:18;21931:26;;22004:9;21998:4;21994:20;21990:1;21979:9;21975:17;21968:47;22029:131;22155:4;22029:131;;;22021:139;;21925:245;;;;22177:407;;22368:2;22357:9;22353:18;22345:26;;22418:9;22412:4;22408:20;22404:1;22393:9;22389:17;22382:47;22443:131;22569:4;22443:131;;;22435:139;;22339:245;;;;22591:407;;22782:2;22771:9;22767:18;22759:26;;22832:9;22826:4;22822:20;22818:1;22807:9;22803:17;22796:47;22857:131;22983:4;22857:131;;;22849:139;;22753:245;;;;23005:407;;23196:2;23185:9;23181:18;23173:26;;23246:9;23240:4;23236:20;23232:1;23221:9;23217:17;23210:47;23271:131;23397:4;23271:131;;;23263:139;;23167:245;;;;23419:407;;23610:2;23599:9;23595:18;23587:26;;23660:9;23654:4;23650:20;23646:1;23635:9;23631:17;23624:47;23685:131;23811:4;23685:131;;;23677:139;;23581:245;;;;23833:407;;24024:2;24013:9;24009:18;24001:26;;24074:9;24068:4;24064:20;24060:1;24049:9;24045:17;24038:47;24099:131;24225:4;24099:131;;;24091:139;;23995:245;;;;24247:213;;24365:2;24354:9;24350:18;24342:26;;24379:71;24447:1;24436:9;24432:17;24423:6;24379:71;;;24336:124;;;;;24467:209;;24583:2;24572:9;24568:18;24560:26;;24597:69;24663:1;24652:9;24648:17;24639:6;24597:69;;;24554:122;;;;;24683:316;;24825:2;24814:9;24810:18;24802:26;;24839:69;24905:1;24894:9;24890:17;24881:6;24839:69;;;24919:70;24985:2;24974:9;24970:18;24961:6;24919:70;;;24796:203;;;;;;25006:205;;25120:2;25109:9;25105:18;25097:26;;25134:67;25198:1;25187:9;25183:17;25174:6;25134:67;;;25091:120;;;;;25218:211;;25335:2;25324:9;25320:18;25312:26;;25349:70;25416:1;25405:9;25401:17;25392:6;25349:70;;;25306:123;;;;;25436:209;;25552:2;25541:9;25537:18;25529:26;;25566:69;25632:1;25621:9;25617:17;25608:6;25566:69;;;25523:122;;;;;25652:320;;25796:2;25785:9;25781:18;25773:26;;25810:70;25877:1;25866:9;25862:17;25853:6;25810:70;;;25891:71;25958:2;25947:9;25943:18;25934:6;25891:71;;;25767:205;;;;;;25979:118;;26069:5;26063:12;26053:22;;26034:63;;;;26104:122;;26198:5;26192:12;26182:22;;26163:63;;;;26234:163;;26349:6;26344:3;26337:19;26386:4;26381:3;26377:14;26362:29;;26330:67;;;;;26406:145;;26542:3;26527:18;;26520:31;;;;;26559:91;;26621:24;26639:5;26621:24;;;26610:35;;26604:46;;;;26657:85;;26730:5;26723:13;26716:21;26705:32;;26699:43;;;;26749:72;;26811:5;26800:16;;26794:27;;;;26828:121;;26901:42;26894:5;26890:54;26879:65;;26873:76;;;;26956:72;;27018:5;27007:16;;27001:27;;;;27035:88;;27107:10;27100:5;27096:22;27085:33;;27079:44;;;;27130:81;;27201:4;27194:5;27190:16;27179:27;;27173:38;;;;27218:104;;27290:26;27283:5;27279:38;27268:49;;27262:60;;;;27329:106;;27407:23;27424:5;27407:23;;;27394:36;;27388:47;;;;27443:268;27508:1;27515:101;27529:6;27526:1;27523:13;27515:101;;;27605:1;27600:3;27596:11;27590:18;27586:1;27581:3;27577:11;27570:39;27551:2;27548:1;27544:10;27539:15;;27515:101;;;27631:6;27628:1;27625:13;27622:2;;;27696:1;27687:6;27682:3;27678:16;27671:27;27622:2;27492:219;;;;;27719:74;;27783:5;27772:16;;27766:27;;;;27800:97;;27888:2;27884:7;27879:2;27872:5;27868:14;27864:28;27854:38;;27848:49;;;;27905:117;27974:24;27992:5;27974:24;;;27967:5;27964:35;27954:2;;28013:1;28010;28003:12;27954:2;27948:74;;28029:117;28098:24;28116:5;28098:24;;;28091:5;28088:35;28078:2;;28137:1;28134;28127:12;28078:2;28072:74;;28153:117;28222:24;28240:5;28222:24;;;28215:5;28212:35;28202:2;;28261:1;28258;28251:12;28202:2;28196:74;;28277:115;28345:23;28362:5;28345:23;;;28338:5;28335:34;28325:2;;28383:1;28380;28373:12;28325:2;28319:73;;28399:113;28466:22;28482:5;28466:22;;;28459:5;28456:33;28446:2;;28503:1;28500;28493:12;28446:2;28440:72;
Swarm Source
bzzr://741aabdc2a5db55c1094c469bd4a67c8a616ed783d0ed3afe4502d53ca679e6b