Source Code
Overview
ETH Balance
ETH Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 501447 | 855 days ago | 0 ETH | ||||
| 501172 | 855 days ago | 0 ETH | ||||
| 501043 | 855 days ago | 0 ETH | ||||
| 501042 | 855 days ago | 0 ETH | ||||
| 500893 | 855 days ago | 0 ETH | ||||
| 500602 | 855 days ago | 0 ETH | ||||
| 500322 | 855 days ago | 0 ETH | ||||
| 500322 | 855 days ago | 0 ETH | ||||
| 500042 | 855 days ago | 0 ETH | ||||
| 499768 | 855 days ago | 0 ETH | ||||
| 499477 | 855 days ago | 0 ETH | ||||
| 499262 | 855 days ago | 0 ETH | ||||
| 499197 | 855 days ago | 0 ETH | ||||
| 498921 | 855 days ago | 0 ETH | ||||
| 498822 | 855 days ago | 0 ETH | ||||
| 498643 | 855 days ago | 0 ETH | ||||
| 498352 | 855 days ago | 0 ETH | ||||
| 498072 | 855 days ago | 0 ETH | ||||
| 497796 | 855 days ago | 0 ETH | ||||
| 497517 | 855 days ago | 0 ETH | ||||
| 497482 | 855 days ago | 0 ETH | ||||
| 497237 | 856 days ago | 0 ETH | ||||
| 497046 | 856 days ago | 0 ETH | ||||
| 496957 | 856 days ago | 0 ETH | ||||
| 496677 | 856 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
StakingBankStaticProd
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
No with 0 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./StakingBankStatic.sol";
contract StakingBankStaticProd is StakingBankStatic {
address public constant VALIDATOR_0 = 0x977Ba523420110e230643B772Fe9cF955e11dA7B;
address public constant VALIDATOR_1 = 0xe2422b23e52bc13ebA04d7FbB9F332Deb43360fB;
// external order is based on validators submits on AVAX for Apr 2023
address public constant VALIDATOR_2 = 0x57F404aD75e371c1A539589C1eFCA12e0C6980AD;
address public constant VALIDATOR_3 = 0xD56C6A4f64E0bD70260472d1DB6Cf5825858CB0d;
address public constant VALIDATOR_4 = 0x220230Eda8f50067Dd9e4729345dabCCe0C61542;
address public constant VALIDATOR_5 = 0x93FdcAB283b0BcAc48157590af482E1CFd6af6aC;
address public constant VALIDATOR_6 = 0xCd733E06B06083d52fC5867E8E3432aA5c103A38;
address public constant VALIDATOR_7 = 0x42e210b110c6aa49CdfA7ceF1444Aa4719653111;
address public constant VALIDATOR_8 = 0x501731c6a69803a53Ec6c3e12f293c247cE1092B;
address public constant VALIDATOR_9 = 0x8bF9661F1b247522C75DD0FE84355aD2EfF27144;
address public constant VALIDATOR_10 = 0x281754Ab58391A478B7aA4E7f39991CfB41118c4;
address public constant VALIDATOR_11 = 0xB9C63a350A04d8BD245d18928a26EE036352dDd8;
address public constant VALIDATOR_12 = 0x57A51D5BDcE188c2295fCA3b4687475a54E65A02;
address public constant VALIDATOR_13 = 0x777FbA3666fa7747476a34577FcCC404b263E09F;
address public constant VALIDATOR_14 = 0x2F85824B2B38F179E451988670935d315b5b9692;
constructor(uint256 _validatorsCount) StakingBankStatic(_validatorsCount) {}
// solhint-disable-next-line code-complexity
function validators(address _id) external pure override returns (address id, string memory location) {
if (_id == VALIDATOR_0) return (_id, "https://validator.umb.network");
if (_id == VALIDATOR_1) return (_id, "https://validator2.umb.network");
if (_id == VALIDATOR_2) return (_id, "https://umbrella.artemahr.tech");
if (_id == VALIDATOR_3) return (_id, "https://umb.vtabsolutions.com:3030");
if (_id == VALIDATOR_4) return (_id, "https://umb.stakers.world");
if (_id == VALIDATOR_5) return (_id, "https://umbrella.crazywhale.es");
if (_id == VALIDATOR_6) return (_id, "https://umbrella-node.gateomega.com");
if (_id == VALIDATOR_7) return (_id, "https://umb.anorak.technology");
if (_id == VALIDATOR_8) return (_id, "https://umbrella.infstones.io");
if (_id == VALIDATOR_9) return (_id, "https://umb.hashquark.io");
if (_id == VALIDATOR_10) return (_id, "http://umbrella.staking4all.org:3000");
if (_id == VALIDATOR_11) return (_id, "https://umbrella-api.validatrium.club");
if (_id == VALIDATOR_12) return (_id, "http://5.161.78.230:3000");
if (_id == VALIDATOR_13) return (_id, "https://umbnode.blockchainliverpool.com");
if (_id == VALIDATOR_14) return (_id, "https://umb-api.staking.rocks");
return (address(0), "");
}
function _addresses() internal view override returns (address[] memory) {
address[] memory list = new address[](NUMBER_OF_VALIDATORS);
list[0] = VALIDATOR_0;
list[1] = VALIDATOR_1;
list[2] = VALIDATOR_2;
list[3] = VALIDATOR_3;
list[4] = VALIDATOR_4;
list[5] = VALIDATOR_5;
list[6] = VALIDATOR_6;
list[7] = VALIDATOR_7;
list[8] = VALIDATOR_8;
list[9] = VALIDATOR_9;
list[10] = VALIDATOR_10;
list[11] = VALIDATOR_11;
list[12] = VALIDATOR_12;
list[13] = VALIDATOR_13;
list[14] = VALIDATOR_14;
return list;
}
function _isValidator(address _validator) internal pure override returns (bool) {
return (
_validator == VALIDATOR_0
|| _validator == VALIDATOR_1
|| _validator == VALIDATOR_2
|| _validator == VALIDATOR_3
|| _validator == VALIDATOR_4
|| _validator == VALIDATOR_5
|| _validator == VALIDATOR_6
|| _validator == VALIDATOR_7
|| _validator == VALIDATOR_8
|| _validator == VALIDATOR_9
|| _validator == VALIDATOR_10
|| _validator == VALIDATOR_11
|| _validator == VALIDATOR_12
|| _validator == VALIDATOR_13
|| _validator == VALIDATOR_14
);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @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);
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, 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 `from` to `to` 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 from,
address to,
uint256 amount
) external returns (bool);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
interface IStakingBank is IERC20 {
/// @param id address of validator wallet
/// @param location URL of the validator API
struct Validator {
address id;
string location;
}
event LogValidatorRegistered(address indexed id);
event LogValidatorUpdated(address indexed id);
event LogValidatorRemoved(address indexed id);
event LogMinAmountForStake(uint256 minAmountForStake);
/// @dev setter for `minAmountForStake`
function setMinAmountForStake(uint256 _minAmountForStake) external;
/// @dev allows to stake `token` by validators
/// Validator needs to approve StakingBank beforehand
/// @param _value amount of tokens to stake
function stake(uint256 _value) external;
/// @dev notification about approval from `_from` address on UMB token
/// Staking bank will stake max approved amount from `_from` address
/// @param _from address which approved token spend for IStakingBank
function receiveApproval(address _from) external returns (bool success);
/// @dev withdraws stake tokens
/// it throws, when balance will be less than required minimum for stake
/// to withdraw all use `exit`
function withdraw(uint256 _value) external returns (bool success);
/// @dev unstake and withdraw all tokens
function exit() external returns (bool success);
/// @dev creates (register) new validator
/// @param _id validator address
/// @param _location location URL of the validator API
function create(address _id, string calldata _location) external;
/// @dev removes validator
/// @param _id validator wallet
function remove(address _id) external;
/// @dev updates validator location
/// @param _id validator wallet
/// @param _location new validator URL
function update(address _id, string calldata _location) external;
/// @return total number of registered validators (with and without balance)
function getNumberOfValidators() external view returns (uint256);
/// @dev gets validator address for provided index
/// @param _ix index in array of list of all validators wallets
function addresses(uint256 _ix) external view returns (address);
/// @param _id address of validator
/// @return id address of validator
/// @return location URL of validator
function validators(address _id) external view returns (address id, string memory location);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./IStakingBank.sol";
abstract contract StakingBankStaticNotSupported is IStakingBank {
error NotSupported();
function create(address, string calldata) external pure {
revert NotSupported();
}
function update(address, string calldata) external pure {
revert NotSupported();
}
function remove(address) external pure {
revert NotSupported();
}
function transfer(address, uint256) external pure returns (bool) {
revert NotSupported();
}
function transferFrom(address, address, uint256) external pure returns (bool) {
revert NotSupported();
}
function receiveApproval(address) external pure returns (bool) {
revert NotSupported();
}
function allowance(address, address) external pure returns (uint256) {
revert NotSupported();
}
function approve(address, uint256) external pure returns (bool) {
revert NotSupported();
}
function stake(uint256) external pure {
revert NotSupported();
}
function withdraw(uint256) external pure returns (bool) {
revert NotSupported();
}
function exit() external pure returns (bool) {
revert NotSupported();
}
function setMinAmountForStake(uint256) external pure {
revert NotSupported();
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "../interfaces/StakingBankStaticNotSupported.sol";
/// @dev Because we are using PoA in UMB oracle, staked balance does not matter. What's matter is, if signer is
/// validator or not. In this case we can optimise `StakingBank` and make it static for better gas performance.
abstract contract StakingBankStatic is StakingBankStaticNotSupported {
uint256 public constant ONE = 1e18;
uint256 public immutable NUMBER_OF_VALIDATORS; // solhint-disable-line var-name-mixedcase
uint256 public immutable TOTAL_SUPPLY; // solhint-disable-line var-name-mixedcase
constructor(uint256 _validatorsCount) {
NUMBER_OF_VALIDATORS = _validatorsCount;
TOTAL_SUPPLY = _validatorsCount * ONE;
_assertValidSetup(_validatorsCount);
}
function balances(address _validator) external view returns (uint256) {
return _isValidator(_validator) ? ONE : 0;
}
function verifyValidators(address[] calldata _validators) external view returns (bool) {
for (uint256 i; i < _validators.length;) {
if (!_isValidator(_validators[i])) return false;
unchecked { i++; }
}
return true;
}
function getNumberOfValidators() external view returns (uint256) {
return NUMBER_OF_VALIDATORS;
}
function getAddresses() external view returns (address[] memory) {
return _addresses();
}
function getBalances() external view returns (uint256[] memory allBalances) {
allBalances = new uint256[](NUMBER_OF_VALIDATORS);
for (uint256 i; i < NUMBER_OF_VALIDATORS;) {
allBalances[i] = ONE;
unchecked {
// we will not have enough data to overflow
i++;
}
}
}
function addresses(uint256 _ix) external view returns (address) {
return _addresses()[_ix];
}
function validators(address _id) external view virtual returns (address id, string memory location);
/// @dev to follow ERC20 interface
function balanceOf(address _account) external view returns (uint256) {
return _isValidator(_account) ? ONE : 0;
}
/// @dev to follow ERC20 interface
function totalSupply() external view returns (uint256) {
return TOTAL_SUPPLY;
}
/// @dev to follow Registrable interface
function getName() external pure returns (bytes32) {
return "StakingBank";
}
/// @dev to follow Registrable interface
function register() external pure {
// there are no requirements atm
}
/// @dev to follow Registrable interface
function unregister() external pure {
// there are no requirements atm
}
function _addresses() internal view virtual returns (address[] memory);
function _isValidator(address _validator) internal view virtual returns (bool);
function _assertValidSetup(uint256 _validatorsCount) internal view virtual{
address[] memory list = _addresses();
require(list.length == _validatorsCount);
for (uint256 i; i < _validatorsCount;) {
require(_isValidator(list[i]));
unchecked { i ++; }
}
}
}{
"optimizer": {
"enabled": false,
"runs": 0
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"_validatorsCount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotSupported","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minAmountForStake","type":"uint256"}],"name":"LogMinAmountForStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"id","type":"address"}],"name":"LogValidatorRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"id","type":"address"}],"name":"LogValidatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"id","type":"address"}],"name":"LogValidatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"NUMBER_OF_VALIDATORS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_10","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_11","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_12","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_13","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_14","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_3","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_4","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_5","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_6","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_7","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_8","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VALIDATOR_9","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ix","type":"uint256"}],"name":"addresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"}],"name":"create","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"exit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalances","outputs":[{"internalType":"uint256[]","name":"allBalances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getNumberOfValidators","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"receiveApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"register","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"remove","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"setMinAmountForStake","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"unregister","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"}],"name":"update","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_id","type":"address"}],"name":"validators","outputs":[{"internalType":"address","name":"id","type":"address"},{"internalType":"string","name":"location","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"name":"verifyValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]Contract Creation Code
60c06040523480156200001157600080fd5b50604051620034fa380380620034fa833981810160405281019062000037919062000beb565b808060808181525050670de0b6b3a76400008162000056919062000c4c565b60a081815250506200006e816200007660201b60201c565b505062000d0b565b600062000088620000ef60201b60201c565b9050818151146200009857600080fd5b60005b82811015620000ea57620000d2828281518110620000be57620000bd62000cad565b5b60200260200101516200074560201b60201c565b620000dc57600080fd5b80806001019150506200009b565b505050565b6060600060805167ffffffffffffffff81111562000112576200011162000cdc565b5b604051908082528060200260200182016040528015620001415781602001602082028036833780820191505090505b50905073977ba523420110e230643b772fe9cf955e11da7b8160008151811062000170576200016f62000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073e2422b23e52bc13eba04d7fbb9f332deb43360fb81600181518110620001d657620001d562000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507357f404ad75e371c1a539589c1efca12e0c6980ad816002815181106200023c576200023b62000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073d56c6a4f64e0bd70260472d1db6cf5825858cb0d81600381518110620002a257620002a162000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073220230eda8f50067dd9e4729345dabcce0c615428160048151811062000308576200030762000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507393fdcab283b0bcac48157590af482e1cfd6af6ac816005815181106200036e576200036d62000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073cd733e06b06083d52fc5867e8e3432aa5c103a3881600681518110620003d457620003d362000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507342e210b110c6aa49cdfa7cef1444aa4719653111816007815181106200043a576200043962000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073501731c6a69803a53ec6c3e12f293c247ce1092b81600881518110620004a0576200049f62000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050738bf9661f1b247522c75dd0fe84355ad2eff271448160098151811062000506576200050562000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073281754ab58391a478b7aa4e7f39991cfb41118c481600a815181106200056c576200056b62000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073b9c63a350a04d8bd245d18928a26ee036352ddd881600b81518110620005d257620005d162000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507357a51d5bdce188c2295fca3b4687475a54e65a0281600c8151811062000638576200063762000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073777fba3666fa7747476a34577fccc404b263e09f81600d815181106200069e576200069d62000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050732f85824b2b38f179e451988670935d315b5b969281600e8151811062000704576200070362000cad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b600073977ba523420110e230643b772fe9cf955e11da7b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620007d5575073e2422b23e52bc13eba04d7fbb9f332deb43360fb73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200082057507357f404ad75e371c1a539589c1efca12e0c6980ad73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200086b575073d56c6a4f64e0bd70260472d1db6cf5825858cb0d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620008b6575073220230eda8f50067dd9e4729345dabcce0c6154273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200090157507393fdcab283b0bcac48157590af482e1cfd6af6ac73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200094c575073cd733e06b06083d52fc5867e8e3432aa5c103a3873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200099757507342e210b110c6aa49cdfa7cef1444aa471965311173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620009e2575073501731c6a69803a53ec6c3e12f293c247ce1092b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8062000a2d5750738bf9661f1b247522c75dd0fe84355ad2eff2714473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8062000a78575073281754ab58391a478b7aa4e7f39991cfb41118c473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8062000ac3575073b9c63a350a04d8bd245d18928a26ee036352ddd873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8062000b0e57507357a51d5bdce188c2295fca3b4687475a54e65a0273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8062000b59575073777fba3666fa7747476a34577fccc404b263e09f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8062000ba45750732f85824b2b38f179e451988670935d315b5b969273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b600080fd5b6000819050919050565b62000bc58162000bb0565b811462000bd157600080fd5b50565b60008151905062000be58162000bba565b92915050565b60006020828403121562000c045762000c0362000bab565b5b600062000c148482850162000bd4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c598262000bb0565b915062000c668362000bb0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ca25762000ca162000c1d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60805160a0516127a662000d54600039600081816109080152610b72015260008181610777015281816107e501528181610b9801528181610ce901526119a601526127a66000f3fe608060405234801561001057600080fd5b50600436106101ed5760003560e01c8062113e08146101f2578063015f7ed61461021057806303a1e2241461022e578063095ea7b31461024c5780630db18e371461027c57806317d7de7c146102ac57806318160ddd146102ca5780631aa3a008146102e85780631d4f9ce0146102f257806323b872dd1461032257806327e235e31461035257806329092d0e146103825780632e1a7d4d1461039e578063398b056e146103ce578063411ff497146103ec57806345f9f8251461040a57806352b41e351461042857806354755335146104445780635dc4bfd31461046257806369dc7ae41461048057806370a082311461049e578063838e7c3a146104ce578063902d55a5146104ea5780639031d9131461050857806390ff7e2e14610526578063989b6996146105445780639f0e948414610562578063a15ab08d14610580578063a39fac121461059c578063a694fc3a146105ba578063a9059cbb146105d6578063b2119eac14610606578063b49b084214610624578063c2ee3a0814610642578063db73177714610660578063dd62ed3e1461067e578063e2dc7a1a146106ae578063e79a198f146106cc578063e985e008146106d6578063e9fad8ee146106f4578063edf26d9b14610712578063fa52c7d814610742575b600080fd5b6101fa610773565b60405161020791906120ab565b60405180910390f35b610218610844565b604051610225919061210e565b60405180910390f35b61023661085c565b604051610243919061210e565b60405180910390f35b6102666004803603810190610261919061218b565b610874565b60405161027391906121e6565b60405180910390f35b61029660048036038101906102919190612201565b6108a8565b6040516102a391906121e6565b60405180910390f35b6102b46108dc565b6040516102c19190612247565b60405180910390f35b6102d2610904565b6040516102df9190612271565b60405180910390f35b6102f061092c565b005b61030c600480360381019061030791906122f1565b61092e565b60405161031991906121e6565b60405180910390f35b61033c6004803603810190610337919061233e565b610994565b60405161034991906121e6565b60405180910390f35b61036c60048036038101906103679190612201565b6109c8565b6040516103799190612271565b60405180910390f35b61039c60048036038101906103979190612201565b6109ef565b005b6103b860048036038101906103b39190612391565b610a21565b6040516103c591906121e6565b60405180910390f35b6103d6610a55565b6040516103e3919061210e565b60405180910390f35b6103f4610a6d565b604051610401919061210e565b60405180910390f35b610412610a85565b60405161041f919061210e565b60405180910390f35b610442600480360381019061043d9190612391565b610a9d565b005b61044c610acf565b604051610459919061210e565b60405180910390f35b61046a610ae7565b604051610477919061210e565b60405180910390f35b610488610aff565b604051610495919061210e565b60405180910390f35b6104b860048036038101906104b39190612201565b610b17565b6040516104c59190612271565b60405180910390f35b6104e860048036038101906104e39190612414565b610b3e565b005b6104f2610b70565b6040516104ff9190612271565b60405180910390f35b610510610b94565b60405161051d9190612271565b60405180910390f35b61052e610bbc565b60405161053b919061210e565b60405180910390f35b61054c610bd4565b604051610559919061210e565b60405180910390f35b61056a610bec565b604051610577919061210e565b60405180910390f35b61059a60048036038101906105959190612414565b610c04565b005b6105a4610c36565b6040516105b19190612532565b60405180910390f35b6105d460048036038101906105cf9190612391565b610c45565b005b6105f060048036038101906105eb919061218b565b610c77565b6040516105fd91906121e6565b60405180910390f35b61060e610cab565b60405161061b919061210e565b60405180910390f35b61062c610cc3565b604051610639919061210e565b60405180910390f35b61064a610cdb565b6040516106579190612271565b60405180910390f35b610668610ce7565b6040516106759190612271565b60405180910390f35b61069860048036038101906106939190612554565b610d0b565b6040516106a59190612271565b60405180910390f35b6106b6610d3f565b6040516106c3919061210e565b60405180910390f35b6106d4610d57565b005b6106de610d59565b6040516106eb919061210e565b60405180910390f35b6106fc610d71565b60405161070991906121e6565b60405180910390f35b61072c60048036038101906107279190612391565b610da5565b604051610739919061210e565b60405180910390f35b61075c60048036038101906107579190612201565b610dd0565b60405161076a92919061262d565b60405180910390f35b60607f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8111156107af576107ae61265d565b5b6040519080825280602002602001820160405280156107dd5781602001602082028036833780820191505090505b50905060005b7f000000000000000000000000000000000000000000000000000000000000000081101561084057670de0b6b3a76400008282815181106108275761082661268c565b5b60200260200101818152505080806001019150506107e3565b5090565b73cd733e06b06083d52fc5867e8e3432aa5c103a3881565b73501731c6a69803a53ec6c3e12f293c247ce1092b81565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f5374616b696e6742616e6b000000000000000000000000000000000000000000905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b565b6000805b838390508110156109885761096d8484838181106109535761095261268c565b5b90506020020160208101906109689190612201565b611548565b61097b57600091505061098e565b8080600101915050610932565b50600190505b92915050565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006109d382611548565b6109de5760006109e8565b670de0b6b3a76400005b9050919050565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7357a51d5bdce188c2295fca3b4687475a54e65a0281565b73e2422b23e52bc13eba04d7fbb9f332deb43360fb81565b732f85824b2b38f179e451988670935d315b5b969281565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7393fdcab283b0bcac48157590af482e1cfd6af6ac81565b73d56c6a4f64e0bd70260472d1db6cf5825858cb0d81565b73777fba3666fa7747476a34577fccc404b263e09f81565b6000610b2282611548565b610b2d576000610b37565b670de0b6b3a76400005b9050919050565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b73220230eda8f50067dd9e4729345dabcce0c6154281565b738bf9661f1b247522c75dd0fe84355ad2eff2714481565b73977ba523420110e230643b772fe9cf955e11da7b81565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610c406119a0565b905090565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73281754ab58391a478b7aa4e7f39991cfb41118c481565b7357f404ad75e371c1a539589c1efca12e0c6980ad81565b670de0b6b3a764000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7342e210b110c6aa49cdfa7cef1444aa471965311181565b565b73b9c63a350a04d8bd245d18928a26ee036352ddd881565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610daf6119a0565b8281518110610dc157610dc061268c565b5b60200260200101519050919050565b6000606073977ba523420110e230643b772fe9cf955e11da7b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e5b57826040518060400160405280601d81526020017f68747470733a2f2f76616c696461746f722e756d622e6e6574776f726b00000081525091509150611543565b73e2422b23e52bc13eba04d7fbb9f332deb43360fb73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ee257826040518060400160405280601e81526020017f68747470733a2f2f76616c696461746f72322e756d622e6e6574776f726b000081525091509150611543565b7357f404ad75e371c1a539589c1efca12e0c6980ad73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6957826040518060400160405280601e81526020017f68747470733a2f2f756d6272656c6c612e617274656d6168722e74656368000081525091509150611543565b73d56c6a4f64e0bd70260472d1db6cf5825858cb0d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd357826040518060600160405280602281526020016126df6022913991509150611543565b73220230eda8f50067dd9e4729345dabcce0c6154273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361105a57826040518060400160405280601981526020017f68747470733a2f2f756d622e7374616b6572732e776f726c640000000000000081525091509150611543565b7393fdcab283b0bcac48157590af482e1cfd6af6ac73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e157826040518060400160405280601e81526020017f68747470733a2f2f756d6272656c6c612e6372617a797768616c652e6573000081525091509150611543565b73cd733e06b06083d52fc5867e8e3432aa5c103a3873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114b57826040518060600160405280602381526020016126bc6023913991509150611543565b7342e210b110c6aa49cdfa7cef1444aa471965311173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d257826040518060400160405280601d81526020017f68747470733a2f2f756d622e616e6f72616b2e746563686e6f6c6f677900000081525091509150611543565b73501731c6a69803a53ec6c3e12f293c247ce1092b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125957826040518060400160405280601d81526020017f68747470733a2f2f756d6272656c6c612e696e6673746f6e65732e696f00000081525091509150611543565b738bf9661f1b247522c75dd0fe84355ad2eff2714473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e057826040518060400160405280601881526020017f68747470733a2f2f756d622e68617368717561726b2e696f000000000000000081525091509150611543565b73281754ab58391a478b7aa4e7f39991cfb41118c473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361134a57826040518060600160405280602481526020016127016024913991509150611543565b73b9c63a350a04d8bd245d18928a26ee036352ddd873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b457826040518060600160405280602581526020016127256025913991509150611543565b7357a51d5bdce188c2295fca3b4687475a54e65a0273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361143b57826040518060400160405280601881526020017f687474703a2f2f352e3136312e37382e3233303a33303030000000000000000081525091509150611543565b73777fba3666fa7747476a34577fccc404b263e09f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a5578260405180606001604052806027815260200161274a6027913991509150611543565b732f85824b2b38f179e451988670935d315b5b969273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152c57826040518060400160405280601d81526020017f68747470733a2f2f756d622d6170692e7374616b696e672e726f636b7300000081525091509150611543565b600060405180602001604052806000815250915091505b915091565b600073977ba523420110e230643b772fe9cf955e11da7b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806115d7575073e2422b23e52bc13eba04d7fbb9f332deb43360fb73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061162157507357f404ad75e371c1a539589c1efca12e0c6980ad73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061166b575073d56c6a4f64e0bd70260472d1db6cf5825858cb0d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116b5575073220230eda8f50067dd9e4729345dabcce0c6154273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116ff57507393fdcab283b0bcac48157590af482e1cfd6af6ac73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611749575073cd733e06b06083d52fc5867e8e3432aa5c103a3873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061179357507342e210b110c6aa49cdfa7cef1444aa471965311173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117dd575073501731c6a69803a53ec6c3e12f293c247ce1092b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118275750738bf9661f1b247522c75dd0fe84355ad2eff2714473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611871575073281754ab58391a478b7aa4e7f39991cfb41118c473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118bb575073b9c63a350a04d8bd245d18928a26ee036352ddd873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061190557507357a51d5bdce188c2295fca3b4687475a54e65a0273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061194f575073777fba3666fa7747476a34577fccc404b263e09f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806119995750732f85824b2b38f179e451988670935d315b5b969273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b606060007f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8111156119de576119dd61265d565b5b604051908082528060200260200182016040528015611a0c5781602001602082028036833780820191505090505b50905073977ba523420110e230643b772fe9cf955e11da7b81600081518110611a3857611a3761268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073e2422b23e52bc13eba04d7fbb9f332deb43360fb81600181518110611a9b57611a9a61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507357f404ad75e371c1a539589c1efca12e0c6980ad81600281518110611afe57611afd61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073d56c6a4f64e0bd70260472d1db6cf5825858cb0d81600381518110611b6157611b6061268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073220230eda8f50067dd9e4729345dabcce0c6154281600481518110611bc457611bc361268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507393fdcab283b0bcac48157590af482e1cfd6af6ac81600581518110611c2757611c2661268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073cd733e06b06083d52fc5867e8e3432aa5c103a3881600681518110611c8a57611c8961268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507342e210b110c6aa49cdfa7cef1444aa471965311181600781518110611ced57611cec61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073501731c6a69803a53ec6c3e12f293c247ce1092b81600881518110611d5057611d4f61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050738bf9661f1b247522c75dd0fe84355ad2eff2714481600981518110611db357611db261268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073281754ab58391a478b7aa4e7f39991cfb41118c481600a81518110611e1657611e1561268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073b9c63a350a04d8bd245d18928a26ee036352ddd881600b81518110611e7957611e7861268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507357a51d5bdce188c2295fca3b4687475a54e65a0281600c81518110611edc57611edb61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073777fba3666fa7747476a34577fccc404b263e09f81600d81518110611f3f57611f3e61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050732f85824b2b38f179e451988670935d315b5b969281600e81518110611fa257611fa161268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b6120228161200f565b82525050565b60006120348383612019565b60208301905092915050565b6000602082019050919050565b600061205882611fe3565b6120628185611fee565b935061206d83611fff565b8060005b8381101561209e5781516120858882612028565b975061209083612040565b925050600181019050612071565b5085935050505092915050565b600060208201905081810360008301526120c5818461204d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120f8826120cd565b9050919050565b612108816120ed565b82525050565b600060208201905061212360008301846120ff565b92915050565b600080fd5b600080fd5b61213c816120ed565b811461214757600080fd5b50565b60008135905061215981612133565b92915050565b6121688161200f565b811461217357600080fd5b50565b6000813590506121858161215f565b92915050565b600080604083850312156121a2576121a1612129565b5b60006121b08582860161214a565b92505060206121c185828601612176565b9150509250929050565b60008115159050919050565b6121e0816121cb565b82525050565b60006020820190506121fb60008301846121d7565b92915050565b60006020828403121561221757612216612129565b5b60006122258482850161214a565b91505092915050565b6000819050919050565b6122418161222e565b82525050565b600060208201905061225c6000830184612238565b92915050565b61226b8161200f565b82525050565b60006020820190506122866000830184612262565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126122b1576122b061228c565b5b8235905067ffffffffffffffff8111156122ce576122cd612291565b5b6020830191508360208202830111156122ea576122e9612296565b5b9250929050565b6000806020838503121561230857612307612129565b5b600083013567ffffffffffffffff8111156123265761232561212e565b5b6123328582860161229b565b92509250509250929050565b60008060006060848603121561235757612356612129565b5b60006123658682870161214a565b93505060206123768682870161214a565b925050604061238786828701612176565b9150509250925092565b6000602082840312156123a7576123a6612129565b5b60006123b584828501612176565b91505092915050565b60008083601f8401126123d4576123d361228c565b5b8235905067ffffffffffffffff8111156123f1576123f0612291565b5b60208301915083600182028301111561240d5761240c612296565b5b9250929050565b60008060006040848603121561242d5761242c612129565b5b600061243b8682870161214a565b935050602084013567ffffffffffffffff81111561245c5761245b61212e565b5b612468868287016123be565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124a9816120ed565b82525050565b60006124bb83836124a0565b60208301905092915050565b6000602082019050919050565b60006124df82612474565b6124e9818561247f565b93506124f483612490565b8060005b8381101561252557815161250c88826124af565b9750612517836124c7565b9250506001810190506124f8565b5085935050505092915050565b6000602082019050818103600083015261254c81846124d4565b905092915050565b6000806040838503121561256b5761256a612129565b5b60006125798582860161214a565b925050602061258a8582860161214a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125ce5780820151818401526020810190506125b3565b838111156125dd576000848401525b50505050565b6000601f19601f8301169050919050565b60006125ff82612594565b612609818561259f565b93506126198185602086016125b0565b612622816125e3565b840191505092915050565b600060408201905061264260008301856120ff565b818103602083015261265481846125f4565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfe68747470733a2f2f756d6272656c6c612d6e6f64652e676174656f6d6567612e636f6d68747470733a2f2f756d622e76746162736f6c7574696f6e732e636f6d3a33303330687474703a2f2f756d6272656c6c612e7374616b696e6734616c6c2e6f72673a3330303068747470733a2f2f756d6272656c6c612d6170692e76616c696461747269756d2e636c756268747470733a2f2f756d626e6f64652e626c6f636b636861696e6c69766572706f6f6c2e636f6da2646970667358221220429d0af784c3080a04775b4d26b5a7cc1d754b410783e686dd093b6b7ede30ea64736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000000f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101ed5760003560e01c8062113e08146101f2578063015f7ed61461021057806303a1e2241461022e578063095ea7b31461024c5780630db18e371461027c57806317d7de7c146102ac57806318160ddd146102ca5780631aa3a008146102e85780631d4f9ce0146102f257806323b872dd1461032257806327e235e31461035257806329092d0e146103825780632e1a7d4d1461039e578063398b056e146103ce578063411ff497146103ec57806345f9f8251461040a57806352b41e351461042857806354755335146104445780635dc4bfd31461046257806369dc7ae41461048057806370a082311461049e578063838e7c3a146104ce578063902d55a5146104ea5780639031d9131461050857806390ff7e2e14610526578063989b6996146105445780639f0e948414610562578063a15ab08d14610580578063a39fac121461059c578063a694fc3a146105ba578063a9059cbb146105d6578063b2119eac14610606578063b49b084214610624578063c2ee3a0814610642578063db73177714610660578063dd62ed3e1461067e578063e2dc7a1a146106ae578063e79a198f146106cc578063e985e008146106d6578063e9fad8ee146106f4578063edf26d9b14610712578063fa52c7d814610742575b600080fd5b6101fa610773565b60405161020791906120ab565b60405180910390f35b610218610844565b604051610225919061210e565b60405180910390f35b61023661085c565b604051610243919061210e565b60405180910390f35b6102666004803603810190610261919061218b565b610874565b60405161027391906121e6565b60405180910390f35b61029660048036038101906102919190612201565b6108a8565b6040516102a391906121e6565b60405180910390f35b6102b46108dc565b6040516102c19190612247565b60405180910390f35b6102d2610904565b6040516102df9190612271565b60405180910390f35b6102f061092c565b005b61030c600480360381019061030791906122f1565b61092e565b60405161031991906121e6565b60405180910390f35b61033c6004803603810190610337919061233e565b610994565b60405161034991906121e6565b60405180910390f35b61036c60048036038101906103679190612201565b6109c8565b6040516103799190612271565b60405180910390f35b61039c60048036038101906103979190612201565b6109ef565b005b6103b860048036038101906103b39190612391565b610a21565b6040516103c591906121e6565b60405180910390f35b6103d6610a55565b6040516103e3919061210e565b60405180910390f35b6103f4610a6d565b604051610401919061210e565b60405180910390f35b610412610a85565b60405161041f919061210e565b60405180910390f35b610442600480360381019061043d9190612391565b610a9d565b005b61044c610acf565b604051610459919061210e565b60405180910390f35b61046a610ae7565b604051610477919061210e565b60405180910390f35b610488610aff565b604051610495919061210e565b60405180910390f35b6104b860048036038101906104b39190612201565b610b17565b6040516104c59190612271565b60405180910390f35b6104e860048036038101906104e39190612414565b610b3e565b005b6104f2610b70565b6040516104ff9190612271565b60405180910390f35b610510610b94565b60405161051d9190612271565b60405180910390f35b61052e610bbc565b60405161053b919061210e565b60405180910390f35b61054c610bd4565b604051610559919061210e565b60405180910390f35b61056a610bec565b604051610577919061210e565b60405180910390f35b61059a60048036038101906105959190612414565b610c04565b005b6105a4610c36565b6040516105b19190612532565b60405180910390f35b6105d460048036038101906105cf9190612391565b610c45565b005b6105f060048036038101906105eb919061218b565b610c77565b6040516105fd91906121e6565b60405180910390f35b61060e610cab565b60405161061b919061210e565b60405180910390f35b61062c610cc3565b604051610639919061210e565b60405180910390f35b61064a610cdb565b6040516106579190612271565b60405180910390f35b610668610ce7565b6040516106759190612271565b60405180910390f35b61069860048036038101906106939190612554565b610d0b565b6040516106a59190612271565b60405180910390f35b6106b6610d3f565b6040516106c3919061210e565b60405180910390f35b6106d4610d57565b005b6106de610d59565b6040516106eb919061210e565b60405180910390f35b6106fc610d71565b60405161070991906121e6565b60405180910390f35b61072c60048036038101906107279190612391565b610da5565b604051610739919061210e565b60405180910390f35b61075c60048036038101906107579190612201565b610dd0565b60405161076a92919061262d565b60405180910390f35b60607f000000000000000000000000000000000000000000000000000000000000000f67ffffffffffffffff8111156107af576107ae61265d565b5b6040519080825280602002602001820160405280156107dd5781602001602082028036833780820191505090505b50905060005b7f000000000000000000000000000000000000000000000000000000000000000f81101561084057670de0b6b3a76400008282815181106108275761082661268c565b5b60200260200101818152505080806001019150506107e3565b5090565b73cd733e06b06083d52fc5867e8e3432aa5c103a3881565b73501731c6a69803a53ec6c3e12f293c247ce1092b81565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f5374616b696e6742616e6b000000000000000000000000000000000000000000905090565b60007f000000000000000000000000000000000000000000000000d02ab486cedc0000905090565b565b6000805b838390508110156109885761096d8484838181106109535761095261268c565b5b90506020020160208101906109689190612201565b611548565b61097b57600091505061098e565b8080600101915050610932565b50600190505b92915050565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006109d382611548565b6109de5760006109e8565b670de0b6b3a76400005b9050919050565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7357a51d5bdce188c2295fca3b4687475a54e65a0281565b73e2422b23e52bc13eba04d7fbb9f332deb43360fb81565b732f85824b2b38f179e451988670935d315b5b969281565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7393fdcab283b0bcac48157590af482e1cfd6af6ac81565b73d56c6a4f64e0bd70260472d1db6cf5825858cb0d81565b73777fba3666fa7747476a34577fccc404b263e09f81565b6000610b2282611548565b610b2d576000610b37565b670de0b6b3a76400005b9050919050565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000d02ab486cedc000081565b60007f000000000000000000000000000000000000000000000000000000000000000f905090565b73220230eda8f50067dd9e4729345dabcce0c6154281565b738bf9661f1b247522c75dd0fe84355ad2eff2714481565b73977ba523420110e230643b772fe9cf955e11da7b81565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610c406119a0565b905090565b6040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73281754ab58391a478b7aa4e7f39991cfb41118c481565b7357f404ad75e371c1a539589c1efca12e0c6980ad81565b670de0b6b3a764000081565b7f000000000000000000000000000000000000000000000000000000000000000f81565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7342e210b110c6aa49cdfa7cef1444aa471965311181565b565b73b9c63a350a04d8bd245d18928a26ee036352ddd881565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610daf6119a0565b8281518110610dc157610dc061268c565b5b60200260200101519050919050565b6000606073977ba523420110e230643b772fe9cf955e11da7b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e5b57826040518060400160405280601d81526020017f68747470733a2f2f76616c696461746f722e756d622e6e6574776f726b00000081525091509150611543565b73e2422b23e52bc13eba04d7fbb9f332deb43360fb73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ee257826040518060400160405280601e81526020017f68747470733a2f2f76616c696461746f72322e756d622e6e6574776f726b000081525091509150611543565b7357f404ad75e371c1a539589c1efca12e0c6980ad73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6957826040518060400160405280601e81526020017f68747470733a2f2f756d6272656c6c612e617274656d6168722e74656368000081525091509150611543565b73d56c6a4f64e0bd70260472d1db6cf5825858cb0d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd357826040518060600160405280602281526020016126df6022913991509150611543565b73220230eda8f50067dd9e4729345dabcce0c6154273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361105a57826040518060400160405280601981526020017f68747470733a2f2f756d622e7374616b6572732e776f726c640000000000000081525091509150611543565b7393fdcab283b0bcac48157590af482e1cfd6af6ac73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e157826040518060400160405280601e81526020017f68747470733a2f2f756d6272656c6c612e6372617a797768616c652e6573000081525091509150611543565b73cd733e06b06083d52fc5867e8e3432aa5c103a3873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114b57826040518060600160405280602381526020016126bc6023913991509150611543565b7342e210b110c6aa49cdfa7cef1444aa471965311173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d257826040518060400160405280601d81526020017f68747470733a2f2f756d622e616e6f72616b2e746563686e6f6c6f677900000081525091509150611543565b73501731c6a69803a53ec6c3e12f293c247ce1092b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125957826040518060400160405280601d81526020017f68747470733a2f2f756d6272656c6c612e696e6673746f6e65732e696f00000081525091509150611543565b738bf9661f1b247522c75dd0fe84355ad2eff2714473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e057826040518060400160405280601881526020017f68747470733a2f2f756d622e68617368717561726b2e696f000000000000000081525091509150611543565b73281754ab58391a478b7aa4e7f39991cfb41118c473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361134a57826040518060600160405280602481526020016127016024913991509150611543565b73b9c63a350a04d8bd245d18928a26ee036352ddd873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b457826040518060600160405280602581526020016127256025913991509150611543565b7357a51d5bdce188c2295fca3b4687475a54e65a0273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361143b57826040518060400160405280601881526020017f687474703a2f2f352e3136312e37382e3233303a33303030000000000000000081525091509150611543565b73777fba3666fa7747476a34577fccc404b263e09f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a5578260405180606001604052806027815260200161274a6027913991509150611543565b732f85824b2b38f179e451988670935d315b5b969273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152c57826040518060400160405280601d81526020017f68747470733a2f2f756d622d6170692e7374616b696e672e726f636b7300000081525091509150611543565b600060405180602001604052806000815250915091505b915091565b600073977ba523420110e230643b772fe9cf955e11da7b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806115d7575073e2422b23e52bc13eba04d7fbb9f332deb43360fb73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061162157507357f404ad75e371c1a539589c1efca12e0c6980ad73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061166b575073d56c6a4f64e0bd70260472d1db6cf5825858cb0d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116b5575073220230eda8f50067dd9e4729345dabcce0c6154273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116ff57507393fdcab283b0bcac48157590af482e1cfd6af6ac73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611749575073cd733e06b06083d52fc5867e8e3432aa5c103a3873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061179357507342e210b110c6aa49cdfa7cef1444aa471965311173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117dd575073501731c6a69803a53ec6c3e12f293c247ce1092b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118275750738bf9661f1b247522c75dd0fe84355ad2eff2714473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611871575073281754ab58391a478b7aa4e7f39991cfb41118c473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118bb575073b9c63a350a04d8bd245d18928a26ee036352ddd873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061190557507357a51d5bdce188c2295fca3b4687475a54e65a0273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061194f575073777fba3666fa7747476a34577fccc404b263e09f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806119995750732f85824b2b38f179e451988670935d315b5b969273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b606060007f000000000000000000000000000000000000000000000000000000000000000f67ffffffffffffffff8111156119de576119dd61265d565b5b604051908082528060200260200182016040528015611a0c5781602001602082028036833780820191505090505b50905073977ba523420110e230643b772fe9cf955e11da7b81600081518110611a3857611a3761268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073e2422b23e52bc13eba04d7fbb9f332deb43360fb81600181518110611a9b57611a9a61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507357f404ad75e371c1a539589c1efca12e0c6980ad81600281518110611afe57611afd61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073d56c6a4f64e0bd70260472d1db6cf5825858cb0d81600381518110611b6157611b6061268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073220230eda8f50067dd9e4729345dabcce0c6154281600481518110611bc457611bc361268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507393fdcab283b0bcac48157590af482e1cfd6af6ac81600581518110611c2757611c2661268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073cd733e06b06083d52fc5867e8e3432aa5c103a3881600681518110611c8a57611c8961268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507342e210b110c6aa49cdfa7cef1444aa471965311181600781518110611ced57611cec61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073501731c6a69803a53ec6c3e12f293c247ce1092b81600881518110611d5057611d4f61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050738bf9661f1b247522c75dd0fe84355ad2eff2714481600981518110611db357611db261268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073281754ab58391a478b7aa4e7f39991cfb41118c481600a81518110611e1657611e1561268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073b9c63a350a04d8bd245d18928a26ee036352ddd881600b81518110611e7957611e7861268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507357a51d5bdce188c2295fca3b4687475a54e65a0281600c81518110611edc57611edb61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073777fba3666fa7747476a34577fccc404b263e09f81600d81518110611f3f57611f3e61268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050732f85824b2b38f179e451988670935d315b5b969281600e81518110611fa257611fa161268c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b6120228161200f565b82525050565b60006120348383612019565b60208301905092915050565b6000602082019050919050565b600061205882611fe3565b6120628185611fee565b935061206d83611fff565b8060005b8381101561209e5781516120858882612028565b975061209083612040565b925050600181019050612071565b5085935050505092915050565b600060208201905081810360008301526120c5818461204d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120f8826120cd565b9050919050565b612108816120ed565b82525050565b600060208201905061212360008301846120ff565b92915050565b600080fd5b600080fd5b61213c816120ed565b811461214757600080fd5b50565b60008135905061215981612133565b92915050565b6121688161200f565b811461217357600080fd5b50565b6000813590506121858161215f565b92915050565b600080604083850312156121a2576121a1612129565b5b60006121b08582860161214a565b92505060206121c185828601612176565b9150509250929050565b60008115159050919050565b6121e0816121cb565b82525050565b60006020820190506121fb60008301846121d7565b92915050565b60006020828403121561221757612216612129565b5b60006122258482850161214a565b91505092915050565b6000819050919050565b6122418161222e565b82525050565b600060208201905061225c6000830184612238565b92915050565b61226b8161200f565b82525050565b60006020820190506122866000830184612262565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126122b1576122b061228c565b5b8235905067ffffffffffffffff8111156122ce576122cd612291565b5b6020830191508360208202830111156122ea576122e9612296565b5b9250929050565b6000806020838503121561230857612307612129565b5b600083013567ffffffffffffffff8111156123265761232561212e565b5b6123328582860161229b565b92509250509250929050565b60008060006060848603121561235757612356612129565b5b60006123658682870161214a565b93505060206123768682870161214a565b925050604061238786828701612176565b9150509250925092565b6000602082840312156123a7576123a6612129565b5b60006123b584828501612176565b91505092915050565b60008083601f8401126123d4576123d361228c565b5b8235905067ffffffffffffffff8111156123f1576123f0612291565b5b60208301915083600182028301111561240d5761240c612296565b5b9250929050565b60008060006040848603121561242d5761242c612129565b5b600061243b8682870161214a565b935050602084013567ffffffffffffffff81111561245c5761245b61212e565b5b612468868287016123be565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124a9816120ed565b82525050565b60006124bb83836124a0565b60208301905092915050565b6000602082019050919050565b60006124df82612474565b6124e9818561247f565b93506124f483612490565b8060005b8381101561252557815161250c88826124af565b9750612517836124c7565b9250506001810190506124f8565b5085935050505092915050565b6000602082019050818103600083015261254c81846124d4565b905092915050565b6000806040838503121561256b5761256a612129565b5b60006125798582860161214a565b925050602061258a8582860161214a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125ce5780820151818401526020810190506125b3565b838111156125dd576000848401525b50505050565b6000601f19601f8301169050919050565b60006125ff82612594565b612609818561259f565b93506126198185602086016125b0565b612622816125e3565b840191505092915050565b600060408201905061264260008301856120ff565b818103602083015261265481846125f4565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfe68747470733a2f2f756d6272656c6c612d6e6f64652e676174656f6d6567612e636f6d68747470733a2f2f756d622e76746162736f6c7574696f6e732e636f6d3a33303330687474703a2f2f756d6272656c6c612e7374616b696e6734616c6c2e6f72673a3330303068747470733a2f2f756d6272656c6c612d6170692e76616c696461747269756d2e636c756268747470733a2f2f756d626e6f64652e626c6f636b636861696e6c69766572706f6f6c2e636f6da2646970667358221220429d0af784c3080a04775b4d26b5a7cc1d754b410783e686dd093b6b7ede30ea64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000000f
-----Decoded View---------------
Arg [0] : _validatorsCount (uint256): 15
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000000000f
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$673.43
Net Worth in ETH
Token Allocations
UMB
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $0.000204 | 3,306,798.0675 | $673.43 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.