- Contract name:
- OwnerLQS
- Optimization enabled
- false
- Compiler version
- v0.8.17+commit.8df45f5f
- EVM Version
- default
- Verified at
- 2023-11-29T06:00:43.441120Z
Constructor Arguments
0x0000000000000000000000007105bd8d6f1018113f762a5d0f2c19ec402933eb
Arg [0] (address) : 0x7105bd8d6f1018113f762a5d0f2c19ec402933eb
Contract source code
pragma solidity 0.8.17; // SPDX-License-Identifier: Unlicensed pragma abicoder v2; interface IERC20 { function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); function mint(address _to, uint256 _amount) external returns (bool); function burn(uint256 _amount) external; function locklist (address account) external; function unLocklist (address account) external; /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract OwnerLQS is Ownable { using SafeMath for uint256; IERC20 public stToken; event Stake(address indexed user,uint amount,uint time); constructor (address _token) { stToken = IERC20(_token); } receive() external payable{ //revert("Not allowed direct funds"); } modifier isContractCheck(address _user) { require(!isContract(_user), "StToken: Invalid address"); _; } /** * @dev isContract: Returns true if account is a contract */ function isContract(address _account) public view returns(bool) { uint32 size; assembly { size:= extcodesize(_account) } if (size != 0) return true; return false; } function manualStakebyowner(address[] calldata recipients, uint256[] calldata amounts) public onlyOwner { require(recipients.length == amounts.length, "Arrays length mismatch"); for (uint256 i = 0; i < recipients.length; i++) { uint256 tokenamount = (amounts[i]).mul(1e18); stToken.mint(recipients[i],tokenamount); stToken.locklist(recipients[i]); } } }
Contract ABI
[{"type":"constructor","inputs":[{"type":"address","name":"_token","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isContract","inputs":[{"type":"address","name":"_account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"manualStakebyowner","inputs":[{"type":"address[]","name":"recipients","internalType":"address[]"},{"type":"uint256[]","name":"amounts","internalType":"uint256[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IERC20"}],"name":"stToken","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","indexed":true},{"type":"address","name":"newOwner","indexed":true}],"anonymous":false},{"type":"event","name":"Stake","inputs":[{"type":"address","name":"user","indexed":true},{"type":"uint256","name":"amount","indexed":false},{"type":"uint256","name":"time","indexed":false}],"anonymous":false},{"type":"receive"}]
Contract Creation Code
0x60806040523480156200001157600080fd5b5060405162001093380380620010938339818101604052810190620000379190620001a1565b6000620000496200012f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001d3565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000169826200013c565b9050919050565b6200017b816200015c565b81146200018757600080fd5b50565b6000815190506200019b8162000170565b92915050565b600060208284031215620001ba57620001b962000137565b5b6000620001ca848285016200018a565b91505092915050565b610eb080620001e36000396000f3fe6080604052600436106100595760003560e01c8063162790551461006557806323b6443e146100a2578063715018a6146100cd5780638da5cb5b146100e4578063aca465641461010f578063f2fde38b1461013857610060565b3661006057005b600080fd5b34801561007157600080fd5b5061008c60048036038101906100879190610847565b610161565b604051610099919061088f565b60405180910390f35b3480156100ae57600080fd5b506100b761018b565b6040516100c49190610909565b60405180910390f35b3480156100d957600080fd5b506100e26101b1565b005b3480156100f057600080fd5b506100f96102eb565b6040516101069190610933565b60405180910390f35b34801561011b57600080fd5b5061013660048036038101906101319190610a09565b610314565b005b34801561014457600080fd5b5061015f600480360381019061015a9190610847565b6105b5565b005b600080823b905060008163ffffffff1614610180576001915050610186565b60009150505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6101b961075d565b73ffffffffffffffffffffffffffffffffffffffff166101d76102eb565b73ffffffffffffffffffffffffffffffffffffffff161461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022490610ae7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61031c61075d565b73ffffffffffffffffffffffffffffffffffffffff1661033a6102eb565b73ffffffffffffffffffffffffffffffffffffffff1614610390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610ae7565b60405180910390fd5b8181905084849050146103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90610b53565b60405180910390fd5b60005b848490508110156105ae57600061041c670de0b6b3a764000085858581811061040757610406610b73565b5b9050602002013561076590919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1987878581811061046f5761046e610b73565b5b90506020020160208101906104849190610847565b836040518363ffffffff1660e01b81526004016104a2929190610bbb565b6020604051808303816000875af11580156104c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e59190610c10565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630230949b87878581811061053757610536610b73565b5b905060200201602081019061054c9190610847565b6040518263ffffffff1660e01b81526004016105689190610933565b600060405180830381600087803b15801561058257600080fd5b505af1158015610596573d6000803e3d6000fd5b505050505080806105a690610c6c565b9150506103db565b5050505050565b6105bd61075d565b73ffffffffffffffffffffffffffffffffffffffff166105db6102eb565b73ffffffffffffffffffffffffffffffffffffffff1614610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890610ae7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069790610d26565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600080830361077757600090506107d9565b600082846107859190610d46565b90508284826107949190610db7565b146107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90610e5a565b60405180910390fd5b809150505b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610814826107e9565b9050919050565b61082481610809565b811461082f57600080fd5b50565b6000813590506108418161081b565b92915050565b60006020828403121561085d5761085c6107df565b5b600061086b84828501610832565b91505092915050565b60008115159050919050565b61088981610874565b82525050565b60006020820190506108a46000830184610880565b92915050565b6000819050919050565b60006108cf6108ca6108c5846107e9565b6108aa565b6107e9565b9050919050565b60006108e1826108b4565b9050919050565b60006108f3826108d6565b9050919050565b610903816108e8565b82525050565b600060208201905061091e60008301846108fa565b92915050565b61092d81610809565b82525050565b60006020820190506109486000830184610924565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126109735761097261094e565b5b8235905067ffffffffffffffff8111156109905761098f610953565b5b6020830191508360208202830111156109ac576109ab610958565b5b9250929050565b60008083601f8401126109c9576109c861094e565b5b8235905067ffffffffffffffff8111156109e6576109e5610953565b5b602083019150836020820283011115610a0257610a01610958565b5b9250929050565b60008060008060408587031215610a2357610a226107df565b5b600085013567ffffffffffffffff811115610a4157610a406107e4565b5b610a4d8782880161095d565b9450945050602085013567ffffffffffffffff811115610a7057610a6f6107e4565b5b610a7c878288016109b3565b925092505092959194509250565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610ad1602083610a8a565b9150610adc82610a9b565b602082019050919050565b60006020820190508181036000830152610b0081610ac4565b9050919050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b6000610b3d601683610a8a565b9150610b4882610b07565b602082019050919050565b60006020820190508181036000830152610b6c81610b30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b610bb581610ba2565b82525050565b6000604082019050610bd06000830185610924565b610bdd6020830184610bac565b9392505050565b610bed81610874565b8114610bf857600080fd5b50565b600081519050610c0a81610be4565b92915050565b600060208284031215610c2657610c256107df565b5b6000610c3484828501610bfb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610c7782610ba2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ca957610ca8610c3d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610d10602683610a8a565b9150610d1b82610cb4565b604082019050919050565b60006020820190508181036000830152610d3f81610d03565b9050919050565b6000610d5182610ba2565b9150610d5c83610ba2565b9250828202610d6a81610ba2565b91508282048414831517610d8157610d80610c3d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610dc282610ba2565b9150610dcd83610ba2565b925082610ddd57610ddc610d88565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000610e44602183610a8a565b9150610e4f82610de8565b604082019050919050565b60006020820190508181036000830152610e7381610e37565b905091905056fea26469706673582212207bb30435de6d0bf7fd73575696931385060a422c1b04e3f5262079848e4eaf8e64736f6c634300081100330000000000000000000000007105bd8d6f1018113f762a5d0f2c19ec402933eb
Deployed ByteCode
0x6080604052600436106100595760003560e01c8063162790551461006557806323b6443e146100a2578063715018a6146100cd5780638da5cb5b146100e4578063aca465641461010f578063f2fde38b1461013857610060565b3661006057005b600080fd5b34801561007157600080fd5b5061008c60048036038101906100879190610847565b610161565b604051610099919061088f565b60405180910390f35b3480156100ae57600080fd5b506100b761018b565b6040516100c49190610909565b60405180910390f35b3480156100d957600080fd5b506100e26101b1565b005b3480156100f057600080fd5b506100f96102eb565b6040516101069190610933565b60405180910390f35b34801561011b57600080fd5b5061013660048036038101906101319190610a09565b610314565b005b34801561014457600080fd5b5061015f600480360381019061015a9190610847565b6105b5565b005b600080823b905060008163ffffffff1614610180576001915050610186565b60009150505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6101b961075d565b73ffffffffffffffffffffffffffffffffffffffff166101d76102eb565b73ffffffffffffffffffffffffffffffffffffffff161461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022490610ae7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61031c61075d565b73ffffffffffffffffffffffffffffffffffffffff1661033a6102eb565b73ffffffffffffffffffffffffffffffffffffffff1614610390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038790610ae7565b60405180910390fd5b8181905084849050146103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90610b53565b60405180910390fd5b60005b848490508110156105ae57600061041c670de0b6b3a764000085858581811061040757610406610b73565b5b9050602002013561076590919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1987878581811061046f5761046e610b73565b5b90506020020160208101906104849190610847565b836040518363ffffffff1660e01b81526004016104a2929190610bbb565b6020604051808303816000875af11580156104c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e59190610c10565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630230949b87878581811061053757610536610b73565b5b905060200201602081019061054c9190610847565b6040518263ffffffff1660e01b81526004016105689190610933565b600060405180830381600087803b15801561058257600080fd5b505af1158015610596573d6000803e3d6000fd5b505050505080806105a690610c6c565b9150506103db565b5050505050565b6105bd61075d565b73ffffffffffffffffffffffffffffffffffffffff166105db6102eb565b73ffffffffffffffffffffffffffffffffffffffff1614610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890610ae7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069790610d26565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600080830361077757600090506107d9565b600082846107859190610d46565b90508284826107949190610db7565b146107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90610e5a565b60405180910390fd5b809150505b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610814826107e9565b9050919050565b61082481610809565b811461082f57600080fd5b50565b6000813590506108418161081b565b92915050565b60006020828403121561085d5761085c6107df565b5b600061086b84828501610832565b91505092915050565b60008115159050919050565b61088981610874565b82525050565b60006020820190506108a46000830184610880565b92915050565b6000819050919050565b60006108cf6108ca6108c5846107e9565b6108aa565b6107e9565b9050919050565b60006108e1826108b4565b9050919050565b60006108f3826108d6565b9050919050565b610903816108e8565b82525050565b600060208201905061091e60008301846108fa565b92915050565b61092d81610809565b82525050565b60006020820190506109486000830184610924565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126109735761097261094e565b5b8235905067ffffffffffffffff8111156109905761098f610953565b5b6020830191508360208202830111156109ac576109ab610958565b5b9250929050565b60008083601f8401126109c9576109c861094e565b5b8235905067ffffffffffffffff8111156109e6576109e5610953565b5b602083019150836020820283011115610a0257610a01610958565b5b9250929050565b60008060008060408587031215610a2357610a226107df565b5b600085013567ffffffffffffffff811115610a4157610a406107e4565b5b610a4d8782880161095d565b9450945050602085013567ffffffffffffffff811115610a7057610a6f6107e4565b5b610a7c878288016109b3565b925092505092959194509250565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610ad1602083610a8a565b9150610adc82610a9b565b602082019050919050565b60006020820190508181036000830152610b0081610ac4565b9050919050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b6000610b3d601683610a8a565b9150610b4882610b07565b602082019050919050565b60006020820190508181036000830152610b6c81610b30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b610bb581610ba2565b82525050565b6000604082019050610bd06000830185610924565b610bdd6020830184610bac565b9392505050565b610bed81610874565b8114610bf857600080fd5b50565b600081519050610c0a81610be4565b92915050565b600060208284031215610c2657610c256107df565b5b6000610c3484828501610bfb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610c7782610ba2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ca957610ca8610c3d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610d10602683610a8a565b9150610d1b82610cb4565b604082019050919050565b60006020820190508181036000830152610d3f81610d03565b9050919050565b6000610d5182610ba2565b9150610d5c83610ba2565b9250828202610d6a81610ba2565b91508282048414831517610d8157610d80610c3d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610dc282610ba2565b9150610dcd83610ba2565b925082610ddd57610ddc610d88565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000610e44602183610a8a565b9150610e4f82610de8565b604082019050919050565b60006020820190508181036000830152610e7381610e37565b905091905056fea26469706673582212207bb30435de6d0bf7fd73575696931385060a422c1b04e3f5262079848e4eaf8e64736f6c63430008110033