ERC-721
Overview
Max Total Supply
750 FALT
Holders
237
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 FALTLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
RecentHistory
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "erc721a/contracts/ERC721A.sol";import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";import "@openzeppelin/contracts/token/common/ERC2981.sol";import "operator-filter-registry/src/DefaultOperatorFilterer.sol";contract RecentHistory is ERC721A, Ownable, ERC2981, DefaultOperatorFilterer {// permanent royalty BPS value for collectionuint96 constant royaltyBPS = 10_00;// Address for withdraw ETH from mint. By default - contract owneraddress private _withdrawAddress;// Limit emission amountuint256 private immutable _limitEmission;// Limit emission for private sale per one mintuint256 private immutable _privateSaleLimit;// Limit emission for private sale only. By default equals `_limitEmission`uint256 private _privateSaleLimitEmission;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)pragma solidity ^0.8.0;import "../utils/introspection/IERC165.sol";/*** @dev Interface for the NFT Royalty Standard.** A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal* support for royalty payments across all NFT marketplaces and ecosystem participants.** _Available since v4.5._*/interface IERC2981 is IERC165 {/*** @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.*/function royaltyInfo(uint256 tokenId, uint256 salePrice)externalviewreturns (address receiver, uint256 royaltyAmount);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/common/ERC2981.sol)pragma solidity ^0.8.0;import "../../interfaces/IERC2981.sol";import "../../utils/introspection/ERC165.sol";/*** @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.** Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for* specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.** Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the* fee is specified in basis points by default.** IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See* https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to* voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.** _Available since v4.5._*/abstract contract ERC2981 is IERC2981, ERC165 {struct RoyaltyInfo {address receiver;
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/ECDSA.sol)pragma solidity ^0.8.0;import "../Strings.sol";/*** @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.** These functions can be used to verify that a message was signed by the holder* of the private keys of a given address.*/library ECDSA {enum RecoverError {NoError,InvalidSignature,InvalidSignatureLength,InvalidSignatureS,InvalidSignatureV // Deprecated in v4.8}function _throwError(RecoverError error) private pure {if (error == RecoverError.NoError) {return; // no error: do nothing} else if (error == RecoverError.InvalidSignature) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)pragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```** Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.*/abstract contract ERC165 is IERC165 {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)pragma solidity ^0.8.0;/*** @dev Standard math utilities missing in the Solidity language.*/library Math {enum Rounding {Down, // Toward negative infinityUp, // Toward infinityZero // Toward zero}/*** @dev Returns the largest of two numbers.*/function max(uint256 a, uint256 b) internal pure returns (uint256) {return a > b ? a : b;}/*** @dev Returns the smallest of two numbers.*/function min(uint256 a, uint256 b) internal pure returns (uint256) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)pragma solidity ^0.8.0;import "./math/Math.sol";/*** @dev String operations.*/library Strings {bytes16 private constant _SYMBOLS = "0123456789abcdef";uint8 private constant _ADDRESS_LENGTH = 20;/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {unchecked {uint256 length = Math.log10(value) + 1;string memory buffer = new string(length);uint256 ptr;/// @solidity memory-safe-assemblyassembly {ptr := add(buffer, add(32, length))}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma solidity ^0.8.4;import './IERC721A.sol';/*** @dev Interface of ERC721 token receiver.*/interface ERC721A__IERC721Receiver {function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);}/*** @title ERC721A** @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)* Non-Fungible Token Standard, including the Metadata extension.* Optimized for lower gas during batch mints.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma solidity ^0.8.4;/*** @dev Interface of ERC721A.*/interface IERC721A {/*** The caller must own the token or be an approved operator.*/error ApprovalCallerNotOwnerNorApproved();/*** The token does not exist.*/error ApprovalQueryForNonexistentToken();/*** Cannot query the balance for the zero address.*/error BalanceQueryForZeroAddress();/**
1234567891011121314151617// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {OperatorFilterer} from "./OperatorFilterer.sol";import {CANONICAL_CORI_SUBSCRIPTION} from "./lib/Constants.sol";/*** @title DefaultOperatorFilterer* @notice Inherits from OperatorFilterer and automatically subscribes to the default OpenSea subscription.* @dev Please note that if your token contract does not provide an owner with EIP-173, it must provide* administration methods on the contract itself to interact with the registry otherwise the subscription* will be locked to the options set during construction.*/abstract contract DefaultOperatorFilterer is OperatorFilterer {/// @dev The constructor that is called when the contract is being deployed.constructor() OperatorFilterer(CANONICAL_CORI_SUBSCRIPTION, true) {}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;interface IOperatorFilterRegistry {/*** @notice Returns true if operator is not filtered for a given token, either by address or codeHash. Also returns* true if supplied registrant address is not registered.*/function isOperatorAllowed(address registrant, address operator) external view returns (bool);/*** @notice Registers an address with the registry. May be called by address itself or by EIP-173 owner.*/function register(address registrant) external;/*** @notice Registers an address with the registry and "subscribes" to another address's filtered operators and codeHashes.*/function registerAndSubscribe(address registrant, address subscription) external;/*** @notice Registers an address with the registry and copies the filtered operators and codeHashes from another* address without subscribing.*/function registerAndCopyEntries(address registrant, address registrantToCopy) external;
12345// SPDX-License-Identifier: MITpragma solidity ^0.8.13;address constant CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS = 0x000000000000AAeB6D7670E522A718067333cd4E;address constant CANONICAL_CORI_SUBSCRIPTION = 0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";import {CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS} from "./lib/Constants.sol";/*** @title OperatorFilterer* @notice Abstract contract whose constructor automatically registers and optionally subscribes to or copies another* registrant's entries in the OperatorFilterRegistry.* @dev This smart contract is meant to be inherited by token contracts so they can use the following:* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.* Please note that if your token contract does not provide an owner with EIP-173, it must provide* administration methods on the contract itself to interact with the registry otherwise the subscription* will be locked to the options set during construction.*/abstract contract OperatorFilterer {/// @dev Emitted when an operator is not allowed.error OperatorNotAllowed(address operator);IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY =IOperatorFilterRegistry(CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS);/// @dev The constructor that is called when the contract is being deployed.constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {
12345678910111213141516171819{"optimizer": {"enabled": false,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"limitEmission_","type":"uint256"},{"internalType":"uint256","name":"privateSaleLimit_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"freeze","type":"bool"}],"name":"CollectionFreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"metadata","type":"string"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"PrivateSaleStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"PublicSaleStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"SetPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OPERATOR_FILTER_REGISTRY","outputs":[{"internalType":"contract IOperatorFilterRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipPrivateSaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipPublicSaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freezeCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLimitEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMetadata","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrivateSaleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrivateSaleLimitEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWithdrawAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCollectionFreeze","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPrivateSaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPublicSaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"message","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"mintPresale","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"setPrivateSaleLimitEmission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setWithdrawAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"metadata","type":"string"}],"name":"updateMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b5060405162005d9a38038062005d9a83398181016040528101906200003791906200076b565b733cc6cdda760b79bafa08df41ecfa224f810dceb660018585816002908162000061919062000a5c565b50806003908162000073919062000a5c565b50620000846200031960201b60201c565b6000819055505050620000ac620000a06200032260201b60201c565b6200032a60201b60201c565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002a157801562000167576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200012d92919062000b88565b600060405180830381600087803b1580156200014857600080fd5b505af11580156200015d573d6000803e3d6000fd5b50505050620002a0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000221576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b8152600401620001e792919062000b88565b600060405180830381600087803b1580156200020257600080fd5b505af115801562000217573d6000803e3d6000fd5b505050506200029f565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b81526004016200026a919062000bb5565b600060405180830381600087803b1580156200028557600080fd5b505af11580156200029a573d6000803e3d6000fd5b505050505b5b5b505081608081815250508060a0818152505081600c8190555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200030f336103e8620003f060201b60201c565b5050505062000ced565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620004006200059360201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111562000461576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004589062000c59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ca9062000ccb565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600960008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000612710905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200060682620005bb565b810181811067ffffffffffffffff82111715620006285762000627620005cc565b5b80604052505050565b60006200063d6200059d565b90506200064b8282620005fb565b919050565b600067ffffffffffffffff8211156200066e576200066d620005cc565b5b6200067982620005bb565b9050602081019050919050565b60005b83811015620006a657808201518184015260208101905062000689565b60008484015250505050565b6000620006c9620006c38462000650565b62000631565b905082815260208101848484011115620006e857620006e7620005b6565b5b620006f584828562000686565b509392505050565b600082601f830112620007155762000714620005b1565b5b815162000727848260208601620006b2565b91505092915050565b6000819050919050565b620007458162000730565b81146200075157600080fd5b50565b60008151905062000765816200073a565b92915050565b60008060008060808587031215620007885762000787620005a7565b5b600085015167ffffffffffffffff811115620007a957620007a8620005ac565b5b620007b787828801620006fd565b945050602085015167ffffffffffffffff811115620007db57620007da620005ac565b5b620007e987828801620006fd565b9350506040620007fc8782880162000754565b92505060606200080f8782880162000754565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200086e57607f821691505b60208210810362000884576200088362000826565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008af565b620008fa8683620008af565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200093d62000937620009318462000730565b62000912565b62000730565b9050919050565b6000819050919050565b62000959836200091c565b62000971620009688262000944565b848454620008bc565b825550505050565b600090565b6200098862000979565b620009958184846200094e565b505050565b5b81811015620009bd57620009b16000826200097e565b6001810190506200099b565b5050565b601f82111562000a0c57620009d6816200088a565b620009e1846200089f565b81016020851015620009f1578190505b62000a0962000a00856200089f565b8301826200099a565b50505b505050565b600082821c905092915050565b600062000a316000198460080262000a11565b1980831691505092915050565b600062000a4c838362000a1e565b9150826002028217905092915050565b62000a67826200081b565b67ffffffffffffffff81111562000a835762000a82620005cc565b5b62000a8f825462000855565b62000a9c828285620009c1565b600060209050601f83116001811462000ad4576000841562000abf578287015190505b62000acb858262000a3e565b86555062000b3b565b601f19841662000ae4866200088a565b60005b8281101562000b0e5784890151825560018201915060208501945060208101905062000ae7565b8683101562000b2e578489015162000b2a601f89168262000a1e565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b708262000b43565b9050919050565b62000b828162000b63565b82525050565b600060408201905062000b9f600083018562000b77565b62000bae602083018462000b77565b9392505050565b600060208201905062000bcc600083018462000b77565b92915050565b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b600062000c41602a8362000bd2565b915062000c4e8262000be3565b604082019050919050565b6000602082019050818103600083015262000c748162000c32565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600062000cb360198362000bd2565b915062000cc08262000c7b565b602082019050919050565b6000602082019050818103600083015262000ce68162000ca4565b9050919050565b60805160a05161507962000d2160003960008181610cf90152610ebf015260008181610de8015261265101526150796000f3fe6080604052600436106102255760003560e01c80637a5b4f5911610123578063a22cb465116100ab578063da6f10b41161006f578063da6f10b41461076e578063e029d8f214610797578063e8e7f800146107c2578063e985e9c5146107ed578063f2fde38b1461082a57610225565b8063a22cb465146106aa578063b5b781c5146106d3578063b88d4fde146106ea578063c87b56dd14610706578063d8a9e1e91461074357610225565b8063918b5be1116100f2578063918b5be1146105e657806391b7f5ed1461060f57806395d89b411461063857806398d5fdca14610663578063a0712d681461068e57610225565b80637a5b4f59146105625780638da5cb5b1461058d5780638dc7a430146105b85780638ec1d651146105cf57610225565b80632f2dc93b116101b157806342f04f341161017557806342f04f341461048c578063449a52f8146104a85780636352211e146104d157806370a082311461050e578063715018a61461054b57610225565b80632f2dc93b146103c65780633ab1a494146103f15780633b82eeba1461041a57806341f434341461044557806342842e0e1461047057610225565b806318160ddd116101f857806318160ddd146102eb5780631e84c4131461031657806323b872dd14610341578063254fb4221461035d5780632a55205a1461038857610225565b806301ffc9a71461022a57806306fdde0314610267578063081812fc14610292578063095ea7b3146102cf575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190613338565b610853565b60405161025e9190613380565b60405180910390f35b34801561027357600080fd5b5061027c61094d565b604051610289919061342b565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613483565b6109df565b6040516102c691906134f1565b60405180910390f35b6102e960048036038101906102e49190613538565b610a5e565b005b3480156102f757600080fd5b50610300610a77565b60405161030d9190613587565b60405180910390f35b34801561032257600080fd5b5061032b610a8e565b6040516103389190613380565b60405180910390f35b61035b600480360381019061035691906135a2565b610aa5565b005b34801561036957600080fd5b50610372610af4565b60405161037f9190613380565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa91906135f5565b610b0b565b6040516103bd929190613635565b60405180910390f35b3480156103d257600080fd5b506103db610cf5565b6040516103e89190613587565b60405180910390f35b3480156103fd57600080fd5b506104186004803603810190610413919061365e565b610d1d565b005b34801561042657600080fd5b5061042f610de4565b60405161043c9190613587565b60405180910390f35b34801561045157600080fd5b5061045a610e0c565b60405161046791906136ea565b60405180910390f35b61048a600480360381019061048591906135a2565b610e1e565b005b6104a660048036038101906104a191906137a0565b610e6d565b005b3480156104b457600080fd5b506104cf60048036038101906104ca9190613538565b611109565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190613483565b61126a565b60405161050591906134f1565b60405180910390f35b34801561051a57600080fd5b506105356004803603810190610530919061365e565b61127c565b6040516105429190613587565b60405180910390f35b34801561055757600080fd5b50610560611334565b005b34801561056e57600080fd5b50610577611348565b604051610584919061342b565b60405180910390f35b34801561059957600080fd5b506105a26113da565b6040516105af91906134f1565b60405180910390f35b3480156105c457600080fd5b506105cd611404565b005b3480156105db57600080fd5b506105e46114ce565b005b3480156105f257600080fd5b5061060d60048036038101906106089190613944565b6115d9565b005b34801561061b57600080fd5b5061063660048036038101906106319190613483565b61167c565b005b34801561064457600080fd5b5061064d6117fa565b60405161065a919061342b565b60405180910390f35b34801561066f57600080fd5b5061067861188c565b6040516106859190613587565b60405180910390f35b6106a860048036038101906106a39190613483565b611896565b005b3480156106b657600080fd5b506106d160048036038101906106cc91906139b9565b611a6b565b005b3480156106df57600080fd5b506106e8611a84565b005b61070460048036038101906106ff9190613a9a565b611b4e565b005b34801561071257600080fd5b5061072d60048036038101906107289190613483565b611b9f565b60405161073a919061342b565b60405180910390f35b34801561074f57600080fd5b50610758611c3d565b6040516107659190613380565b60405180910390f35b34801561077a57600080fd5b5061079560048036038101906107909190613483565b611c54565b005b3480156107a357600080fd5b506107ac611cf2565b6040516107b99190613587565b60405180910390f35b3480156107ce57600080fd5b506107d7611cfc565b6040516107e491906134f1565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190613b1d565b611d2e565b6040516108219190613380565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c919061365e565b611dc2565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108ae57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108de5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061094657507f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461095c90613b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461098890613b8c565b80156109d55780601f106109aa576101008083540402835291602001916109d5565b820191906000526020600020905b8154815290600101906020018083116109b857829003601f168201915b5050505050905090565b60006109ea82611e45565b610a20576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b81610a6881611ea4565b610a728383611fa1565b505050565b6000610a816120e5565b6001546000540303905090565b6000600d60019054906101000a900460ff16905090565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ae357610ae233611ea4565b5b610aee8484846120ee565b50505050565b6000600d60029054906101000a900460ff16905090565b6000806000600a60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610ca05760096040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610caa612410565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610cd69190613bec565b610ce09190613c5d565b90508160000151819350935050509250929050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b610d2561241a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90613d00565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de1816103e8612498565b50565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e5c57610e5b33611ea4565b5b610e6784848461262d565b50505050565b600d60029054906101000a900460ff1615610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490613d92565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000841115610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613e24565b60405180910390fd5b610f298461264d565b158015610f3c5750610f3a8461268b565b155b610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290613eb6565b60405180910390fd5b60008411610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590613f48565b60405180910390fd5b610fc98383836126ab565b611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff90613fda565b60405180910390fd5b6110138333866126f6565b611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990614046565b60405180910390fd5b600d60009054906101000a900460ff166110a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611098906140d8565b60405180910390fd5b83600e546110af9190613bec565b34146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e79061416a565b60405180910390fd5b6110fa338561272c565b611103346128e7565b50505050565b61111161241a565b600d60029054906101000a900460ff1615611161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115890613d92565b60405180910390fd5b61116a8161264d565b156111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613eb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906141fc565b60405180910390fd5b6000811161125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390613f48565b60405180910390fd5b611266828261272c565b5050565b600061127582612953565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112e3576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61133c61241a565b6113466000612a1f565b565b6060600f805461135790613b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461138390613b8c565b80156113d05780601f106113a5576101008083540402835291602001916113d0565b820191906000526020600020905b8154815290600101906020018083116113b357829003601f168201915b5050505050905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61140c61241a565b600d60019054906101000a900460ff161561145c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114539061428e565b60405180910390fd5b600d60009054906101000a900460ff1615600d60006101000a81548160ff0219169083151502179055507f6d8bc60e3182a90de857061d6cb59fc818a3a4905a053734851e62c9e88398b6600d60009054906101000a900460ff166040516114c49190613380565b60405180910390a1565b6114d661241a565b600d60009054906101000a900460ff1615611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90614320565b60405180910390fd5b600d60019054906101000a900460ff1615611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d9061428e565b60405180910390fd5b6001600d60026101000a81548160ff0219169083151502179055507faa1eefbb4a91e7bb630be41fdbdf13bb2e6d43309d79efad6f606d7f2cd483b4600d60029054906101000a900460ff166040516115cf9190613380565b60405180910390a1565b6115e161241a565b600d60029054906101000a900460ff1615611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613d92565b60405180910390fd5b80600f908161164091906144e2565b507f39b240244d76a12ce7613ed620720abc7a581774d12f26cda3b6b5d3ed535a31600f6040516116719190614638565b60405180910390a150565b61168461241a565b600d60029054906101000a900460ff16156116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613d92565b60405180910390fd5b600d60009054906101000a900460ff1615611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90614320565b60405180910390fd5b600d60019054906101000a900460ff1615611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b9061428e565b60405180910390fd5b600081036117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae906146cc565b60405180910390fd5b80600e819055507f4f5539c0409dfc4cb06f64cbd31237e1fbfe443f531584bf4dd77ec7fc5ba7b1600e546040516117ef9190613587565b60405180910390a150565b60606003805461180990613b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461183590613b8c565b80156118825780601f1061185757610100808354040283529160200191611882565b820191906000526020600020905b81548152906001019060200180831161186557829003601f168201915b5050505050905090565b6000600e54905090565b600d60029054906101000a900460ff16156118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90613d92565b60405180910390fd5b6118ef8161264d565b1561192f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192690613eb6565b60405180910390fd5b6000600e5411611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b9061475e565b60405180910390fd5b600d60019054906101000a900460ff166119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba906147f0565b60405180910390fd5b80600e546119d19190613bec565b3414611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a099061416a565b60405180910390fd5b60008111611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90613f48565b60405180910390fd5b611a5f338261272c565b611a68346128e7565b50565b81611a7581611ea4565b611a7f8383612ae5565b505050565b611a8c61241a565b600d60009054906101000a900460ff1615611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390614320565b60405180910390fd5b600d60019054906101000a900460ff1615600d60016101000a81548160ff0219169083151502179055507f36b97db79058521017a18d3f5261657061fa019ef5637747834f022e588ec074600d60019054906101000a900460ff16604051611b449190613380565b60405180910390a1565b833373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b8c57611b8b33611ea4565b5b611b9885858585612bf0565b5050505050565b6060611baa82611e45565b611be0576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611bea612c63565b90506000815103611c0a5760405180602001604052806000815250611c35565b80611c1484612cf5565b604051602001611c2592919061484c565b6040516020818303038152906040525b915050919050565b6000600d60009054906101000a900460ff16905090565b611c5c61241a565b60008103611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c96906148e2565b60405180910390fd5b611ca7610a77565b8111611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf90614974565b60405180910390fd5b80600c8190555050565b6000600c54905090565b6000611d0661241a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611dca61241a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090614a06565b60405180910390fd5b611e4281612a1f565b50565b600081611e506120e5565b11158015611e5f575060005482105b8015611e9d575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611f9e576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611f1b929190614a26565b602060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5c9190614a64565b611f9d57806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401611f9491906134f1565b60405180910390fd5b5b50565b6000611fac8261126a565b90508073ffffffffffffffffffffffffffffffffffffffff16611fcd612d45565b73ffffffffffffffffffffffffffffffffffffffff161461203057611ff981611ff4612d45565b611d2e565b61202f576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b60006120f982612953565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612160576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061216c84612d4d565b91509150612182818761217d612d45565b612d74565b6121ce5761219786612192612d45565b611d2e565b6121cd576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612234576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122418686866001612db8565b801561224c57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001019190508190555061231a856122f6888887612dbe565b7c020000000000000000000000000000000000000000000000000000000017612de6565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036123a0576000600185019050600060046000838152602001908152602001600020540361239e57600054811461239d578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46124088686866001612e11565b505050505050565b6000612710905090565b612422612e17565b73ffffffffffffffffffffffffffffffffffffffff166124406113da565b73ffffffffffffffffffffffffffffffffffffffff1614612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248d90614add565b60405180910390fd5b565b6124a0612410565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156124fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f590614b6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490614bdb565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600960008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b61264883838360405180602001604052806000815250611b4e565b505050565b60007f0000000000000000000000000000000000000000000000000000000000000000612678610a77565b836126839190614bfb565b119050919050565b6000600c54612698610a77565b836126a39190614bfb565b119050919050565b60006126b56113da565b73ffffffffffffffffffffffffffffffffffffffff166126d6858585612e1f565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b6000828260405160200161270b929190614c98565b60405160208183030381529060405280519060200120841490509392505050565b6000805490506000820361276c576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127796000848385612db8565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127f0836127e16000866000612dbe565b6127ea85612ea3565b17612de6565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461289157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612856565b50600082036128cc576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506128e26000848385612e11565b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561294f573d6000803e3d6000fd5b5050565b600080829050806129626120e5565b116129e8576000548110156129e75760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216036129e5575b600081036129db5760046000836001900393508381526020019081526020016000205490506129b1565b8092505050612a1a565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060076000612af2612d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612b9f612d45565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612be49190613380565b60405180910390a35050565b612bfb848484610aa5565b60008373ffffffffffffffffffffffffffffffffffffffff163b14612c5d57612c2684848484612eb3565b612c5c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6060600f8054612c7290613b8c565b80601f0160208091040260200160405190810160405280929190818152602001828054612c9e90613b8c565b8015612ceb5780601f10612cc057610100808354040283529160200191612ceb565b820191906000526020600020905b815481529060010190602001808311612cce57829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b600115612d3057600184039350600a81066030018453600a8104905080612d0e575b50828103602084039350808452505050919050565b600033905090565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612dd5868684613003565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b600033905090565b60008084604051602001612e339190614d31565b604051602081830303815290604052805190602001209050612e998185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061300c565b9150509392505050565b60006001821460e11b9050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612ed9612d45565b8786866040518563ffffffff1660e01b8152600401612efb9493929190614dac565b6020604051808303816000875af1925050508015612f3757506040513d601f19601f82011682018060405250810190612f349190614e0d565b60015b612fb0573d8060008114612f67576040519150601f19603f3d011682016040523d82523d6000602084013e612f6c565b606091505b506000815103612fa8576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60009392505050565b600080600061301b8585613033565b9150915061302881613084565b819250505092915050565b60008060418351036130745760008060006020860151925060408601519150606086015160001a9050613068878285856131ea565b9450945050505061307d565b60006002915091505b9250929050565b6000600481111561309857613097614e3a565b5b8160048111156130ab576130aa614e3a565b5b03156131e757600160048111156130c5576130c4614e3a565b5b8160048111156130d8576130d7614e3a565b5b03613118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310f90614eb5565b60405180910390fd5b6002600481111561312c5761312b614e3a565b5b81600481111561313f5761313e614e3a565b5b0361317f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317690614f21565b60405180910390fd5b6003600481111561319357613192614e3a565b5b8160048111156131a6576131a5614e3a565b5b036131e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131dd90614fb3565b60405180910390fd5b5b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c11156132255760006003915091506132c3565b60006001878787876040516000815260200160405260405161324a9493929190614ffe565b6020604051602081039080840390855afa15801561326c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036132ba576000600192509250506132c3565b80600092509250505b94509492505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613315816132e0565b811461332057600080fd5b50565b6000813590506133328161330c565b92915050565b60006020828403121561334e5761334d6132d6565b5b600061335c84828501613323565b91505092915050565b60008115159050919050565b61337a81613365565b82525050565b60006020820190506133956000830184613371565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d55780820151818401526020810190506133ba565b60008484015250505050565b6000601f19601f8301169050919050565b60006133fd8261339b565b61340781856133a6565b93506134178185602086016133b7565b613420816133e1565b840191505092915050565b6000602082019050818103600083015261344581846133f2565b905092915050565b6000819050919050565b6134608161344d565b811461346b57600080fd5b50565b60008135905061347d81613457565b92915050565b600060208284031215613499576134986132d6565b5b60006134a78482850161346e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134db826134b0565b9050919050565b6134eb816134d0565b82525050565b600060208201905061350660008301846134e2565b92915050565b613515816134d0565b811461352057600080fd5b50565b6000813590506135328161350c565b92915050565b6000806040838503121561354f5761354e6132d6565b5b600061355d85828601613523565b925050602061356e8582860161346e565b9150509250929050565b6135818161344d565b82525050565b600060208201905061359c6000830184613578565b92915050565b6000806000606084860312156135bb576135ba6132d6565b5b60006135c986828701613523565b93505060206135da86828701613523565b92505060406135eb8682870161346e565b9150509250925092565b6000806040838503121561360c5761360b6132d6565b5b600061361a8582860161346e565b925050602061362b8582860161346e565b9150509250929050565b600060408201905061364a60008301856134e2565b6136576020830184613578565b9392505050565b600060208284031215613674576136736132d6565b5b600061368284828501613523565b91505092915050565b6000819050919050565b60006136b06136ab6136a6846134b0565b61368b565b6134b0565b9050919050565b60006136c282613695565b9050919050565b60006136d4826136b7565b9050919050565b6136e4816136c9565b82525050565b60006020820190506136ff60008301846136db565b92915050565b6000819050919050565b61371881613705565b811461372357600080fd5b50565b6000813590506137358161370f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126137605761375f61373b565b5b8235905067ffffffffffffffff81111561377d5761377c613740565b5b60208301915083600182028301111561379957613798613745565b5b9250929050565b600080600080606085870312156137ba576137b96132d6565b5b60006137c88782880161346e565b94505060206137d987828801613726565b935050604085013567ffffffffffffffff8111156137fa576137f96132db565b5b6138068782880161374a565b925092505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613851826133e1565b810181811067ffffffffffffffff821117156138705761386f613819565b5b80604052505050565b60006138836132cc565b905061388f8282613848565b919050565b600067ffffffffffffffff8211156138af576138ae613819565b5b6138b8826133e1565b9050602081019050919050565b82818337600083830152505050565b60006138e76138e284613894565b613879565b90508281526020810184848401111561390357613902613814565b5b61390e8482856138c5565b509392505050565b600082601f83011261392b5761392a61373b565b5b813561393b8482602086016138d4565b91505092915050565b60006020828403121561395a576139596132d6565b5b600082013567ffffffffffffffff811115613978576139776132db565b5b61398484828501613916565b91505092915050565b61399681613365565b81146139a157600080fd5b50565b6000813590506139b38161398d565b92915050565b600080604083850312156139d0576139cf6132d6565b5b60006139de85828601613523565b92505060206139ef858286016139a4565b9150509250929050565b600067ffffffffffffffff821115613a1457613a13613819565b5b613a1d826133e1565b9050602081019050919050565b6000613a3d613a38846139f9565b613879565b905082815260208101848484011115613a5957613a58613814565b5b613a648482856138c5565b509392505050565b600082601f830112613a8157613a8061373b565b5b8135613a91848260208601613a2a565b91505092915050565b60008060008060808587031215613ab457613ab36132d6565b5b6000613ac287828801613523565b9450506020613ad387828801613523565b9350506040613ae48782880161346e565b925050606085013567ffffffffffffffff811115613b0557613b046132db565b5b613b1187828801613a6c565b91505092959194509250565b60008060408385031215613b3457613b336132d6565b5b6000613b4285828601613523565b9250506020613b5385828601613523565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ba457607f821691505b602082108103613bb757613bb6613b5d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bf78261344d565b9150613c028361344d565b9250828202613c108161344d565b91508282048414831517613c2757613c26613bbd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c688261344d565b9150613c738361344d565b925082613c8357613c82613c2e565b5b828204905092915050565b7f526563656e7420486973746f72793a206e657720616464726573732063616e2060008201527f6e6f74206265207a65726f206164647265737300000000000000000000000000602082015250565b6000613cea6033836133a6565b9150613cf582613c8e565b604082019050919050565b60006020820190508181036000830152613d1981613cdd565b9050919050565b7f526563656e7420486973746f72793a20636f6c6c656374696f6e20697320667260008201527f65657a6500000000000000000000000000000000000000000000000000000000602082015250565b6000613d7c6024836133a6565b9150613d8782613d20565b604082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b7f526563656e7420486973746f72793a20696e76616c696420746f6b656e73206160008201527f6d6f756e742c20736574206c65737320746f6b656e7300000000000000000000602082015250565b6000613e0e6036836133a6565b9150613e1982613db2565b604082019050919050565b60006020820190508181036000830152613e3d81613e01565b9050919050565b7f526563656e7420486973746f72793a206c696d697420656d697373696f6e207260008201527f6561636865640000000000000000000000000000000000000000000000000000602082015250565b6000613ea06026836133a6565b9150613eab82613e44565b604082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f526563656e7420486973746f72793a20616d6f756e742073686f756c6420626560008201527f206d6f7265207468616e20300000000000000000000000000000000000000000602082015250565b6000613f32602c836133a6565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f526563656e7420486973746f72793a20696e76616c6964207369676e6174757260008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46021836133a6565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b7f526563656e7420486973746f72793a20696e76616c6964206d65737361676500600082015250565b6000614030601f836133a6565b915061403b82613ffa565b602082019050919050565b6000602082019050818103600083015261405f81614023565b9050919050565b7f526563656e7420486973746f72793a20707269766174652073616c652069732060008201527f6e6f742061637469766500000000000000000000000000000000000000000000602082015250565b60006140c2602a836133a6565b91506140cd82614066565b604082019050919050565b600060208201905081810360008301526140f1816140b5565b9050919050565b7f526563656e7420486973746f72793a20696e76616c69642066756e647320616d60008201527f6f756e7400000000000000000000000000000000000000000000000000000000602082015250565b60006141546024836133a6565b915061415f826140f8565b604082019050919050565b6000602082019050818103600083015261418381614147565b9050919050565b7f526563656e7420486973746f72793a2063616e206e6f74206d696e7420746f2060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b60006141e6602c836133a6565b91506141f18261418a565b604082019050919050565b60006020820190508181036000830152614215816141d9565b9050919050565b7f526563656e7420486973746f72793a207075626c69632073616c65206973206160008201527f6374697665000000000000000000000000000000000000000000000000000000602082015250565b60006142786025836133a6565b91506142838261421c565b604082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b7f526563656e7420486973746f72793a20707269766174652073616c652069732060008201527f6163746976650000000000000000000000000000000000000000000000000000602082015250565b600061430a6026836133a6565b9150614315826142ae565b604082019050919050565b60006020820190508181036000830152614339816142fd565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026143a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614365565b6143ac8683614365565b95508019841693508086168417925050509392505050565b60006143df6143da6143d58461344d565b61368b565b61344d565b9050919050565b6000819050919050565b6143f9836143c4565b61440d614405826143e6565b848454614372565b825550505050565b600090565b614422614415565b61442d8184846143f0565b505050565b5b818110156144515761444660008261441a565b600181019050614433565b5050565b601f8211156144965761446781614340565b61447084614355565b8101602085101561447f578190505b61449361448b85614355565b830182614432565b50505b505050565b600082821c905092915050565b60006144b96000198460080261449b565b1980831691505092915050565b60006144d283836144a8565b9150826002028217905092915050565b6144eb8261339b565b67ffffffffffffffff81111561450457614503613819565b5b61450e8254613b8c565b614519828285614455565b600060209050601f83116001811461454c576000841561453a578287015190505b61454485826144c6565b8655506145ac565b601f19841661455a86614340565b60005b828110156145825784890151825560018201915060208501945060208101905061455d565b8683101561459f578489015161459b601f8916826144a8565b8355505b6001600288020188555050505b505050505050565b600081546145c181613b8c565b6145cb81866133a6565b945060018216600081146145e657600181146145fc5761462f565b60ff19831686528115156020028601935061462f565b61460585614340565b60005b8381101561462757815481890152600182019150602081019050614608565b808801955050505b50505092915050565b6000602082019050818103600083015261465281846145b4565b905092915050565b7f526563656e7420486973746f72793a2070726963652063616e206e6f7420626560008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b60006146b66022836133a6565b91506146c18261465a565b604082019050919050565b600060208201905081810360008301526146e5816146a9565b9050919050565b7f526563656e7420486973746f72793a20746f6b656e207072696365206973206e60008201527f6f74207365740000000000000000000000000000000000000000000000000000602082015250565b60006147486026836133a6565b9150614753826146ec565b604082019050919050565b600060208201905081810360008301526147778161473b565b9050919050565b7f526563656e7420486973746f72793a207075626c69632073616c65206973206e60008201527f6f74206163746976650000000000000000000000000000000000000000000000602082015250565b60006147da6029836133a6565b91506147e58261477e565b604082019050919050565b60006020820190508181036000830152614809816147cd565b9050919050565b600081905092915050565b60006148268261339b565b6148308185614810565b93506148408185602086016133b7565b80840191505092915050565b6000614858828561481b565b9150614864828461481b565b91508190509392505050565b7f526563656e7420486973746f72793a206c696d69742063616e206e6f7420626560008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b60006148cc6022836133a6565b91506148d782614870565b604082019050919050565b600060208201905081810360008301526148fb816148bf565b9050919050565b7f526563656e7420486973746f72793a206c696d69742073686f756c642062652060008201527f6d6f7265207468616e20746f74616c20737570706c7900000000000000000000602082015250565b600061495e6036836133a6565b915061496982614902565b604082019050919050565b6000602082019050818103600083015261498d81614951565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006149f06026836133a6565b91506149fb82614994565b604082019050919050565b60006020820190508181036000830152614a1f816149e3565b9050919050565b6000604082019050614a3b60008301856134e2565b614a4860208301846134e2565b9392505050565b600081519050614a5e8161398d565b92915050565b600060208284031215614a7a57614a796132d6565b5b6000614a8884828501614a4f565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614ac76020836133a6565b9150614ad282614a91565b602082019050919050565b60006020820190508181036000830152614af681614aba565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000614b59602a836133a6565b9150614b6482614afd565b604082019050919050565b60006020820190508181036000830152614b8881614b4c565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000614bc56019836133a6565b9150614bd082614b8f565b602082019050919050565b60006020820190508181036000830152614bf481614bb8565b9050919050565b6000614c068261344d565b9150614c118361344d565b9250828201905080821115614c2957614c28613bbd565b5b92915050565b60008160601b9050919050565b6000614c4782614c2f565b9050919050565b6000614c5982614c3c565b9050919050565b614c71614c6c826134d0565b614c4e565b82525050565b6000819050919050565b614c92614c8d8261344d565b614c77565b82525050565b6000614ca48285614c60565b601482019150614cb48284614c81565b6020820191508190509392505050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000614cfa601c83614810565b9150614d0582614cc4565b601c82019050919050565b6000819050919050565b614d2b614d2682613705565b614d10565b82525050565b6000614d3c82614ced565b9150614d488284614d1a565b60208201915081905092915050565b600081519050919050565b600082825260208201905092915050565b6000614d7e82614d57565b614d888185614d62565b9350614d988185602086016133b7565b614da1816133e1565b840191505092915050565b6000608082019050614dc160008301876134e2565b614dce60208301866134e2565b614ddb6040830185613578565b8181036060830152614ded8184614d73565b905095945050505050565b600081519050614e078161330c565b92915050565b600060208284031215614e2357614e226132d6565b5b6000614e3184828501614df8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000614e9f6018836133a6565b9150614eaa82614e69565b602082019050919050565b60006020820190508181036000830152614ece81614e92565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000614f0b601f836133a6565b9150614f1682614ed5565b602082019050919050565b60006020820190508181036000830152614f3a81614efe565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f9d6022836133a6565b9150614fa882614f41565b604082019050919050565b60006020820190508181036000830152614fcc81614f90565b9050919050565b614fdc81613705565b82525050565b600060ff82169050919050565b614ff881614fe2565b82525050565b60006080820190506150136000830187614fd3565b6150206020830186614fef565b61502d6040830185614fd3565b61503a6060830184614fd3565b9594505050505056fea26469706673582212208009b043666ef0897629130c509199a0479bc2c0e8be29960148937225a9771864736f6c63430008110033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000002ee000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000012466f722061204c696d697465642054696d650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000446414c5400000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102255760003560e01c80637a5b4f5911610123578063a22cb465116100ab578063da6f10b41161006f578063da6f10b41461076e578063e029d8f214610797578063e8e7f800146107c2578063e985e9c5146107ed578063f2fde38b1461082a57610225565b8063a22cb465146106aa578063b5b781c5146106d3578063b88d4fde146106ea578063c87b56dd14610706578063d8a9e1e91461074357610225565b8063918b5be1116100f2578063918b5be1146105e657806391b7f5ed1461060f57806395d89b411461063857806398d5fdca14610663578063a0712d681461068e57610225565b80637a5b4f59146105625780638da5cb5b1461058d5780638dc7a430146105b85780638ec1d651146105cf57610225565b80632f2dc93b116101b157806342f04f341161017557806342f04f341461048c578063449a52f8146104a85780636352211e146104d157806370a082311461050e578063715018a61461054b57610225565b80632f2dc93b146103c65780633ab1a494146103f15780633b82eeba1461041a57806341f434341461044557806342842e0e1461047057610225565b806318160ddd116101f857806318160ddd146102eb5780631e84c4131461031657806323b872dd14610341578063254fb4221461035d5780632a55205a1461038857610225565b806301ffc9a71461022a57806306fdde0314610267578063081812fc14610292578063095ea7b3146102cf575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190613338565b610853565b60405161025e9190613380565b60405180910390f35b34801561027357600080fd5b5061027c61094d565b604051610289919061342b565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613483565b6109df565b6040516102c691906134f1565b60405180910390f35b6102e960048036038101906102e49190613538565b610a5e565b005b3480156102f757600080fd5b50610300610a77565b60405161030d9190613587565b60405180910390f35b34801561032257600080fd5b5061032b610a8e565b6040516103389190613380565b60405180910390f35b61035b600480360381019061035691906135a2565b610aa5565b005b34801561036957600080fd5b50610372610af4565b60405161037f9190613380565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa91906135f5565b610b0b565b6040516103bd929190613635565b60405180910390f35b3480156103d257600080fd5b506103db610cf5565b6040516103e89190613587565b60405180910390f35b3480156103fd57600080fd5b506104186004803603810190610413919061365e565b610d1d565b005b34801561042657600080fd5b5061042f610de4565b60405161043c9190613587565b60405180910390f35b34801561045157600080fd5b5061045a610e0c565b60405161046791906136ea565b60405180910390f35b61048a600480360381019061048591906135a2565b610e1e565b005b6104a660048036038101906104a191906137a0565b610e6d565b005b3480156104b457600080fd5b506104cf60048036038101906104ca9190613538565b611109565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190613483565b61126a565b60405161050591906134f1565b60405180910390f35b34801561051a57600080fd5b506105356004803603810190610530919061365e565b61127c565b6040516105429190613587565b60405180910390f35b34801561055757600080fd5b50610560611334565b005b34801561056e57600080fd5b50610577611348565b604051610584919061342b565b60405180910390f35b34801561059957600080fd5b506105a26113da565b6040516105af91906134f1565b60405180910390f35b3480156105c457600080fd5b506105cd611404565b005b3480156105db57600080fd5b506105e46114ce565b005b3480156105f257600080fd5b5061060d60048036038101906106089190613944565b6115d9565b005b34801561061b57600080fd5b5061063660048036038101906106319190613483565b61167c565b005b34801561064457600080fd5b5061064d6117fa565b60405161065a919061342b565b60405180910390f35b34801561066f57600080fd5b5061067861188c565b6040516106859190613587565b60405180910390f35b6106a860048036038101906106a39190613483565b611896565b005b3480156106b657600080fd5b506106d160048036038101906106cc91906139b9565b611a6b565b005b3480156106df57600080fd5b506106e8611a84565b005b61070460048036038101906106ff9190613a9a565b611b4e565b005b34801561071257600080fd5b5061072d60048036038101906107289190613483565b611b9f565b60405161073a919061342b565b60405180910390f35b34801561074f57600080fd5b50610758611c3d565b6040516107659190613380565b60405180910390f35b34801561077a57600080fd5b5061079560048036038101906107909190613483565b611c54565b005b3480156107a357600080fd5b506107ac611cf2565b6040516107b99190613587565b60405180910390f35b3480156107ce57600080fd5b506107d7611cfc565b6040516107e491906134f1565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190613b1d565b611d2e565b6040516108219190613380565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c919061365e565b611dc2565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108ae57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108de5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061094657507f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461095c90613b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461098890613b8c565b80156109d55780601f106109aa576101008083540402835291602001916109d5565b820191906000526020600020905b8154815290600101906020018083116109b857829003601f168201915b5050505050905090565b60006109ea82611e45565b610a20576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b81610a6881611ea4565b610a728383611fa1565b505050565b6000610a816120e5565b6001546000540303905090565b6000600d60019054906101000a900460ff16905090565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ae357610ae233611ea4565b5b610aee8484846120ee565b50505050565b6000600d60029054906101000a900460ff16905090565b6000806000600a60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610ca05760096040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610caa612410565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610cd69190613bec565b610ce09190613c5d565b90508160000151819350935050509250929050565b60007f000000000000000000000000000000000000000000000000000000000000000a905090565b610d2561241a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90613d00565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de1816103e8612498565b50565b60007f00000000000000000000000000000000000000000000000000000000000002ee905090565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e5c57610e5b33611ea4565b5b610e6784848461262d565b50505050565b600d60029054906101000a900460ff1615610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490613d92565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000a841115610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613e24565b60405180910390fd5b610f298461264d565b158015610f3c5750610f3a8461268b565b155b610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290613eb6565b60405180910390fd5b60008411610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590613f48565b60405180910390fd5b610fc98383836126ab565b611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff90613fda565b60405180910390fd5b6110138333866126f6565b611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990614046565b60405180910390fd5b600d60009054906101000a900460ff166110a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611098906140d8565b60405180910390fd5b83600e546110af9190613bec565b34146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e79061416a565b60405180910390fd5b6110fa338561272c565b611103346128e7565b50505050565b61111161241a565b600d60029054906101000a900460ff1615611161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115890613d92565b60405180910390fd5b61116a8161264d565b156111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613eb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906141fc565b60405180910390fd5b6000811161125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390613f48565b60405180910390fd5b611266828261272c565b5050565b600061127582612953565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112e3576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61133c61241a565b6113466000612a1f565b565b6060600f805461135790613b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461138390613b8c565b80156113d05780601f106113a5576101008083540402835291602001916113d0565b820191906000526020600020905b8154815290600101906020018083116113b357829003601f168201915b5050505050905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61140c61241a565b600d60019054906101000a900460ff161561145c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114539061428e565b60405180910390fd5b600d60009054906101000a900460ff1615600d60006101000a81548160ff0219169083151502179055507f6d8bc60e3182a90de857061d6cb59fc818a3a4905a053734851e62c9e88398b6600d60009054906101000a900460ff166040516114c49190613380565b60405180910390a1565b6114d661241a565b600d60009054906101000a900460ff1615611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90614320565b60405180910390fd5b600d60019054906101000a900460ff1615611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d9061428e565b60405180910390fd5b6001600d60026101000a81548160ff0219169083151502179055507faa1eefbb4a91e7bb630be41fdbdf13bb2e6d43309d79efad6f606d7f2cd483b4600d60029054906101000a900460ff166040516115cf9190613380565b60405180910390a1565b6115e161241a565b600d60029054906101000a900460ff1615611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613d92565b60405180910390fd5b80600f908161164091906144e2565b507f39b240244d76a12ce7613ed620720abc7a581774d12f26cda3b6b5d3ed535a31600f6040516116719190614638565b60405180910390a150565b61168461241a565b600d60029054906101000a900460ff16156116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613d92565b60405180910390fd5b600d60009054906101000a900460ff1615611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90614320565b60405180910390fd5b600d60019054906101000a900460ff1615611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b9061428e565b60405180910390fd5b600081036117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae906146cc565b60405180910390fd5b80600e819055507f4f5539c0409dfc4cb06f64cbd31237e1fbfe443f531584bf4dd77ec7fc5ba7b1600e546040516117ef9190613587565b60405180910390a150565b60606003805461180990613b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461183590613b8c565b80156118825780601f1061185757610100808354040283529160200191611882565b820191906000526020600020905b81548152906001019060200180831161186557829003601f168201915b5050505050905090565b6000600e54905090565b600d60029054906101000a900460ff16156118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90613d92565b60405180910390fd5b6118ef8161264d565b1561192f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192690613eb6565b60405180910390fd5b6000600e5411611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b9061475e565b60405180910390fd5b600d60019054906101000a900460ff166119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba906147f0565b60405180910390fd5b80600e546119d19190613bec565b3414611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a099061416a565b60405180910390fd5b60008111611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90613f48565b60405180910390fd5b611a5f338261272c565b611a68346128e7565b50565b81611a7581611ea4565b611a7f8383612ae5565b505050565b611a8c61241a565b600d60009054906101000a900460ff1615611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390614320565b60405180910390fd5b600d60019054906101000a900460ff1615600d60016101000a81548160ff0219169083151502179055507f36b97db79058521017a18d3f5261657061fa019ef5637747834f022e588ec074600d60019054906101000a900460ff16604051611b449190613380565b60405180910390a1565b833373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b8c57611b8b33611ea4565b5b611b9885858585612bf0565b5050505050565b6060611baa82611e45565b611be0576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611bea612c63565b90506000815103611c0a5760405180602001604052806000815250611c35565b80611c1484612cf5565b604051602001611c2592919061484c565b6040516020818303038152906040525b915050919050565b6000600d60009054906101000a900460ff16905090565b611c5c61241a565b60008103611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c96906148e2565b60405180910390fd5b611ca7610a77565b8111611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf90614974565b60405180910390fd5b80600c8190555050565b6000600c54905090565b6000611d0661241a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611dca61241a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090614a06565b60405180910390fd5b611e4281612a1f565b50565b600081611e506120e5565b11158015611e5f575060005482105b8015611e9d575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611f9e576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611f1b929190614a26565b602060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5c9190614a64565b611f9d57806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401611f9491906134f1565b60405180910390fd5b5b50565b6000611fac8261126a565b90508073ffffffffffffffffffffffffffffffffffffffff16611fcd612d45565b73ffffffffffffffffffffffffffffffffffffffff161461203057611ff981611ff4612d45565b611d2e565b61202f576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b60006120f982612953565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612160576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061216c84612d4d565b91509150612182818761217d612d45565b612d74565b6121ce5761219786612192612d45565b611d2e565b6121cd576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612234576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122418686866001612db8565b801561224c57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001019190508190555061231a856122f6888887612dbe565b7c020000000000000000000000000000000000000000000000000000000017612de6565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036123a0576000600185019050600060046000838152602001908152602001600020540361239e57600054811461239d578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46124088686866001612e11565b505050505050565b6000612710905090565b612422612e17565b73ffffffffffffffffffffffffffffffffffffffff166124406113da565b73ffffffffffffffffffffffffffffffffffffffff1614612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248d90614add565b60405180910390fd5b565b6124a0612410565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156124fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f590614b6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490614bdb565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600960008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b61264883838360405180602001604052806000815250611b4e565b505050565b60007f00000000000000000000000000000000000000000000000000000000000002ee612678610a77565b836126839190614bfb565b119050919050565b6000600c54612698610a77565b836126a39190614bfb565b119050919050565b60006126b56113da565b73ffffffffffffffffffffffffffffffffffffffff166126d6858585612e1f565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b6000828260405160200161270b929190614c98565b60405160208183030381529060405280519060200120841490509392505050565b6000805490506000820361276c576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127796000848385612db8565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127f0836127e16000866000612dbe565b6127ea85612ea3565b17612de6565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461289157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612856565b50600082036128cc576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506128e26000848385612e11565b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561294f573d6000803e3d6000fd5b5050565b600080829050806129626120e5565b116129e8576000548110156129e75760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216036129e5575b600081036129db5760046000836001900393508381526020019081526020016000205490506129b1565b8092505050612a1a565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060076000612af2612d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612b9f612d45565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612be49190613380565b60405180910390a35050565b612bfb848484610aa5565b60008373ffffffffffffffffffffffffffffffffffffffff163b14612c5d57612c2684848484612eb3565b612c5c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6060600f8054612c7290613b8c565b80601f0160208091040260200160405190810160405280929190818152602001828054612c9e90613b8c565b8015612ceb5780601f10612cc057610100808354040283529160200191612ceb565b820191906000526020600020905b815481529060010190602001808311612cce57829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b600115612d3057600184039350600a81066030018453600a8104905080612d0e575b50828103602084039350808452505050919050565b600033905090565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612dd5868684613003565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b600033905090565b60008084604051602001612e339190614d31565b604051602081830303815290604052805190602001209050612e998185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061300c565b9150509392505050565b60006001821460e11b9050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612ed9612d45565b8786866040518563ffffffff1660e01b8152600401612efb9493929190614dac565b6020604051808303816000875af1925050508015612f3757506040513d601f19601f82011682018060405250810190612f349190614e0d565b60015b612fb0573d8060008114612f67576040519150601f19603f3d011682016040523d82523d6000602084013e612f6c565b606091505b506000815103612fa8576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60009392505050565b600080600061301b8585613033565b9150915061302881613084565b819250505092915050565b60008060418351036130745760008060006020860151925060408601519150606086015160001a9050613068878285856131ea565b9450945050505061307d565b60006002915091505b9250929050565b6000600481111561309857613097614e3a565b5b8160048111156130ab576130aa614e3a565b5b03156131e757600160048111156130c5576130c4614e3a565b5b8160048111156130d8576130d7614e3a565b5b03613118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310f90614eb5565b60405180910390fd5b6002600481111561312c5761312b614e3a565b5b81600481111561313f5761313e614e3a565b5b0361317f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317690614f21565b60405180910390fd5b6003600481111561319357613192614e3a565b5b8160048111156131a6576131a5614e3a565b5b036131e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131dd90614fb3565b60405180910390fd5b5b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c11156132255760006003915091506132c3565b60006001878787876040516000815260200160405260405161324a9493929190614ffe565b6020604051602081039080840390855afa15801561326c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036132ba576000600192509250506132c3565b80600092509250505b94509492505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613315816132e0565b811461332057600080fd5b50565b6000813590506133328161330c565b92915050565b60006020828403121561334e5761334d6132d6565b5b600061335c84828501613323565b91505092915050565b60008115159050919050565b61337a81613365565b82525050565b60006020820190506133956000830184613371565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d55780820151818401526020810190506133ba565b60008484015250505050565b6000601f19601f8301169050919050565b60006133fd8261339b565b61340781856133a6565b93506134178185602086016133b7565b613420816133e1565b840191505092915050565b6000602082019050818103600083015261344581846133f2565b905092915050565b6000819050919050565b6134608161344d565b811461346b57600080fd5b50565b60008135905061347d81613457565b92915050565b600060208284031215613499576134986132d6565b5b60006134a78482850161346e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134db826134b0565b9050919050565b6134eb816134d0565b82525050565b600060208201905061350660008301846134e2565b92915050565b613515816134d0565b811461352057600080fd5b50565b6000813590506135328161350c565b92915050565b6000806040838503121561354f5761354e6132d6565b5b600061355d85828601613523565b925050602061356e8582860161346e565b9150509250929050565b6135818161344d565b82525050565b600060208201905061359c6000830184613578565b92915050565b6000806000606084860312156135bb576135ba6132d6565b5b60006135c986828701613523565b93505060206135da86828701613523565b92505060406135eb8682870161346e565b9150509250925092565b6000806040838503121561360c5761360b6132d6565b5b600061361a8582860161346e565b925050602061362b8582860161346e565b9150509250929050565b600060408201905061364a60008301856134e2565b6136576020830184613578565b9392505050565b600060208284031215613674576136736132d6565b5b600061368284828501613523565b91505092915050565b6000819050919050565b60006136b06136ab6136a6846134b0565b61368b565b6134b0565b9050919050565b60006136c282613695565b9050919050565b60006136d4826136b7565b9050919050565b6136e4816136c9565b82525050565b60006020820190506136ff60008301846136db565b92915050565b6000819050919050565b61371881613705565b811461372357600080fd5b50565b6000813590506137358161370f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126137605761375f61373b565b5b8235905067ffffffffffffffff81111561377d5761377c613740565b5b60208301915083600182028301111561379957613798613745565b5b9250929050565b600080600080606085870312156137ba576137b96132d6565b5b60006137c88782880161346e565b94505060206137d987828801613726565b935050604085013567ffffffffffffffff8111156137fa576137f96132db565b5b6138068782880161374a565b925092505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613851826133e1565b810181811067ffffffffffffffff821117156138705761386f613819565b5b80604052505050565b60006138836132cc565b905061388f8282613848565b919050565b600067ffffffffffffffff8211156138af576138ae613819565b5b6138b8826133e1565b9050602081019050919050565b82818337600083830152505050565b60006138e76138e284613894565b613879565b90508281526020810184848401111561390357613902613814565b5b61390e8482856138c5565b509392505050565b600082601f83011261392b5761392a61373b565b5b813561393b8482602086016138d4565b91505092915050565b60006020828403121561395a576139596132d6565b5b600082013567ffffffffffffffff811115613978576139776132db565b5b61398484828501613916565b91505092915050565b61399681613365565b81146139a157600080fd5b50565b6000813590506139b38161398d565b92915050565b600080604083850312156139d0576139cf6132d6565b5b60006139de85828601613523565b92505060206139ef858286016139a4565b9150509250929050565b600067ffffffffffffffff821115613a1457613a13613819565b5b613a1d826133e1565b9050602081019050919050565b6000613a3d613a38846139f9565b613879565b905082815260208101848484011115613a5957613a58613814565b5b613a648482856138c5565b509392505050565b600082601f830112613a8157613a8061373b565b5b8135613a91848260208601613a2a565b91505092915050565b60008060008060808587031215613ab457613ab36132d6565b5b6000613ac287828801613523565b9450506020613ad387828801613523565b9350506040613ae48782880161346e565b925050606085013567ffffffffffffffff811115613b0557613b046132db565b5b613b1187828801613a6c565b91505092959194509250565b60008060408385031215613b3457613b336132d6565b5b6000613b4285828601613523565b9250506020613b5385828601613523565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ba457607f821691505b602082108103613bb757613bb6613b5d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bf78261344d565b9150613c028361344d565b9250828202613c108161344d565b91508282048414831517613c2757613c26613bbd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c688261344d565b9150613c738361344d565b925082613c8357613c82613c2e565b5b828204905092915050565b7f526563656e7420486973746f72793a206e657720616464726573732063616e2060008201527f6e6f74206265207a65726f206164647265737300000000000000000000000000602082015250565b6000613cea6033836133a6565b9150613cf582613c8e565b604082019050919050565b60006020820190508181036000830152613d1981613cdd565b9050919050565b7f526563656e7420486973746f72793a20636f6c6c656374696f6e20697320667260008201527f65657a6500000000000000000000000000000000000000000000000000000000602082015250565b6000613d7c6024836133a6565b9150613d8782613d20565b604082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b7f526563656e7420486973746f72793a20696e76616c696420746f6b656e73206160008201527f6d6f756e742c20736574206c65737320746f6b656e7300000000000000000000602082015250565b6000613e0e6036836133a6565b9150613e1982613db2565b604082019050919050565b60006020820190508181036000830152613e3d81613e01565b9050919050565b7f526563656e7420486973746f72793a206c696d697420656d697373696f6e207260008201527f6561636865640000000000000000000000000000000000000000000000000000602082015250565b6000613ea06026836133a6565b9150613eab82613e44565b604082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f526563656e7420486973746f72793a20616d6f756e742073686f756c6420626560008201527f206d6f7265207468616e20300000000000000000000000000000000000000000602082015250565b6000613f32602c836133a6565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f526563656e7420486973746f72793a20696e76616c6964207369676e6174757260008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46021836133a6565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b7f526563656e7420486973746f72793a20696e76616c6964206d65737361676500600082015250565b6000614030601f836133a6565b915061403b82613ffa565b602082019050919050565b6000602082019050818103600083015261405f81614023565b9050919050565b7f526563656e7420486973746f72793a20707269766174652073616c652069732060008201527f6e6f742061637469766500000000000000000000000000000000000000000000602082015250565b60006140c2602a836133a6565b91506140cd82614066565b604082019050919050565b600060208201905081810360008301526140f1816140b5565b9050919050565b7f526563656e7420486973746f72793a20696e76616c69642066756e647320616d60008201527f6f756e7400000000000000000000000000000000000000000000000000000000602082015250565b60006141546024836133a6565b915061415f826140f8565b604082019050919050565b6000602082019050818103600083015261418381614147565b9050919050565b7f526563656e7420486973746f72793a2063616e206e6f74206d696e7420746f2060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b60006141e6602c836133a6565b91506141f18261418a565b604082019050919050565b60006020820190508181036000830152614215816141d9565b9050919050565b7f526563656e7420486973746f72793a207075626c69632073616c65206973206160008201527f6374697665000000000000000000000000000000000000000000000000000000602082015250565b60006142786025836133a6565b91506142838261421c565b604082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b7f526563656e7420486973746f72793a20707269766174652073616c652069732060008201527f6163746976650000000000000000000000000000000000000000000000000000602082015250565b600061430a6026836133a6565b9150614315826142ae565b604082019050919050565b60006020820190508181036000830152614339816142fd565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026143a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614365565b6143ac8683614365565b95508019841693508086168417925050509392505050565b60006143df6143da6143d58461344d565b61368b565b61344d565b9050919050565b6000819050919050565b6143f9836143c4565b61440d614405826143e6565b848454614372565b825550505050565b600090565b614422614415565b61442d8184846143f0565b505050565b5b818110156144515761444660008261441a565b600181019050614433565b5050565b601f8211156144965761446781614340565b61447084614355565b8101602085101561447f578190505b61449361448b85614355565b830182614432565b50505b505050565b600082821c905092915050565b60006144b96000198460080261449b565b1980831691505092915050565b60006144d283836144a8565b9150826002028217905092915050565b6144eb8261339b565b67ffffffffffffffff81111561450457614503613819565b5b61450e8254613b8c565b614519828285614455565b600060209050601f83116001811461454c576000841561453a578287015190505b61454485826144c6565b8655506145ac565b601f19841661455a86614340565b60005b828110156145825784890151825560018201915060208501945060208101905061455d565b8683101561459f578489015161459b601f8916826144a8565b8355505b6001600288020188555050505b505050505050565b600081546145c181613b8c565b6145cb81866133a6565b945060018216600081146145e657600181146145fc5761462f565b60ff19831686528115156020028601935061462f565b61460585614340565b60005b8381101561462757815481890152600182019150602081019050614608565b808801955050505b50505092915050565b6000602082019050818103600083015261465281846145b4565b905092915050565b7f526563656e7420486973746f72793a2070726963652063616e206e6f7420626560008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b60006146b66022836133a6565b91506146c18261465a565b604082019050919050565b600060208201905081810360008301526146e5816146a9565b9050919050565b7f526563656e7420486973746f72793a20746f6b656e207072696365206973206e60008201527f6f74207365740000000000000000000000000000000000000000000000000000602082015250565b60006147486026836133a6565b9150614753826146ec565b604082019050919050565b600060208201905081810360008301526147778161473b565b9050919050565b7f526563656e7420486973746f72793a207075626c69632073616c65206973206e60008201527f6f74206163746976650000000000000000000000000000000000000000000000602082015250565b60006147da6029836133a6565b91506147e58261477e565b604082019050919050565b60006020820190508181036000830152614809816147cd565b9050919050565b600081905092915050565b60006148268261339b565b6148308185614810565b93506148408185602086016133b7565b80840191505092915050565b6000614858828561481b565b9150614864828461481b565b91508190509392505050565b7f526563656e7420486973746f72793a206c696d69742063616e206e6f7420626560008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b60006148cc6022836133a6565b91506148d782614870565b604082019050919050565b600060208201905081810360008301526148fb816148bf565b9050919050565b7f526563656e7420486973746f72793a206c696d69742073686f756c642062652060008201527f6d6f7265207468616e20746f74616c20737570706c7900000000000000000000602082015250565b600061495e6036836133a6565b915061496982614902565b604082019050919050565b6000602082019050818103600083015261498d81614951565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006149f06026836133a6565b91506149fb82614994565b604082019050919050565b60006020820190508181036000830152614a1f816149e3565b9050919050565b6000604082019050614a3b60008301856134e2565b614a4860208301846134e2565b9392505050565b600081519050614a5e8161398d565b92915050565b600060208284031215614a7a57614a796132d6565b5b6000614a8884828501614a4f565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614ac76020836133a6565b9150614ad282614a91565b602082019050919050565b60006020820190508181036000830152614af681614aba565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000614b59602a836133a6565b9150614b6482614afd565b604082019050919050565b60006020820190508181036000830152614b8881614b4c565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000614bc56019836133a6565b9150614bd082614b8f565b602082019050919050565b60006020820190508181036000830152614bf481614bb8565b9050919050565b6000614c068261344d565b9150614c118361344d565b9250828201905080821115614c2957614c28613bbd565b5b92915050565b60008160601b9050919050565b6000614c4782614c2f565b9050919050565b6000614c5982614c3c565b9050919050565b614c71614c6c826134d0565b614c4e565b82525050565b6000819050919050565b614c92614c8d8261344d565b614c77565b82525050565b6000614ca48285614c60565b601482019150614cb48284614c81565b6020820191508190509392505050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000614cfa601c83614810565b9150614d0582614cc4565b601c82019050919050565b6000819050919050565b614d2b614d2682613705565b614d10565b82525050565b6000614d3c82614ced565b9150614d488284614d1a565b60208201915081905092915050565b600081519050919050565b600082825260208201905092915050565b6000614d7e82614d57565b614d888185614d62565b9350614d988185602086016133b7565b614da1816133e1565b840191505092915050565b6000608082019050614dc160008301876134e2565b614dce60208301866134e2565b614ddb6040830185613578565b8181036060830152614ded8184614d73565b905095945050505050565b600081519050614e078161330c565b92915050565b600060208284031215614e2357614e226132d6565b5b6000614e3184828501614df8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000614e9f6018836133a6565b9150614eaa82614e69565b602082019050919050565b60006020820190508181036000830152614ece81614e92565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000614f0b601f836133a6565b9150614f1682614ed5565b602082019050919050565b60006020820190508181036000830152614f3a81614efe565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f9d6022836133a6565b9150614fa882614f41565b604082019050919050565b60006020820190508181036000830152614fcc81614f90565b9050919050565b614fdc81613705565b82525050565b600060ff82169050919050565b614ff881614fe2565b82525050565b60006080820190506150136000830187614fd3565b6150206020830186614fef565b61502d6040830185614fd3565b61503a6060830184614fd3565b9594505050505056fea26469706673582212208009b043666ef0897629130c509199a0479bc2c0e8be29960148937225a9771864736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000002ee000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000012466f722061204c696d697465642054696d650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000446414c5400000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): For a Limited Time
Arg [1] : symbol_ (string): FALT
Arg [2] : limitEmission_ (uint256): 750
Arg [3] : privateSaleLimit_ (uint256): 10
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000002ee
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [5] : 466f722061204c696d697465642054696d650000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 46414c5400000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.