Staking | Address 0x081a6057c25e8ab7995fe1f16265e932a32b2dae | BscScan (2024)

Staking | Address 0x081a6057c25e8ab7995fe1f16265e932a32b2dae | BscScan (1)

0x081a6057C25E8aB7995fE1F16265e932a32b2daE

Source Code

    Check Previous Balance

Overview

BNB Balance

Staking | Address 0x081a6057c25e8ab7995fe1f16265e932a32b2dae | BscScan (2)Staking | Address 0x081a6057c25e8ab7995fe1f16265e932a32b2dae | BscScan (3)Staking | Address 0x081a6057c25e8ab7995fe1f16265e932a32b2dae | BscScan (4)0.134464285714285716 BNB

More Info

ContractCreator:

0x0D1fe6a8...6468A8840 at txn 0xdfcde68a412d325575e3403cabcb918c4c74d35a2d18e706d1edb820ca2bb305

Multichain Info

N/A

  • Transactions
  • Internal Transactions
  • Token Transfers (BEP-20)
  • Contract
  • Events

Latest 8 from a total of 8 transactions

  • View Completed Txns
  • View Pending Txns
  • View Failed Txns
  • View Outgoing Txns
  • View Incoming Txns
  • View Contract Creation
Transaction Hash

Method

Block

From

To

Value

0xe36b1c90435d12d6b0c8e08f5247a2200b71a4a23f74afb0a31f0430d8db317e

Claim Interest F...4133509813 hrs ago

0x736274cf...7c5213aF1

IN

0x081a6057...2a32b2daE

0 BNB0.00018077

0x327285e6e887e0eb1539553cc32b04382076585446d280278b793489ea928250

Claim Interest F...4133506213 hrs ago

0x736274cf...7c5213aF1

IN

0x081a6057...2a32b2daE

0 BNB0.00018077

0x44afc9b5c7c05fb3dd15b9cc4f4211f236beb16ecd0c5841cfcac65ee54384a5

Deposit4133504013 hrs ago

0x736274cf...7c5213aF1

IN

0x081a6057...2a32b2daE

0.015 BNB0.00083677

0xeb187212396bf72393093cc45f26e26779629ac8bc80ed5958bb56022879fe15

Transfer Stake4133503313 hrs ago

0x736274cf...7c5213aF1

IN

0x081a6057...2a32b2daE

0.01 BNB0.00078874

0xd8fbc0b4409f59292afdb9d77678688e4bc4d38cc827cb7e76ceff2aae149bd0

Deposit4133491513 hrs ago

0x736274cf...7c5213aF1

IN

0x081a6057...2a32b2daE

0.01 BNB0.00079534

0x1b0ec708983616d0a8488c46059d762922bb287cd75fbc87c0b50e37ff37a44a

Claim Interest F...4133483613 hrs ago

0x0D1fe6a8...6468A8840

IN

0x081a6057...2a32b2daE

0 BNB0.00034496

0x0792cb17b832f97a865d2cad88caf4f1c31c044633abe7d1cc8b395fafb294d8

Deposit4133480913 hrs ago

0x0D1fe6a8...6468A8840

IN

0x081a6057...2a32b2daE

0.1 BNB0.00154296

0xdfcde68a412d325575e3403cabcb918c4c74d35a2d18e706d1edb820ca2bb305

0x608060404133477813 hrs ago

0x0D1fe6a8...6468A8840

IN

Create: Staking

0 BNB0.01851468
Parent Transaction HashBlockFromToValue

0xe36b1c90435d12d6b0c8e08f5247a2200b71a4a23f74afb0a31f0430d8db317e

4133509813 hrs ago

0x081a6057...2a32b2daE

0x736274cf...7c5213aF1

0 BNB

0x327285e6e887e0eb1539553cc32b04382076585446d280278b793489ea928250

4133506213 hrs ago

0x081a6057...2a32b2daE

0x736274cf...7c5213aF1

0 BNB

0x1b0ec708983616d0a8488c46059d762922bb287cd75fbc87c0b50e37ff37a44a

4133483613 hrs ago

0x081a6057...2a32b2daE

0x0D1fe6a8...6468A8840

0.000535714285714284 BNB

Loading...

Loading

  • Code
  • Read Contract
  • Write Contract

Contract Source Code Verified (Exact Match)

Contract Name:

Staking

Compiler Version

v0.8.0+commit.c7dfd78e

Optimization Enabled:

No with 200 runs

Other Settings:

default evmVersion, MIT license

Contract Source Code (Solidity)

  • contract Staking *
  • - function deposit(uint256 lockupPeriod ...
  • - function transferStake(uint256 fromLo ...
  • - function getInterestRateForLockupPeri ...
  • - function withdraw(uint256 depositInde ...
  • - function calculateInterest(address us ...
  • - function claimInterestForDeposit(uint ...
  • - function getTotalWithdrawnAmount(addr ...
  • - function getRemainingAmount(address u ...
  • - function withdrawOwner(uint256 amount ...
  • - function blacklistUser(address user)
  • - function unblacklistUser(address user ...
  • - function getDepositInfo(address user)
  • - function getDepositStatus(address use ...
  • - function max(int256 a, int256 b)
  • - function getNumberOfDeposits(address ...
  • - function getReferral(address user)
  • - function getLockupPeriod(address user ...
  • - function getInterestRate(address user ...
  • - function getBalance(address user)
  • - function Erc20(address user)
  • - function getLastClaimTime(address use ...
  • Similar
  • Sol2Uml
  • Submit Audit
  • Compare
/** *Submitted for verification at testnet.bscscan.com on 2024-06-18*/// SPDX-License-Identifier: MITpragma solidity ^0.8.0;struct DepositInfo { uint256 amount; uint256 lockupPeriod; uint256 interestRate; uint256 depositTime; uint256 lastClaimTime; uint256 totalInterestClaimed;}contract Staking { address payable private _owner; mapping(address => uint256) private _balances; mapping(address => uint256) private _lastClaimTime; mapping(address => uint256) private _lockupPeriod; mapping(address => uint256) private _interestRate; mapping(address => bool) private _blacklisted; mapping(address => address) private _referrals; mapping(address => uint256) private _initialDeposits; mapping(address => uint256) private _depositTime; mapping(address => DepositInfo[]) private _deposits; mapping(address => uint256) private _totalWithdrawnAmounts; event Deposit(address indexed user, uint256 amount, uint256 lockupPeriod); event Withdraw(address indexed user, uint256 amount); event InterestClaimed(address indexed user, uint256 amount); event Blacklisted(address indexed user); event Unblacklisted(address indexed user); event Transferred(address indexed user, uint256 fromDuration, uint256 toDuration, uint256 totalAmount); constructor() { _owner = payable(msg.sender); } modifier onlyOwner { require(msg.sender == _owner, "Not the contract owner."); _; } function deposit(uint256 lockupPeriod, address referral) external payable { require(lockupPeriod >= 1 && lockupPeriod <= 90, "Invalid lockup period."); require(!_blacklisted[msg.sender], "You are not allowed to deposit."); uint256 currentLockupPeriod = lockupPeriod * 1 days; uint256 currentInterestRate = getInterestRateForLockupPeriod(currentLockupPeriod); if (_referrals[msg.sender] == address(0) && referral != msg.sender && referral != address(0)) { _referrals[msg.sender] = referral; } DepositInfo memory newDeposit = DepositInfo({ amount: msg.value, lockupPeriod: currentLockupPeriod, interestRate: currentInterestRate, depositTime: block.timestamp, lastClaimTime: block.timestamp, totalInterestClaimed: 0 }); _balances[msg.sender] += msg.value; _lockupPeriod[msg.sender] = currentLockupPeriod; _interestRate[msg.sender] = currentInterestRate; _depositTime[msg.sender] = block.timestamp; _lastClaimTime[msg.sender] = block.timestamp; _initialDeposits[msg.sender] = msg.value; _deposits[msg.sender].push(newDeposit); emit Deposit(msg.sender, msg.value, lockupPeriod); } function transferStake(uint256 fromLockupPeriod, uint256 toLockupPeriod, uint256 amount) external payable { require(!_blacklisted[msg.sender], "You are not allowed to transfer."); require(fromLockupPeriod >= 1 && fromLockupPeriod <= 90, "Invalid from lockup period."); require(toLockupPeriod >= 1 && toLockupPeriod <= 90, "Invalid to lockup period."); uint256 fromLockupPeriodInSeconds = fromLockupPeriod * 1 days; uint256 toLockupPeriodInSeconds = toLockupPeriod * 1 days; uint256 totalFromAmount = 0; uint256 totalInterestClaimed = 0; uint256 lastDepositTime = 0; uint256 lastClaimTime = 0; for (uint256 i = 0; i < _deposits[msg.sender].length; i++) { if (_deposits[msg.sender][i].lockupPeriod == fromLockupPeriodInSeconds) { totalFromAmount += _deposits[msg.sender][i].amount; totalInterestClaimed += _deposits[msg.sender][i].totalInterestClaimed; _deposits[msg.sender][i].amount = 0; lastDepositTime = _deposits[msg.sender][i].depositTime; lastClaimTime = _deposits[msg.sender][i].lastClaimTime; _deposits[msg.sender][i].lastClaimTime = 0; } } require(totalFromAmount >= amount, "Insufficient balance"); uint256 totalAmount = totalFromAmount + msg.value; uint256 newInterestRate = getInterestRateForLockupPeriod(toLockupPeriodInSeconds); DepositInfo memory newDeposit = DepositInfo({ amount: totalAmount, lockupPeriod: toLockupPeriodInSeconds, interestRate: newInterestRate, depositTime: block.timestamp, lastClaimTime: block.timestamp, totalInterestClaimed: totalInterestClaimed }); _balances[msg.sender] += msg.value; _deposits[msg.sender].push(newDeposit); emit Transferred(msg.sender, fromLockupPeriod, toLockupPeriod, totalAmount); } function getInterestRateForLockupPeriod(uint256 lockupPeriod) internal pure returns (uint256) { if (lockupPeriod == 1 * 1 days) { return 571428571428570000; // 0.057142857142857% } else if (lockupPeriod == 30 * 1 days) { return 666666666666660000; // 0.066666666666666% } else if (lockupPeriod == 60 * 1 days) { return 833333333333330000; // 0.083333333333333% } else if (lockupPeriod == 90 * 1 days) { return 944444444444440000; // 0.094444444444444% } return 0; } function withdraw(uint256 depositIndex) external { require(!_blacklisted[msg.sender], "You are not allowed to withdraw."); require(depositIndex < _deposits[msg.sender].length, "Invalid deposit index."); require(block.timestamp >= _deposits[msg.sender][depositIndex].depositTime + _deposits[msg.sender][depositIndex].lockupPeriod, "Lockup period not over."); uint256 amountToWithdraw = _deposits[msg.sender][depositIndex].amount; require(amountToWithdraw > 0, "No funds to withdraw."); _deposits[msg.sender][depositIndex].amount = 0; _totalWithdrawnAmounts[msg.sender] += amountToWithdraw; // Store the withdrawn amount payable(msg.sender).transfer(amountToWithdraw); emit Withdraw(msg.sender, amountToWithdraw); } function calculateInterest(address user, uint256 depositIndex) public view returns (uint256) { DepositInfo storage deposit = _deposits[user][depositIndex]; uint256 timeElapsed = block.timestamp - deposit.lastClaimTime; uint256 interest = (deposit.amount * deposit.interestRate * timeElapsed) / (100000000000000000 * 86400); // 86400 seconds in a day return interest; } function claimInterestForDeposit(uint256 lockupPeriod) external { require(!_blacklisted[msg.sender], "You are not allowed to claim interest."); uint256 totalInterestToClaim = 0; for (uint256 i = 0; i < _deposits[msg.sender].length; i++) { if (_deposits[msg.sender][i].lockupPeriod == lockupPeriod * 1 days) { uint256 interestToClaim = calculateInterest(msg.sender, i); require(interestToClaim > 0, "No interest to claim."); _deposits[msg.sender][i].totalInterestClaimed += interestToClaim; _deposits[msg.sender][i].lastClaimTime = block.timestamp; totalInterestToClaim += interestToClaim; } } payable(msg.sender).transfer(totalInterestToClaim); emit InterestClaimed(msg.sender, totalInterestToClaim); } function getTotalWithdrawnAmount(address user, uint256 lockupPeriod) external view returns (uint256) { uint256 totalWithdrawn = 0; for (uint256 i = 0; i < _deposits[user].length; i++) { if (_deposits[user][i].lockupPeriod == lockupPeriod * 1 days) { totalWithdrawn += _totalWithdrawnAmounts[user]; } } return totalWithdrawn; } function getRemainingAmount(address user) external view returns (uint256) { uint256 totalDeposits = 0; uint256 totalRemaining = 0; for (uint256 i = 0; i < _deposits[user].length; i++) { totalDeposits += _deposits[user][i].amount; if (_deposits[user][i].amount > 0) { totalRemaining += _deposits[user][i].amount; } } return totalDeposits - totalRemaining; } function withdrawOwner(uint256 amount) external onlyOwner { _owner.transfer(amount); } function blacklistUser(address user) external onlyOwner { require(!_blacklisted[user], "User is already blacklisted."); _blacklisted[user] = true; emit Blacklisted(user); } function unblacklistUser(address user) external onlyOwner { require(_blacklisted[user], "User is not blacklisted."); _blacklisted[user] = false; emit Unblacklisted(user); } function getDepositInfo(address user) external view returns (uint256[] memory depositIndices, uint256[] memory unlockTimes, uint256[] memory stakedAmounts, uint256[] memory lockupPeriods) { uint256 depositCount = _deposits[user].length; depositIndices = new uint256[](depositCount); unlockTimes = new uint256[](depositCount); stakedAmounts = new uint256[](depositCount); lockupPeriods = new uint256[](depositCount); for (uint256 i = 0; i < depositCount; i++) { depositIndices[i] = i; unlockTimes[i] = _deposits[user][i].depositTime + _deposits[user][i].lockupPeriod; stakedAmounts[i] = _deposits[user][i].amount; lockupPeriods[i] = _deposits[user][i].lockupPeriod; } } function getDepositStatus(address user, uint256 lockupPeriod) external view returns (uint256[] memory depositIndices, uint256[] memory remainingTimes, uint256[] memory interestsCollected, uint256[] memory interestsNotCollected, uint256[] memory nextInterestClaims) { uint256 depositCount = 0; for (uint256 i = 0; i < _deposits[user].length; i++) { if (_deposits[user][i].lockupPeriod == lockupPeriod * 1 days) { depositCount++; } } depositIndices = new uint256[](depositCount); remainingTimes = new uint256[](depositCount); interestsCollected = new uint256[](depositCount); interestsNotCollected = new uint256[](depositCount); nextInterestClaims = new uint256[](depositCount); uint256 depositIndex = 0; for (uint256 i = 0; i < _deposits[user].length; i++) { if (_deposits[user][i].lockupPeriod == lockupPeriod * 1 days) { depositIndices[depositIndex] = i; if (block.timestamp < _deposits[user][i].depositTime + _deposits[user][i].lockupPeriod) { remainingTimes[depositIndex] = _deposits[user][i].depositTime + _deposits[user][i].lockupPeriod - block.timestamp; } else { remainingTimes[depositIndex] = 0; } interestsCollected[depositIndex] = (_deposits[user][i].lastClaimTime - _deposits[user][i].depositTime) * _deposits[user][i].amount * _deposits[user][i].interestRate / 100; interestsNotCollected[depositIndex] = calculateInterest(user, i); int256 nextClaim = int256(_deposits[user][i].lastClaimTime + 30 * 1 minutes) - int256(block.timestamp); nextInterestClaims[depositIndex] = uint256(max(nextClaim, 0)); depositIndex++; } } } function max(int256 a, int256 b) private pure returns (int256) { return a >= b ? a : b; } function getNumberOfDeposits(address user) external view returns (uint256) { return _deposits[user].length; } function getReferral(address user) external view returns (address) { return _referrals[user]; } function getLockupPeriod(address user) external view returns (uint256) { return _lockupPeriod[user]; } function getInterestRate(address user) external view returns (uint256) { return _interestRate[user]; } function getBalance(address user) external view returns (uint256) { return _balances[user]; } function Erc20(address user) external view returns (bool) { return _blacklisted[user]; } function getLastClaimTime(address user) external view returns (uint256) { return _lastClaimTime[user]; }}

Contract ABI

  • JSON Format
  • RAW/Text Format
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"Blacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockupPeriod","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InterestClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"fromDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"}],"name":"Transferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"Unblacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"Erc20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"blacklistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"depositIndex","type":"uint256"}],"name":"calculateInterest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lockupPeriod","type":"uint256"}],"name":"claimInterestForDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lockupPeriod","type":"uint256"},{"internalType":"address","name":"referral","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getDepositInfo","outputs":[{"internalType":"uint256[]","name":"depositIndices","type":"uint256[]"},{"internalType":"uint256[]","name":"unlockTimes","type":"uint256[]"},{"internalType":"uint256[]","name":"stakedAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"lockupPeriods","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"lockupPeriod","type":"uint256"}],"name":"getDepositStatus","outputs":[{"internalType":"uint256[]","name":"depositIndices","type":"uint256[]"},{"internalType":"uint256[]","name":"remainingTimes","type":"uint256[]"},{"internalType":"uint256[]","name":"interestsCollected","type":"uint256[]"},{"internalType":"uint256[]","name":"interestsNotCollected","type":"uint256[]"},{"internalType":"uint256[]","name":"nextInterestClaims","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getInterestRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getLastClaimTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getLockupPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNumberOfDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getReferral","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getRemainingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"lockupPeriod","type":"uint256"}],"name":"getTotalWithdrawnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromLockupPeriod","type":"uint256"},{"internalType":"uint256","name":"toLockupPeriod","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferStake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"unblacklistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"depositIndex","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Contract Creation Code

Decompile Bytecode Switch to Opcodes View

608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061437a806100606000396000f3fe6080604052600436106101145760003560e01c80638aa96fac116100a0578063d3ea0f8911610064578063d3ea0f89146103e4578063d7dc620314610421578063f8b2cb4f1461045e578063faf7eba61461049b578063fcbca456146104d857610114565b80638aa96fac146102d757806392682fc414610300578063a680e0bc14610329578063bd3a401714610366578063c2ebd269146103a357610114565b80635287ce12116100e75780635287ce12146101f9578063658ba11a14610239578063684f93a0146102765780636e553f65146102925780636ef98b21146102ae57610114565b80630e7338f3146101195780632e1a7d4d146101565780632e24f6721461017f5780633b0f0f2f146101bc575b600080fd5b34801561012557600080fd5b50610140600480360381019061013b9190613711565b610501565b60405161014d9190613db4565b60405180910390f35b34801561016257600080fd5b5061017d60048036038101906101789190613776565b610557565b005b34801561018b57600080fd5b506101a660048036038101906101a19190613711565b610a13565b6040516101b39190613faf565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190613711565b610a5c565b6040516101f09190613cc2565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190613711565b610ac5565b6040516102309493929190613cdd565b60405180910390f35b34801561024557600080fd5b50610260600480360381019061025b9190613711565b611040565b60405161026d9190613faf565b60405180910390f35b610290600480360381019061028b91906137db565b61108c565b005b6102ac60048036038101906102a7919061379f565b611825565b005b3480156102ba57600080fd5b506102d560048036038101906102d09190613776565b611d81565b005b3480156102e357600080fd5b506102fe60048036038101906102f99190613711565b611e79565b005b34801561030c57600080fd5b5061032760048036038101906103229190613776565b612031565b005b34801561033557600080fd5b50610350600480360381019061034b9190613711565b6123e4565b60405161035d9190613faf565b60405180910390f35b34801561037257600080fd5b5061038d6004803603810190610388919061373a565b61242d565b60405161039a9190613faf565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c5919061373a565b61258b565b6040516103db959493929190613d3e565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190613711565b6130ec565b6040516104189190613faf565b60405180910390f35b34801561042d57600080fd5b506104486004803603810190610443919061373a565b613135565b6040516104559190613faf565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190613711565b613217565b6040516104929190613faf565b60405180910390f35b3480156104a757600080fd5b506104c260048036038101906104bd9190613711565b613260565b6040516104cf9190613faf565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa9190613711565b61349c565b005b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105db90613eaf565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90613f6f565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106106df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610768577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600301546107849190614074565b4210156107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90613dcf565b60405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061083f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154905060008111610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d90613f0f565b60405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061090f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016000018190555080600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109739190614074565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156109c0573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436482604051610a079190613faf565b60405180910390a25050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060806060806000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090508067ffffffffffffffff811115610b52577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610b805781602001602082028036833780820191505090505b5094508067ffffffffffffffff811115610bc3577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610bf15781602001602082028036833780820191505090505b5093508067ffffffffffffffff811115610c34577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610c625781602001602082028036833780820191505090505b5092508067ffffffffffffffff811115610ca5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610cd35781602001602082028036833780820191505090505b50915060005b818110156110375780868281518110610d1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610d9e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154610e439190614074565b858281518110610e7c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610eff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154848281518110610f4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610fcd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154838281518110611018577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050808061102f9061426f565b915050610cd9565b50509193509193565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613f8f565b60405180910390fd5b6001831015801561112b5750605a8311155b61116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190613eef565b60405180910390fd5b6001821015801561117c5750605a8211155b6111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613e0f565b60405180910390fd5b600062015180846111cc91906140fb565b9050600062015180846111df91906140fb565b905060008060008060005b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156116365786600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106112ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154141561162357600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061133b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154856113589190614074565b9450600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106113d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160050154846113ee9190614074565b93506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611469577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000181905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600301549250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110611580577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016004015491506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061160d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600401819055505b808061162e9061426f565b9150506111ea565b508684101561167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613e4f565b60405180910390fd5b600034856116889190614074565b9050600061169587613655565b905060006040518060c0016040528084815260200189815260200183815260200142815260200142815260200187815250905034600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117179190614074565b92505081905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060060201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015550503373ffffffffffffffffffffffffffffffffffffffff167f9ee37244ba9f5d4982dfc3452c1cea0d297249501a9ef8040a9e646f336717b48d8d8660405161180f93929190613ff3565b60405180910390a2505050505050505050505050565b600182101580156118375750605a8211155b611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d90613def565b60405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613e6f565b60405180910390fd5b6000620151808361191491906140fb565b9050600061192182613655565b9050600073ffffffffffffffffffffffffffffffffffffffff16600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156119ea57503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a235750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa75782600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60006040518060c001604052803481526020018481526020018381526020014281526020014281526020016000815250905034600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b289190614074565b9250508190555082600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555034600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060060201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015550503373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a153487604051611d72929190613fca565b60405180910390a25050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613f2f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e75573d6000803e3d6000fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90613f2f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a90613f4f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b60405160405180910390a250565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b590613e2f565b60405180910390fd5b6000805b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561234a57620151808361211b91906140fb565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612192577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016001015414156123375760006121b63383613135565b9050600081116121fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f290613ecf565b60405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612273577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160050160008282546122939190614074565b9250508190555042600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612312577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016004018190555080836123339190614074565b9250505b80806123429061426f565b9150506120c2565b503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612391573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167ff9984c8173c4b4ff9cc454f76ed19c053f4490ccb224fd9ddffeb4ef4bea3530826040516123d89190613faf565b60405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000905060005b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561258057620151808461249091906140fb565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612507577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154141561256d57600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261256a9190614074565b91505b80806125789061426f565b915050612437565b508091505092915050565b60608060608060606000805b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156126a15762015180886125f091906140fb565b600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612667577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154141561268e57818061268a9061426f565b9250505b80806126999061426f565b915050612597565b508067ffffffffffffffff8111156126e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127105781602001602082028036833780820191505090505b5095508067ffffffffffffffff811115612753577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127815781602001602082028036833780820191505090505b5094508067ffffffffffffffff8111156127c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127f25781602001602082028036833780820191505090505b5093508067ffffffffffffffff811115612835577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128635781602001602082028036833780820191505090505b5092508067ffffffffffffffff8111156128a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128d45781602001602082028036833780820191505090505b5091506000805b600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156130df57620151808961293491906140fb565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106129ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016001015414156130cc57808883815181106129fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110612a80577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612b09577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154612b259190614074565b421015612c9d5742600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612ba4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612c2d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154612c499190614074565b612c5391906141e9565b878381518110612c8c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050612ce5565b6000878381518110612cd8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505b6064600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612d5e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160020154600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612de7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110612e70577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154600960008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110612ef9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160040154612f1591906141e9565b612f1f91906140fb565b612f2991906140fb565b612f3391906140ca565b868381518110612f6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050612f828a82613135565b858381518110612fbb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600042610708600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110613044577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600401546130609190614074565b61306a9190614155565b90506130778160006136cd565b8584815181106130b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505082806130c79061426f565b935050505b80806130d79061426f565b9150506128db565b5050509295509295909350565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106131af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201905060008160040154426131d191906141e9565b905060006901d460162f516f00000082846002015485600001546131f591906140fb565b6131ff91906140fb565b61320991906140ca565b905080935050505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600090506000805b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561348657600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061332c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154836133499190614074565b92506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106133c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154111561347357600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110613453577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154826134709190614074565b91505b808061347e9061426f565b91505061326b565b50808261349391906141e9565b92505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461352a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161352190613f2f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135ae90613e8f565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a250565b600062015180821415613672576707ee1f421682439090506136c8565b62278d0082141561368d5767094079cd1a4290a090506136c8565b624f1a008214156136a857670b90984060d3485090506136c8565b6276a7008214156136c357670d1b5737e533b5c090506136c8565b600090505b919050565b6000818312156136dd57816136df565b825b905092915050565b6000813590506136f681614316565b92915050565b60008135905061370b8161432d565b92915050565b60006020828403121561372357600080fd5b6000613731848285016136e7565b91505092915050565b6000806040838503121561374d57600080fd5b600061375b858286016136e7565b925050602061376c858286016136fc565b9150509250929050565b60006020828403121561378857600080fd5b6000613796848285016136fc565b91505092915050565b600080604083850312156137b257600080fd5b60006137c0858286016136fc565b92505060206137d1858286016136e7565b9150509250929050565b6000806000606084860312156137f057600080fd5b60006137fe868287016136fc565b935050602061380f868287016136fc565b9250506040613820868287016136fc565b9150509250925092565b60006138368383613ca4565b60208301905092915050565b61384b8161421d565b82525050565b600061385c8261403a565b6138668185614052565b93506138718361402a565b8060005b838110156138a2578151613889888261382a565b975061389483614045565b925050600181019050613875565b5085935050505092915050565b6138b88161422f565b82525050565b60006138cb601783614063565b91507f4c6f636b757020706572696f64206e6f74206f7665722e0000000000000000006000830152602082019050919050565b600061390b601683614063565b91507f496e76616c6964206c6f636b757020706572696f642e000000000000000000006000830152602082019050919050565b600061394b601983614063565b91507f496e76616c696420746f206c6f636b757020706572696f642e000000000000006000830152602082019050919050565b600061398b602683614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f20636c61696d20696e7460008301527f65726573742e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139f1601483614063565b91507f496e73756666696369656e742062616c616e63650000000000000000000000006000830152602082019050919050565b6000613a31601f83614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f206465706f7369742e006000830152602082019050919050565b6000613a71601c83614063565b91507f5573657220697320616c726561647920626c61636b6c69737465642e000000006000830152602082019050919050565b6000613ab1602083614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f2077697468647261772e6000830152602082019050919050565b6000613af1601583614063565b91507f4e6f20696e74657265737420746f20636c61696d2e00000000000000000000006000830152602082019050919050565b6000613b31601b83614063565b91507f496e76616c69642066726f6d206c6f636b757020706572696f642e00000000006000830152602082019050919050565b6000613b71601583614063565b91507f4e6f2066756e647320746f2077697468647261772e00000000000000000000006000830152602082019050919050565b6000613bb1601783614063565b91507f4e6f742074686520636f6e7472616374206f776e65722e0000000000000000006000830152602082019050919050565b6000613bf1601883614063565b91507f55736572206973206e6f7420626c61636b6c69737465642e00000000000000006000830152602082019050919050565b6000613c31601683614063565b91507f496e76616c6964206465706f73697420696e6465782e000000000000000000006000830152602082019050919050565b6000613c71602083614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f207472616e736665722e6000830152602082019050919050565b613cad81614265565b82525050565b613cbc81614265565b82525050565b6000602082019050613cd76000830184613842565b92915050565b60006080820190508181036000830152613cf78187613851565b90508181036020830152613d0b8186613851565b90508181036040830152613d1f8185613851565b90508181036060830152613d338184613851565b905095945050505050565b600060a0820190508181036000830152613d588188613851565b90508181036020830152613d6c8187613851565b90508181036040830152613d808186613851565b90508181036060830152613d948185613851565b90508181036080830152613da88184613851565b90509695505050505050565b6000602082019050613dc960008301846138af565b92915050565b60006020820190508181036000830152613de8816138be565b9050919050565b60006020820190508181036000830152613e08816138fe565b9050919050565b60006020820190508181036000830152613e288161393e565b9050919050565b60006020820190508181036000830152613e488161397e565b9050919050565b60006020820190508181036000830152613e68816139e4565b9050919050565b60006020820190508181036000830152613e8881613a24565b9050919050565b60006020820190508181036000830152613ea881613a64565b9050919050565b60006020820190508181036000830152613ec881613aa4565b9050919050565b60006020820190508181036000830152613ee881613ae4565b9050919050565b60006020820190508181036000830152613f0881613b24565b9050919050565b60006020820190508181036000830152613f2881613b64565b9050919050565b60006020820190508181036000830152613f4881613ba4565b9050919050565b60006020820190508181036000830152613f6881613be4565b9050919050565b60006020820190508181036000830152613f8881613c24565b9050919050565b60006020820190508181036000830152613fa881613c64565b9050919050565b6000602082019050613fc46000830184613cb3565b92915050565b6000604082019050613fdf6000830185613cb3565b613fec6020830184613cb3565b9392505050565b60006060820190506140086000830186613cb3565b6140156020830185613cb3565b6140226040830184613cb3565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061407f82614265565b915061408a83614265565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140bf576140be6142b8565b5b828201905092915050565b60006140d582614265565b91506140e083614265565b9250826140f0576140ef6142e7565b5b828204905092915050565b600061410682614265565b915061411183614265565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561414a576141496142b8565b5b828202905092915050565b60006141608261423b565b915061416b8361423b565b9250827f8000000000000000000000000000000000000000000000000000000000000000018212600084121516156141a6576141a56142b8565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182136000841216156141de576141dd6142b8565b5b828203905092915050565b60006141f482614265565b91506141ff83614265565b925082821015614212576142116142b8565b5b828203905092915050565b600061422882614245565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061427a82614265565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156142ad576142ac6142b8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61431f8161421d565b811461432a57600080fd5b50565b61433681614265565b811461434157600080fd5b5056fea2646970667358221220f6694acfa0aadc39352c91ab95c08afbfb7ac841ad73c37f75137eaf620e75ea64736f6c63430008000033


Deployed Bytecode

0x6080604052600436106101145760003560e01c80638aa96fac116100a0578063d3ea0f8911610064578063d3ea0f89146103e4578063d7dc620314610421578063f8b2cb4f1461045e578063faf7eba61461049b578063fcbca456146104d857610114565b80638aa96fac146102d757806392682fc414610300578063a680e0bc14610329578063bd3a401714610366578063c2ebd269146103a357610114565b80635287ce12116100e75780635287ce12146101f9578063658ba11a14610239578063684f93a0146102765780636e553f65146102925780636ef98b21146102ae57610114565b80630e7338f3146101195780632e1a7d4d146101565780632e24f6721461017f5780633b0f0f2f146101bc575b600080fd5b34801561012557600080fd5b50610140600480360381019061013b9190613711565b610501565b60405161014d9190613db4565b60405180910390f35b34801561016257600080fd5b5061017d60048036038101906101789190613776565b610557565b005b34801561018b57600080fd5b506101a660048036038101906101a19190613711565b610a13565b6040516101b39190613faf565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190613711565b610a5c565b6040516101f09190613cc2565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190613711565b610ac5565b6040516102309493929190613cdd565b60405180910390f35b34801561024557600080fd5b50610260600480360381019061025b9190613711565b611040565b60405161026d9190613faf565b60405180910390f35b610290600480360381019061028b91906137db565b61108c565b005b6102ac60048036038101906102a7919061379f565b611825565b005b3480156102ba57600080fd5b506102d560048036038101906102d09190613776565b611d81565b005b3480156102e357600080fd5b506102fe60048036038101906102f99190613711565b611e79565b005b34801561030c57600080fd5b5061032760048036038101906103229190613776565b612031565b005b34801561033557600080fd5b50610350600480360381019061034b9190613711565b6123e4565b60405161035d9190613faf565b60405180910390f35b34801561037257600080fd5b5061038d6004803603810190610388919061373a565b61242d565b60405161039a9190613faf565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c5919061373a565b61258b565b6040516103db959493929190613d3e565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190613711565b6130ec565b6040516104189190613faf565b60405180910390f35b34801561042d57600080fd5b506104486004803603810190610443919061373a565b613135565b6040516104559190613faf565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190613711565b613217565b6040516104929190613faf565b60405180910390f35b3480156104a757600080fd5b506104c260048036038101906104bd9190613711565b613260565b6040516104cf9190613faf565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa9190613711565b61349c565b005b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105db90613eaf565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90613f6f565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106106df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610768577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600301546107849190614074565b4210156107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90613dcf565b60405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061083f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154905060008111610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d90613f0f565b60405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061090f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016000018190555080600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109739190614074565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156109c0573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436482604051610a079190613faf565b60405180910390a25050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060806060806000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090508067ffffffffffffffff811115610b52577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610b805781602001602082028036833780820191505090505b5094508067ffffffffffffffff811115610bc3577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610bf15781602001602082028036833780820191505090505b5093508067ffffffffffffffff811115610c34577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610c625781602001602082028036833780820191505090505b5092508067ffffffffffffffff811115610ca5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610cd35781602001602082028036833780820191505090505b50915060005b818110156110375780868281518110610d1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610d9e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154610e439190614074565b858281518110610e7c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610eff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154848281518110610f4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610fcd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154838281518110611018577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050808061102f9061426f565b915050610cd9565b50509193509193565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613f8f565b60405180910390fd5b6001831015801561112b5750605a8311155b61116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190613eef565b60405180910390fd5b6001821015801561117c5750605a8211155b6111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613e0f565b60405180910390fd5b600062015180846111cc91906140fb565b9050600062015180846111df91906140fb565b905060008060008060005b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156116365786600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106112ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154141561162357600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061133b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154856113589190614074565b9450600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106113d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160050154846113ee9190614074565b93506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611469577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000181905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600301549250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110611580577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016004015491506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061160d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600401819055505b808061162e9061426f565b9150506111ea565b508684101561167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613e4f565b60405180910390fd5b600034856116889190614074565b9050600061169587613655565b905060006040518060c0016040528084815260200189815260200183815260200142815260200142815260200187815250905034600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117179190614074565b92505081905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060060201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015550503373ffffffffffffffffffffffffffffffffffffffff167f9ee37244ba9f5d4982dfc3452c1cea0d297249501a9ef8040a9e646f336717b48d8d8660405161180f93929190613ff3565b60405180910390a2505050505050505050505050565b600182101580156118375750605a8211155b611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d90613def565b60405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613e6f565b60405180910390fd5b6000620151808361191491906140fb565b9050600061192182613655565b9050600073ffffffffffffffffffffffffffffffffffffffff16600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156119ea57503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a235750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa75782600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60006040518060c001604052803481526020018481526020018381526020014281526020014281526020016000815250905034600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b289190614074565b9250508190555082600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555034600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060060201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015550503373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a153487604051611d72929190613fca565b60405180910390a25050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613f2f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e75573d6000803e3d6000fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90613f2f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a90613f4f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b60405160405180910390a250565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b590613e2f565b60405180910390fd5b6000805b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561234a57620151808361211b91906140fb565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612192577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016001015414156123375760006121b63383613135565b9050600081116121fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f290613ecf565b60405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612273577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160050160008282546122939190614074565b9250508190555042600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612312577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016004018190555080836123339190614074565b9250505b80806123429061426f565b9150506120c2565b503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612391573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167ff9984c8173c4b4ff9cc454f76ed19c053f4490ccb224fd9ddffeb4ef4bea3530826040516123d89190613faf565b60405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000905060005b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561258057620151808461249091906140fb565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612507577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154141561256d57600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261256a9190614074565b91505b80806125789061426f565b915050612437565b508091505092915050565b60608060608060606000805b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156126a15762015180886125f091906140fb565b600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612667577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154141561268e57818061268a9061426f565b9250505b80806126999061426f565b915050612597565b508067ffffffffffffffff8111156126e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127105781602001602082028036833780820191505090505b5095508067ffffffffffffffff811115612753577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127815781602001602082028036833780820191505090505b5094508067ffffffffffffffff8111156127c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156127f25781602001602082028036833780820191505090505b5093508067ffffffffffffffff811115612835577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128635781602001602082028036833780820191505090505b5092508067ffffffffffffffff8111156128a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128d45781602001602082028036833780820191505090505b5091506000805b600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156130df57620151808961293491906140fb565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106129ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600602016001015414156130cc57808883815181106129fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110612a80577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612b09577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154612b259190614074565b421015612c9d5742600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612ba4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160010154600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612c2d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154612c499190614074565b612c5391906141e9565b878381518110612c8c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050612ce5565b6000878381518110612cd8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505b6064600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612d5e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160020154600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612de7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110612e70577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160030154600960008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110612ef9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160040154612f1591906141e9565b612f1f91906140fb565b612f2991906140fb565b612f3391906140ca565b868381518110612f6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050612f828a82613135565b858381518110612fbb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050600042610708600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110613044577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600401546130609190614074565b61306a9190614155565b90506130778160006136cd565b8584815181106130b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505082806130c79061426f565b935050505b80806130d79061426f565b9150506128db565b5050509295509295909350565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106131af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201905060008160040154426131d191906141e9565b905060006901d460162f516f00000082846002015485600001546131f591906140fb565b6131ff91906140fb565b61320991906140ca565b905080935050505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600090506000805b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561348657600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061332c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154836133499190614074565b92506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106133c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154111561347357600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110613453577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906006020160000154826134709190614074565b91505b808061347e9061426f565b91505061326b565b50808261349391906141e9565b92505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461352a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161352190613f2f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135ae90613e8f565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a250565b600062015180821415613672576707ee1f421682439090506136c8565b62278d0082141561368d5767094079cd1a4290a090506136c8565b624f1a008214156136a857670b90984060d3485090506136c8565b6276a7008214156136c357670d1b5737e533b5c090506136c8565b600090505b919050565b6000818312156136dd57816136df565b825b905092915050565b6000813590506136f681614316565b92915050565b60008135905061370b8161432d565b92915050565b60006020828403121561372357600080fd5b6000613731848285016136e7565b91505092915050565b6000806040838503121561374d57600080fd5b600061375b858286016136e7565b925050602061376c858286016136fc565b9150509250929050565b60006020828403121561378857600080fd5b6000613796848285016136fc565b91505092915050565b600080604083850312156137b257600080fd5b60006137c0858286016136fc565b92505060206137d1858286016136e7565b9150509250929050565b6000806000606084860312156137f057600080fd5b60006137fe868287016136fc565b935050602061380f868287016136fc565b9250506040613820868287016136fc565b9150509250925092565b60006138368383613ca4565b60208301905092915050565b61384b8161421d565b82525050565b600061385c8261403a565b6138668185614052565b93506138718361402a565b8060005b838110156138a2578151613889888261382a565b975061389483614045565b925050600181019050613875565b5085935050505092915050565b6138b88161422f565b82525050565b60006138cb601783614063565b91507f4c6f636b757020706572696f64206e6f74206f7665722e0000000000000000006000830152602082019050919050565b600061390b601683614063565b91507f496e76616c6964206c6f636b757020706572696f642e000000000000000000006000830152602082019050919050565b600061394b601983614063565b91507f496e76616c696420746f206c6f636b757020706572696f642e000000000000006000830152602082019050919050565b600061398b602683614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f20636c61696d20696e7460008301527f65726573742e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139f1601483614063565b91507f496e73756666696369656e742062616c616e63650000000000000000000000006000830152602082019050919050565b6000613a31601f83614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f206465706f7369742e006000830152602082019050919050565b6000613a71601c83614063565b91507f5573657220697320616c726561647920626c61636b6c69737465642e000000006000830152602082019050919050565b6000613ab1602083614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f2077697468647261772e6000830152602082019050919050565b6000613af1601583614063565b91507f4e6f20696e74657265737420746f20636c61696d2e00000000000000000000006000830152602082019050919050565b6000613b31601b83614063565b91507f496e76616c69642066726f6d206c6f636b757020706572696f642e00000000006000830152602082019050919050565b6000613b71601583614063565b91507f4e6f2066756e647320746f2077697468647261772e00000000000000000000006000830152602082019050919050565b6000613bb1601783614063565b91507f4e6f742074686520636f6e7472616374206f776e65722e0000000000000000006000830152602082019050919050565b6000613bf1601883614063565b91507f55736572206973206e6f7420626c61636b6c69737465642e00000000000000006000830152602082019050919050565b6000613c31601683614063565b91507f496e76616c6964206465706f73697420696e6465782e000000000000000000006000830152602082019050919050565b6000613c71602083614063565b91507f596f7520617265206e6f7420616c6c6f77656420746f207472616e736665722e6000830152602082019050919050565b613cad81614265565b82525050565b613cbc81614265565b82525050565b6000602082019050613cd76000830184613842565b92915050565b60006080820190508181036000830152613cf78187613851565b90508181036020830152613d0b8186613851565b90508181036040830152613d1f8185613851565b90508181036060830152613d338184613851565b905095945050505050565b600060a0820190508181036000830152613d588188613851565b90508181036020830152613d6c8187613851565b90508181036040830152613d808186613851565b90508181036060830152613d948185613851565b90508181036080830152613da88184613851565b90509695505050505050565b6000602082019050613dc960008301846138af565b92915050565b60006020820190508181036000830152613de8816138be565b9050919050565b60006020820190508181036000830152613e08816138fe565b9050919050565b60006020820190508181036000830152613e288161393e565b9050919050565b60006020820190508181036000830152613e488161397e565b9050919050565b60006020820190508181036000830152613e68816139e4565b9050919050565b60006020820190508181036000830152613e8881613a24565b9050919050565b60006020820190508181036000830152613ea881613a64565b9050919050565b60006020820190508181036000830152613ec881613aa4565b9050919050565b60006020820190508181036000830152613ee881613ae4565b9050919050565b60006020820190508181036000830152613f0881613b24565b9050919050565b60006020820190508181036000830152613f2881613b64565b9050919050565b60006020820190508181036000830152613f4881613ba4565b9050919050565b60006020820190508181036000830152613f6881613be4565b9050919050565b60006020820190508181036000830152613f8881613c24565b9050919050565b60006020820190508181036000830152613fa881613c64565b9050919050565b6000602082019050613fc46000830184613cb3565b92915050565b6000604082019050613fdf6000830185613cb3565b613fec6020830184613cb3565b9392505050565b60006060820190506140086000830186613cb3565b6140156020830185613cb3565b6140226040830184613cb3565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061407f82614265565b915061408a83614265565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140bf576140be6142b8565b5b828201905092915050565b60006140d582614265565b91506140e083614265565b9250826140f0576140ef6142e7565b5b828204905092915050565b600061410682614265565b915061411183614265565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561414a576141496142b8565b5b828202905092915050565b60006141608261423b565b915061416b8361423b565b9250827f8000000000000000000000000000000000000000000000000000000000000000018212600084121516156141a6576141a56142b8565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182136000841216156141de576141dd6142b8565b5b828203905092915050565b60006141f482614265565b91506141ff83614265565b925082821015614212576142116142b8565b5b828203905092915050565b600061422882614245565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061427a82614265565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156142ad576142ac6142b8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61431f8161421d565b811461432a57600080fd5b50565b61433681614265565b811461434157600080fd5b5056fea2646970667358221220f6694acfa0aadc39352c91ab95c08afbfb7ac841ad73c37f75137eaf620e75ea64736f6c63430008000033

Deployed Bytecode Sourcemap

251:12411:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12431:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5445:805;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12068:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11951:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8993:792;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11820:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2805:2048;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1472:1325;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8457:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8779:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6675:882;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12541:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7565:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9793:1908;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;12192:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6258:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12316:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7983:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8565:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12431:102;12483:4;12507:12;:18;12520:4;12507:18;;;;;;;;;;;;;;;;;;;;;;;;;12500:25;;12431:102;;;:::o;5445:805::-;5514:12;:24;5527:10;5514:24;;;;;;;;;;;;;;;;;;;;;;;;;5513:25;5505:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5609:9;:21;5619:10;5609:21;;;;;;;;;;;;;;;:28;;;;5594:12;:43;5586:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5752:9;:21;5762:10;5752:21;;;;;;;;;;;;;;;5774:12;5752:35;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;5702:9;:21;5712:10;5702:21;;;;;;;;;;;;;;;5724:12;5702:35;;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;:98;;;;:::i;:::-;5683:15;:117;;5675:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;5841:24;5868:9;:21;5878:10;5868:21;;;;;;;;;;;;;;;5890:12;5868:35;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;5841:69;;5948:1;5929:16;:20;5921:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6033:1;5988:9;:21;5998:10;5988:21;;;;;;;;;;;;;;;6010:12;5988:35;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;:46;;;;6083:16;6045:22;:34;6068:10;6045:34;;;;;;;;;;;;;;;;:54;;;;;;;:::i;:::-;;;;;;;;6148:10;6140:28;;:46;6169:16;6140:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6213:10;6204:38;;;6225:16;6204:38;;;;;;:::i;:::-;;;;;;;;5445:805;;:::o;12068:116::-;12130:7;12157:13;:19;12171:4;12157:19;;;;;;;;;;;;;;;;12150:26;;12068:116;;;:::o;11951:109::-;12009:7;12036:10;:16;12047:4;12036:16;;;;;;;;;;;;;;;;;;;;;;;;;12029:23;;11951:109;;;:::o;8993:792::-;9054:31;9087:28;9117:30;9149;9192:20;9215:9;:15;9225:4;9215:15;;;;;;;;;;;;;;;:22;;;;9192:45;;9281:12;9267:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9250:44;;9333:12;9319:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9305:41;;9387:12;9373:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9357:43;;9441:12;9427:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9411:43;;9472:9;9467:311;9491:12;9487:1;:16;9467:311;;;9545:1;9525:14;9540:1;9525:17;;;;;;;;;;;;;;;;;;;;;:21;;;;;9611:9;:15;9621:4;9611:15;;;;;;;;;;;;;;;9627:1;9611:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;9578:9;:15;9588:4;9578:15;;;;;;;;;;;;;;;9594:1;9578:18;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;:64;;;;:::i;:::-;9561:11;9573:1;9561:14;;;;;;;;;;;;;;;;;;;;;:81;;;;;9676:9;:15;9686:4;9676:15;;;;;;;;;;;;;;;9692:1;9676:18;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;9657:13;9671:1;9657:16;;;;;;;;;;;;;;;;;;;;;:44;;;;;9735:9;:15;9745:4;9735:15;;;;;;;;;;;;;;;9751:1;9735:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;9716:13;9730:1;9716:16;;;;;;;;;;;;;;;;;;;;;:50;;;;;9505:3;;;;;:::i;:::-;;;;9467:311;;;;8993:792;;;;;;:::o;11820:123::-;11886:7;11913:9;:15;11923:4;11913:15;;;;;;;;;;;;;;;:22;;;;11906:29;;11820:123;;;:::o;2805:2048::-;2931:12;:24;2944:10;2931:24;;;;;;;;;;;;;;;;;;;;;;;;;2930:25;2922:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3031:1;3011:16;:21;;:47;;;;;3056:2;3036:16;:22;;3011:47;3003:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;3127:1;3109:14;:19;;:43;;;;;3150:2;3132:14;:20;;3109:43;3101:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;3195:33;3250:6;3231:16;:25;;;;:::i;:::-;3195:61;;3267:31;3318:6;3301:14;:23;;;;:::i;:::-;3267:57;;3337:23;3375:28;3418:23;3456:21;3507:9;3502:591;3526:9;:21;3536:10;3526:21;;;;;;;;;;;;;;;:28;;;;3522:1;:32;3502:591;;;3621:25;3580:9;:21;3590:10;3580:21;;;;;;;;;;;;;;;3602:1;3580:24;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;:66;3576:506;;;3686:9;:21;3696:10;3686:21;;;;;;;;;;;;;;;3708:1;3686:24;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;3667:50;;;;;:::i;:::-;;;3760:9;:21;3770:10;3760:21;;;;;;;;;;;;;;;3782:1;3760:24;;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;3736:69;;;;;:::i;:::-;;;3858:1;3824:9;:21;3834:10;3824:21;;;;;;;;;;;;;;;3846:1;3824:24;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;:35;;;;3896:9;:21;3906:10;3896:21;;;;;;;;;;;;;;;3918:1;3896:24;;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3878:54;;3967:9;:21;3977:10;3967:21;;;;;;;;;;;;;;;3989:1;3967:24;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;3951:54;;4065:1;4024:9;:21;4034:10;4024:21;;;;;;;;;;;;;;;4046:1;4024:24;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;:42;;;;3576:506;3556:3;;;;;:::i;:::-;;;;3502:591;;;;4132:6;4113:15;:25;;4105:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4176:19;4216:9;4198:15;:27;;;;:::i;:::-;4176:49;;4236:23;4262:55;4293:23;4262:30;:55::i;:::-;4236:81;;4330:29;4362:299;;;;;;;;4397:11;4362:299;;;;4437:23;4362:299;;;;4489:15;4362:299;;;;4532:15;4362:299;;;;4577:15;4362:299;;;;4629:20;4362:299;;;4330:331;;4699:9;4674;:21;4684:10;4674:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;4719:9;:21;4729:10;4719:21;;;;;;;;;;;;;;;4746:10;4719:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4787:10;4775:70;;;4799:16;4817:14;4833:11;4775:70;;;;;;;;:::i;:::-;;;;;;;;2805:2048;;;;;;;;;;;;:::o;1472:1325::-;1581:1;1565:12;:17;;:39;;;;;1602:2;1586:12;:18;;1565:39;1557:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1651:12;:24;1664:10;1651:24;;;;;;;;;;;;;;;;;;;;;;;;;1650:25;1642:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1724:27;1769:6;1754:12;:21;;;;:::i;:::-;1724:51;;1786:27;1816:51;1847:19;1816:30;:51::i;:::-;1786:81;;1918:1;1884:36;;:10;:22;1895:10;1884:22;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;:62;;;;;1936:10;1924:22;;:8;:22;;;;1884:62;:88;;;;;1970:1;1950:22;;:8;:22;;;;1884:88;1880:154;;;2014:8;1989:10;:22;2000:10;1989:22;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;1880:154;2046:29;2078:278;;;;;;;;2113:9;2078:278;;;;2151:19;2078:278;;;;2199:19;2078:278;;;;2246:15;2078:278;;;;2291:15;2078:278;;;;2343:1;2078:278;;;2046:310;;2394:9;2369;:21;2379:10;2369:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;2442:19;2414:13;:25;2428:10;2414:25;;;;;;;;;;;;;;;:47;;;;2500:19;2472:13;:25;2486:10;2472:25;;;;;;;;;;;;;;;:47;;;;2557:15;2530:12;:24;2543:10;2530:24;;;;;;;;;;;;;;;:42;;;;2612:15;2583:14;:26;2598:10;2583:26;;;;;;;;;;;;;;;:44;;;;2669:9;2638:16;:28;2655:10;2638:28;;;;;;;;;;;;;;;:40;;;;2689:9;:21;2699:10;2689:21;;;;;;;;;;;;;;;2716:10;2689:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2753:10;2745:44;;;2765:9;2776:12;2745:44;;;;;;;:::i;:::-;;;;;;;;1472:1325;;;;;:::o;8457:100::-;1410:6;;;;;;;;;;1396:20;;:10;:20;;;1388:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8526:6:::1;::::0;::::1;;;;;;;;:15;;:23;8542:6;8526:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8457:100:::0;:::o;8779:206::-;1410:6;;;;;;;;;;1396:20;;:10;:20;;;1388:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8856:12:::1;:18;8869:4;8856:18;;;;;;;;;;;;;;;;;;;;;;;;;8848:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8935:5;8914:12;:18;8927:4;8914:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8972:4;8958:19;;;;;;;;;;;;8779:206:::0;:::o;6675:882::-;6759:12;:24;6772:10;6759:24;;;;;;;;;;;;;;;;;;;;;;;;;6758:25;6750:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;6839:28;6889:9;6884:536;6908:9;:21;6918:10;6908:21;;;;;;;;;;;;;;;:28;;;;6904:1;:32;6884:536;;;7018:6;7003:12;:21;;;;:::i;:::-;6962:9;:21;6972:10;6962:21;;;;;;;;;;;;;;;6984:1;6962:24;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;:62;6958:451;;;7045:23;7071:32;7089:10;7101:1;7071:17;:32::i;:::-;7045:58;;7148:1;7130:15;:19;7122:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7245:15;7196:9;:21;7206:10;7196:21;;;;;;;;;;;;;;;7218:1;7196:24;;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;:64;;;;;;;:::i;:::-;;;;;;;;7320:15;7279:9;:21;7289:10;7279:21;;;;;;;;;;;;;;;7301:1;7279:24;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;:56;;;;7378:15;7354:39;;;;;:::i;:::-;;;6958:451;;6938:3;;;;;:::i;:::-;;;;6884:536;;;;7440:10;7432:28;;:50;7461:20;7432:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7516:10;7500:49;;;7528:20;7500:49;;;;;;:::i;:::-;;;;;;;;6675:882;;:::o;12541:118::-;12604:7;12631:14;:20;12646:4;12631:20;;;;;;;;;;;;;;;;12624:27;;12541:118;;;:::o;7565:410::-;7657:7;7677:22;7702:1;7677:26;;7719:9;7714:222;7738:9;:15;7748:4;7738:15;;;;;;;;;;;;;;;:22;;;;7734:1;:26;7714:222;;;7836:6;7821:12;:21;;;;:::i;:::-;7786:9;:15;7796:4;7786:15;;;;;;;;;;;;;;;7802:1;7786:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;:56;7782:143;;;7881:22;:28;7904:4;7881:28;;;;;;;;;;;;;;;;7863:46;;;;;:::i;:::-;;;7782:143;7762:3;;;;;:::i;:::-;;;;7714:222;;;;7953:14;7946:21;;;7565:410;;;;:::o;9793:1908::-;9878:31;9911;9944:35;9981:38;10021:35;10069:20;10111:9;10106:190;10130:9;:15;10140:4;10130:15;;;;;;;;;;;;;;;:22;;;;10126:1;:26;10106:190;;;10228:6;10213:12;:21;;;;:::i;:::-;10178:9;:15;10188:4;10178:15;;;;;;;;;;;;;;;10194:1;10178:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;:56;10174:111;;;10255:14;;;;;:::i;:::-;;;;10174:111;10154:3;;;;;:::i;:::-;;;;10106:190;;;;10339:12;10325:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10308:44;;10394:12;10380:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10363:44;;10453:12;10439:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10418:48;;10515:12;10501:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10477:51;;10574:12;10560:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10539:48;;10600:20;10640:9;10635:1059;10659:9;:15;10669:4;10659:15;;;;;;;;;;;;;;;:22;;;;10655:1;:26;10635:1059;;;10757:6;10742:12;:21;;;;:::i;:::-;10707:9;:15;10717:4;10707:15;;;;;;;;;;;;;;;10723:1;10707:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;:56;10703:980;;;10815:1;10784:14;10799:12;10784:28;;;;;;;;;;;;;;;;;;;;;:32;;;;;10890:9;:15;10900:4;10890:15;;;;;;;;;;;;;;;10906:1;10890:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;10857:9;:15;10867:4;10857:15;;;;;;;;;;;;;;;10873:1;10857:18;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;:64;;;;:::i;:::-;10839:15;:82;10835:325;;;11044:15;11010:9;:15;11020:4;11010:15;;;;;;;;;;;;;;;11026:1;11010:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;10977:9;:15;10987:4;10977:15;;;;;;;;;;;;;;;10993:1;10977:18;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;:64;;;;:::i;:::-;:82;;;;:::i;:::-;10946:14;10961:12;10946:28;;;;;;;;;;;;;;;;;;;;;:113;;;;;10835:325;;;11139:1;11108:14;11123:12;11108:28;;;;;;;;;;;;;;;;;;;;;:32;;;;;10835:325;11347:3;11313:9;:15;11323:4;11313:15;;;;;;;;;;;;;;;11329:1;11313:18;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;11285:9;:15;11295:4;11285:15;;;;;;;;;;;;;;;11301:1;11285:18;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;11251:9;:15;11261:4;11251:15;;;;;;;;;;;;;;;11267:1;11251:18;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;11216:9;:15;11226:4;11216:15;;;;;;;;;;;;;;;11232:1;11216:18;;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:65;;;;:::i;:::-;11215:95;;;;:::i;:::-;:129;;;;:::i;:::-;:135;;;;:::i;:::-;11180:18;11199:12;11180:32;;;;;;;;;;;;;;;;;;;;;:170;;;;;11407:26;11425:4;11431:1;11407:17;:26::i;:::-;11369:21;11391:12;11369:35;;;;;;;;;;;;;;;;;;;;;:64;;;;;11452:16;11538:15;11513:14;11478:9;:15;11488:4;11478:15;;;;;;;;;;;;;;;11494:1;11478:18;;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:49;;;;:::i;:::-;11471:83;;;;:::i;:::-;11452:102;;11616:17;11620:9;11631:1;11616:3;:17::i;:::-;11573:18;11592:12;11573:32;;;;;;;;;;;;;;;;;;;;;:61;;;;;11653:14;;;;;:::i;:::-;;;;10703:980;;10683:3;;;;;:::i;:::-;;;;10635:1059;;;;9793:1908;;;;;;;;;;:::o;12192:116::-;12254:7;12281:13;:19;12295:4;12281:19;;;;;;;;;;;;;;;;12274:26;;12192:116;;;:::o;6258:409::-;6342:7;6362:27;6392:9;:15;6402:4;6392:15;;;;;;;;;;;;;;;6408:12;6392:29;;;;;;;;;;;;;;;;;;;;;;;;;;6362:59;;6432:19;6472:7;:21;;;6454:15;:39;;;;:::i;:::-;6432:61;;6504:16;6580:26;6564:11;6541:7;:20;;;6524:7;:14;;;:37;;;;:::i;:::-;:51;;;;:::i;:::-;6523:84;;;;:::i;:::-;6504:103;;6651:8;6644:15;;;;;6258:409;;;;:::o;12316:107::-;12373:7;12400:9;:15;12410:4;12400:15;;;;;;;;;;;;;;;;12393:22;;12316:107;;;:::o;7983:466::-;8048:7;8068:21;8092:1;8068:25;;8104:22;8148:9;8143:249;8167:9;:15;8177:4;8167:15;;;;;;;;;;;;;;;:22;;;;8163:1;:26;8143:249;;;8228:9;:15;8238:4;8228:15;;;;;;;;;;;;;;;8244:1;8228:18;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;8211:42;;;;;:::i;:::-;;;8300:1;8272:9;:15;8282:4;8272:15;;;;;;;;;;;;;;;8288:1;8272:18;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;:29;8268:113;;;8340:9;:15;8350:4;8340:15;;;;;;;;;;;;;;;8356:1;8340:18;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;8322:43;;;;;:::i;:::-;;;8268:113;8191:3;;;;;:::i;:::-;;;;8143:249;;;;8427:14;8411:13;:30;;;;:::i;:::-;8404:37;;;;7983:466;;;:::o;8565:206::-;1410:6;;;;;;;;;;1396:20;;:10;:20;;;1388:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8641:12:::1;:18;8654:4;8641:18;;;;;;;;;;;;;;;;;;;;;;;;;8640:19;8632:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8724:4;8703:12;:18;8716:4;8703:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;8758:4;8746:17;;;;;;;;;;;;8565:206:::0;:::o;4861:576::-;4946:7;4986:10;4970:12;:26;4966:445;;;5020:18;5013:25;;;;4966:445;5098:11;5082:12;:27;5078:333;;;5133:18;5126:25;;;;5078:333;5211:11;5195:12;:27;5191:220;;;5246:18;5239:25;;;;5191:220;5324:11;5308:12;:27;5304:107;;;5359:18;5352:25;;;;5304:107;5428:1;5421:8;;4861:576;;;;:::o;11709:103::-;11764:6;11795:1;11790;:6;;:14;;11803:1;11790:14;;;11799:1;11790:14;11783:21;;11709:103;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:262::-;;1086:2;1074:9;1065:7;1061:23;1057:32;1054:2;;;1102:1;1099;1092:12;1054:2;1145:1;1170:53;1215:7;1206:6;1195:9;1191:22;1170:53;:::i;:::-;1160:63;;1116:117;1044:196;;;;:::o;1246:407::-;;;1371:2;1359:9;1350:7;1346:23;1342:32;1339:2;;;1387:1;1384;1377:12;1339:2;1430:1;1455:53;1500:7;1491:6;1480:9;1476:22;1455:53;:::i;:::-;1445:63;;1401:117;1557:2;1583:53;1628:7;1619:6;1608:9;1604:22;1583:53;:::i;:::-;1573:63;;1528:118;1329:324;;;;;:::o;1659:552::-;;;;1801:2;1789:9;1780:7;1776:23;1772:32;1769:2;;;1817:1;1814;1807:12;1769:2;1860:1;1885:53;1930:7;1921:6;1910:9;1906:22;1885:53;:::i;:::-;1875:63;;1831:117;1987:2;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1958:118;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1759:452;;;;;:::o;2217:179::-;;2307:46;2349:3;2341:6;2307:46;:::i;:::-;2385:4;2380:3;2376:14;2362:28;;2297:99;;;;:::o;2402:118::-;2489:24;2507:5;2489:24;:::i;:::-;2484:3;2477:37;2467:53;;:::o;2556:732::-;;2704:54;2752:5;2704:54;:::i;:::-;2774:86;2853:6;2848:3;2774:86;:::i;:::-;2767:93;;2884:56;2934:5;2884:56;:::i;:::-;2963:7;2994:1;2979:284;3004:6;3001:1;2998:13;2979:284;;;3080:6;3074:13;3107:63;3166:3;3151:13;3107:63;:::i;:::-;3100:70;;3193:60;3246:6;3193:60;:::i;:::-;3183:70;;3039:224;3026:1;3023;3019:9;3014:14;;2979:284;;;2983:14;3279:3;3272:10;;2680:608;;;;;;;:::o;3294:109::-;3375:21;3390:5;3375:21;:::i;:::-;3370:3;3363:34;3353:50;;:::o;3409:321::-;;3572:67;3636:2;3631:3;3572:67;:::i;:::-;3565:74;;3669:25;3665:1;3660:3;3656:11;3649:46;3721:2;3716:3;3712:12;3705:19;;3555:175;;;:::o;3736:320::-;;3899:67;3963:2;3958:3;3899:67;:::i;:::-;3892:74;;3996:24;3992:1;3987:3;3983:11;3976:45;4047:2;4042:3;4038:12;4031:19;;3882:174;;;:::o;4062:323::-;;4225:67;4289:2;4284:3;4225:67;:::i;:::-;4218:74;;4322:27;4318:1;4313:3;4309:11;4302:48;4376:2;4371:3;4367:12;4360:19;;4208:177;;;:::o;4391:370::-;;4554:67;4618:2;4613:3;4554:67;:::i;:::-;4547:74;;4651:34;4647:1;4642:3;4638:11;4631:55;4717:8;4712:2;4707:3;4703:12;4696:30;4752:2;4747:3;4743:12;4736:19;;4537:224;;;:::o;4767:318::-;;4930:67;4994:2;4989:3;4930:67;:::i;:::-;4923:74;;5027:22;5023:1;5018:3;5014:11;5007:43;5076:2;5071:3;5067:12;5060:19;;4913:172;;;:::o;5091:329::-;;5254:67;5318:2;5313:3;5254:67;:::i;:::-;5247:74;;5351:33;5347:1;5342:3;5338:11;5331:54;5411:2;5406:3;5402:12;5395:19;;5237:183;;;:::o;5426:326::-;;5589:67;5653:2;5648:3;5589:67;:::i;:::-;5582:74;;5686:30;5682:1;5677:3;5673:11;5666:51;5743:2;5738:3;5734:12;5727:19;;5572:180;;;:::o;5758:330::-;;5921:67;5985:2;5980:3;5921:67;:::i;:::-;5914:74;;6018:34;6014:1;6009:3;6005:11;5998:55;6079:2;6074:3;6070:12;6063:19;;5904:184;;;:::o;6094:319::-;;6257:67;6321:2;6316:3;6257:67;:::i;:::-;6250:74;;6354:23;6350:1;6345:3;6341:11;6334:44;6404:2;6399:3;6395:12;6388:19;;6240:173;;;:::o;6419:325::-;;6582:67;6646:2;6641:3;6582:67;:::i;:::-;6575:74;;6679:29;6675:1;6670:3;6666:11;6659:50;6735:2;6730:3;6726:12;6719:19;;6565:179;;;:::o;6750:319::-;;6913:67;6977:2;6972:3;6913:67;:::i;:::-;6906:74;;7010:23;7006:1;7001:3;6997:11;6990:44;7060:2;7055:3;7051:12;7044:19;;6896:173;;;:::o;7075:321::-;;7238:67;7302:2;7297:3;7238:67;:::i;:::-;7231:74;;7335:25;7331:1;7326:3;7322:11;7315:46;7387:2;7382:3;7378:12;7371:19;;7221:175;;;:::o;7402:322::-;;7565:67;7629:2;7624:3;7565:67;:::i;:::-;7558:74;;7662:26;7658:1;7653:3;7649:11;7642:47;7715:2;7710:3;7706:12;7699:19;;7548:176;;;:::o;7730:320::-;;7893:67;7957:2;7952:3;7893:67;:::i;:::-;7886:74;;7990:24;7986:1;7981:3;7977:11;7970:45;8041:2;8036:3;8032:12;8025:19;;7876:174;;;:::o;8056:330::-;;8219:67;8283:2;8278:3;8219:67;:::i;:::-;8212:74;;8316:34;8312:1;8307:3;8303:11;8296:55;8377:2;8372:3;8368:12;8361:19;;8202:184;;;:::o;8392:108::-;8469:24;8487:5;8469:24;:::i;:::-;8464:3;8457:37;8447:53;;:::o;8506:118::-;8593:24;8611:5;8593:24;:::i;:::-;8588:3;8581:37;8571:53;;:::o;8630:222::-;;8761:2;8750:9;8746:18;8738:26;;8774:71;8842:1;8831:9;8827:17;8818:6;8774:71;:::i;:::-;8728:124;;;;:::o;8858:1157::-;;9273:3;9262:9;9258:19;9250:27;;9323:9;9317:4;9313:20;9309:1;9298:9;9294:17;9287:47;9351:108;9454:4;9445:6;9351:108;:::i;:::-;9343:116;;9506:9;9500:4;9496:20;9491:2;9480:9;9476:18;9469:48;9534:108;9637:4;9628:6;9534:108;:::i;:::-;9526:116;;9689:9;9683:4;9679:20;9674:2;9663:9;9659:18;9652:48;9717:108;9820:4;9811:6;9717:108;:::i;:::-;9709:116;;9872:9;9866:4;9862:20;9857:2;9846:9;9842:18;9835:48;9900:108;10003:4;9994:6;9900:108;:::i;:::-;9892:116;;9240:775;;;;;;;:::o;10021:1419::-;;10514:3;10503:9;10499:19;10491:27;;10564:9;10558:4;10554:20;10550:1;10539:9;10535:17;10528:47;10592:108;10695:4;10686:6;10592:108;:::i;:::-;10584:116;;10747:9;10741:4;10737:20;10732:2;10721:9;10717:18;10710:48;10775:108;10878:4;10869:6;10775:108;:::i;:::-;10767:116;;10930:9;10924:4;10920:20;10915:2;10904:9;10900:18;10893:48;10958:108;11061:4;11052:6;10958:108;:::i;:::-;10950:116;;11113:9;11107:4;11103:20;11098:2;11087:9;11083:18;11076:48;11141:108;11244:4;11235:6;11141:108;:::i;:::-;11133:116;;11297:9;11291:4;11287:20;11281:3;11270:9;11266:19;11259:49;11325:108;11428:4;11419:6;11325:108;:::i;:::-;11317:116;;10481:959;;;;;;;;:::o;11446:210::-;;11571:2;11560:9;11556:18;11548:26;;11584:65;11646:1;11635:9;11631:17;11622:6;11584:65;:::i;:::-;11538:118;;;;:::o;11662:419::-;;11866:2;11855:9;11851:18;11843:26;;11915:9;11909:4;11905:20;11901:1;11890:9;11886:17;11879:47;11943:131;12069:4;11943:131;:::i;:::-;11935:139;;11833:248;;;:::o;12087:419::-;;12291:2;12280:9;12276:18;12268:26;;12340:9;12334:4;12330:20;12326:1;12315:9;12311:17;12304:47;12368:131;12494:4;12368:131;:::i;:::-;12360:139;;12258:248;;;:::o;12512:419::-;;12716:2;12705:9;12701:18;12693:26;;12765:9;12759:4;12755:20;12751:1;12740:9;12736:17;12729:47;12793:131;12919:4;12793:131;:::i;:::-;12785:139;;12683:248;;;:::o;12937:419::-;;13141:2;13130:9;13126:18;13118:26;;13190:9;13184:4;13180:20;13176:1;13165:9;13161:17;13154:47;13218:131;13344:4;13218:131;:::i;:::-;13210:139;;13108:248;;;:::o;13362:419::-;;13566:2;13555:9;13551:18;13543:26;;13615:9;13609:4;13605:20;13601:1;13590:9;13586:17;13579:47;13643:131;13769:4;13643:131;:::i;:::-;13635:139;;13533:248;;;:::o;13787:419::-;;13991:2;13980:9;13976:18;13968:26;;14040:9;14034:4;14030:20;14026:1;14015:9;14011:17;14004:47;14068:131;14194:4;14068:131;:::i;:::-;14060:139;;13958:248;;;:::o;14212:419::-;;14416:2;14405:9;14401:18;14393:26;;14465:9;14459:4;14455:20;14451:1;14440:9;14436:17;14429:47;14493:131;14619:4;14493:131;:::i;:::-;14485:139;;14383:248;;;:::o;14637:419::-;;14841:2;14830:9;14826:18;14818:26;;14890:9;14884:4;14880:20;14876:1;14865:9;14861:17;14854:47;14918:131;15044:4;14918:131;:::i;:::-;14910:139;;14808:248;;;:::o;15062:419::-;;15266:2;15255:9;15251:18;15243:26;;15315:9;15309:4;15305:20;15301:1;15290:9;15286:17;15279:47;15343:131;15469:4;15343:131;:::i;:::-;15335:139;;15233:248;;;:::o;15487:419::-;;15691:2;15680:9;15676:18;15668:26;;15740:9;15734:4;15730:20;15726:1;15715:9;15711:17;15704:47;15768:131;15894:4;15768:131;:::i;:::-;15760:139;;15658:248;;;:::o;15912:419::-;;16116:2;16105:9;16101:18;16093:26;;16165:9;16159:4;16155:20;16151:1;16140:9;16136:17;16129:47;16193:131;16319:4;16193:131;:::i;:::-;16185:139;;16083:248;;;:::o;16337:419::-;;16541:2;16530:9;16526:18;16518:26;;16590:9;16584:4;16580:20;16576:1;16565:9;16561:17;16554:47;16618:131;16744:4;16618:131;:::i;:::-;16610:139;;16508:248;;;:::o;16762:419::-;;16966:2;16955:9;16951:18;16943:26;;17015:9;17009:4;17005:20;17001:1;16990:9;16986:17;16979:47;17043:131;17169:4;17043:131;:::i;:::-;17035:139;;16933:248;;;:::o;17187:419::-;;17391:2;17380:9;17376:18;17368:26;;17440:9;17434:4;17430:20;17426:1;17415:9;17411:17;17404:47;17468:131;17594:4;17468:131;:::i;:::-;17460:139;;17358:248;;;:::o;17612:419::-;;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17783:248;;;:::o;18037:222::-;;18168:2;18157:9;18153:18;18145:26;;18181:71;18249:1;18238:9;18234:17;18225:6;18181:71;:::i;:::-;18135:124;;;;:::o;18265:332::-;;18424:2;18413:9;18409:18;18401:26;;18437:71;18505:1;18494:9;18490:17;18481:6;18437:71;:::i;:::-;18518:72;18586:2;18575:9;18571:18;18562:6;18518:72;:::i;:::-;18391:206;;;;;:::o;18603:442::-;;18790:2;18779:9;18775:18;18767:26;;18803:71;18871:1;18860:9;18856:17;18847:6;18803:71;:::i;:::-;18884:72;18952:2;18941:9;18937:18;18928:6;18884:72;:::i;:::-;18966;19034:2;19023:9;19019:18;19010:6;18966:72;:::i;:::-;18757:288;;;;;;:::o;19051:132::-;;19141:3;19133:11;;19171:4;19166:3;19162:14;19154:22;;19123:60;;;:::o;19189:114::-;;19290:5;19284:12;19274:22;;19263:40;;;:::o;19309:113::-;;19411:4;19406:3;19402:14;19394:22;;19384:38;;;:::o;19428:184::-;;19561:6;19556:3;19549:19;19601:4;19596:3;19592:14;19577:29;;19539:73;;;;:::o;19618:169::-;;19736:6;19731:3;19724:19;19776:4;19771:3;19767:14;19752:29;;19714:73;;;;:::o;19793:305::-;;19852:20;19870:1;19852:20;:::i;:::-;19847:25;;19886:20;19904:1;19886:20;:::i;:::-;19881:25;;20040:1;19972:66;19968:74;19965:1;19962:81;19959:2;;;20046:18;;:::i;:::-;19959:2;20090:1;20087;20083:9;20076:16;;19837:261;;;;:::o;20104:185::-;;20161:20;20179:1;20161:20;:::i;:::-;20156:25;;20195:20;20213:1;20195:20;:::i;:::-;20190:25;;20234:1;20224:2;;20239:18;;:::i;:::-;20224:2;20281:1;20278;20274:9;20269:14;;20146:143;;;;:::o;20295:348::-;;20358:20;20376:1;20358:20;:::i;:::-;20353:25;;20392:20;20410:1;20392:20;:::i;:::-;20387:25;;20580:1;20512:66;20508:74;20505:1;20502:81;20497:1;20490:9;20483:17;20479:105;20476:2;;;20587:18;;:::i;:::-;20476:2;20635:1;20632;20628:9;20617:20;;20343:300;;;;:::o;20649:527::-;;20708:19;20725:1;20708:19;:::i;:::-;20703:24;;20741:19;20758:1;20741:19;:::i;:::-;20736:24;;20930:1;20862:66;20858:74;20855:1;20851:82;20846:1;20843;20839:9;20832:17;20828:106;20825:2;;;20937:18;;:::i;:::-;20825:2;21116:1;21048:66;21044:74;21041:1;21037:82;21033:1;21030;21026:9;21022:98;21019:2;;;21123:18;;:::i;:::-;21019:2;21168:1;21165;21161:9;21153:17;;20693:483;;;;:::o;21182:191::-;;21242:20;21260:1;21242:20;:::i;:::-;21237:25;;21276:20;21294:1;21276:20;:::i;:::-;21271:25;;21315:1;21312;21309:8;21306:2;;;21320:18;;:::i;:::-;21306:2;21365:1;21362;21358:9;21350:17;;21227:146;;;;:::o;21379:96::-;;21445:24;21463:5;21445:24;:::i;:::-;21434:35;;21424:51;;;:::o;21481:90::-;;21558:5;21551:13;21544:21;21533:32;;21523:48;;;:::o;21577:76::-;;21642:5;21631:16;;21621:32;;;:::o;21659:126::-;;21736:42;21729:5;21725:54;21714:65;;21704:81;;;:::o;21791:77::-;;21857:5;21846:16;;21836:32;;;:::o;21874:233::-;;21936:24;21954:5;21936:24;:::i;:::-;21927:33;;21982:66;21975:5;21972:77;21969:2;;;22052:18;;:::i;:::-;21969:2;22099:1;22092:5;22088:13;22081:20;;21917:190;;;:::o;22113:180::-;22161:77;22158:1;22151:88;22258:4;22255:1;22248:15;22282:4;22279:1;22272:15;22299:180;22347:77;22344:1;22337:88;22444:4;22441:1;22434:15;22468:4;22465:1;22458:15;22485:122;22558:24;22576:5;22558:24;:::i;:::-;22551:5;22548:35;22538:2;;22597:1;22594;22587:12;22538:2;22528:79;:::o;22613:122::-;22686:24;22704:5;22686:24;:::i;:::-;22679:5;22676:35;22666:2;;22725:1;22722;22715:12;22666:2;22656:79;:::o

Swarm Source

ipfs://f6694acfa0aadc39352c91ab95c08afbfb7ac841ad73c37f75137eaf620e75ea
BlockTransactionGas UsedReward

view all blocks produced

AgeBlockFee AddressBC Fee AddressVoting PowerJailedIncoming

View All Validatorset

BlockUncle NumberDifficultyGas UsedReward

View All Uncles

Loading...

Loading

Loading...

Loading

Validator IndexBlockAmount

View All Withdrawals

Transaction HashBlockValueEth2 PubKeyValid

View All Deposits

[Download: CSV Export ]

[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.

Address QR Code
My Address - Private Name Tag or Note

My Name Tag:

Private Name Tags (up to 35 characters) can be used for easy identification of addresses

Private Note:

A private note (up to 500 characters) can be attached to this address.
Please DO NOT store any passwords or private keys here.

View all Private Name Tags

Compiler specific version warnings:

The compiled contract might be susceptible to FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity), AbiReencodingHeadOverflowWithStaticArrayCleanup (medium-severity), DirtyBytesArrayToStorage (low-severity), DataLocationChangeInInternalOverride (very low-severity), NestedCalldataArrayAbiReencodingSizeValidation (very low-severity), SignedImmutables (very low-severity), ABIDecodeTwoDimensionalArrayMemory (very low-severity) Solidity Compiler Bugs.

Connect a Wallet
Connect a Wallet
Connect a Wallet
Staking | Address 0x081a6057c25e8ab7995fe1f16265e932a32b2dae | BscScan (2024)
Top Articles
Latest Posts
Article information

Author: Lakeisha Bayer VM

Last Updated:

Views: 6203

Rating: 4.9 / 5 (49 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Lakeisha Bayer VM

Birthday: 1997-10-17

Address: Suite 835 34136 Adrian Mountains, Floydton, UT 81036

Phone: +3571527672278

Job: Manufacturing Agent

Hobby: Skimboarding, Photography, Roller skating, Knife making, Paintball, Embroidery, Gunsmithing

Introduction: My name is Lakeisha Bayer VM, I am a brainy, kind, enchanting, healthy, lovely, clean, witty person who loves writing and wants to share my knowledge and understanding with you.